\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","/**\n * Basic utilities module.\n * @module utils/basic\n */\n\n/**\n * Formats a message replacing placeholders with variables values.\n * @param {string} message - A message that can contain placeholders.\n * @param {Object} [variables] - Variables for replacing message placeholders.\n *\n * @example\n * formatMessage(\"Hello {name}\", {name: \"John\"});\n * // > \"Hello John\"\n *\n * formatMessage(\"Hello {{name}}\", {name: \"John\"});\n * // > \"Hello \\\"John\\\"\"\n */\nexport function formatMessage(message, variables) {\n return (\n message\n // Replace {{variable}} with `JSON.stringify(variableValue)`.\n .replace(/{{([0-9a-zA-Z-_. ]+)}}/g, function(_, variable) {\n // JSON.stringify(NaN) yields 'null', so we need a special case for NaN\n if (\n typeof variables[variable] === \"number\" &&\n isNaN(variables[variable])\n ) {\n return \"NaN\";\n }\n return JSON.stringify(variables[variable]);\n })\n // Replace {variable} with `variableValue`.\n .replace(/{([0-9a-zA-Z-_. ]+)}/g, function(_, variable) {\n return variables[variable];\n })\n );\n}\n\n/**\n * Checks if passed *object* is a plain object.\n * @param {*} object - Value subject to test.\n * @returns {boolean} Returns `true` if *object* is a plain object or `false`.\n *\n * @example\n *\n * isPlainObject(); // > false\n * isPlainObject(null); // > false\n * isPlainObject(new Date()); // > false\n * isPlainObject([]); // > false\n * isPlainObject(1); // > false\n * isPlainObject(true); // > false\n * isPlainObject(\"foo\"); // > false\n * isPlainObject(function() {}); // > false\n * isPlainObject({a: 1}); // > true\n */\nfunction isPlainObject(object) {\n // Inspired by jQuery Core, but reduced to our use case.\n return (\n object !== null &&\n \"\" + object === \"[object Object]\" &&\n object.constructor === Object\n );\n}\n\n/**\n * @param {Array} array - The list of strings to glue together as an English formatted list string.\n * @param {string} conjunction - Conjunction value, e.g., `'and'`, `'or'`.\n * @returns {string} Returns an English formatted list string using the passed *conjunction*.\n *\n * @example\n *\n * listFormat([], 'or'); // > ''\n * listFormat(['foo'], 'or'); // > 'foo'\n * listFormat(['foo', 'bar'], 'or'); // > 'foo or bar'\n * listFormat(['foo', 'bar', 'baz'], 'or'); // > 'foo, or bar, or baz'\n */\nexport function listFormat(array, conjunction) {\n if (array.length === 0) {\n return \"\";\n }\n if (array.length === 1) {\n return array[0];\n }\n if (array.length === 2) {\n return array.join(\" \" + conjunction + \" \");\n }\n if (array.length > 2) {\n return array.join(\", \" + conjunction + \" \");\n }\n}\n\n/**\n * Returns the type of a variable with additional types than native `typeof`.\n * @param {*} variable - A variable to deduce its type.\n *\n * @example\n * smarterTypeof(null); // > \"null\"\n * smarterTypeof({a: 1}); // > \"plain object\"\n * smarterTypeof([]); // > \"array\"\n * smarterTypeof(new Date()); // > \"date\"\n * smarterTypeof(); // > result of regular typeof.\n */\nexport function smarterTypeof(variable) {\n if (variable === null) {\n return \"null\";\n }\n if (isPlainObject(variable)) {\n return \"plain object\";\n }\n if (Array.isArray(variable)) {\n return \"array\";\n }\n if (variable instanceof Date) {\n return \"date\";\n }\n return typeof variable;\n}\n\n/**\n * Returns `true` is *element* belongs to *collection*.\n * @param {*} element - The key of an Object or the element of an Array.\n * @param {(Array| Object)} Where to search for element at.\n *\n * @example\n *\n * withinRange(\"bar\", [\"foo\", \"bar\", \"baz\"]);\n * // > true\n * withinRange(\"quax\", [\"foo\", \"bar\", \"baz\"]);\n * // > false\n *\n * @example\n *\n * withinRange(\"bar\", {foo: 1, bar: 2, baz: 3});\n * // > true\n * withinRange(\"quax\", {foo: 1, bar: 2, baz: 3});\n * // > false\n */\nexport function withinRange(element, collection) {\n return Array.isArray(collection)\n ? collection.indexOf(element) !== -1\n : element in collection;\n}\n","/**\n * Assertion utilities module.\n * @module utils/assertion\n *\n * @example\n *\n * function myFunction(foo, bar) {\n * assertType(foo, 'foo', ['string']);\n * assertType(bar, 'bar', ['plain object']);\n * }\n *\n * myFunction(1);\n * // > TypeError: Parameter `foo` must be a string, not number `1`\n *\n * myFunction(\"1\", []);\n * // > TypeError: Parameter `bar` must be a plain object, not array `[]`\n */\nimport { formatMessage, listFormat, smarterTypeof, withinRange } from \"./utils\";\n\n/**\n * Asserts values that are assumed to be true.\n * @param {boolean} condition - Won't throw if true, will throw if false.\n * @param {string} errorMessage - The error message. Can contain placeholders for variable\n * replacement, e.g., 'Hello {name}' where the value for name comes from `options.name`.\n * @param {Object} [options]\n * @param {Object} [options.errorClass=Error] The class of the error to throw.\n * @param {string} [options.*] Any other option will be used for variable replacement in\n * errorMessage.\n * @returns Returns `true` if *condition* if `true`.\n * @throws Will throw *option.errorClass* if *condition* if `false`.\n *\n * @example\n *\n * // This will not throw and return true.\n * assert(truthyValue, 'error message');\n * // > true\n *\n * @example\n *\n * // This will throw an error with this error message.\n * assert(falseyValue, 'error message');\n * // > throw Error('error message')\n */\nexport function assert(condition, errorMessage, options) {\n var error, errorClass;\n\n if (condition) {\n return true;\n }\n\n options = options || {};\n // Assign errorClass and remove it from options.\n errorClass = options.errorClass || Error;\n\n errorMessage = formatMessage(errorMessage, options);\n error = new errorClass(errorMessage);\n error.attributes = options;\n\n throw error;\n}\n\n/**\n * Throw a TypeError in case *parameterValue* isn't any of *expectedTypes*.\n *\n * @param {*} parameterValue - Used in the error message as *parameterValue* and the deduced *parameterType* variables.\n * @param {string} parameterName - Used in the error message as *parameterName* variable.\n * @param {Array} expectedTypes - A list of expected (smart) typeofs.\n * @param {Object} [options]\n * @param {boolean} [options.condition] An optional condition that overrides the default logic, in which case *expectedTypes* values are completely ignored.\n * @param {String} [options.errorMessage] An optional error message that overrides the default one. Note the error message can use the following automatically set variables: parameterName, parameterValue, parameterType.\n *\n * @example\n *\n * myParam = \"foo\";\n * assertType(\n * myParam,\n * 'myParam',\n * [\"number\"]\n * );\n * // > TypeError: Parameter `myParam` must be a number, not string `\"foo\"`\n *\n * myParam = [];\n * assertType(\n * myParam,\n * 'myParam',\n * [\"number\", \"string\"]\n * );\n * // > TypeError: Parameter `myParam` must be a number or string, not array `[]`\n */\nexport function assertType(\n parameterValue,\n parameterName,\n expectedTypes,\n options\n) {\n var parameterType = smarterTypeof(parameterValue);\n\n options = options || {};\n var condition =\n options.condition || expectedTypes.indexOf(parameterType) !== -1;\n var errorMessage =\n options.errorMessage ||\n \"Parameter `{parameterName}` must be a {expectedTypesMessage}, not {parameterType} `{{parameterValue}}`\";\n\n assert(condition, errorMessage, {\n errorClass: TypeError,\n expectedTypesMessage: listFormat(expectedTypes, \"or\"),\n parameterName: parameterName,\n parameterType: parameterType,\n parameterValue: parameterValue\n });\n}\n\n/**\n * Throw a RangeError in case *element* isn't included in the *collection*.\n *\n * @param {*} element - The key of an Object or the element of an Array.\n * @param {(Array|Object)} collection - Where to search for element at.\n * @param {string} errorMessage - See assert().\n * @param {Object} [options] - See assert().\n *\n * @example\n * assertRange(\"quax\", [\"foo\", \"bar\", \"baz\"], \"Invalid element\");\n * // > RangeError: Invalid element\n *\n * assertRange(\"quax\", {\"foo\": 1, \"bar\": 2, \"baz\": 3}, \"Invalid key\");\n * // > RangeError: Invalid key\n */\nexport function assertRange(element, collection, errorMessage, options) {\n assert(\n withinRange(element, collection),\n errorMessage,\n Object.assign({ errorClass: RangeError }, options)\n );\n}\n","import PropTypes from 'prop-types';\n\nexport const FAQ_ARTICLE = {\n articleContent: PropTypes.string,\n articleId: PropTypes.string,\n articleTitle: PropTypes.string,\n topicId: PropTypes.string,\n breadCrumbPath: PropTypes.string,\n breadCrumbTitle: PropTypes.string,\n};\n\nexport const FAQ_ACTIVE_ARTICLE_CONTENT = {\n upfront_header: PropTypes.string,\n related_header: PropTypes.string,\n};\n\nexport const FAQ_RELATED_ARTICLE = {\n articleId: PropTypes.string,\n articleTitle: PropTypes.string,\n excerpt: PropTypes.string,\n rank: PropTypes.number,\n};\n\nexport const RELATED_ARTICLES = {\n articleId: PropTypes.string,\n articleTitle: PropTypes.string,\n topicId: PropTypes.string,\n topicName: PropTypes.string,\n};\n\n// Filtered Customer Service hour\nexport const CUSTOMER_HOURS = {\n amPerCall: PropTypes.string,\n amTime1: PropTypes.string,\n amTime2: PropTypes.string,\n generalTime1: PropTypes.string,\n generalTime2: PropTypes.string,\n hoursOfService: PropTypes.string,\n};\n\n// Data shape of phone data filtered by `dataParser`\nexport const CALL_US_CONTACT_INFO = {\n amFlag: PropTypes.string,\n amPhone: PropTypes.string,\n customerHour: PropTypes.shape(CUSTOMER_HOURS),\n generalMTS: PropTypes.string,\n generalPhoneNumber: PropTypes.string,\n header: PropTypes.string,\n mobileHeader: PropTypes.string,\n logoutInst: PropTypes.string,\n mobileLogoutInst: PropTypes.string,\n mtsPhone: PropTypes.string,\n phoneNumber: PropTypes.arrayOf(PropTypes.string),\n specialInstruction: PropTypes.string,\n webPin: PropTypes.string,\n};\n\nexport const CALL_US_PHONE_INFO = {\n isphonePresent: PropTypes.bool,\n phoneNumber: PropTypes.arrayOf(PropTypes.string),\n isInstructionPresent: PropTypes.bool,\n specialInstruction: PropTypes.string,\n showServiceHourHeader: PropTypes.bool,\n hoursOfService: PropTypes.string,\n webPin: PropTypes.string,\n};\n\nexport const CALL_US = {\n contactInfo: PropTypes.shape(CALL_US_PHONE_INFO),\n};\n\nexport const SELECT_RESULT = {\n topicId: PropTypes.string,\n topicName: PropTypes.string,\n};\n\nexport const WEBFORM_FIELDS_DETAILS = {\n character_limit: PropTypes.string,\n default_text: PropTypes.string,\n type: PropTypes.string,\n required: PropTypes.bool,\n};\n\nexport const WEBFORM_OTHER_FIELD_DETAILS = {\n topicId: PropTypes.string,\n kanaCode: PropTypes.string,\n topicName: PropTypes.string,\n subTopicName: PropTypes.string,\n pageflow: PropTypes.string,\n};\n\nexport const WEBFORM_ERRORS = {\n required: PropTypes.string,\n limit: PropTypes.string,\n};\n\nexport const SELECT_BOX_OPTIONS = {\n label: PropTypes.string,\n value: PropTypes.string,\n};\n\nexport const NOTIFIER_DETAILS_LINK_ITEM = {\n label: PropTypes.string,\n href: PropTypes.string,\n type: PropTypes.func,\n};\n\nexport const NOTIFIER_DETAILS = {\n title: PropTypes.string,\n description: PropTypes.string,\n iconClass: PropTypes.string,\n};\n\nexport const ALERT = {\n messageType: PropTypes.string,\n message: PropTypes.string,\n};\n\nexport const TAB = {\n key: PropTypes.string,\n label: PropTypes.string,\n priority: PropTypes.number,\n href: PropTypes.string,\n};\n\nexport const TOPICTREE_SEGMENT = {\n hide_topic: PropTypes.bool,\n leaf_node: PropTypes.bool,\n ref_id: PropTypes.string,\n topic_id: PropTypes.string,\n topic_name: PropTypes.string,\n};\n\nexport const TOPICTREE_SELECTION = { ...TOPICTREE_SEGMENT, sub_topics: PropTypes.array };\n\nexport const TOPICTREE_RESULT = { ...TOPICTREE_SEGMENT, web_form_id: PropTypes.string };\n\nexport const TOPICTREE = {\n display: PropTypes.bool,\n error: PropTypes.bool,\n isLoading: PropTypes.bool,\n topicTreeSelection: PropTypes.shape(TOPICTREE_SELECTION),\n topicTreeSelectionL1: PropTypes.shape(TOPICTREE_SELECTION),\n topicTreeSelectionL2: PropTypes.oneOfType([PropTypes.shape(TOPICTREE_RESULT), PropTypes.shape(TOPICTREE_SELECTION)]),\n topicTreeSelectionL3: PropTypes.shape(TOPICTREE_RESULT),\n};\n\nexport const TOPICLAYERS = {\n layer1: PropTypes.string,\n layer2: PropTypes.string,\n layer3: PropTypes.string,\n};\n\nexport const TOPICSELECT = {\n layer: PropTypes.number,\n subTopics: PropTypes.array,\n topics: PropTypes.shape(TOPICLAYERS),\n};\n\nexport const QUICKANSWERS = {\n layer1: PropTypes.array,\n layer2: PropTypes.array,\n};\n\nexport const QUICKANSWERS_SELECTED = {\n layer1: PropTypes.string,\n layer2: PropTypes.string,\n};\n\nexport const TOP_REASON_TOPICS = {\n articleId: PropTypes.string,\n articleTitle: PropTypes.string,\n breadCrumbPath: PropTypes.string,\n breadCrumbTitle: PropTypes.string,\n channel: PropTypes.string,\n excerpt: PropTypes.string,\n rank: PropTypes.number,\n topicId: PropTypes.string,\n topicName: PropTypes.string,\n usage: PropTypes.number,\n};\n\nexport const ERROR_MESSAGE = {\n message: PropTypes.string,\n tryAgain: PropTypes.string,\n};\n\nexport const REF_SELECT_RESULT = {\n topicId: PropTypes.string,\n topicName: PropTypes.string,\n topicRefId: PropTypes.string,\n};\n\nexport const TOPIC_TREE_SELECT_RESULT = {\n topicTreeSelectResult: PropTypes.shape(REF_SELECT_RESULT),\n topicsDisplay: PropTypes.bool,\n};\n\nexport const SUB_TOPIC = {\n hide_topic: PropTypes.bool,\n leaf_node: PropTypes.bool,\n ref_id: PropTypes.string,\n topic_id: PropTypes.string,\n topic_name: PropTypes.string,\n web_form_id: PropTypes.string,\n};\n\nexport const CONTACT_OPTION = {\n type: PropTypes.string,\n priority: PropTypes.string,\n};\n\nexport const CRAWL_INTENT_SEARCH_TOPIC = {\n hide_topic: PropTypes.bool,\n leaf_node: PropTypes.bool,\n parents: PropTypes.arrayOf(PropTypes.string),\n ref_id: PropTypes.string,\n topic_id: PropTypes.string,\n topic_name: PropTypes.string,\n web_form_id: PropTypes.string,\n};\n\nexport const TOOLTIP_CONTENT_POSITION = {\n x: PropTypes.number,\n y: PropTypes.number,\n};\n\nexport const TAB_CONTENT = {\n label: PropTypes.string,\n logo: PropTypes.string,\n content: PropTypes.element,\n priority: PropTypes.number,\n onClick: PropTypes.func,\n};\n\nexport const LEXA_STATE = {\n loaded: PropTypes.bool,\n available: PropTypes.bool,\n waitTime: PropTypes.string,\n};\n\nexport const AVAILABLE_DECISION = {\n availability_decision: PropTypes.string,\n name: PropTypes.string,\n rank: PropTypes.number,\n};\n\nexport const DISPUTE_CASE = {\n create_time: PropTypes.string,\n dispute_amount: PropTypes.shape({\n currency_code: PropTypes.string,\n value: PropTypes.string,\n }),\n dispute_channel: PropTypes.string,\n dispute_flow: PropTypes.string,\n dispute_id: PropTypes.string,\n dispute_life_cycle_stage: PropTypes.string,\n dispute_state: PropTypes.string,\n};\n\nexport const CALLUS_ELMO_TREATMENTS = {\n callUsElmoTreatments: PropTypes.string,\n};\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isBrowser = \"object\" !== 'undefined';\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache({\n key: 'css'\n });\n return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, isBrowser as i, useTheme as u, withEmotionCache as w };\n","// https://github.paypal.com/pages/Tracking-R/client-side-instrumentation/#record_ac\nimport template from 'string-placeholder';\nimport _isEmpty from 'lodash/isEmpty';\nimport _isString from 'lodash/isString';\nimport poll from '../../../js/lib/poll';\nimport Page from '../../../js/lib/page';\nimport { isC2MerchantMigrated } from '../../../js/lib/globalHelper';\n\nconst maskRegEx =\n /(\\d\\d+|(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,}))/g; // eslint-disable-line\nconst maskPattern = '#########';\n\nexport const generateLinkData = (link, options) => {\n if (!_isEmpty(options)) {\n return template(link, options, { clean: true });\n }\n return link;\n};\n\n// Validate if analytics object is available on window.\nconst validateAnalyticsObject = () => {\n if (!(window.PAYPAL && window.PAYPAL.analytics)) {\n return Promise.reject();\n }\n return Promise.resolve();\n};\n\n/**\n * Function to poll and check if analytics is available on window. If available fire FPTI.\n * @param options\n * @param callback\n * @returns {Promise}\n */\nexport const trackingHelper = (options, callback) =>\n poll(validateAnalyticsObject, 4, 500)\n .then(() => {\n callback(options);\n })\n .catch(() => {});\n\n// Get RSTA Value\nconst getRSTA = () => {\n return `${Page.getLocale().replace('-', '_')}`;\n};\n\nconst rstaForC2Merchant = (existingCountyLocale) => {\n // if user is C2 merchant migrated change the country/locale else return existing country/locale\n if (isC2MerchantMigrated()) {\n const locale = Page.getLanguage() === 'en' ? 'en_US' : 'zh_CN';\n\n return `${locale}`;\n }\n\n return existingCountyLocale;\n};\n\nexport function dataMasking(data) {\n if (_isString(data)) {\n return data.replace(maskRegEx, maskPattern);\n }\n\n return data;\n}\n\n// Get FPTI Options\nconst getFPTIOptions = (fptiOptions) => {\n const FPTIObject = (window && window.fpti) || {};\n // clearing out error props in case they exist\n FPTIObject.erpg = null;\n FPTIObject.erfd = null;\n FPTIObject.eccd = null;\n\n // FPTI options passed through props\n if (\n fptiOptions &&\n Object.prototype.hasOwnProperty.call(fptiOptions, 'page') &&\n Object.prototype.hasOwnProperty.call(fptiOptions, 'pgrp')\n ) {\n FPTIObject.page = fptiOptions.page;\n FPTIObject.pgrp = fptiOptions.pgrp;\n }\n\n // For setting link\n if (fptiOptions.link) {\n FPTIObject.link = fptiOptions.link;\n FPTIObject.pgln = `${fptiOptions.page}|${fptiOptions.link}`;\n FPTIObject.pglk = `${fptiOptions.pgrp}|${fptiOptions.link}`;\n }\n\n // Add event name to FPTI object\n FPTIObject.event_name = fptiOptions.event_name ? fptiOptions.event_name : null;\n\n // set component name\n FPTIObject.comp = 'smarthelpnodeweb';\n\n // Set event Type\n FPTIObject.e = null;\n if (fptiOptions.e) {\n FPTIObject.e = fptiOptions.e;\n }\n\n // set article doc id\n FPTIObject.article_doc_id = null;\n if (fptiOptions.article_doc_id) {\n FPTIObject.article_doc_id = fptiOptions.article_doc_id;\n }\n\n // Set RSTA\n const existingCountyLocale = window.fpti.rsta || getRSTA();\n FPTIObject.rsta = rstaForC2Merchant(existingCountyLocale);\n\n // add hpid if it is part of the options, else clear it\n FPTIObject.hpid = fptiOptions.hpid ? fptiOptions.hpid : null;\n\n // add help_doc_id and help_component_ids if available in the options, else clear them\n FPTIObject.help_doc_id = fptiOptions.help_doc_id || '';\n FPTIObject.help_component_ids = fptiOptions.help_component_ids || '';\n\n // Search keyword\n FPTIObject.srch = fptiOptions.srch ? dataMasking(fptiOptions.srch) : null;\n\n // For Omnichannel added new FPTI keys\n FPTIObject.ocp_context_metadata = fptiOptions.ocp_context_metadata ? fptiOptions.ocp_context_metadata : null;\n\n FPTIObject.t = fptiOptions.timestamp ? fptiOptions.timestamp : null;\n\n FPTIObject.context_status = fptiOptions.context_status ? fptiOptions.context_status : null;\n\n // customer confirmed\n FPTIObject.link_name = fptiOptions.link_name;\n\n FPTIObject.channel_name = fptiOptions.channel_name ? fptiOptions.channel_name : null;\n\n FPTIObject.rpa = fptiOptions.rpa ? fptiOptions.rpa : null;\n\n return FPTIObject;\n};\n\n// Track Impression event\nexport const trackImpression = (params) =>\n trackingHelper(params, (options) => {\n const fptiData = getFPTIOptions(options);\n return window.PAYPAL.analytics.Analytics.prototype.recordImpression({ data: fptiData });\n });\n\n// Track Activity Event\nexport const trackActivityEvent = (params) =>\n trackingHelper(params, (options) => {\n const fptiData = getFPTIOptions(options);\n window.PAYPAL.analytics.Analytics.prototype.recordEvent(fptiData.event_name, { data: fptiData });\n });\n\n// Track Click Event\nexport const trackClickEvent = (params) =>\n trackingHelper(params, (options) => {\n const fptiData = getFPTIOptions(options);\n window.PAYPAL.analytics.Analytics.prototype.recordEvent(fptiData.event_name, { data: fptiData });\n });\n\n// Track Javascript Error\n// https://github.paypal.com/pages/Tracking-R/client-side-instrumentation/#record_error\nexport const trackJSError = (errorObject) => {\n if (window.PAYPAL && window.PAYPAL.trackJSError) {\n window.PAYPAL.trackJSError(errorObject);\n }\n // PAYPAL.analytics.logJSError(errorObject, ['TopicTree', ['errorType']]);\n};\n","export default {\n HOME: 'home',\n ARTICLE: 'article',\n TOPIC: 'topic',\n SEARCH: 'search',\n ICF: 'ICF',\n PAYPALGUIDE: 'PAYPAL_HELP_GUIDE',\n COMPLAINTS: 'complaints',\n HOME_V2: 'homeV2',\n};\n","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","import api from \"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../css-loader/dist/cjs.js??ref--7-1!./grid.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import '../__generated__/styles/grid.css';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React from 'react';\nimport clsx from 'clsx';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\n\n// classStr can be a single className or a space-separated list\nvar mapNames = function (nameMap, nameStr) {\n if (!nameMap || !nameStr || nameStr === '') {\n return nameStr;\n }\n\n var classList = nameStr.split(/\\s+/);\n var mappedClasses = classList.map(function (name) {\n return nameMap[name] ? nameMap[name] : name;\n });\n return mappedClasses.join(' ');\n};\n\nvar styles = {\"ppvx_container\":\"ppvx_container___2-8-6\",\"ppvx_row\":\"ppvx_row___2-8-6\",\"ppvx_container--form\":\"ppvx_container--form___2-8-6\",\"ppvx_container-fluid\":\"ppvx_container-fluid___2-8-6\",\"ppvx_no-gutters\":\"ppvx_no-gutters___2-8-6\",\"ppvx_col\":\"ppvx_col___2-8-6\",\"ppvx_col-1\":\"ppvx_col-1___2-8-6\",\"ppvx_col-2\":\"ppvx_col-2___2-8-6\",\"ppvx_col-3\":\"ppvx_col-3___2-8-6\",\"ppvx_col-4\":\"ppvx_col-4___2-8-6\",\"ppvx_col-5\":\"ppvx_col-5___2-8-6\",\"ppvx_col-6\":\"ppvx_col-6___2-8-6\",\"ppvx_col-7\":\"ppvx_col-7___2-8-6\",\"ppvx_col-8\":\"ppvx_col-8___2-8-6\",\"ppvx_col-9\":\"ppvx_col-9___2-8-6\",\"ppvx_col-10\":\"ppvx_col-10___2-8-6\",\"ppvx_col-11\":\"ppvx_col-11___2-8-6\",\"ppvx_col-12\":\"ppvx_col-12___2-8-6\",\"ppvx_col-auto\":\"ppvx_col-auto___2-8-6\",\"ppvx_col-sm-1\":\"ppvx_col-sm-1___2-8-6\",\"ppvx_col-sm-2\":\"ppvx_col-sm-2___2-8-6\",\"ppvx_col-sm-3\":\"ppvx_col-sm-3___2-8-6\",\"ppvx_col-sm-4\":\"ppvx_col-sm-4___2-8-6\",\"ppvx_col-sm-5\":\"ppvx_col-sm-5___2-8-6\",\"ppvx_col-sm-6\":\"ppvx_col-sm-6___2-8-6\",\"ppvx_col-sm-7\":\"ppvx_col-sm-7___2-8-6\",\"ppvx_col-sm-8\":\"ppvx_col-sm-8___2-8-6\",\"ppvx_col-sm-9\":\"ppvx_col-sm-9___2-8-6\",\"ppvx_col-sm-10\":\"ppvx_col-sm-10___2-8-6\",\"ppvx_col-sm-11\":\"ppvx_col-sm-11___2-8-6\",\"ppvx_col-sm-12\":\"ppvx_col-sm-12___2-8-6\",\"ppvx_col-sm\":\"ppvx_col-sm___2-8-6\",\"ppvx_col-sm-auto\":\"ppvx_col-sm-auto___2-8-6\",\"ppvx_col-md-1\":\"ppvx_col-md-1___2-8-6\",\"ppvx_col-md-2\":\"ppvx_col-md-2___2-8-6\",\"ppvx_col-md-3\":\"ppvx_col-md-3___2-8-6\",\"ppvx_col-md-4\":\"ppvx_col-md-4___2-8-6\",\"ppvx_col-md-5\":\"ppvx_col-md-5___2-8-6\",\"ppvx_col-md-6\":\"ppvx_col-md-6___2-8-6\",\"ppvx_col-md-7\":\"ppvx_col-md-7___2-8-6\",\"ppvx_col-md-8\":\"ppvx_col-md-8___2-8-6\",\"ppvx_col-md-9\":\"ppvx_col-md-9___2-8-6\",\"ppvx_col-md-10\":\"ppvx_col-md-10___2-8-6\",\"ppvx_col-md-11\":\"ppvx_col-md-11___2-8-6\",\"ppvx_col-md-12\":\"ppvx_col-md-12___2-8-6\",\"ppvx_col-md\":\"ppvx_col-md___2-8-6\",\"ppvx_col-md-auto\":\"ppvx_col-md-auto___2-8-6\",\"ppvx_col-lg-1\":\"ppvx_col-lg-1___2-8-6\",\"ppvx_col-lg-2\":\"ppvx_col-lg-2___2-8-6\",\"ppvx_col-lg-3\":\"ppvx_col-lg-3___2-8-6\",\"ppvx_col-lg-4\":\"ppvx_col-lg-4___2-8-6\",\"ppvx_col-lg-5\":\"ppvx_col-lg-5___2-8-6\",\"ppvx_col-lg-6\":\"ppvx_col-lg-6___2-8-6\",\"ppvx_col-lg-7\":\"ppvx_col-lg-7___2-8-6\",\"ppvx_col-lg-8\":\"ppvx_col-lg-8___2-8-6\",\"ppvx_col-lg-9\":\"ppvx_col-lg-9___2-8-6\",\"ppvx_col-lg-10\":\"ppvx_col-lg-10___2-8-6\",\"ppvx_col-lg-11\":\"ppvx_col-lg-11___2-8-6\",\"ppvx_col-lg-12\":\"ppvx_col-lg-12___2-8-6\",\"ppvx_col-lg\":\"ppvx_col-lg___2-8-6\",\"ppvx_col-lg-auto\":\"ppvx_col-lg-auto___2-8-6\",\"ppvx_col-xl-1\":\"ppvx_col-xl-1___2-8-6\",\"ppvx_col-xl-2\":\"ppvx_col-xl-2___2-8-6\",\"ppvx_col-xl-3\":\"ppvx_col-xl-3___2-8-6\",\"ppvx_col-xl-4\":\"ppvx_col-xl-4___2-8-6\",\"ppvx_col-xl-5\":\"ppvx_col-xl-5___2-8-6\",\"ppvx_col-xl-6\":\"ppvx_col-xl-6___2-8-6\",\"ppvx_col-xl-7\":\"ppvx_col-xl-7___2-8-6\",\"ppvx_col-xl-8\":\"ppvx_col-xl-8___2-8-6\",\"ppvx_col-xl-9\":\"ppvx_col-xl-9___2-8-6\",\"ppvx_col-xl-10\":\"ppvx_col-xl-10___2-8-6\",\"ppvx_col-xl-11\":\"ppvx_col-xl-11___2-8-6\",\"ppvx_col-xl-12\":\"ppvx_col-xl-12___2-8-6\",\"ppvx_col-xl\":\"ppvx_col-xl___2-8-6\",\"ppvx_col-xl-auto\":\"ppvx_col-xl-auto___2-8-6\",\"ppvx_col-form--full\":\"ppvx_col-form--full___2-8-6\",\"ppvx_col-form--half\":\"ppvx_col-form--half___2-8-6\",\"ppvx_col-form--3qtr\":\"ppvx_col-form--3qtr___2-8-6\",\"ppvx_col-form--1qtr\":\"ppvx_col-form--1qtr___2-8-6\",\"ppvx_col-form--auto\":\"ppvx_col-form--auto___2-8-6\",\"ppvx_col-form--vspace\":\"ppvx_col-form--vspace___2-8-6\",\"ppvx_order-first\":\"ppvx_order-first___2-8-6\",\"ppvx_order-last\":\"ppvx_order-last___2-8-6\",\"ppvx_order-0\":\"ppvx_order-0___2-8-6\",\"ppvx_order-1\":\"ppvx_order-1___2-8-6\",\"ppvx_order-2\":\"ppvx_order-2___2-8-6\",\"ppvx_order-3\":\"ppvx_order-3___2-8-6\",\"ppvx_order-4\":\"ppvx_order-4___2-8-6\",\"ppvx_order-5\":\"ppvx_order-5___2-8-6\",\"ppvx_order-6\":\"ppvx_order-6___2-8-6\",\"ppvx_order-7\":\"ppvx_order-7___2-8-6\",\"ppvx_order-8\":\"ppvx_order-8___2-8-6\",\"ppvx_order-9\":\"ppvx_order-9___2-8-6\",\"ppvx_order-10\":\"ppvx_order-10___2-8-6\",\"ppvx_order-11\":\"ppvx_order-11___2-8-6\",\"ppvx_order-12\":\"ppvx_order-12___2-8-6\",\"ppvx_offset-1\":\"ppvx_offset-1___2-8-6\",\"ppvx_offset-2\":\"ppvx_offset-2___2-8-6\",\"ppvx_offset-3\":\"ppvx_offset-3___2-8-6\",\"ppvx_offset-4\":\"ppvx_offset-4___2-8-6\",\"ppvx_offset-5\":\"ppvx_offset-5___2-8-6\",\"ppvx_offset-6\":\"ppvx_offset-6___2-8-6\",\"ppvx_offset-7\":\"ppvx_offset-7___2-8-6\",\"ppvx_offset-8\":\"ppvx_offset-8___2-8-6\",\"ppvx_offset-9\":\"ppvx_offset-9___2-8-6\",\"ppvx_offset-10\":\"ppvx_offset-10___2-8-6\",\"ppvx_offset-11\":\"ppvx_offset-11___2-8-6\",\"ppvx_order-sm-first\":\"ppvx_order-sm-first___2-8-6\",\"ppvx_order-sm-last\":\"ppvx_order-sm-last___2-8-6\",\"ppvx_order-sm-0\":\"ppvx_order-sm-0___2-8-6\",\"ppvx_order-sm-1\":\"ppvx_order-sm-1___2-8-6\",\"ppvx_order-sm-2\":\"ppvx_order-sm-2___2-8-6\",\"ppvx_order-sm-3\":\"ppvx_order-sm-3___2-8-6\",\"ppvx_order-sm-4\":\"ppvx_order-sm-4___2-8-6\",\"ppvx_order-sm-5\":\"ppvx_order-sm-5___2-8-6\",\"ppvx_order-sm-6\":\"ppvx_order-sm-6___2-8-6\",\"ppvx_order-sm-7\":\"ppvx_order-sm-7___2-8-6\",\"ppvx_order-sm-8\":\"ppvx_order-sm-8___2-8-6\",\"ppvx_order-sm-9\":\"ppvx_order-sm-9___2-8-6\",\"ppvx_order-sm-10\":\"ppvx_order-sm-10___2-8-6\",\"ppvx_order-sm-11\":\"ppvx_order-sm-11___2-8-6\",\"ppvx_order-sm-12\":\"ppvx_order-sm-12___2-8-6\",\"ppvx_offset-sm-0\":\"ppvx_offset-sm-0___2-8-6\",\"ppvx_offset-sm-1\":\"ppvx_offset-sm-1___2-8-6\",\"ppvx_offset-sm-2\":\"ppvx_offset-sm-2___2-8-6\",\"ppvx_offset-sm-3\":\"ppvx_offset-sm-3___2-8-6\",\"ppvx_offset-sm-4\":\"ppvx_offset-sm-4___2-8-6\",\"ppvx_offset-sm-5\":\"ppvx_offset-sm-5___2-8-6\",\"ppvx_offset-sm-6\":\"ppvx_offset-sm-6___2-8-6\",\"ppvx_offset-sm-7\":\"ppvx_offset-sm-7___2-8-6\",\"ppvx_offset-sm-8\":\"ppvx_offset-sm-8___2-8-6\",\"ppvx_offset-sm-9\":\"ppvx_offset-sm-9___2-8-6\",\"ppvx_offset-sm-10\":\"ppvx_offset-sm-10___2-8-6\",\"ppvx_offset-sm-11\":\"ppvx_offset-sm-11___2-8-6\",\"ppvx_order-md-first\":\"ppvx_order-md-first___2-8-6\",\"ppvx_order-md-last\":\"ppvx_order-md-last___2-8-6\",\"ppvx_order-md-0\":\"ppvx_order-md-0___2-8-6\",\"ppvx_order-md-1\":\"ppvx_order-md-1___2-8-6\",\"ppvx_order-md-2\":\"ppvx_order-md-2___2-8-6\",\"ppvx_order-md-3\":\"ppvx_order-md-3___2-8-6\",\"ppvx_order-md-4\":\"ppvx_order-md-4___2-8-6\",\"ppvx_order-md-5\":\"ppvx_order-md-5___2-8-6\",\"ppvx_order-md-6\":\"ppvx_order-md-6___2-8-6\",\"ppvx_order-md-7\":\"ppvx_order-md-7___2-8-6\",\"ppvx_order-md-8\":\"ppvx_order-md-8___2-8-6\",\"ppvx_order-md-9\":\"ppvx_order-md-9___2-8-6\",\"ppvx_order-md-10\":\"ppvx_order-md-10___2-8-6\",\"ppvx_order-md-11\":\"ppvx_order-md-11___2-8-6\",\"ppvx_order-md-12\":\"ppvx_order-md-12___2-8-6\",\"ppvx_offset-md-0\":\"ppvx_offset-md-0___2-8-6\",\"ppvx_offset-md-1\":\"ppvx_offset-md-1___2-8-6\",\"ppvx_offset-md-2\":\"ppvx_offset-md-2___2-8-6\",\"ppvx_offset-md-3\":\"ppvx_offset-md-3___2-8-6\",\"ppvx_offset-md-4\":\"ppvx_offset-md-4___2-8-6\",\"ppvx_offset-md-5\":\"ppvx_offset-md-5___2-8-6\",\"ppvx_offset-md-6\":\"ppvx_offset-md-6___2-8-6\",\"ppvx_offset-md-7\":\"ppvx_offset-md-7___2-8-6\",\"ppvx_offset-md-8\":\"ppvx_offset-md-8___2-8-6\",\"ppvx_offset-md-9\":\"ppvx_offset-md-9___2-8-6\",\"ppvx_offset-md-10\":\"ppvx_offset-md-10___2-8-6\",\"ppvx_offset-md-11\":\"ppvx_offset-md-11___2-8-6\",\"ppvx_order-lg-first\":\"ppvx_order-lg-first___2-8-6\",\"ppvx_order-lg-last\":\"ppvx_order-lg-last___2-8-6\",\"ppvx_order-lg-0\":\"ppvx_order-lg-0___2-8-6\",\"ppvx_order-lg-1\":\"ppvx_order-lg-1___2-8-6\",\"ppvx_order-lg-2\":\"ppvx_order-lg-2___2-8-6\",\"ppvx_order-lg-3\":\"ppvx_order-lg-3___2-8-6\",\"ppvx_order-lg-4\":\"ppvx_order-lg-4___2-8-6\",\"ppvx_order-lg-5\":\"ppvx_order-lg-5___2-8-6\",\"ppvx_order-lg-6\":\"ppvx_order-lg-6___2-8-6\",\"ppvx_order-lg-7\":\"ppvx_order-lg-7___2-8-6\",\"ppvx_order-lg-8\":\"ppvx_order-lg-8___2-8-6\",\"ppvx_order-lg-9\":\"ppvx_order-lg-9___2-8-6\",\"ppvx_order-lg-10\":\"ppvx_order-lg-10___2-8-6\",\"ppvx_order-lg-11\":\"ppvx_order-lg-11___2-8-6\",\"ppvx_order-lg-12\":\"ppvx_order-lg-12___2-8-6\",\"ppvx_offset-lg-0\":\"ppvx_offset-lg-0___2-8-6\",\"ppvx_offset-lg-1\":\"ppvx_offset-lg-1___2-8-6\",\"ppvx_offset-lg-2\":\"ppvx_offset-lg-2___2-8-6\",\"ppvx_offset-lg-3\":\"ppvx_offset-lg-3___2-8-6\",\"ppvx_offset-lg-4\":\"ppvx_offset-lg-4___2-8-6\",\"ppvx_offset-lg-5\":\"ppvx_offset-lg-5___2-8-6\",\"ppvx_offset-lg-6\":\"ppvx_offset-lg-6___2-8-6\",\"ppvx_offset-lg-7\":\"ppvx_offset-lg-7___2-8-6\",\"ppvx_offset-lg-8\":\"ppvx_offset-lg-8___2-8-6\",\"ppvx_offset-lg-9\":\"ppvx_offset-lg-9___2-8-6\",\"ppvx_offset-lg-10\":\"ppvx_offset-lg-10___2-8-6\",\"ppvx_offset-lg-11\":\"ppvx_offset-lg-11___2-8-6\",\"ppvx_order-xl-first\":\"ppvx_order-xl-first___2-8-6\",\"ppvx_order-xl-last\":\"ppvx_order-xl-last___2-8-6\",\"ppvx_order-xl-0\":\"ppvx_order-xl-0___2-8-6\",\"ppvx_order-xl-1\":\"ppvx_order-xl-1___2-8-6\",\"ppvx_order-xl-2\":\"ppvx_order-xl-2___2-8-6\",\"ppvx_order-xl-3\":\"ppvx_order-xl-3___2-8-6\",\"ppvx_order-xl-4\":\"ppvx_order-xl-4___2-8-6\",\"ppvx_order-xl-5\":\"ppvx_order-xl-5___2-8-6\",\"ppvx_order-xl-6\":\"ppvx_order-xl-6___2-8-6\",\"ppvx_order-xl-7\":\"ppvx_order-xl-7___2-8-6\",\"ppvx_order-xl-8\":\"ppvx_order-xl-8___2-8-6\",\"ppvx_order-xl-9\":\"ppvx_order-xl-9___2-8-6\",\"ppvx_order-xl-10\":\"ppvx_order-xl-10___2-8-6\",\"ppvx_order-xl-11\":\"ppvx_order-xl-11___2-8-6\",\"ppvx_order-xl-12\":\"ppvx_order-xl-12___2-8-6\",\"ppvx_offset-xl-0\":\"ppvx_offset-xl-0___2-8-6\",\"ppvx_offset-xl-1\":\"ppvx_offset-xl-1___2-8-6\",\"ppvx_offset-xl-2\":\"ppvx_offset-xl-2___2-8-6\",\"ppvx_offset-xl-3\":\"ppvx_offset-xl-3___2-8-6\",\"ppvx_offset-xl-4\":\"ppvx_offset-xl-4___2-8-6\",\"ppvx_offset-xl-5\":\"ppvx_offset-xl-5___2-8-6\",\"ppvx_offset-xl-6\":\"ppvx_offset-xl-6___2-8-6\",\"ppvx_offset-xl-7\":\"ppvx_offset-xl-7___2-8-6\",\"ppvx_offset-xl-8\":\"ppvx_offset-xl-8___2-8-6\",\"ppvx_offset-xl-9\":\"ppvx_offset-xl-9___2-8-6\",\"ppvx_offset-xl-10\":\"ppvx_offset-xl-10___2-8-6\",\"ppvx_offset-xl-11\":\"ppvx_offset-xl-11___2-8-6\",\"ppvx_d-none\":\"ppvx_d-none___2-8-6\",\"ppvx_d-inline\":\"ppvx_d-inline___2-8-6\",\"ppvx_d-inline-block\":\"ppvx_d-inline-block___2-8-6\",\"ppvx_d-block\":\"ppvx_d-block___2-8-6\",\"ppvx_d-table\":\"ppvx_d-table___2-8-6\",\"ppvx_d-table-row\":\"ppvx_d-table-row___2-8-6\",\"ppvx_d-table-cell\":\"ppvx_d-table-cell___2-8-6\",\"ppvx_d-flex\":\"ppvx_d-flex___2-8-6\",\"ppvx_d-inline-flex\":\"ppvx_d-inline-flex___2-8-6\",\"ppvx_d-sm-none\":\"ppvx_d-sm-none___2-8-6\",\"ppvx_d-sm-inline\":\"ppvx_d-sm-inline___2-8-6\",\"ppvx_d-sm-inline-block\":\"ppvx_d-sm-inline-block___2-8-6\",\"ppvx_d-sm-block\":\"ppvx_d-sm-block___2-8-6\",\"ppvx_d-sm-table\":\"ppvx_d-sm-table___2-8-6\",\"ppvx_d-sm-table-row\":\"ppvx_d-sm-table-row___2-8-6\",\"ppvx_d-sm-table-cell\":\"ppvx_d-sm-table-cell___2-8-6\",\"ppvx_d-sm-flex\":\"ppvx_d-sm-flex___2-8-6\",\"ppvx_d-sm-inline-flex\":\"ppvx_d-sm-inline-flex___2-8-6\",\"ppvx_d-md-none\":\"ppvx_d-md-none___2-8-6\",\"ppvx_d-md-inline\":\"ppvx_d-md-inline___2-8-6\",\"ppvx_d-md-inline-block\":\"ppvx_d-md-inline-block___2-8-6\",\"ppvx_d-md-block\":\"ppvx_d-md-block___2-8-6\",\"ppvx_d-md-table\":\"ppvx_d-md-table___2-8-6\",\"ppvx_d-md-table-row\":\"ppvx_d-md-table-row___2-8-6\",\"ppvx_d-md-table-cell\":\"ppvx_d-md-table-cell___2-8-6\",\"ppvx_d-md-flex\":\"ppvx_d-md-flex___2-8-6\",\"ppvx_d-md-inline-flex\":\"ppvx_d-md-inline-flex___2-8-6\",\"ppvx_d-lg-none\":\"ppvx_d-lg-none___2-8-6\",\"ppvx_d-lg-inline\":\"ppvx_d-lg-inline___2-8-6\",\"ppvx_d-lg-inline-block\":\"ppvx_d-lg-inline-block___2-8-6\",\"ppvx_d-lg-block\":\"ppvx_d-lg-block___2-8-6\",\"ppvx_d-lg-table\":\"ppvx_d-lg-table___2-8-6\",\"ppvx_d-lg-table-row\":\"ppvx_d-lg-table-row___2-8-6\",\"ppvx_d-lg-table-cell\":\"ppvx_d-lg-table-cell___2-8-6\",\"ppvx_d-lg-flex\":\"ppvx_d-lg-flex___2-8-6\",\"ppvx_d-lg-inline-flex\":\"ppvx_d-lg-inline-flex___2-8-6\",\"ppvx_d-xl-none\":\"ppvx_d-xl-none___2-8-6\",\"ppvx_d-xl-inline\":\"ppvx_d-xl-inline___2-8-6\",\"ppvx_d-xl-inline-block\":\"ppvx_d-xl-inline-block___2-8-6\",\"ppvx_d-xl-block\":\"ppvx_d-xl-block___2-8-6\",\"ppvx_d-xl-table\":\"ppvx_d-xl-table___2-8-6\",\"ppvx_d-xl-table-row\":\"ppvx_d-xl-table-row___2-8-6\",\"ppvx_d-xl-table-cell\":\"ppvx_d-xl-table-cell___2-8-6\",\"ppvx_d-xl-flex\":\"ppvx_d-xl-flex___2-8-6\",\"ppvx_d-xl-inline-flex\":\"ppvx_d-xl-inline-flex___2-8-6\",\"ppvx_d-print-none\":\"ppvx_d-print-none___2-8-6\",\"ppvx_d-print-inline\":\"ppvx_d-print-inline___2-8-6\",\"ppvx_d-print-inline-block\":\"ppvx_d-print-inline-block___2-8-6\",\"ppvx_d-print-block\":\"ppvx_d-print-block___2-8-6\",\"ppvx_d-print-table\":\"ppvx_d-print-table___2-8-6\",\"ppvx_d-print-table-row\":\"ppvx_d-print-table-row___2-8-6\",\"ppvx_d-print-table-cell\":\"ppvx_d-print-table-cell___2-8-6\",\"ppvx_d-print-flex\":\"ppvx_d-print-flex___2-8-6\",\"ppvx_d-print-inline-flex\":\"ppvx_d-print-inline-flex___2-8-6\",\"ppvx_flex-row\":\"ppvx_flex-row___2-8-6\",\"ppvx_flex-column\":\"ppvx_flex-column___2-8-6\",\"ppvx_flex-row-reverse\":\"ppvx_flex-row-reverse___2-8-6\",\"ppvx_flex-column-reverse\":\"ppvx_flex-column-reverse___2-8-6\",\"ppvx_flex-wrap\":\"ppvx_flex-wrap___2-8-6\",\"ppvx_flex-nowrap\":\"ppvx_flex-nowrap___2-8-6\",\"ppvx_flex-wrap-reverse\":\"ppvx_flex-wrap-reverse___2-8-6\",\"ppvx_flex-fill\":\"ppvx_flex-fill___2-8-6\",\"ppvx_flex-grow-0\":\"ppvx_flex-grow-0___2-8-6\",\"ppvx_flex-grow-1\":\"ppvx_flex-grow-1___2-8-6\",\"ppvx_flex-shrink-0\":\"ppvx_flex-shrink-0___2-8-6\",\"ppvx_flex-shrink-1\":\"ppvx_flex-shrink-1___2-8-6\",\"ppvx_justify-content-start\":\"ppvx_justify-content-start___2-8-6\",\"ppvx_justify-content-end\":\"ppvx_justify-content-end___2-8-6\",\"ppvx_justify-content-center\":\"ppvx_justify-content-center___2-8-6\",\"ppvx_justify-content-between\":\"ppvx_justify-content-between___2-8-6\",\"ppvx_justify-content-around\":\"ppvx_justify-content-around___2-8-6\",\"ppvx_align-items-start\":\"ppvx_align-items-start___2-8-6\",\"ppvx_align-items-end\":\"ppvx_align-items-end___2-8-6\",\"ppvx_align-items-center\":\"ppvx_align-items-center___2-8-6\",\"ppvx_align-items-baseline\":\"ppvx_align-items-baseline___2-8-6\",\"ppvx_align-items-stretch\":\"ppvx_align-items-stretch___2-8-6\",\"ppvx_align-content-start\":\"ppvx_align-content-start___2-8-6\",\"ppvx_align-content-end\":\"ppvx_align-content-end___2-8-6\",\"ppvx_align-content-center\":\"ppvx_align-content-center___2-8-6\",\"ppvx_align-content-between\":\"ppvx_align-content-between___2-8-6\",\"ppvx_align-content-around\":\"ppvx_align-content-around___2-8-6\",\"ppvx_align-content-stretch\":\"ppvx_align-content-stretch___2-8-6\",\"ppvx_align-self-auto\":\"ppvx_align-self-auto___2-8-6\",\"ppvx_align-self-start\":\"ppvx_align-self-start___2-8-6\",\"ppvx_align-self-end\":\"ppvx_align-self-end___2-8-6\",\"ppvx_align-self-center\":\"ppvx_align-self-center___2-8-6\",\"ppvx_align-self-baseline\":\"ppvx_align-self-baseline___2-8-6\",\"ppvx_align-self-stretch\":\"ppvx_align-self-stretch___2-8-6\",\"ppvx_flex-sm-row\":\"ppvx_flex-sm-row___2-8-6\",\"ppvx_flex-sm-column\":\"ppvx_flex-sm-column___2-8-6\",\"ppvx_flex-sm-row-reverse\":\"ppvx_flex-sm-row-reverse___2-8-6\",\"ppvx_flex-sm-column-reverse\":\"ppvx_flex-sm-column-reverse___2-8-6\",\"ppvx_flex-sm-wrap\":\"ppvx_flex-sm-wrap___2-8-6\",\"ppvx_flex-sm-nowrap\":\"ppvx_flex-sm-nowrap___2-8-6\",\"ppvx_flex-sm-wrap-reverse\":\"ppvx_flex-sm-wrap-reverse___2-8-6\",\"ppvx_flex-sm-fill\":\"ppvx_flex-sm-fill___2-8-6\",\"ppvx_flex-sm-grow-0\":\"ppvx_flex-sm-grow-0___2-8-6\",\"ppvx_flex-sm-grow-1\":\"ppvx_flex-sm-grow-1___2-8-6\",\"ppvx_flex-sm-shrink-0\":\"ppvx_flex-sm-shrink-0___2-8-6\",\"ppvx_flex-sm-shrink-1\":\"ppvx_flex-sm-shrink-1___2-8-6\",\"ppvx_justify-content-sm-start\":\"ppvx_justify-content-sm-start___2-8-6\",\"ppvx_justify-content-sm-end\":\"ppvx_justify-content-sm-end___2-8-6\",\"ppvx_justify-content-sm-center\":\"ppvx_justify-content-sm-center___2-8-6\",\"ppvx_justify-content-sm-between\":\"ppvx_justify-content-sm-between___2-8-6\",\"ppvx_justify-content-sm-around\":\"ppvx_justify-content-sm-around___2-8-6\",\"ppvx_align-items-sm-start\":\"ppvx_align-items-sm-start___2-8-6\",\"ppvx_align-items-sm-end\":\"ppvx_align-items-sm-end___2-8-6\",\"ppvx_align-items-sm-center\":\"ppvx_align-items-sm-center___2-8-6\",\"ppvx_align-items-sm-baseline\":\"ppvx_align-items-sm-baseline___2-8-6\",\"ppvx_align-items-sm-stretch\":\"ppvx_align-items-sm-stretch___2-8-6\",\"ppvx_align-content-sm-start\":\"ppvx_align-content-sm-start___2-8-6\",\"ppvx_align-content-sm-end\":\"ppvx_align-content-sm-end___2-8-6\",\"ppvx_align-content-sm-center\":\"ppvx_align-content-sm-center___2-8-6\",\"ppvx_align-content-sm-between\":\"ppvx_align-content-sm-between___2-8-6\",\"ppvx_align-content-sm-around\":\"ppvx_align-content-sm-around___2-8-6\",\"ppvx_align-content-sm-stretch\":\"ppvx_align-content-sm-stretch___2-8-6\",\"ppvx_align-self-sm-auto\":\"ppvx_align-self-sm-auto___2-8-6\",\"ppvx_align-self-sm-start\":\"ppvx_align-self-sm-start___2-8-6\",\"ppvx_align-self-sm-end\":\"ppvx_align-self-sm-end___2-8-6\",\"ppvx_align-self-sm-center\":\"ppvx_align-self-sm-center___2-8-6\",\"ppvx_align-self-sm-baseline\":\"ppvx_align-self-sm-baseline___2-8-6\",\"ppvx_align-self-sm-stretch\":\"ppvx_align-self-sm-stretch___2-8-6\",\"ppvx_flex-md-row\":\"ppvx_flex-md-row___2-8-6\",\"ppvx_flex-md-column\":\"ppvx_flex-md-column___2-8-6\",\"ppvx_flex-md-row-reverse\":\"ppvx_flex-md-row-reverse___2-8-6\",\"ppvx_flex-md-column-reverse\":\"ppvx_flex-md-column-reverse___2-8-6\",\"ppvx_flex-md-wrap\":\"ppvx_flex-md-wrap___2-8-6\",\"ppvx_flex-md-nowrap\":\"ppvx_flex-md-nowrap___2-8-6\",\"ppvx_flex-md-wrap-reverse\":\"ppvx_flex-md-wrap-reverse___2-8-6\",\"ppvx_flex-md-fill\":\"ppvx_flex-md-fill___2-8-6\",\"ppvx_flex-md-grow-0\":\"ppvx_flex-md-grow-0___2-8-6\",\"ppvx_flex-md-grow-1\":\"ppvx_flex-md-grow-1___2-8-6\",\"ppvx_flex-md-shrink-0\":\"ppvx_flex-md-shrink-0___2-8-6\",\"ppvx_flex-md-shrink-1\":\"ppvx_flex-md-shrink-1___2-8-6\",\"ppvx_justify-content-md-start\":\"ppvx_justify-content-md-start___2-8-6\",\"ppvx_justify-content-md-end\":\"ppvx_justify-content-md-end___2-8-6\",\"ppvx_justify-content-md-center\":\"ppvx_justify-content-md-center___2-8-6\",\"ppvx_justify-content-md-between\":\"ppvx_justify-content-md-between___2-8-6\",\"ppvx_justify-content-md-around\":\"ppvx_justify-content-md-around___2-8-6\",\"ppvx_align-items-md-start\":\"ppvx_align-items-md-start___2-8-6\",\"ppvx_align-items-md-end\":\"ppvx_align-items-md-end___2-8-6\",\"ppvx_align-items-md-center\":\"ppvx_align-items-md-center___2-8-6\",\"ppvx_align-items-md-baseline\":\"ppvx_align-items-md-baseline___2-8-6\",\"ppvx_align-items-md-stretch\":\"ppvx_align-items-md-stretch___2-8-6\",\"ppvx_align-content-md-start\":\"ppvx_align-content-md-start___2-8-6\",\"ppvx_align-content-md-end\":\"ppvx_align-content-md-end___2-8-6\",\"ppvx_align-content-md-center\":\"ppvx_align-content-md-center___2-8-6\",\"ppvx_align-content-md-between\":\"ppvx_align-content-md-between___2-8-6\",\"ppvx_align-content-md-around\":\"ppvx_align-content-md-around___2-8-6\",\"ppvx_align-content-md-stretch\":\"ppvx_align-content-md-stretch___2-8-6\",\"ppvx_align-self-md-auto\":\"ppvx_align-self-md-auto___2-8-6\",\"ppvx_align-self-md-start\":\"ppvx_align-self-md-start___2-8-6\",\"ppvx_align-self-md-end\":\"ppvx_align-self-md-end___2-8-6\",\"ppvx_align-self-md-center\":\"ppvx_align-self-md-center___2-8-6\",\"ppvx_align-self-md-baseline\":\"ppvx_align-self-md-baseline___2-8-6\",\"ppvx_align-self-md-stretch\":\"ppvx_align-self-md-stretch___2-8-6\",\"ppvx_flex-lg-row\":\"ppvx_flex-lg-row___2-8-6\",\"ppvx_flex-lg-column\":\"ppvx_flex-lg-column___2-8-6\",\"ppvx_flex-lg-row-reverse\":\"ppvx_flex-lg-row-reverse___2-8-6\",\"ppvx_flex-lg-column-reverse\":\"ppvx_flex-lg-column-reverse___2-8-6\",\"ppvx_flex-lg-wrap\":\"ppvx_flex-lg-wrap___2-8-6\",\"ppvx_flex-lg-nowrap\":\"ppvx_flex-lg-nowrap___2-8-6\",\"ppvx_flex-lg-wrap-reverse\":\"ppvx_flex-lg-wrap-reverse___2-8-6\",\"ppvx_flex-lg-fill\":\"ppvx_flex-lg-fill___2-8-6\",\"ppvx_flex-lg-grow-0\":\"ppvx_flex-lg-grow-0___2-8-6\",\"ppvx_flex-lg-grow-1\":\"ppvx_flex-lg-grow-1___2-8-6\",\"ppvx_flex-lg-shrink-0\":\"ppvx_flex-lg-shrink-0___2-8-6\",\"ppvx_flex-lg-shrink-1\":\"ppvx_flex-lg-shrink-1___2-8-6\",\"ppvx_justify-content-lg-start\":\"ppvx_justify-content-lg-start___2-8-6\",\"ppvx_justify-content-lg-end\":\"ppvx_justify-content-lg-end___2-8-6\",\"ppvx_justify-content-lg-center\":\"ppvx_justify-content-lg-center___2-8-6\",\"ppvx_justify-content-lg-between\":\"ppvx_justify-content-lg-between___2-8-6\",\"ppvx_justify-content-lg-around\":\"ppvx_justify-content-lg-around___2-8-6\",\"ppvx_align-items-lg-start\":\"ppvx_align-items-lg-start___2-8-6\",\"ppvx_align-items-lg-end\":\"ppvx_align-items-lg-end___2-8-6\",\"ppvx_align-items-lg-center\":\"ppvx_align-items-lg-center___2-8-6\",\"ppvx_align-items-lg-baseline\":\"ppvx_align-items-lg-baseline___2-8-6\",\"ppvx_align-items-lg-stretch\":\"ppvx_align-items-lg-stretch___2-8-6\",\"ppvx_align-content-lg-start\":\"ppvx_align-content-lg-start___2-8-6\",\"ppvx_align-content-lg-end\":\"ppvx_align-content-lg-end___2-8-6\",\"ppvx_align-content-lg-center\":\"ppvx_align-content-lg-center___2-8-6\",\"ppvx_align-content-lg-between\":\"ppvx_align-content-lg-between___2-8-6\",\"ppvx_align-content-lg-around\":\"ppvx_align-content-lg-around___2-8-6\",\"ppvx_align-content-lg-stretch\":\"ppvx_align-content-lg-stretch___2-8-6\",\"ppvx_align-self-lg-auto\":\"ppvx_align-self-lg-auto___2-8-6\",\"ppvx_align-self-lg-start\":\"ppvx_align-self-lg-start___2-8-6\",\"ppvx_align-self-lg-end\":\"ppvx_align-self-lg-end___2-8-6\",\"ppvx_align-self-lg-center\":\"ppvx_align-self-lg-center___2-8-6\",\"ppvx_align-self-lg-baseline\":\"ppvx_align-self-lg-baseline___2-8-6\",\"ppvx_align-self-lg-stretch\":\"ppvx_align-self-lg-stretch___2-8-6\",\"ppvx_flex-xl-row\":\"ppvx_flex-xl-row___2-8-6\",\"ppvx_flex-xl-column\":\"ppvx_flex-xl-column___2-8-6\",\"ppvx_flex-xl-row-reverse\":\"ppvx_flex-xl-row-reverse___2-8-6\",\"ppvx_flex-xl-column-reverse\":\"ppvx_flex-xl-column-reverse___2-8-6\",\"ppvx_flex-xl-wrap\":\"ppvx_flex-xl-wrap___2-8-6\",\"ppvx_flex-xl-nowrap\":\"ppvx_flex-xl-nowrap___2-8-6\",\"ppvx_flex-xl-wrap-reverse\":\"ppvx_flex-xl-wrap-reverse___2-8-6\",\"ppvx_flex-xl-fill\":\"ppvx_flex-xl-fill___2-8-6\",\"ppvx_flex-xl-grow-0\":\"ppvx_flex-xl-grow-0___2-8-6\",\"ppvx_flex-xl-grow-1\":\"ppvx_flex-xl-grow-1___2-8-6\",\"ppvx_flex-xl-shrink-0\":\"ppvx_flex-xl-shrink-0___2-8-6\",\"ppvx_flex-xl-shrink-1\":\"ppvx_flex-xl-shrink-1___2-8-6\",\"ppvx_justify-content-xl-start\":\"ppvx_justify-content-xl-start___2-8-6\",\"ppvx_justify-content-xl-end\":\"ppvx_justify-content-xl-end___2-8-6\",\"ppvx_justify-content-xl-center\":\"ppvx_justify-content-xl-center___2-8-6\",\"ppvx_justify-content-xl-between\":\"ppvx_justify-content-xl-between___2-8-6\",\"ppvx_justify-content-xl-around\":\"ppvx_justify-content-xl-around___2-8-6\",\"ppvx_align-items-xl-start\":\"ppvx_align-items-xl-start___2-8-6\",\"ppvx_align-items-xl-end\":\"ppvx_align-items-xl-end___2-8-6\",\"ppvx_align-items-xl-center\":\"ppvx_align-items-xl-center___2-8-6\",\"ppvx_align-items-xl-baseline\":\"ppvx_align-items-xl-baseline___2-8-6\",\"ppvx_align-items-xl-stretch\":\"ppvx_align-items-xl-stretch___2-8-6\",\"ppvx_align-content-xl-start\":\"ppvx_align-content-xl-start___2-8-6\",\"ppvx_align-content-xl-end\":\"ppvx_align-content-xl-end___2-8-6\",\"ppvx_align-content-xl-center\":\"ppvx_align-content-xl-center___2-8-6\",\"ppvx_align-content-xl-between\":\"ppvx_align-content-xl-between___2-8-6\",\"ppvx_align-content-xl-around\":\"ppvx_align-content-xl-around___2-8-6\",\"ppvx_align-content-xl-stretch\":\"ppvx_align-content-xl-stretch___2-8-6\",\"ppvx_align-self-xl-auto\":\"ppvx_align-self-xl-auto___2-8-6\",\"ppvx_align-self-xl-start\":\"ppvx_align-self-xl-start___2-8-6\",\"ppvx_align-self-xl-end\":\"ppvx_align-self-xl-end___2-8-6\",\"ppvx_align-self-xl-center\":\"ppvx_align-self-xl-center___2-8-6\",\"ppvx_align-self-xl-baseline\":\"ppvx_align-self-xl-baseline___2-8-6\",\"ppvx_align-self-xl-stretch\":\"ppvx_align-self-xl-stretch___2-8-6\",\"ppvx_layout_container\":\"ppvx_layout_container___2-8-6\",\"ppvx_col-xxl-1\":\"ppvx_col-xxl-1___2-8-6\",\"ppvx_col-xxl-2\":\"ppvx_col-xxl-2___2-8-6\",\"ppvx_col-xxl-3\":\"ppvx_col-xxl-3___2-8-6\",\"ppvx_col-xxl-4\":\"ppvx_col-xxl-4___2-8-6\",\"ppvx_col-xxl-5\":\"ppvx_col-xxl-5___2-8-6\",\"ppvx_col-xxl-6\":\"ppvx_col-xxl-6___2-8-6\",\"ppvx_col-xxl-7\":\"ppvx_col-xxl-7___2-8-6\",\"ppvx_col-xxl-8\":\"ppvx_col-xxl-8___2-8-6\",\"ppvx_col-xxl-9\":\"ppvx_col-xxl-9___2-8-6\",\"ppvx_col-xxl-10\":\"ppvx_col-xxl-10___2-8-6\",\"ppvx_col-xxl-11\":\"ppvx_col-xxl-11___2-8-6\",\"ppvx_col-xxl-12\":\"ppvx_col-xxl-12___2-8-6\",\"ppvx_col-xxl\":\"ppvx_col-xxl___2-8-6\",\"ppvx_col-xxl-auto\":\"ppvx_col-xxl-auto___2-8-6\",\"ppvx_order-xxl-first\":\"ppvx_order-xxl-first___2-8-6\",\"ppvx_order-xxl-last\":\"ppvx_order-xxl-last___2-8-6\",\"ppvx_order-xxl-0\":\"ppvx_order-xxl-0___2-8-6\",\"ppvx_order-xxl-1\":\"ppvx_order-xxl-1___2-8-6\",\"ppvx_order-xxl-2\":\"ppvx_order-xxl-2___2-8-6\",\"ppvx_order-xxl-3\":\"ppvx_order-xxl-3___2-8-6\",\"ppvx_order-xxl-4\":\"ppvx_order-xxl-4___2-8-6\",\"ppvx_order-xxl-5\":\"ppvx_order-xxl-5___2-8-6\",\"ppvx_order-xxl-6\":\"ppvx_order-xxl-6___2-8-6\",\"ppvx_order-xxl-7\":\"ppvx_order-xxl-7___2-8-6\",\"ppvx_order-xxl-8\":\"ppvx_order-xxl-8___2-8-6\",\"ppvx_order-xxl-9\":\"ppvx_order-xxl-9___2-8-6\",\"ppvx_order-xxl-10\":\"ppvx_order-xxl-10___2-8-6\",\"ppvx_order-xxl-11\":\"ppvx_order-xxl-11___2-8-6\",\"ppvx_order-xxl-12\":\"ppvx_order-xxl-12___2-8-6\",\"ppvx_offset-xxl-0\":\"ppvx_offset-xxl-0___2-8-6\",\"ppvx_offset-xxl-1\":\"ppvx_offset-xxl-1___2-8-6\",\"ppvx_offset-xxl-2\":\"ppvx_offset-xxl-2___2-8-6\",\"ppvx_offset-xxl-3\":\"ppvx_offset-xxl-3___2-8-6\",\"ppvx_offset-xxl-4\":\"ppvx_offset-xxl-4___2-8-6\",\"ppvx_offset-xxl-5\":\"ppvx_offset-xxl-5___2-8-6\",\"ppvx_offset-xxl-6\":\"ppvx_offset-xxl-6___2-8-6\",\"ppvx_offset-xxl-7\":\"ppvx_offset-xxl-7___2-8-6\",\"ppvx_offset-xxl-8\":\"ppvx_offset-xxl-8___2-8-6\",\"ppvx_offset-xxl-9\":\"ppvx_offset-xxl-9___2-8-6\",\"ppvx_offset-xxl-10\":\"ppvx_offset-xxl-10___2-8-6\",\"ppvx_offset-xxl-11\":\"ppvx_offset-xxl-11___2-8-6\",\"ppvx_d-xxl-none\":\"ppvx_d-xxl-none___2-8-6\",\"ppvx_d-xxl-inline\":\"ppvx_d-xxl-inline___2-8-6\",\"ppvx_d-xxl-inline-block\":\"ppvx_d-xxl-inline-block___2-8-6\",\"ppvx_d-xxl-block\":\"ppvx_d-xxl-block___2-8-6\",\"ppvx_d-xxl-table\":\"ppvx_d-xxl-table___2-8-6\",\"ppvx_d-xxl-table-row\":\"ppvx_d-xxl-table-row___2-8-6\",\"ppvx_d-xxl-table-cell\":\"ppvx_d-xxl-table-cell___2-8-6\",\"ppvx_d-xxl-flex\":\"ppvx_d-xxl-flex___2-8-6\",\"ppvx_d-xxl-inline-flex\":\"ppvx_d-xxl-inline-flex___2-8-6\",\"ppvx_flex-xxl-row\":\"ppvx_flex-xxl-row___2-8-6\",\"ppvx_flex-xxl-column\":\"ppvx_flex-xxl-column___2-8-6\",\"ppvx_flex-xxl-row-reverse\":\"ppvx_flex-xxl-row-reverse___2-8-6\",\"ppvx_flex-xxl-column-reverse\":\"ppvx_flex-xxl-column-reverse___2-8-6\",\"ppvx_flex-xxl-wrap\":\"ppvx_flex-xxl-wrap___2-8-6\",\"ppvx_flex-xxl-nowrap\":\"ppvx_flex-xxl-nowrap___2-8-6\",\"ppvx_flex-xxl-wrap-reverse\":\"ppvx_flex-xxl-wrap-reverse___2-8-6\",\"ppvx_flex-xxl-fill\":\"ppvx_flex-xxl-fill___2-8-6\",\"ppvx_flex-xxl-grow-0\":\"ppvx_flex-xxl-grow-0___2-8-6\",\"ppvx_flex-xxl-grow-1\":\"ppvx_flex-xxl-grow-1___2-8-6\",\"ppvx_flex-xxl-shrink-0\":\"ppvx_flex-xxl-shrink-0___2-8-6\",\"ppvx_flex-xxl-shrink-1\":\"ppvx_flex-xxl-shrink-1___2-8-6\",\"ppvx_justify-content-xxl-start\":\"ppvx_justify-content-xxl-start___2-8-6\",\"ppvx_justify-content-xxl-end\":\"ppvx_justify-content-xxl-end___2-8-6\",\"ppvx_justify-content-xxl-center\":\"ppvx_justify-content-xxl-center___2-8-6\",\"ppvx_justify-content-xxl-between\":\"ppvx_justify-content-xxl-between___2-8-6\",\"ppvx_justify-content-xxl-around\":\"ppvx_justify-content-xxl-around___2-8-6\",\"ppvx_align-items-xxl-start\":\"ppvx_align-items-xxl-start___2-8-6\",\"ppvx_align-items-xxl-end\":\"ppvx_align-items-xxl-end___2-8-6\",\"ppvx_align-items-xxl-center\":\"ppvx_align-items-xxl-center___2-8-6\",\"ppvx_align-items-xxl-baseline\":\"ppvx_align-items-xxl-baseline___2-8-6\",\"ppvx_align-items-xxl-stretch\":\"ppvx_align-items-xxl-stretch___2-8-6\",\"ppvx_align-content-xxl-start\":\"ppvx_align-content-xxl-start___2-8-6\",\"ppvx_align-content-xxl-end\":\"ppvx_align-content-xxl-end___2-8-6\",\"ppvx_align-content-xxl-center\":\"ppvx_align-content-xxl-center___2-8-6\",\"ppvx_align-content-xxl-between\":\"ppvx_align-content-xxl-between___2-8-6\",\"ppvx_align-content-xxl-around\":\"ppvx_align-content-xxl-around___2-8-6\",\"ppvx_align-content-xxl-stretch\":\"ppvx_align-content-xxl-stretch___2-8-6\",\"ppvx_align-self-xxl-auto\":\"ppvx_align-self-xxl-auto___2-8-6\",\"ppvx_align-self-xxl-start\":\"ppvx_align-self-xxl-start___2-8-6\",\"ppvx_align-self-xxl-end\":\"ppvx_align-self-xxl-end___2-8-6\",\"ppvx_align-self-xxl-center\":\"ppvx_align-self-xxl-center___2-8-6\",\"ppvx_align-self-xxl-baseline\":\"ppvx_align-self-xxl-baseline___2-8-6\",\"ppvx_align-self-xxl-stretch\":\"ppvx_align-self-xxl-stretch___2-8-6\"};\n\nvar _excluded = [\"as\", \"fluid\", \"form\", \"xxl\", \"className\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nvar getClass = function (fluid, form, xxl) {\n if (form) {\n return styles['ppvx_container--form'];\n }\n\n if (fluid) {\n return styles['ppvx_container-fluid'];\n }\n\n if (xxl) {\n return styles.ppvx_layout_container;\n }\n\n return styles.ppvx_container;\n};\n\nvar Container = function (_ref) {\n var _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'div' : _ref$as,\n _ref$fluid = _ref.fluid,\n fluid = _ref$fluid === void 0 ? false : _ref$fluid,\n _ref$form = _ref.form,\n form = _ref$form === void 0 ? false : _ref$form,\n _ref$xxl = _ref.xxl,\n xxl = _ref$xxl === void 0 ? false : _ref$xxl,\n className = _ref.className,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return React.createElement(as, _objectSpread(_objectSpread({}, props), {}, {\n className: clsx(getClass(fluid, form, xxl), mapNames(styles, className))\n }));\n};\n\nvar _excluded$1 = [\"as\", \"className\", \"form\"];\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar sizes = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nvar vxColClass = 'ppvx_col';\nvar vxOrderClass = 'ppvx_order';\nvar vxOffsetClass = 'ppvx_offset';\n\nvar columnClasses = function (form, props) {\n var spans = [];\n var classes = [];\n\n if (form) {\n classes.push(styles[\"ppvx_col-form--\".concat(form)]);\n } // Iterate through breakpoint sizes, generate classes for configured breakpoints\n\n\n sizes.forEach(function (breakpoint) {\n var propValue = props[breakpoint];\n delete props[breakpoint];\n var span, offset, order; // Configuration is coming in as object notation\n\n if (_typeof(propValue) === 'object') {\n span = propValue.span || true;\n offset = propValue.offset;\n order = propValue.order;\n } else {\n span = propValue;\n } // Configure the breakpoint infix\n\n\n var infix = breakpoint !== 'xs' ? \"-\".concat(breakpoint) : ''; // Append base col classess\n\n if (typeof span !== 'undefined') {\n spans.push(span === true ? styles[\"\".concat(vxColClass).concat(infix)] : styles[\"\".concat(vxColClass).concat(infix, \"-\").concat(span)]);\n } // Append order based classes\n\n\n if (typeof order !== 'undefined') {\n classes.push(styles[\"\".concat(vxOrderClass).concat(infix, \"-\").concat(order)]);\n } // Append offset classes\n\n\n if (typeof offset !== 'undefined') {\n classes.push(styles[\"\".concat(vxOffsetClass).concat(infix, \"-\").concat(offset)]);\n }\n }); // Add in the base col class if no spans were configured\n\n if (!spans.length && !form) {\n spans.push(styles[vxColClass]);\n }\n\n return [].concat(spans, classes);\n};\n\nvar Col = function (_ref) {\n var _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'div' : _ref$as,\n className = _ref.className,\n form = _ref.form,\n props = _objectWithoutProperties(_ref, _excluded$1);\n\n return React.createElement(as, _objectSpread$1(_objectSpread$1({}, props), {}, {\n className: clsx(columnClasses(form, props), mapNames(styles, className))\n }));\n};\n\nvar _excluded$2 = [\"as\", \"className\", \"noGutters\", \"align\"];\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nvar Row = function (_ref) {\n var _clsx;\n\n var _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'div' : _ref$as,\n className = _ref.className,\n _ref$noGutters = _ref.noGutters,\n noGutters = _ref$noGutters === void 0 ? false : _ref$noGutters,\n _ref$align = _ref.align,\n align = _ref$align === void 0 ? null : _ref$align,\n props = _objectWithoutProperties(_ref, _excluded$2);\n\n return React.createElement(as, _objectSpread$2(_objectSpread$2({}, props), {}, {\n className: clsx(styles.ppvx_row, (_clsx = {}, _defineProperty(_clsx, styles['ppvx_no-gutters'], noGutters), _defineProperty(_clsx, styles[\"ppvx_justify-content-\".concat(align)], align), _clsx), mapNames(styles, className))\n }));\n};\n\nexport { Col, Container, Row };\n","export const APP = 'app';\nexport const TOPIC_TREE = 'topicTreeV2';\nexport const PERSONALIZED_FEED = 'personalizedFeedV2';\nexport const RECOMMENDED_SOLUTIONS = 'recommendedSolutionsV2';\nexport const NNA = 'nnaV2';\nexport const TRACKERS = 'trackersV2';\nexport const SEARCH = 'searchV2';\nexport const SEARCH_TOP_CONTACT_REASONS = 'searchTopContactReasonsV2';\nexport const AUTH_CONFIRMATION_PROMPT = 'authConfirmationPromtV2';\nexport const CONTACT_TOPIC_TREE_INTENTS = 'contactTopicTreeIntentsV2';\nexport const CONTACT_CHANNEL_OPTIONS = 'contactChannelOptionsV2';\nexport const CONTACT_CALL_US = 'callUsInfoV2';\nexport const CHAT_BOT = 'chatBotV2';\nexport const CONTACT_ARTICLE = 'contactArticleV2';\nexport const LOCATION = 'location';\nexport const OCP_CONTEXT_RESPONSE = 'ocpContextResponse';\nexport const POST_CHAT_BOT_ELIGIBILITY = 'postChatBotEligibility';\nexport const MODAL = 'modal';\nexport const PERSISTENT_EMAIL_FORM = 'persistEmailForm';\n","import { getValueFromWindowObject, isLoggedIn } from '../jsV2/helpers/twHelper';\nimport Page from '../js/lib/page';\n\n/**\n * Innovation Guild: search only experiment helper\n */\n\n// show faq search result for customer searched question\nexport const isShowOnlySearchLayoutEnabled = () =>\n getValueFromWindowObject('isHomeExpEnabledForOnlySearchBar') === true;\n// launch bot for customer searched question\nexport const isBotExperienceEnabled = () => getValueFromWindowObject('isBotExperience') === true;\n\n// show transaction first view in help center homepage\nexport const isHomeExpTransactionLayoutEnabled = () =>\n isLoggedIn() && getValueFromWindowObject('isHomeExpEnabledForTransactionFirstView') === true;\n\nexport const isElmoTreatmentEnabled = () => isLoggedIn() && Page.elmoTreatments() && Page.elmoTreatments().length > 0;\n","// key names from the ECM API DocId and ComponentIds\nexport const ECM_DOC_ID_KEY = 'ecmDocId';\nexport const ECM_KEY_DOCID = 'docid';\nexport const ECM_COMPONENT_IDS_KEY = 'ecmComponentIds';\n\n// Default values to be used in FPTIs for ECM API DocId and ComponentIds - default will be empty strings\nexport const ECM_DOC_ID_DEFAULT_VALUE = '';\nexport const ECM_COMPONENT_IDS_DEFAULT_VALUE = '';\n","import _isEmpty from 'lodash/isEmpty';\nimport urlResource from '../home/constants/UrlResources';\nimport Page from './page';\n\nexport function getQueryValue(name, location) {\n if (!location || !location.search) return '';\n\n const queryName = name.replace(/[[\\]]/g, '\\\\$&');\n const regex = new RegExp(`[?&]${queryName}(=([^]*)|&|#|$)`);\n const results = regex.exec(location.search);\n\n if (!results) return null;\n if (!results[2]) return '';\n\n try {\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n } catch (error) {\n return results[2].replace(/%20/g, ' ');\n }\n}\n\nexport function getAttributesFromUrl(location) {\n return location.pathname.split('?')[0].split('/');\n}\n\nexport function getFaqInfo(location) {\n const attributes = getAttributesFromUrl(location);\n const articleIdWithTitle = attributes[2] || '';\n const urlSegments = decodeURIComponent(articleIdWithTitle).split('-');\n const articleId = urlSegments[urlSegments.length - 1].toUpperCase();\n\n return {\n name: urlResource.ARTICLE,\n id: articleId,\n };\n}\n\nexport function getTopicInfo(location) {\n const attributes = getAttributesFromUrl(location);\n return {\n name: urlResource.TOPIC,\n id: attributes[2],\n };\n}\n\nexport function getL3TopicInfo(location) {\n const attributes = getAttributesFromUrl(location);\n return attributes[3];\n}\n\nexport function getResourceInfoForHome() {\n return {\n name: urlResource.HOME,\n };\n}\n\nfunction getQueryForSearch(location) {\n return {\n name: urlResource.SEARCH,\n searchTerm: getQueryValue('q', location),\n channelOption: getQueryValue('channel', location),\n };\n}\n\nexport function getPayPalGuideInfo() {\n return {\n name: urlResource.PAYPALGUIDE,\n };\n}\n\nexport function parseResourceInfoFromLocation(location) {\n const attributes = getAttributesFromUrl(location);\n const resource = attributes[1];\n\n switch (resource) {\n case urlResource.ARTICLE:\n return getFaqInfo(location);\n case urlResource.TOPIC:\n return getTopicInfo(location);\n case urlResource.HOME:\n return getResourceInfoForHome();\n case urlResource.SEARCH:\n return getQueryForSearch(location);\n case urlResource.PAYPALGUIDE:\n return getPayPalGuideInfo();\n case urlResource.HOME_V2:\n return {\n name: urlResource.HOME,\n };\n default: {\n return {};\n }\n }\n}\n\n/*\n What's the sample output of getPageUrlInfoFromLocation function??\n\n Sample Url's:\n =============\n\n home page = /smarthelp/personal/home\n article page = /smarthelp/personal/article/838\n topic list page = /smarthelp/personal/L1TopicId/L2TopicId\n\n Page Info Parsed:\n ================\n\n home page = {\n experience: 'personal',\n resource: {\n name: 'home',\n },\n }\n\n article page = {\n experience: 'personal',\n resource: {\n name: 'article',\n id: '838',\n },\n }\n\n topic list page = {\n experience: 'personal',\n resource: {\n name: 'topic',\n id: 'L2TopicId',\n topicTree: [L1TopicId, L2TopicId]\n },\n }\n */\nexport function getPageUrlInfoFromLocation(location) {\n return {\n experience: location.experience,\n resource: parseResourceInfoFromLocation(location),\n };\n}\n\n/**\n * Function to clean the path name if the pathname is prefixed with basename.\n * @param location\n * @returns {*} - location object\n */\nexport function getParsedPathName(location) {\n const pathName = location.pathname;\n\n // Check the route has smarthelp in pathName\n const smartHelpExistsInPath = pathName.includes('smarthelp/');\n if (smartHelpExistsInPath) {\n const parsedPath = pathName.substring(pathName.indexOf('smarthelp/') + 9);\n return { ...location, pathname: parsedPath };\n }\n\n // Check the route has selfhelp in pathName\n const isSelfHelpExistsInPath = pathName.includes('selfhelp/');\n if (isSelfHelpExistsInPath) {\n const parsedPath = pathName.substring(pathName.indexOf('selfhelp/') + 8);\n return { ...location, pathname: parsedPath };\n }\n\n return location;\n}\n\nexport function getCurrentRouteResourceName(location) {\n try {\n const currentLocationPathName = getAttributesFromUrl(location);\n return currentLocationPathName[1];\n } catch (e) {\n return '';\n }\n}\n\n// return the last segment of the path name\nexport function getLastPathVariable(location) {\n const pathname = location.pathname;\n if (pathname && pathname.lastIndexOf('/') >= 0) {\n return pathname.substring(pathname.lastIndexOf('/') + 1);\n }\n return null;\n}\n\n// return true if referrer path exsist in the whitelisted url from secrity center\n// by removing country code\n// by checking if the host is from qa.paypal.com or localhost or paypal.com\nexport function securityUrlListCheck(location) {\n try {\n const urlList = Page.getCallUsReferrerUrlList() || {};\n const refURL = document.createElement('a');\n refURL.href = location;\n let pathName = refURL.pathname;\n if (\n (refURL &&\n refURL.href &&\n pathName &&\n !_isEmpty(urlList) &&\n refURL.host &&\n refURL.host.indexOf('qa.paypal.com') >= 0) ||\n refURL.host.indexOf('localhost') >= 0 ||\n refURL.host.indexOf('paypal.com') >= 0\n ) {\n const pathArray = pathName.split('/').filter((e) => String(e).trim());\n // if country name exists in the url then remove country name from url\n if (pathArray[0].toLowerCase() === Page.getCountry().toLowerCase()) {\n pathArray.shift();\n pathName = pathArray.join('/');\n } else {\n // if country name does not exists in the url then removing the first \"/\" from url\n pathName = pathArray.join('/');\n }\n return urlList.find((url) => pathName.split('/')[0] === url.split('/')[0]);\n }\n return null;\n } catch (e) {\n return null;\n }\n}\n","import { MessageFormat, WorldReady } from '@paypalcorp/worldready';\nimport Page from './page';\n\nconst locale = Page.getLocale();\n\nconst getIntlMessage = (key, value) => {\n const id = key.split(/\\/|\\./);\n let messageFormat;\n try {\n const worldReady = new WorldReady(locale);\n messageFormat = new MessageFormat(worldReady, {\n id,\n });\n } catch (error) {\n throw new ReferenceError(`Could not create messageformat for: ${key}`);\n }\n if (value) {\n return messageFormat.format(value);\n }\n return messageFormat.format();\n};\n\nconst createl10n = () => ({\n getContent(...args) {\n return getIntlMessage(...args);\n },\n});\n\nconst l10n = createl10n();\n\nexport default l10n;\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","/* eslint-disable no-template-curly-in-string */\n// Reference FPTI's : https://engineering.paypalcorp.com/confluence/pages/viewpage.action?pageId=560119786\n\nexport const trackerFPTIs = {\n refundTracker: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:refund-tracker',\n comp: 'smarthelpnodeweb',\n },\n disputeTracker: {\n page: 'main:help:center::dispute-tracker:::',\n pgrp: 'main:help:center:home',\n },\n};\n\nexport const topicTreeFPTIs = {\n topicTreeSuccess: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:topic-tree',\n e: 'ac',\n event_name: 'topic_tree_shown_home_page_help_center',\n },\n topicTreeError: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:topic-tree-error',\n e: 'ac',\n event_name: 'topic_tree_error_home_page_help_center',\n },\n topicTreeNoDataReceived: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:topic-tree-no-data',\n e: 'ac',\n event_name: 'topic_tree_no_data_received_home_page_help_center',\n },\n topicTreeClick: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:topic-tree',\n e: 'cl',\n link: 'topicTree|${topicId}',\n event_name: 'topic_tree_clicked_home_page_help_center',\n },\n};\n\nexport const communityFPTIs = {\n communityModuleSuccess: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:community-banner',\n e: 'ac',\n event_name: 'community_banner_shown_home_page_help_center',\n },\n communityModuleError: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:community-banner-error',\n e: 'ac',\n event_name: 'community_banner_error_home_page_help_center',\n },\n communityModuleClick: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:community-banner',\n e: 'cl',\n link: 'community-banner-clicked',\n event_name: 'community_banner_clicked_home_page_help_center',\n },\n};\n\nexport const extendedFooterFPTIs = {\n extendedFooterSuccess: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:extended-footer',\n e: 'ac',\n event_name: 'extended_footer_shown_home_page_help_center',\n },\n extendedFooterError: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:extended-footer-error',\n e: 'ac',\n event_name: 'extended_footer_error_home_page_help_center',\n },\n extendedFooterRedirectError: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:extended-footer-error',\n e: 'ac',\n event_name: 'extended_footer_${channelName}_redirect_error_home_page_help_center',\n },\n extendedFooterClick: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:extended-footer',\n e: 'cl',\n link: '${channelName}|extended-footer-link',\n event_name: 'extended_footer_link_clicked_${channelName}_home_page_help_center',\n },\n};\n\nexport const recommendedGuidesFPTIs = {\n recGuidesSuccess: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:recommended-guides',\n e: 'ac',\n event_name: 'recommended_guides_shown_home_page_help_center',\n },\n recGuidesError: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:recommended-guides-error',\n e: 'ac',\n event_name: 'recommended_guides_error_home_page_help_center',\n },\n recGuidesOnClick: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:recommended-guides',\n e: 'cl',\n link: '${icfId}|recommended-guide',\n event_name: 'recommended_guide_clicked_home_page_help_center',\n },\n recGuidesButtonClick: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:recommended-guides',\n e: 'cl',\n link: 'recommended_guides_see_all_guides_button_clicked',\n event_name: 'recommended_guides_see_all_guides_clicked_home_page_help_center',\n },\n recGuidesTryAgainClick: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:recommended-guides-error',\n e: 'cl',\n link: 'recommended_guides_try_again_link_clicked',\n event_name: 'recommended_guides_try_again_on_error_clicked_home_page_help_center',\n },\n};\n\nexport const recommendedAnswersFPTIs = {\n recAnswersSuccess: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:recommended-answers',\n e: 'ac',\n event_name: 'recommended_answers_shown_home_page_help_center',\n },\n recAnswersError: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:recommended-answers-error',\n e: 'ac',\n event_name: 'recommended_answers_error_home_page_help_center',\n },\n recAnswersOnClick: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:recommended-answers',\n e: 'cl',\n link: '${articleId}|recommended-answer',\n event_name: 'recommended_answer_clicked_home_page_help_center',\n },\n recAnswersTryAgainClick: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:recommended-answers-error',\n e: 'cl',\n link: 'recommended_answers_try_again_link_clicked',\n event_name: 'recommended_answers_try_again_on_error_clicked_home_page_help_center',\n },\n};\n\n// NNA widget\nexport const nnaWidgetFPTIs = {\n nnaWidgetSuccess: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:nna-widget',\n e: 'ac',\n event_name: 'nna_widget_shown_home_page_help_center',\n },\n nnaWidgetError: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:nna-widget-error',\n e: 'ac',\n event_name: 'nna_widget_error_home_page_help_center',\n },\n nnaWidgetButtonClick: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:nna-widget',\n e: 'cl',\n link: 'nna-widget-get-started-button|${icfId}',\n event_name: 'nna_widget_get_started_button_clicked_home_page_help_center',\n },\n};\n\n// Personalized Section\nexport const personalizedWidgetFPTIs = {\n personalizedWidgetLoggedOut: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:personalized-widget',\n e: 'ac',\n event_name: 'personalized_widget_logged_out_shown_home_page_help_center',\n },\n personalizedWidgetLoggedInNoData: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:personalized-widget',\n e: 'ac',\n event_name: 'personalized_widget_logged_in_no_data_shown_home_page_help_center',\n },\n personalizedWidgetOcpShown: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:personalized-widget',\n e: 'ac',\n event_name: 'personalized_widget_ocp_shown_home_page_help_center',\n },\n personalizedWidgetOcpLinkClicked: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:personalized-widget',\n link: 'ocp-prompt-clicked|${intentId}',\n e: 'cl',\n event_name: 'personalized_widget_ocp_link_clicked_home_page_help_center',\n },\n personalizedWidgetRefundTrackersInfoShown: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:personalized-widget',\n e: 'ac',\n event_name: 'personalized_widget_refund_trackers_info_shown_home_page_help_center',\n },\n personalizedWidgetDisputeTrackersInfoShown: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:personalized-widget',\n e: 'ac',\n event_name: 'personalized_widget_dispute_trackers_info_shown_home_page_help_center',\n },\n personalizedWidgetRefundTrackersSeeAllBtn: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:personalized-widget',\n e: 'cl',\n link: 'personalized-widget-refund-trackers-see-all-button-clicked',\n event_name: 'personalized_widget_refund_trackers_see_all_btn_clicked_home_page_help_center',\n },\n personalizedWidgetDisputeTrackersSeeAllBtn: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:personalized-widget',\n e: 'cl',\n link: 'personalized-widget-dispute-trackers-see-all-button-clicked',\n event_name: 'personalized_widget_dispute_trackers_see_all_btn_clicked_home_page_help_center',\n },\n personalizedWidgetError: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:personalized-widget-error',\n e: 'ac',\n event_name: 'personalized_widget_error_home_page_help_center',\n },\n};\n\n// Trackers Sheet\nexport const trackersSheetFPTIs = {\n trackersSheetOpen: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:trackers-sheet',\n e: 'ac',\n event_name: 'trackers_sheet_shown_home_page_help_center',\n },\n trackersSheetClose: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:trackers-sheet',\n link: 'smarthelp-tracker-sheet|close',\n e: 'cl',\n event_name: 'trackers_sheet_closed_home_page_help_center',\n },\n trackersSheetRefundsAccordianOnClick: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:trackers-sheet',\n e: 'cl',\n link: 'trackers-sheet-refunds-accordian-clicked',\n event_name: 'trackers_sheet_refunds_accordian_clicked_home_page_help_center',\n },\n trackersSheetDisputesAccordianOnClick: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:trackers-sheet',\n e: 'cl',\n link: 'trackers-sheet-disputes-accordian-clicked',\n event_name: 'trackers_sheet_disputes_accordian_clicked_home_page_help_center',\n },\n};\n\nexport const searchBarFPTIs = {\n fullSearch: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:search',\n e: 'cl',\n link: 'smarthelp-full-search-clicked',\n event_name: 'full_search_clicked_home_page_help_center',\n },\n allResultsSearch: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:search',\n e: 'cl',\n link: 'smarthelp-view-all-results-full-search-clicked',\n event_name: 'view_all_results_full_search_clicked_home_page_help_center',\n },\n autoSuggestionEmptyResponse: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:search',\n e: 'ac',\n event_name: 'auto_suggestion_search_empty_response_home_page_help_center',\n },\n autoSuggestionError: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:search',\n e: 'ac',\n event_name: 'auto_suggestion_search_error_response_home_page_help_center',\n },\n autoSuggestionClicked: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:search',\n e: 'cl',\n link: 'smarthelp-auto-suggestion-article-clicked|${articleTitle}|${searchQuery}|${articleId}|index-${index}|total-${totalResults}',\n event_name: 'auto_suggestion_article_clicked_home_page_help_center',\n },\n topContactReasonsSuggestionClicked: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:search',\n e: 'cl',\n link: 'smarthelp-top-contact-reason-suggestion-article-clicked|${articleTitle}|${articleId}|index-${index}',\n event_name: 'top_contact_reason_suggestion_article_clicked_home_page_help_center',\n },\n searchQueryReset: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:search',\n e: 'cl',\n link: 'smarthelp-search-query-cleared',\n event_name: 'search_query_clear_button_clicked_home_page_help_center',\n },\n customTopContactReasonsDisplayed: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:search',\n e: 'ac',\n event_name: 'custom_top_contact_reason_suggestion_displayed_home_page_help_center',\n },\n customTopContactReasonsSuggestionClicked: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:search',\n e: 'cl',\n link: 'smarthelp-custom-top-contact-reason-suggestion-article-clicked|${articleTitle}|${articleId}|index-${index}',\n event_name: 'custom_top_contact_reason_suggestion_article_clicked_home_page_help_center',\n },\n searchBarFocusedInhome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:search',\n e: 'cl',\n link: 'smarthelp-search-bar-focused',\n event_name: 'search_bar_focused_home_page_help_center',\n },\n searchBarCommonQuestionsDisplayedInhome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:search',\n e: 'ac',\n event_name: 'quicklinks_for_common_questions_displayed_home_page_help_center',\n },\n};\n\n// set-context for home page\nexport const setContextFPTIhome = {\n setContexthome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:set-context',\n context_status: 'ACTIVE',\n channel_name: 'HELP_CENTER',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_fired',\n },\n setContextSuccesshome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:set-context-success',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_success',\n },\n setContextFailurehome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:set-context-failed',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_failed',\n },\n setContextNotFiredhome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:omni-channel-set-context-not-fired',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_not_fired',\n },\n};\n\n// update-context for home page\nexport const updateContextFPTIhome = {\n updateContexthome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:update-context',\n context_status: 'ACTIVE',\n channel_name: 'HELP_CENTER',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_fired',\n },\n updateContextSuccesshome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:update-context-success',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_success',\n },\n updateContextFailurehome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:update-context-failed',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_failed',\n },\n updateContextNotFiredhome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:omni-channel-update-context-not-fired',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_not_fired',\n },\n updateContextFailureNullIcfIdhome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:update-context-failed-null-icf-id',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_failed_null_icf_id',\n },\n};\n\n// update-context for contactUs page\nexport const updateContextFPTIcontactUs = {\n updateContextcontactUs: {\n pgrp: 'main:help:center:contact-us',\n page: 'main:help:center:update-context',\n context_status: 'ACTIVE',\n channel_name: 'HELP_CENTER',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_fired',\n },\n updateContextSuccesscontactUs: {\n pgrp: 'main:help:center:contact-us',\n page: 'main:help:center:update-context-success',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_success',\n },\n updateContextFailurecontactUs: {\n pgrp: 'main:help:center:contact-us',\n page: 'main:help:center:update-context-failed',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_failed',\n },\n updateContextNotFiredcontactUs: {\n pgrp: 'main:help:center:contact-us',\n page: 'main:help:center:omni-channel-update-context-not-fired',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_not_fired',\n },\n updateContextFailureNullIcfIdcontactUs: {\n pgrp: 'main:help:center:contact-us',\n page: 'main:help:center:update-context-failed-null-icf-id',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_failed_null_icf_id',\n },\n};\n\n// qualtrics feedback\nexport const qualtricsFeedbackPanelFPTI = {\n qualtricsFeedbackShown: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:qualtrics-footer-survey',\n e: 'ac',\n event_name: 'qualtrics_survey_shown_in_home_page',\n },\n qualtricsFeedbackClicked: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:qualtrics-footer-survey',\n e: 'cl',\n link: 'smarthelp-footer-survey',\n event_name: 'qualtrics_survey_clicked_in_home_page',\n },\n qualtricsFeedbackError: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:qualtrics-footer-survey-error',\n e: 'ac',\n event_name: 'qualtrics_survey_error_in_home_page',\n },\n qualtricsFeedbackOnClickError: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:qualtrics-footer-survey-error',\n e: 'ac',\n event_name: 'qualtrics_survey_on_click_error_in_home_page',\n },\n};\n\nexport const customerJourneyAPIFPTI = {\n customerJourneyAPICalled: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:customer-journey',\n e: 'ac',\n link: 'smarthelp-customer-journey-api-fired',\n event_name: 'classic_help_customer_journey_api_fired',\n },\n customerJourneyAPISuccess: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:customer-journey-api-success',\n e: 'ac',\n link: 'smarthelp-customer-journey-api-success',\n event_name: 'classic_help_customer_journey_api_success',\n },\n customerJourneyFailure: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:customer-journey-api-failed',\n e: 'ac',\n link: 'smarthelp-customer-journey-api-failed',\n event_name: 'classic_help_customer_journey_api_failed',\n },\n};\n// update-context for home page\nexport const updateBNAFPTIhome = {\n updateBNAhome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:update-bna',\n e: 'ac',\n link: 'update-bna-api-fired',\n event_name: 'classic_help_ocp_update_bna_fired',\n },\n updateBNASuccesshome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:update-bna-success',\n e: 'ac',\n link: 'update-bna-api-success',\n event_name: 'classic_help_ocp_update_bna_success',\n },\n updateBNAFailurehome: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:update-bna-failed',\n e: 'ac',\n link: 'update-bna-api-failed',\n event_name: 'classic_help_ocp_update_bna_failed',\n },\n};\n// auth confirmation prompt\nexport const authConfirmationPromptFPTI = {\n authPromptOnClickClose: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:confirm-auth-prompt',\n e: 'cl',\n link: 'confirm-auth-prompt-close-clicked',\n event_name: 'confirm_auth_stepup_prompt_close_clicked_in_home_page',\n },\n authPromptOnClickYes: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:confirm-auth-prompt',\n e: 'cl',\n link: 'confirm-auth-prompt-yes-clicked',\n event_name: 'confirm_auth_stepup_prompt_yes_clicked_in_home_page',\n },\n authPromptOnClickNo: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:confirm-auth-prompt',\n e: 'cl',\n link: 'confirm-auth-prompt-no-clicked',\n event_name: 'confirm_auth_stepup_prompt_no_clicked_in_home_page',\n },\n authPromptShown: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:confirm-auth-prompt',\n e: 'ac',\n event_name: 'confirm_auth_stepup_prompt_shown_in_home_page',\n },\n authPromptError: {\n pgrp: 'main:help:center:home',\n page: 'main:help:center:confirm-auth-prompt-error',\n e: 'ac',\n event_name: 'confirm_auth_stepup_prompt_error_in_home_page',\n },\n};\n","import 'core-js/modules/es.symbol';\nimport 'core-js/modules/es.symbol.description';\nimport 'core-js/modules/es.symbol.to-primitive';\nimport 'core-js/modules/es.array.map';\nimport 'core-js/modules/es.date.to-primitive';\nimport 'core-js/modules/es.function.name';\nimport 'core-js/modules/es.number.constructor';\nimport 'core-js/modules/es.object.assign';\nimport 'core-js/modules/es.object.to-string';\nimport React, { Component } from 'react';\nimport { assert, assertType } from 'yaassertion';\nimport { MessageFormat } from '@paypalcorp/worldready-message';\nimport { WorldReady, isWorldReadyInstance } from '@paypalcorp/worldready-core';\nimport hoistNonReactStatic from 'hoist-non-react-statics';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nvar _excluded = [\"children\", \"id\", \"namespace\", \"variables\", \"source\"];\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : String(i);\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nvar Context = React.createContext();\nvar ContextProvider = function ContextProvider(_ref) {\n var locale = _ref.locale,\n children = _ref.children;\n var worldReady = new WorldReady(locale);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: worldReady\n }, children);\n};\nvar ContextConsumer = Context.Consumer;\nvar MessageParts = function MessageParts(_ref2) {\n var messageParts = _ref2.messageParts;\n return /*#__PURE__*/React.createElement(React.Fragment, null, messageParts.map(function (_ref3, i) {\n var type = _ref3.type,\n value = _ref3.value,\n children = _ref3.children,\n variableName = _ref3.variableName;\n if (type === \"variable-block\") {\n var ret = value( /*#__PURE__*/React.createElement(MessageParts, {\n messageParts: children\n }));\n if (process.env.NODE_ENV !== \"production\") {\n assert(React.isValidElement(ret), \"Variable {{variableName}} should return a react element, not {{ret}}\", {\n variableName: variableName,\n ret: ret\n });\n }\n return React.cloneElement(ret, Object.assign({\n key: i\n }, value.props));\n }\n if (React.isValidElement(value)) {\n return React.cloneElement(value, Object.assign({\n key: i\n }, value.props));\n }\n return value;\n }));\n};\nvar Message = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Message, _Component);\n function Message() {\n return _Component.apply(this, arguments) || this;\n }\n var _proto = Message.prototype;\n _proto.render = function render() {\n if (process.env.NODE_ENV !== \"production\") {\n assert(typeof this.props !== \"string\", \"Message function got a String, but expected an Object. Did you mean { id: \\\"\" + this.props + \"\\\"} instead?\");\n }\n var _this$props = this.props,\n children = _this$props.children,\n id = _this$props.id,\n namespace = _this$props.namespace,\n variables = _this$props.variables,\n source = _this$props.source,\n otherProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\n if (process.env.NODE_ENV !== \"production\") {\n // 1: There are cases where empty elements are coming as empty array []\n // children, so need to check for length as well. At present we did not\n // identify the cause, it could be related to react version or due to preact.\n // Not able to reproduce this in unit tests ¯\\_(ツ)_/¯\n assert(!children || !children.length /* 1 */, \"Message must be an empty element (no children)\");\n assertType(id, \"id\", [\"array\", \"string\"]);\n if (namespace) {\n assertType(namespace, \"namespace\", [\"array\", \"string\"]);\n }\n }\n var worldReady = this.context;\n if (process.env.NODE_ENV !== \"production\") {\n assert(isWorldReadyInstance(worldReady), \"Missing worldReady object. Please read \" + \"https://github.paypal.com/pages/Globalization-R/worldready-js\" + \"/about-get-started.html#reactjs\");\n }\n var messageFmt = new MessageFormat(worldReady, {\n id: id,\n source: source,\n namespace: namespace\n });\n\n // If message is instance of ContentMessage:\n var _variables = variables || otherProps;\n\n // TODO cache formatted message, see react-globalize for reference.\n return /*#__PURE__*/React.createElement(MessageParts, {\n messageParts: messageFmt.formatToParts(_variables)\n });\n };\n return Message;\n}(Component);\n_defineProperty(Message, \"contextType\", Context);\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || \"Component\";\n}\nfunction injectWorldReady(WrappedComponent) {\n var InjectWorldReady = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(InjectWorldReady, _Component2);\n function InjectWorldReady() {\n return _Component2.apply(this, arguments) || this;\n }\n var _proto2 = InjectWorldReady.prototype;\n _proto2.render = function render() {\n var _this = this;\n return /*#__PURE__*/React.createElement(ContextConsumer, null, function (worldReady) {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, _this.props, {\n worldReady: worldReady,\n griffin: worldReady\n }));\n });\n };\n return InjectWorldReady;\n }(Component); // Why this? https://reactjs.org/docs/higher-order-components.html#static-methods-must-be-copied-over\n // Why this? https://reactjs.org/docs/higher-order-components.html#convention-wrap-the-display-name-for-easy-debugging\n _defineProperty(InjectWorldReady, \"displayName\", \"InjectWorldReady(\" + getDisplayName(WrappedComponent) + \")\");\n _defineProperty(InjectWorldReady, \"WrappedComponent\", WrappedComponent);\n hoistNonReactStatic(InjectWorldReady, WrappedComponent);\n return InjectWorldReady;\n}\nvar injectGriffin = injectWorldReady;\n\nexport { Context, ContextConsumer, ContextProvider, Message, injectGriffin, injectWorldReady };\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React, { forwardRef, useMemo } from 'react';\nimport { devWarning, utilStyles, getColorValue, ColorContext, Shimmer } from '@paypalcorp/pp-react-utils';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport { css, useTheme, jsx } from '@emotion/react';\nimport { textStyles } from '@paypalcorp/pp-react-text';\nimport { math } from 'polished';\n\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;\nfunction styles(tokens, colorTokens) {\n /* istanbul ignore next */\n if (!Object.keys(tokens).length) {\n devWarning('Missing Emotion theme. Use ThemeProvider from @emotion/react to pass a valid theme from pp-react.');\n return {};\n }\n\n var sysColorLinkAlt = tokens.sysColorLinkAlt,\n sysColorLinkAltHover = tokens.sysColorLinkAltHover,\n sysColorLinkAltActive = tokens.sysColorLinkAltActive,\n sysColorLinkContrast = tokens.sysColorLinkContrast,\n sysColorLinkContrastActive = tokens.sysColorLinkContrastActive,\n sysColorLinkContrastHover = tokens.sysColorLinkContrastHover,\n sysColorLinkMain = tokens.sysColorLinkMain,\n sysColorLinkMainActive = tokens.sysColorLinkMainActive,\n sysColorLinkMainHover = tokens.sysColorLinkMainHover,\n sysSizeIconXs = tokens.sysSizeIconXs,\n sysSizeIconSm = tokens.sysSizeIconSm,\n sysSpaceSm = tokens.sysSpaceSm,\n sysSpaceXl = tokens.sysSpaceXl,\n sysBorderRadiusXs = tokens.sysBorderRadiusXs;\n\n var _utilStyles = utilStyles(tokens),\n focusStyles = _utilStyles.focusStyles,\n shimmerStyles = _utilStyles.shimmerStyles;\n\n var _textStyles = textStyles(tokens),\n bodyStrong = _textStyles.bodyStrong,\n captionStrong = _textStyles.captionStrong;\n\n var base = css(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n label: links_base;\\n text-decoration: none;\\n border-radius: \", \";\\n \", \"\\n &:focus {\\n color: \", \";\\n \", \";\\n }\\n\\n &:focus,\\n &:hover {\\n text-decoration: underline;\\n cursor: pointer;\\n }\\n\\n &:hover {\\n color: \", \";\\n background-color: \", \";\\n }\\n\\n &:active {\\n color: \", \";\\n background-color: \", \";\\n }\\n \"])), sysBorderRadiusXs, bodyStrong({\n color: getColorValue(colorTokens, sysColorLinkMain, 'contrast')\n }), getColorValue(colorTokens, sysColorLinkMain, 'contrast'), focusStyles.focusOffsetElement, getColorValue(colorTokens, sysColorLinkMainHover, 'contrast'), getColorValue(colorTokens, null, 'hover'), getColorValue(colorTokens, sysColorLinkMainActive, 'contrast'), getColorValue(colorTokens, null, 'active'));\n var baseIcon = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n label: base_icon;\\n position: relative;\\n padding-inline-start: \", \";\\n \"])), math(\"\".concat(sysSizeIconSm, \" + \").concat(sysSpaceSm)));\n var baseSmIcon = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\\n label: base_sm_icon;\\n padding-inline-start: \", \";\\n \"])), math(\"\".concat(sysSizeIconXs, \" + \").concat(sysSpaceSm)));\n var secondary = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"\\n label: secondary;\\n text-decoration: underline;\\n \", \"\\n\\n &:active {\\n color: \", \";\\n text-decoration: none;\\n }\\n\\n &:focus,\\n &:hover {\\n color: \", \";\\n text-decoration: underline;\\n }\\n \"])), bodyStrong({\n color: getColorValue(colorTokens, sysColorLinkAlt, 'contrast')\n }), getColorValue(colorTokens, sysColorLinkAltActive, 'contrast'), getColorValue(colorTokens, sysColorLinkAltHover, 'contrast'));\n var shimmer = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"\\n label: shimmer;\\n \", \"\\n \"])), shimmerStyles.defaults({\n height: sysSpaceXl\n }));\n var inverse = css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral([\"\\n label: inverse;\\n color: \", \";\\n text-decoration: underline;\\n\\n &:visited,\\n &:focus {\\n color: \", \";\\n }\\n\\n &:hover {\\n color: \", \";\\n }\\n\\n &:active {\\n color: \", \";\\n text-decoration: underline;\\n }\\n \"])), getColorValue(colorTokens, sysColorLinkContrast, 'contrast'), getColorValue(colorTokens, sysColorLinkContrast, 'contrast'), getColorValue(colorTokens, sysColorLinkContrastHover, 'contrast'), getColorValue(colorTokens, sysColorLinkContrastActive, 'contrast'));\n var leftIcon = css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([\"\\n label: left_icon;\\n position: absolute;\\n inset: 0;\\n \"])));\n /**\n * Get caption sized styles.\n * @param useSecondaryStyles boolean\n * @param useInverseStyles boolean\n * @returns SerializedStyles\n */\n\n var getCaptionStyles = function () {\n var useSecondaryStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var useInverseStyles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var color = getColorValue(colorTokens, sysColorLinkMain, 'contrast');\n var variantName = 'caption_primary';\n\n if (useInverseStyles) {\n variantName = 'caption_inverse';\n color = getColorValue(colorTokens, sysColorLinkContrast, 'contrast');\n }\n\n if (useSecondaryStyles) {\n variantName = 'caption_secondary';\n color = getColorValue(colorTokens, sysColorLinkAlt, 'contrast');\n }\n\n return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral([\"\\n label: \", \";\\n \", \";\\n \"])), variantName, captionStrong({\n color: color\n }));\n };\n\n return {\n base: base,\n baseIcon: baseIcon,\n baseSmIcon: baseSmIcon,\n secondary: secondary,\n shimmer: shimmer,\n inverse: inverse,\n leftIcon: leftIcon,\n getCaptionStyles: getCaptionStyles\n };\n}\n\nvar _excluded = [\"inverse\", \"secondary\", \"size\", \"primaryAlt\", \"className\", \"leftIcon\", \"children\", \"as\", \"isLoading\"];\n\nvar internalHosts = new Set(['', 'paypal.com', 'paypal.cn', 'gopay.cn']);\nvar NO_REFERRER = /\\bnoreferrer\\b/;\nvar NO_OPENER = /\\bnoopener\\b/;\nvar Link = forwardRef(function (_ref, ref) {\n var _styles$getCaptionSty;\n\n var inverse = _ref.inverse,\n secondary = _ref.secondary,\n size = _ref.size,\n primaryAlt = _ref.primaryAlt,\n className = _ref.className,\n leftIcon = _ref.leftIcon,\n children = _ref.children,\n _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'a' : _ref$as,\n isLoading = _ref.isLoading,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var colorTokens = React.useContext(ColorContext);\n var tokens = useTheme(); // Fetch tokens from Emotion context\n\n var _styles = useMemo(function () {\n return styles(tokens, colorTokens);\n }, [tokens, colorTokens]);\n\n if (isLoading) {\n return jsx(Shimmer, _extends({\n css: _styles.shimmer,\n className: className,\n hasStyleDefaults: false,\n isInverse: inverse\n }, rest, {\n \"data-ppui\": \"true\"\n }), children);\n }\n\n var isInternalUrl = function (urlStr) {\n try {\n var url = new URL(urlStr);\n return internalHosts.has(url.hostname);\n } catch (e) {\n devWarning(\"isInternalUrl('\".concat(urlStr, \"'}) failed to parse: \").concat(e));\n }\n\n return false;\n };\n\n var checkForUnsafe = function (urlStr, rel) {\n if (!(NO_REFERRER.test(rel) && NO_OPENER.test(rel) || isInternalUrl(urlStr))) {\n devWarning(\"WARNING! '\".concat(urlStr, \"'\\nOpening 3rd party URL in a new window/tab without setting rel to \\\"noreferrer noopener\\\" is potentially unsafe.\"));\n }\n };\n\n var linkTarget = rest.target,\n _rest$rel = rest.rel,\n rel = _rest$rel === void 0 ? null : _rest$rel,\n _rest$href = rest.href,\n href = _rest$href === void 0 ? '/' : _rest$href;\n\n if (as === 'a' && (linkTarget === null || linkTarget === void 0 ? void 0 : linkTarget.trim())) {\n var _rel;\n\n if (!((_rel = rel) === null || _rel === void 0 ? void 0 : _rel.trim())) {\n rel = 'noreferrer noopener';\n } else {\n checkForUnsafe(href, rel);\n }\n }\n\n var leftIconElement = jsx(\"span\", {\n css: _styles.leftIcon,\n \"data-ppui\": \"true\"\n }, leftIcon);\n var isSecondaryStyles = primaryAlt || secondary;\n var linkStyles = [_styles.base, leftIcon && _styles.baseIcon, leftIcon && size === 'sm' && _styles.baseSmIcon, inverse && _styles.inverse, isSecondaryStyles && _styles.secondary, size === 'sm' && ((_styles$getCaptionSty = _styles.getCaptionStyles) === null || _styles$getCaptionSty === void 0 ? void 0 : _styles$getCaptionSty.call(_styles, isSecondaryStyles, inverse))];\n return jsx(as, _extends({\n css: linkStyles,\n className: className,\n ref: ref,\n \"data-ppui-info\": \"links_4.6.4\",\n target: linkTarget,\n rel: rel\n }, rest), leftIcon && leftIconElement, children);\n});\n\nexport { Link, styles as linkStyles };\n","import {\n LOAD_MODAL_CONTAINER,\n CLOSE_MODAL_CONTAINER,\n LOAD_MESSAGE_MODAL,\n SET_IS_LOGGED_OUT_CHAT_ENABLED,\n CALLUS_FROM_COMPLAINTS_PAGE,\n RESET_CALLUS_FROM_COMPLAINTS_PAGE,\n SET_IS_PUI_TOPIC_SUPPORTED_ENABLED,\n FROM_EMAIL_PAGE,\n} from '../constants/ActionTypes';\n\n// Show Prompt up for login navigation\nexport const loadModalContainer =\n (channel, endPoint = undefined, fromComplaintsPage = false, fromEmailPage = false) =>\n (dispatch) =>\n dispatch({\n type: LOAD_MODAL_CONTAINER,\n payload: {\n channel,\n endPoint,\n fromComplaintsPage,\n fromEmailPage,\n },\n });\n\nexport const closeModalContainer = () => (dispatch) => dispatch({ type: CLOSE_MODAL_CONTAINER });\n\n// Showing message by showing Modal prompt\nexport const loadMessageModal = (payload) => ({\n type: LOAD_MESSAGE_MODAL,\n payload,\n});\n\nexport const setLoggedOutChatEnabled = (value) => ({\n type: SET_IS_LOGGED_OUT_CHAT_ENABLED,\n payload: value,\n});\n\n// When callus clicked on complaints page in login usecase\nexport const callUsFromComplaintsPage = () => ({\n type: CALLUS_FROM_COMPLAINTS_PAGE,\n});\n\n// When callus clicked on complaints page in login usecase\nexport const resetCallUsFromComplaintsPage = () => ({\n type: RESET_CALLUS_FROM_COMPLAINTS_PAGE,\n});\n\nexport const setPuiTopicEnabled = (value) => ({\n type: SET_IS_PUI_TOPIC_SUPPORTED_ENABLED,\n payload: value,\n});\n\nexport const loginFromEmailPage = () => ({\n type: FROM_EMAIL_PAGE,\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * asyncMessageHelper for using IDI/Lexa service\n * Lexa API confluence page: https://ppaas/api/3719176155268900#apiReference\n * Async Message Availability types: ['AVAILABLE', 'DELAYED_AVAILABLE']; non-eligibility will be take care of inside Lexa team\n */\nimport axios from 'axios';\nimport _find from 'lodash/find';\nimport _get from 'lodash/get';\nimport _isEmpty from 'lodash/isEmpty';\nimport { parse, toSeconds } from 'iso8601-duration';\nimport poll from './poll';\nimport { asyncChatValidator } from './node-chat-on-page-validator';\nimport fireImpressionFptiForChatLoadError from './fire-impression-fpti-for-chat-load-error';\nimport {\n originToEntryPointMapping,\n asyncOrigins,\n asyncPageMapping,\n asyncParamDeviceType,\n chatBotMessageUsRefIdsMapping,\n deviceTypes,\n} from '../common/commonConstants';\nimport Page from './page';\nimport contentHelper from './contentHelper';\n\nconst requestURL = '/smarthelp/mmt-async-check';\n\n// MMT service for getting last active conversation data with conversation id.\n// Returning necessary data isConversationActive, serviceError in the form of object to reduce the no of conditional checks.\nexport const getAsyncLastActiveConversation = () =>\n axios\n .get(requestURL)\n .then((response) => {\n const conversations = response && response.data && response.data.conversations;\n if (conversations && conversations.length) {\n return Promise.resolve({\n isConversationActive: true,\n id: conversations[0].id,\n serviceError: false,\n protocol: conversations[0].protocol,\n });\n }\n return Promise.resolve({ isConversationActive: false, serviceError: false });\n })\n .catch(() => Promise.reject({ isConversationActive: false, serviceError: true }));\n\n// The IDI channel mapping base on their response; parse IDI option as SAC options\nexport const IDIChannelMapping = {\n EMAIL: 'email',\n PHONE: 'callus',\n COMMUNITY: 'community',\n RES_CENTER: 'seller',\n CHAT: 'chat',\n MESSAGE_US: 'message',\n CHAT_BOT: 'chatbot',\n SAC: 'scheduleCallBack',\n};\n\n// IDI channels filter\nexport const IDIChannelFilter = function (channels) {\n if (!Array.isArray(channels) || channels.length <= 0 || Object.keys(channels[0]).length === 0) {\n return null;\n }\n const mapping = IDIChannelMapping;\n\n // Contact opions parser and validation\n return channels.map((channel) =>\n channel.name && mapping[channel.name] && channel.rank\n ? {\n type: mapping[channel.name],\n priority: `${channel.rank}`,\n }\n : {},\n );\n};\n\n// Return Async Message estimate wait time in minute\n// Duration confluence page: https://en.wikipedia.org/wiki/ISO_8601#Durations\nexport const getEstimateWaitTime = (waitPeriod) => {\n if (typeof waitPeriod !== 'string' || !waitPeriod) {\n return null;\n }\n\n const second = toSeconds(parse(waitPeriod));\n return Math.ceil(second / 60);\n};\n\n// Aync message contact option validation\nexport const hasAyncMessage = (channels) =>\n Array.isArray(channels) && channels.some((option) => option.type === 'message');\n\n// Get Message us contact option availability message\nconst getMessageAvailable = (availabilities) =>\n _find(availabilities, (availability) => availability.name === 'MESSAGE_US');\n\nconst eligibilityList = ['AVAILABLE', 'DELAYED_AVAILABLE'];\n\n// checking Async message whether available or not (base on the channel_availability_decisions data)\nexport const isMessageUsAvailable = (availabilities) => {\n const messageUs = getMessageAvailable(availabilities);\n return !_isEmpty(messageUs) && eligibilityList.indexOf(messageUs.availability_decision) >= 0;\n};\n\nexport const isAsyncChatEnable = ({ channels, availability }) =>\n hasAyncMessage(channels) && isMessageUsAvailable(availability);\n\n// Get Estimate wait time for Asyc message\nexport const getWaitTime = (availabilities) => {\n const messageUs = getMessageAvailable(availabilities);\n return getEstimateWaitTime(_get(messageUs, 'wait_time_to_availability.wait_period'));\n};\n\n/**\n * Open Async Chat based on the MMT Response.\n * @param params\n * @param mmtResponse\n * If the service returns active conversation pass conversation id to Async chat else pass empty string.\n * If the service fails pass 'INVALID_CONVERSATION' as a parameter to async chat.\n */\nexport const openAsyncChat = (params, mmtResponse) => {\n let entryPoint;\n const topicName = params.topicRefId || chatBotMessageUsRefIdsMapping.GENERIC;\n \n if (!params.entryPoint) {\n if (params.origin) {\n entryPoint = originToEntryPointMapping[params.origin]\n if (entryPoint === originToEntryPointMapping[asyncOrigins.FINAL_CONTACT_OPTIONS]) {\n entryPoint = contentHelper(originToEntryPointMapping[asyncOrigins.FINAL_CONTACT_OPTIONS], { intentId: topicName});\n }\n }\n }\n\n const asyncParams = {\n sessionType: 'conversation', hasReply: true, isExtended: false,\n entryPoint,\n conversationProfile: 'HELP_CENTER',\n };\n asyncParams.topicName = topicName;\n asyncParams.deviceType = asyncParamDeviceType[Page.getDeviceType()] || deviceTypes.DESKTOP;\n asyncParams.page = asyncPageMapping[Page.getPageName()];\n asyncParams.origin = params.origin || '';\n asyncParams.subject = params.subject || '';\n if (params.customerIntent) {\n asyncParams.customer_intent = params.customerIntent;\n }\n if (params.intentCode) {\n asyncParams.intent_code = params.intentCode;\n }\n if (mmtResponse && mmtResponse.protocol) {\n asyncParams.protocol = mmtResponse.protocol;\n }\n\n let id = '';\n if (typeof mmtResponse === 'object' && !_isEmpty(mmtResponse)) {\n if (mmtResponse.isConversationActive && !mmtResponse.serviceError) {\n id = mmtResponse.id;\n } else if (mmtResponse.serviceError) {\n id = 'INVALID_CONVERSATION';\n }\n }\n window.nodeChat.showAsync(id, asyncParams);\n};\n\n// Checking and validate nodeChat async function which is a messageUs\nconst invokingAsyncChat = (params, mmtResponse) =>\n poll(asyncChatValidator, 10, 200)\n .then(() => openAsyncChat(params, mmtResponse))\n .catch(() => {\n fireImpressionFptiForChatLoadError('', '', 'asyncContactUsError');\n });\n\n// Redirect promise direction switcher\nconst redirectPromiseAfterAsyncConversationCheck = (promise, params = {}) => {\n if (typeof promise !== 'function') {\n return null;\n }\n\n return promise()\n .then((mmtResponse) => invokingAsyncChat(params, mmtResponse))\n .catch((mmtResponseError) => invokingAsyncChat(params, mmtResponseError));\n};\n\nexport const initiateAsyncChat = (params = {}) => {\n if(Page.isLoggedIn()) {\n return redirectPromiseAfterAsyncConversationCheck(getAsyncLastActiveConversation, params);\n } if(Page.isLoggedOutChatExp()) {\n return invokingAsyncChat(params, null);\n }\n return null;\n};\n\n/**\n * Chatbot async check based on pilot user and new async response from chatbot eligibility API\n * @returns {*|boolean|Boolean}\n */\n\nexport const isAsyncUser = (chatBotAsync = false) => Page.isPilotUser() || chatBotAsync;\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React, { forwardRef, useMemo } from 'react';\nimport { CheckmarkIcon } from '@paypalcorp/pp-react-icons';\nimport { devWarning, utilStyles, getColorValue, ColorContext, Shimmer } from '@paypalcorp/pp-react-utils';\nimport { LoadingSpinner } from '@paypalcorp/pp-react-loading-spinner';\nimport { css, useTheme, jsx } from '@emotion/react';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport { math } from 'polished';\nimport { textStyles } from '@paypalcorp/pp-react-text';\n\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20;\nfunction styles(tokens, colorTokens) {\n /* istanbul ignore next */\n if (!Object.keys(tokens).length) {\n devWarning('Missing Emotion theme. Use ThemeProvider from @emotion/react to pass a valid theme from pp-react.');\n return {};\n }\n\n var sysSpaceSm = tokens.sysSpaceSm,\n sysSpaceLg = tokens.sysSpaceLg,\n sysSpaceMd = tokens.sysSpaceMd,\n sysSizeIconSm = tokens.sysSizeIconSm,\n sysSizeTapTargetXs = tokens.sysSizeTapTargetXs,\n sysSizeTapTargetSm = tokens.sysSizeTapTargetSm,\n sysSizeCircleLg = tokens.sysSizeCircleLg,\n sysBorderRadiusInteractive = tokens.sysBorderRadiusInteractive,\n sysColorOverlayMain = tokens.sysColorOverlayMain,\n sysColorOverlayContrast = tokens.sysColorOverlayContrast,\n sysColorOverlayMainHover = tokens.sysColorOverlayMainHover,\n sysColorOverlayMainActive = tokens.sysColorOverlayMainActive,\n sysColorPrimaryMain = tokens.sysColorPrimaryMain,\n sysColorPrimaryContrast = tokens.sysColorPrimaryContrast,\n sysColorPrimaryMainHover = tokens.sysColorPrimaryMainHover,\n sysColorPrimaryMainActive = tokens.sysColorPrimaryMainActive,\n sysColorPrimaryContrastActive = tokens.sysColorPrimaryContrastActive,\n sysColorPrimaryContrastHover = tokens.sysColorPrimaryContrastHover,\n sysColorTertiaryMain = tokens.sysColorTertiaryMain,\n sysColorTertiaryContrast = tokens.sysColorTertiaryContrast,\n sysColorTertiaryMainHover = tokens.sysColorTertiaryMainHover,\n sysColorTertiaryMainActive = tokens.sysColorTertiaryMainActive,\n sysColorBackgroundMediumContrast = tokens.sysColorBackgroundMediumContrast,\n sysColorBackgroundHighContrast = tokens.sysColorBackgroundHighContrast,\n sysColorBackgroundSurfaceActive = tokens.sysColorBackgroundSurfaceActive,\n sysColorBackgroundSurfaceHover = tokens.sysColorBackgroundSurfaceHover,\n sysColorSuccessMain = tokens.sysColorSuccessMain,\n sysColorSuccessContrast = tokens.sysColorSuccessContrast;\n\n var _utilStyles = utilStyles(tokens),\n screenReader = _utilStyles.screenReader,\n focusStyles = _utilStyles.focusStyles,\n shimmerStyles = _utilStyles.shimmerStyles;\n\n var _textStyles = textStyles(tokens),\n caption = _textStyles.caption;\n\n var focusOffsetElement = focusStyles.focusOffsetElement;\n var defaults = shimmerStyles.defaults;\n /* token for tap target in small icon-button */\n\n var sysIconbuttonPositionTapTargetOffset = math(\"\".concat(sysSizeTapTargetSm, \" - \").concat(sysSizeTapTargetXs));\n var iconButtonSize = math(\"\".concat(sysSizeIconSm, \" + 2 *\\n \").concat(sysSpaceMd));\n var base = css(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n label: icon-button_base;\\n position: relative;\\n cursor: pointer;\\n border-radius: \", \";\\n padding: \", \";\\n border: none;\\n background-color: transparent;\\n text-decoration: none;\\n display: inline-flex;\\n &:focus {\\n \", \";\\n }\\n \"])), sysBorderRadiusInteractive, sysSpaceMd, focusOffsetElement);\n var container = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n label: icon-button_container;\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n padding: \", \" 0;\\n width: \", \";\\n word-wrap: break-word;\\n \", \"\\n border: none;\\n background-color: transparent;\\n\\n &:focus,\\n &:hover {\\n cursor: pointer;\\n -webkit-text-stroke-width: \", \";\\n }\\n\\n &:focus {\\n outline: none;\\n & div:first-of-type {\\n \", \";\\n }\\n span:last-of-type {\\n text-decoration: underline;\\n }\\n }\\n\\n &:hover {\\n span:last-of-type {\\n text-decoration: underline;\\n }\\n }\\n\\n &:hover > div:first-of-type {\\n background: \", \";\\n }\\n \"])), sysSpaceMd, '6rem', caption({\n color: getColorValue(colorTokens, sysColorBackgroundHighContrast, 'contrast')\n }), '0.0421875rem', focusOffsetElement, sysColorTertiaryMainHover);\n var processingContainer = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\\n label: processing_container;\\n &:hover {\\n cursor: default;\\n }\\n \"])));\n var successContainer = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"\\n label: success_container;\\n &:hover {\\n cursor: default;\\n }\\n &:hover > div:first-of-type {\\n background-color: \", \";\\n }\\n \"])), getColorValue(colorTokens, sysColorSuccessMain, 'main'));\n var primary = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"\\n label: primary;\\n color: \", \";\\n background: \", \";\\n &:hover {\\n background: \", \";\\n }\\n &:active {\\n background: \", \";\\n }\\n \"])), getColorValue(colorTokens, sysColorPrimaryContrast, 'contrast'), getColorValue(colorTokens, sysColorPrimaryMain, 'main'), getColorValue(colorTokens, sysColorPrimaryMainHover, 'hover'), getColorValue(colorTokens, sysColorPrimaryMainActive, 'active'));\n var inverse = css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral([\"\\n label: inverse;\\n color: \", \";\\n \"])), getColorValue(colorTokens, sysColorPrimaryContrast, 'contrast'));\n var sizeSm = css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([\"\\n label: size_sm;\\n padding: \", \";\\n &:before {\\n content: '';\\n position: absolute;\\n border-radius: \", \";\\n top: -\", \";\\n right: -\", \";\\n bottom: -\", \";\\n left: -\", \";\\n }\\n \"])), sysSpaceSm, sysBorderRadiusInteractive, math(\"\".concat(sysIconbuttonPositionTapTargetOffset, \" / 2\")), math(\"\".concat(sysIconbuttonPositionTapTargetOffset, \" / 2\")), math(\"\".concat(sysIconbuttonPositionTapTargetOffset, \" / 2\")), math(\"\".concat(sysIconbuttonPositionTapTargetOffset, \" / 2\")));\n var sizeXl = css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral([\"\\n label: size_xl;\\n \", \"\\n padding: \", \";\\n \"])), sizeSm, sysSpaceLg);\n var secondary = css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral([\"\\n label: secondary;\\n color: \", \";\\n background: \", \";\\n &:active {\\n background: \", \";\\n }\\n &:hover {\\n background: \", \";\\n }\\n \"])), getColorValue(colorTokens, sysColorTertiaryContrast, 'contrast'), getColorValue(colorTokens, sysColorTertiaryMain, 'main'), getColorValue(colorTokens, sysColorTertiaryMainActive, 'active'), getColorValue(colorTokens, sysColorTertiaryMainHover, 'hover'));\n var secondaryInverse = css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral([\"\\n label: secondary_inverse;\\n background: \", \";\\n color: \", \";\\n &:hover {\\n background: \", \";\\n }\\n &:active {\\n background: \", \";\\n }\\n \"])), getColorValue(colorTokens, sysColorPrimaryContrast, 'contrast'), getColorValue(colorTokens, sysColorPrimaryMain, 'main'), getColorValue(colorTokens, sysColorPrimaryContrastHover, 'hover'), getColorValue(colorTokens, sysColorPrimaryContrastActive, 'active'));\n var tertiary = css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral([\"\\n label: tertiary;\\n color: \", \";\\n &:hover {\\n background: \", \";\\n }\\n &:active {\\n background: \", \";\\n }\\n \"])), getColorValue(colorTokens, sysColorBackgroundMediumContrast, 'contrast'), getColorValue(colorTokens, sysColorBackgroundSurfaceHover, 'hover'), getColorValue(colorTokens, sysColorBackgroundSurfaceActive, 'active'));\n var tertiaryInverse = css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral([\"\\n label: tertiary_inverse;\\n color: \", \";\\n background: \", \";\\n &:hover {\\n background: \", \";\\n }\\n &:active {\\n background: \", \";\\n }\\n \"])), getColorValue(colorTokens, sysColorOverlayContrast, 'contrast'), getColorValue(colorTokens, sysColorOverlayMain, 'main'), getColorValue(colorTokens, sysColorOverlayMainHover, 'hover'), getColorValue(colorTokens, sysColorOverlayMainActive, 'active'));\n var icon = css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral([\"\\n label: icon;\\n pointer-events: none;\\n \"])));\n var shimmer = css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral([\"\\n label: shimmer;\\n \", \"\\n \"])), defaults({\n borderRadius: sysBorderRadiusInteractive,\n width: iconButtonSize,\n height: iconButtonSize\n }));\n var shimmerSizeSm = css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral([\"\\n label: shimmer_size_sm;\\n width: \", \";\\n height: \", \";\\n &:before {\\n display: none; //tap-target is not needed in shimmer state\\n }\\n \"])), sysSizeTapTargetXs, sysSizeTapTargetXs);\n var shimmerSizeXl = css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral([\"\\n label: shimmer_size_xl;\\n width: \", \";\\n height: \", \";\\n &:before {\\n display: none; //tap-target is not needed in shimmer state\\n }\\n \"])), sysSizeCircleLg, sysSizeCircleLg);\n var loadingSpinner = css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral([\"\\n label: loading_spinner;\\n margin: 0;\\n \"])));\n var processingState = css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral([\"\\n label: processing_state;\\n pointer-events: none;\\n \"])));\n var successState = css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral([\"\\n label: success_state;\\n pointer-events: none;\\n background-color: \", \";\\n color: \", \";\\n &:hover {\\n background: \", \";\\n cursor: default;\\n }\\n &:active {\\n background: \", \";\\n }\\n \"])), getColorValue(colorTokens, sysColorSuccessMain, 'main'), getColorValue(colorTokens, sysColorSuccessContrast, 'contrast'), getColorValue(colorTokens, sysColorSuccessMain, 'main'), getColorValue(colorTokens, sysColorSuccessMain, 'main'));\n var label = css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral([\"\\n label: icon-button_label;\\n display: block;\\n text-align: center;\\n padding: \", \" \", \" 0 \", \";\\n width: inherit;\\n display: -webkit-box;\\n -webkit-line-clamp: 2;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n \"])), sysSpaceSm, sysSpaceSm, sysSpaceSm);\n return {\n base: base,\n container: container,\n successContainer: successContainer,\n processingContainer: processingContainer,\n primary: primary,\n inverse: inverse,\n sizeSm: sizeSm,\n sizeXl: sizeXl,\n secondary: secondary,\n secondaryInverse: secondaryInverse,\n tertiary: tertiary,\n tertiaryInverse: tertiaryInverse,\n screenReader: screenReader,\n icon: icon,\n shimmer: shimmer,\n shimmerSizeSm: shimmerSizeSm,\n shimmerSizeXl: shimmerSizeXl,\n loadingSpinner: loadingSpinner,\n processingState: processingState,\n successState: successState,\n label: label\n };\n}\n\nvar _excluded = [\"as\", \"iconName\", \"svgIconComponent\", \"className\", \"label\", \"iconClassName\", \"children\", \"buttonType\", \"btnState\", \"screenReaderText\", \"inverse\", \"size\", \"isLoading\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\n/* eslint-disable complexity */\nvar IconButton = forwardRef(function (props, ref) {\n var as = props.as,\n iconName = props.iconName,\n svgIconComponent = props.svgIconComponent,\n className = props.className,\n label = props.label,\n iconClassName = props.iconClassName,\n children = props.children,\n _props$buttonType = props.buttonType,\n buttonType = _props$buttonType === void 0 ? 'primary' : _props$buttonType,\n _props$btnState = props.btnState,\n btnState = _props$btnState === void 0 ? 'initial' : _props$btnState,\n screenReaderText = props.screenReaderText,\n inverse = props.inverse,\n size = props.size,\n isLoading = props.isLoading,\n rest = _objectWithoutProperties(props, _excluded); // If theme is not directly provided, get from themeContext\n\n\n var tokens = useTheme();\n var colorTokens = React.useContext(ColorContext);\n\n var _styles = useMemo(function () {\n return styles(tokens, colorTokens);\n }, [tokens, colorTokens]);\n\n if (isLoading) {\n var shimmerSizesStyleMap = {\n sm: _styles.shimmerSizeSm,\n xl: _styles.shimmerSizeXl\n };\n var shimmerCSSVal = [_styles.shimmer, shimmerSizesStyleMap[size]];\n return jsx(Shimmer, _extends({\n css: shimmerCSSVal,\n className: className,\n isInverse: inverse,\n hasStyleDefaults: false\n }, rest, {\n \"data-ppui\": \"true\"\n }), children);\n }\n /* istanbul ignore next */\n\n\n var iconSize = size === 'xl' ? 'md' : 'sm';\n var sizesStyleMap = {\n sm: _styles.sizeSm,\n xl: _styles.sizeXl\n };\n var cssVal = [_styles.base, sizesStyleMap[size], buttonType === 'primary' && _styles.primary, buttonType === 'secondary' && _styles.secondary, buttonType === 'tertiary' && _styles.tertiary, inverse && _styles.inverse, buttonType === 'secondary' && inverse && _styles.secondaryInverse, buttonType === 'tertiary' && inverse && _styles.tertiaryInverse, btnState === 'success' && _styles.successState, btnState === 'processing' && _styles.processingState];\n var withLabelCssVal = [_styles.base, size === 'sm' ? '' : sizesStyleMap[size], _styles.secondary, btnState === 'success' && _styles.successState, btnState === 'processing' && _styles.processingState];\n var Component = as || 'button';\n\n if (label) {\n Component = 'div';\n } // Setting type to null will not add the attribute:\n\n\n var type = Component === 'button' ? 'button' : null;\n var renderIconComponent = svgIconComponent ? jsx(svgIconComponent, {\n css: _styles.icon,\n className: iconClassName,\n name: iconName,\n size: iconSize,\n \"aria-hidden\": \"true\",\n \"data-ppui\": \"true\"\n }) : null; // Do not add rest props when there is a label. The `iconButtonComponent` component will be inside a wrapper.\n\n var restProps = !label ? _objectSpread({}, rest) : {};\n\n var componentProps = _objectSpread({\n className: className,\n css: label ? withLabelCssVal : cssVal,\n ref: ref,\n type: type,\n disabled: btnState && btnState !== 'initial'\n }, restProps);\n\n var iconButtonComponent = jsx(Component, _extends({\n \"data-ppui-info\": \"icon-button_3.6.4\"\n }, componentProps), btnState !== 'initial' ? function renderButtonState() {\n var iconProps = {\n css: _styles.icon\n };\n var buttonStateComponent = jsx(CheckmarkIcon, _extends({\n size: iconSize\n }, iconProps, {\n \"data-ppui\": \"true\"\n }));\n\n if (btnState === 'processing') {\n /* istanbul ignore next */\n var loadingSpinnerProps = {\n css: [_styles.icon, _styles.loadingSpinner],\n inverse: label ? false : buttonType === 'primary' || buttonType === 'tertiary' && inverse\n };\n buttonStateComponent = jsx(LoadingSpinner, _extends({\n size: iconSize\n }, loadingSpinnerProps, {\n \"data-ppui\": \"true\"\n }));\n }\n\n return jsx(React.Fragment, null, buttonStateComponent, jsx(\"span\", {\n css: _styles.screenReader,\n role: \"status\",\n \"data-ppui\": \"true\"\n }, screenReaderText || btnState));\n }() : jsx(React.Fragment, null, renderIconComponent, !label && jsx(\"span\", {\n css: _styles.screenReader,\n \"data-ppui\": \"true\"\n }, children)));\n\n if (!label) {\n return jsx(React.Fragment, null, iconButtonComponent);\n }\n\n return jsx(React.Fragment, null, function iconButtonComponentWithLabel() {\n var WrapperComponent = as !== null && as !== void 0 ? as : 'button';\n return jsx(WrapperComponent, _extends({\n css: [_styles.container, btnState === 'success' && _styles.successContainer, btnState === 'processing' && _styles.processingContainer],\n className: className,\n tabIndex: 0\n }, rest, {\n \"data-ppui\": \"true\"\n }), iconButtonComponent, jsx(\"span\", {\n css: _styles.label,\n \"data-ppui\": \"true\"\n }, label));\n }());\n});\n\nexport { IconButton, styles as iconButtonStyles };\n","/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexport { isPlainObject };\n","const perf =\n typeof performance === 'object' &&\n performance &&\n typeof performance.now === 'function'\n ? performance\n : Date\n\nconst hasAbortController = typeof AbortController === 'function'\n\n// minimal backwards-compatibility polyfill\n// this doesn't have nearly all the checks and whatnot that\n// actual AbortController/Signal has, but it's enough for\n// our purposes, and if used properly, behaves the same.\nconst AC = hasAbortController\n ? AbortController\n : class AbortController {\n constructor() {\n this.signal = new AS()\n }\n abort(reason = new Error('This operation was aborted')) {\n this.signal.reason = this.signal.reason || reason\n this.signal.aborted = true\n this.signal.dispatchEvent({\n type: 'abort',\n target: this.signal,\n })\n }\n }\n\nconst hasAbortSignal = typeof AbortSignal === 'function'\n// Some polyfills put this on the AC class, not global\nconst hasACAbortSignal = typeof AC.AbortSignal === 'function'\nconst AS = hasAbortSignal\n ? AbortSignal\n : hasACAbortSignal\n ? AC.AbortController\n : class AbortSignal {\n constructor() {\n this.reason = undefined\n this.aborted = false\n this._listeners = []\n }\n dispatchEvent(e) {\n if (e.type === 'abort') {\n this.aborted = true\n this.onabort(e)\n this._listeners.forEach(f => f(e), this)\n }\n }\n onabort() {}\n addEventListener(ev, fn) {\n if (ev === 'abort') {\n this._listeners.push(fn)\n }\n }\n removeEventListener(ev, fn) {\n if (ev === 'abort') {\n this._listeners = this._listeners.filter(f => f !== fn)\n }\n }\n }\n\nconst warned = new Set()\nconst deprecatedOption = (opt, instead) => {\n const code = `LRU_CACHE_OPTION_${opt}`\n if (shouldWarn(code)) {\n warn(code, `${opt} option`, `options.${instead}`, LRUCache)\n }\n}\nconst deprecatedMethod = (method, instead) => {\n const code = `LRU_CACHE_METHOD_${method}`\n if (shouldWarn(code)) {\n const { prototype } = LRUCache\n const { get } = Object.getOwnPropertyDescriptor(prototype, method)\n warn(code, `${method} method`, `cache.${instead}()`, get)\n }\n}\nconst deprecatedProperty = (field, instead) => {\n const code = `LRU_CACHE_PROPERTY_${field}`\n if (shouldWarn(code)) {\n const { prototype } = LRUCache\n const { get } = Object.getOwnPropertyDescriptor(prototype, field)\n warn(code, `${field} property`, `cache.${instead}`, get)\n }\n}\n\nconst emitWarning = (...a) => {\n typeof process === 'object' &&\n process &&\n typeof process.emitWarning === 'function'\n ? process.emitWarning(...a)\n : console.error(...a)\n}\n\nconst shouldWarn = code => !warned.has(code)\n\nconst warn = (code, what, instead, fn) => {\n warned.add(code)\n const msg = `The ${what} is deprecated. Please use ${instead} instead.`\n emitWarning(msg, 'DeprecationWarning', code, fn)\n}\n\nconst isPosInt = n => n && n === Math.floor(n) && n > 0 && isFinite(n)\n\n/* istanbul ignore next - This is a little bit ridiculous, tbh.\n * The maximum array length is 2^32-1 or thereabouts on most JS impls.\n * And well before that point, you're caching the entire world, I mean,\n * that's ~32GB of just integers for the next/prev links, plus whatever\n * else to hold that many keys and values. Just filling the memory with\n * zeroes at init time is brutal when you get that big.\n * But why not be complete?\n * Maybe in the future, these limits will have expanded. */\nconst getUintArray = max =>\n !isPosInt(max)\n ? null\n : max <= Math.pow(2, 8)\n ? Uint8Array\n : max <= Math.pow(2, 16)\n ? Uint16Array\n : max <= Math.pow(2, 32)\n ? Uint32Array\n : max <= Number.MAX_SAFE_INTEGER\n ? ZeroArray\n : null\n\nclass ZeroArray extends Array {\n constructor(size) {\n super(size)\n this.fill(0)\n }\n}\n\nclass Stack {\n constructor(max) {\n if (max === 0) {\n return []\n }\n const UintArray = getUintArray(max)\n this.heap = new UintArray(max)\n this.length = 0\n }\n push(n) {\n this.heap[this.length++] = n\n }\n pop() {\n return this.heap[--this.length]\n }\n}\n\nclass LRUCache {\n constructor(options = {}) {\n const {\n max = 0,\n ttl,\n ttlResolution = 1,\n ttlAutopurge,\n updateAgeOnGet,\n updateAgeOnHas,\n allowStale,\n dispose,\n disposeAfter,\n noDisposeOnSet,\n noUpdateTTL,\n maxSize = 0,\n maxEntrySize = 0,\n sizeCalculation,\n fetchMethod,\n fetchContext,\n noDeleteOnFetchRejection,\n noDeleteOnStaleGet,\n allowStaleOnFetchRejection,\n allowStaleOnFetchAbort,\n ignoreFetchAbort,\n } = options\n\n // deprecated options, don't trigger a warning for getting them if\n // the thing being passed in is another LRUCache we're copying.\n const { length, maxAge, stale } =\n options instanceof LRUCache ? {} : options\n\n if (max !== 0 && !isPosInt(max)) {\n throw new TypeError('max option must be a nonnegative integer')\n }\n\n const UintArray = max ? getUintArray(max) : Array\n if (!UintArray) {\n throw new Error('invalid max value: ' + max)\n }\n\n this.max = max\n this.maxSize = maxSize\n this.maxEntrySize = maxEntrySize || this.maxSize\n this.sizeCalculation = sizeCalculation || length\n if (this.sizeCalculation) {\n if (!this.maxSize && !this.maxEntrySize) {\n throw new TypeError(\n 'cannot set sizeCalculation without setting maxSize or maxEntrySize'\n )\n }\n if (typeof this.sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation set to non-function')\n }\n }\n\n this.fetchMethod = fetchMethod || null\n if (this.fetchMethod && typeof this.fetchMethod !== 'function') {\n throw new TypeError(\n 'fetchMethod must be a function if specified'\n )\n }\n\n this.fetchContext = fetchContext\n if (!this.fetchMethod && fetchContext !== undefined) {\n throw new TypeError(\n 'cannot set fetchContext without fetchMethod'\n )\n }\n\n this.keyMap = new Map()\n this.keyList = new Array(max).fill(null)\n this.valList = new Array(max).fill(null)\n this.next = new UintArray(max)\n this.prev = new UintArray(max)\n this.head = 0\n this.tail = 0\n this.free = new Stack(max)\n this.initialFill = 1\n this.size = 0\n\n if (typeof dispose === 'function') {\n this.dispose = dispose\n }\n if (typeof disposeAfter === 'function') {\n this.disposeAfter = disposeAfter\n this.disposed = []\n } else {\n this.disposeAfter = null\n this.disposed = null\n }\n this.noDisposeOnSet = !!noDisposeOnSet\n this.noUpdateTTL = !!noUpdateTTL\n this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection\n this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection\n this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort\n this.ignoreFetchAbort = !!ignoreFetchAbort\n\n // NB: maxEntrySize is set to maxSize if it's set\n if (this.maxEntrySize !== 0) {\n if (this.maxSize !== 0) {\n if (!isPosInt(this.maxSize)) {\n throw new TypeError(\n 'maxSize must be a positive integer if specified'\n )\n }\n }\n if (!isPosInt(this.maxEntrySize)) {\n throw new TypeError(\n 'maxEntrySize must be a positive integer if specified'\n )\n }\n this.initializeSizeTracking()\n }\n\n this.allowStale = !!allowStale || !!stale\n this.noDeleteOnStaleGet = !!noDeleteOnStaleGet\n this.updateAgeOnGet = !!updateAgeOnGet\n this.updateAgeOnHas = !!updateAgeOnHas\n this.ttlResolution =\n isPosInt(ttlResolution) || ttlResolution === 0\n ? ttlResolution\n : 1\n this.ttlAutopurge = !!ttlAutopurge\n this.ttl = ttl || maxAge || 0\n if (this.ttl) {\n if (!isPosInt(this.ttl)) {\n throw new TypeError(\n 'ttl must be a positive integer if specified'\n )\n }\n this.initializeTTLTracking()\n }\n\n // do not allow completely unbounded caches\n if (this.max === 0 && this.ttl === 0 && this.maxSize === 0) {\n throw new TypeError(\n 'At least one of max, maxSize, or ttl is required'\n )\n }\n if (!this.ttlAutopurge && !this.max && !this.maxSize) {\n const code = 'LRU_CACHE_UNBOUNDED'\n if (shouldWarn(code)) {\n warned.add(code)\n const msg =\n 'TTL caching without ttlAutopurge, max, or maxSize can ' +\n 'result in unbounded memory consumption.'\n emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache)\n }\n }\n\n if (stale) {\n deprecatedOption('stale', 'allowStale')\n }\n if (maxAge) {\n deprecatedOption('maxAge', 'ttl')\n }\n if (length) {\n deprecatedOption('length', 'sizeCalculation')\n }\n }\n\n getRemainingTTL(key) {\n return this.has(key, { updateAgeOnHas: false }) ? Infinity : 0\n }\n\n initializeTTLTracking() {\n this.ttls = new ZeroArray(this.max)\n this.starts = new ZeroArray(this.max)\n\n this.setItemTTL = (index, ttl, start = perf.now()) => {\n this.starts[index] = ttl !== 0 ? start : 0\n this.ttls[index] = ttl\n if (ttl !== 0 && this.ttlAutopurge) {\n const t = setTimeout(() => {\n if (this.isStale(index)) {\n this.delete(this.keyList[index])\n }\n }, ttl + 1)\n /* istanbul ignore else - unref() not supported on all platforms */\n if (t.unref) {\n t.unref()\n }\n }\n }\n\n this.updateItemAge = index => {\n this.starts[index] = this.ttls[index] !== 0 ? perf.now() : 0\n }\n\n this.statusTTL = (status, index) => {\n if (status) {\n status.ttl = this.ttls[index]\n status.start = this.starts[index]\n status.now = cachedNow || getNow()\n status.remainingTTL = status.now + status.ttl - status.start\n }\n }\n\n // debounce calls to perf.now() to 1s so we're not hitting\n // that costly call repeatedly.\n let cachedNow = 0\n const getNow = () => {\n const n = perf.now()\n if (this.ttlResolution > 0) {\n cachedNow = n\n const t = setTimeout(\n () => (cachedNow = 0),\n this.ttlResolution\n )\n /* istanbul ignore else - not available on all platforms */\n if (t.unref) {\n t.unref()\n }\n }\n return n\n }\n\n this.getRemainingTTL = key => {\n const index = this.keyMap.get(key)\n if (index === undefined) {\n return 0\n }\n return this.ttls[index] === 0 || this.starts[index] === 0\n ? Infinity\n : this.starts[index] +\n this.ttls[index] -\n (cachedNow || getNow())\n }\n\n this.isStale = index => {\n return (\n this.ttls[index] !== 0 &&\n this.starts[index] !== 0 &&\n (cachedNow || getNow()) - this.starts[index] >\n this.ttls[index]\n )\n }\n }\n updateItemAge(_index) {}\n statusTTL(_status, _index) {}\n setItemTTL(_index, _ttl, _start) {}\n isStale(_index) {\n return false\n }\n\n initializeSizeTracking() {\n this.calculatedSize = 0\n this.sizes = new ZeroArray(this.max)\n this.removeItemSize = index => {\n this.calculatedSize -= this.sizes[index]\n this.sizes[index] = 0\n }\n this.requireSize = (k, v, size, sizeCalculation) => {\n // provisionally accept background fetches.\n // actual value size will be checked when they return.\n if (this.isBackgroundFetch(v)) {\n return 0\n }\n if (!isPosInt(size)) {\n if (sizeCalculation) {\n if (typeof sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation must be a function')\n }\n size = sizeCalculation(v, k)\n if (!isPosInt(size)) {\n throw new TypeError(\n 'sizeCalculation return invalid (expect positive integer)'\n )\n }\n } else {\n throw new TypeError(\n 'invalid size value (must be positive integer). ' +\n 'When maxSize or maxEntrySize is used, sizeCalculation or size ' +\n 'must be set.'\n )\n }\n }\n return size\n }\n this.addItemSize = (index, size, status) => {\n this.sizes[index] = size\n if (this.maxSize) {\n const maxSize = this.maxSize - this.sizes[index]\n while (this.calculatedSize > maxSize) {\n this.evict(true)\n }\n }\n this.calculatedSize += this.sizes[index]\n if (status) {\n status.entrySize = size\n status.totalCalculatedSize = this.calculatedSize\n }\n }\n }\n removeItemSize(_index) {}\n addItemSize(_index, _size) {}\n requireSize(_k, _v, size, sizeCalculation) {\n if (size || sizeCalculation) {\n throw new TypeError(\n 'cannot set size without setting maxSize or maxEntrySize on cache'\n )\n }\n }\n\n *indexes({ allowStale = this.allowStale } = {}) {\n if (this.size) {\n for (let i = this.tail; true; ) {\n if (!this.isValidIndex(i)) {\n break\n }\n if (allowStale || !this.isStale(i)) {\n yield i\n }\n if (i === this.head) {\n break\n } else {\n i = this.prev[i]\n }\n }\n }\n }\n\n *rindexes({ allowStale = this.allowStale } = {}) {\n if (this.size) {\n for (let i = this.head; true; ) {\n if (!this.isValidIndex(i)) {\n break\n }\n if (allowStale || !this.isStale(i)) {\n yield i\n }\n if (i === this.tail) {\n break\n } else {\n i = this.next[i]\n }\n }\n }\n }\n\n isValidIndex(index) {\n return (\n index !== undefined &&\n this.keyMap.get(this.keyList[index]) === index\n )\n }\n\n *entries() {\n for (const i of this.indexes()) {\n if (\n this.valList[i] !== undefined &&\n this.keyList[i] !== undefined &&\n !this.isBackgroundFetch(this.valList[i])\n ) {\n yield [this.keyList[i], this.valList[i]]\n }\n }\n }\n *rentries() {\n for (const i of this.rindexes()) {\n if (\n this.valList[i] !== undefined &&\n this.keyList[i] !== undefined &&\n !this.isBackgroundFetch(this.valList[i])\n ) {\n yield [this.keyList[i], this.valList[i]]\n }\n }\n }\n\n *keys() {\n for (const i of this.indexes()) {\n if (\n this.keyList[i] !== undefined &&\n !this.isBackgroundFetch(this.valList[i])\n ) {\n yield this.keyList[i]\n }\n }\n }\n *rkeys() {\n for (const i of this.rindexes()) {\n if (\n this.keyList[i] !== undefined &&\n !this.isBackgroundFetch(this.valList[i])\n ) {\n yield this.keyList[i]\n }\n }\n }\n\n *values() {\n for (const i of this.indexes()) {\n if (\n this.valList[i] !== undefined &&\n !this.isBackgroundFetch(this.valList[i])\n ) {\n yield this.valList[i]\n }\n }\n }\n *rvalues() {\n for (const i of this.rindexes()) {\n if (\n this.valList[i] !== undefined &&\n !this.isBackgroundFetch(this.valList[i])\n ) {\n yield this.valList[i]\n }\n }\n }\n\n [Symbol.iterator]() {\n return this.entries()\n }\n\n find(fn, getOptions) {\n for (const i of this.indexes()) {\n const v = this.valList[i]\n const value = this.isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v\n if (value === undefined) continue\n if (fn(value, this.keyList[i], this)) {\n return this.get(this.keyList[i], getOptions)\n }\n }\n }\n\n forEach(fn, thisp = this) {\n for (const i of this.indexes()) {\n const v = this.valList[i]\n const value = this.isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v\n if (value === undefined) continue\n fn.call(thisp, value, this.keyList[i], this)\n }\n }\n\n rforEach(fn, thisp = this) {\n for (const i of this.rindexes()) {\n const v = this.valList[i]\n const value = this.isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v\n if (value === undefined) continue\n fn.call(thisp, value, this.keyList[i], this)\n }\n }\n\n get prune() {\n deprecatedMethod('prune', 'purgeStale')\n return this.purgeStale\n }\n\n purgeStale() {\n let deleted = false\n for (const i of this.rindexes({ allowStale: true })) {\n if (this.isStale(i)) {\n this.delete(this.keyList[i])\n deleted = true\n }\n }\n return deleted\n }\n\n dump() {\n const arr = []\n for (const i of this.indexes({ allowStale: true })) {\n const key = this.keyList[i]\n const v = this.valList[i]\n const value = this.isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v\n if (value === undefined) continue\n const entry = { value }\n if (this.ttls) {\n entry.ttl = this.ttls[i]\n // always dump the start relative to a portable timestamp\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = perf.now() - this.starts[i]\n entry.start = Math.floor(Date.now() - age)\n }\n if (this.sizes) {\n entry.size = this.sizes[i]\n }\n arr.unshift([key, entry])\n }\n return arr\n }\n\n load(arr) {\n this.clear()\n for (const [key, entry] of arr) {\n if (entry.start) {\n // entry.start is a portable timestamp, but we may be using\n // node's performance.now(), so calculate the offset.\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = Date.now() - entry.start\n entry.start = perf.now() - age\n }\n this.set(key, entry.value, entry)\n }\n }\n\n dispose(_v, _k, _reason) {}\n\n set(\n k,\n v,\n {\n ttl = this.ttl,\n start,\n noDisposeOnSet = this.noDisposeOnSet,\n size = 0,\n sizeCalculation = this.sizeCalculation,\n noUpdateTTL = this.noUpdateTTL,\n status,\n } = {}\n ) {\n size = this.requireSize(k, v, size, sizeCalculation)\n // if the item doesn't fit, don't do anything\n // NB: maxEntrySize set to maxSize by default\n if (this.maxEntrySize && size > this.maxEntrySize) {\n if (status) {\n status.set = 'miss'\n status.maxEntrySizeExceeded = true\n }\n // have to delete, in case a background fetch is there already.\n // in non-async cases, this is a no-op\n this.delete(k)\n return this\n }\n let index = this.size === 0 ? undefined : this.keyMap.get(k)\n if (index === undefined) {\n // addition\n index = this.newIndex()\n this.keyList[index] = k\n this.valList[index] = v\n this.keyMap.set(k, index)\n this.next[this.tail] = index\n this.prev[index] = this.tail\n this.tail = index\n this.size++\n this.addItemSize(index, size, status)\n if (status) {\n status.set = 'add'\n }\n noUpdateTTL = false\n } else {\n // update\n this.moveToTail(index)\n const oldVal = this.valList[index]\n if (v !== oldVal) {\n if (this.isBackgroundFetch(oldVal)) {\n oldVal.__abortController.abort(new Error('replaced'))\n } else {\n if (!noDisposeOnSet) {\n this.dispose(oldVal, k, 'set')\n if (this.disposeAfter) {\n this.disposed.push([oldVal, k, 'set'])\n }\n }\n }\n this.removeItemSize(index)\n this.valList[index] = v\n this.addItemSize(index, size, status)\n if (status) {\n status.set = 'replace'\n const oldValue =\n oldVal && this.isBackgroundFetch(oldVal)\n ? oldVal.__staleWhileFetching\n : oldVal\n if (oldValue !== undefined) status.oldValue = oldValue\n }\n } else if (status) {\n status.set = 'update'\n }\n }\n if (ttl !== 0 && this.ttl === 0 && !this.ttls) {\n this.initializeTTLTracking()\n }\n if (!noUpdateTTL) {\n this.setItemTTL(index, ttl, start)\n }\n this.statusTTL(status, index)\n if (this.disposeAfter) {\n while (this.disposed.length) {\n this.disposeAfter(...this.disposed.shift())\n }\n }\n return this\n }\n\n newIndex() {\n if (this.size === 0) {\n return this.tail\n }\n if (this.size === this.max && this.max !== 0) {\n return this.evict(false)\n }\n if (this.free.length !== 0) {\n return this.free.pop()\n }\n // initial fill, just keep writing down the list\n return this.initialFill++\n }\n\n pop() {\n if (this.size) {\n const val = this.valList[this.head]\n this.evict(true)\n return val\n }\n }\n\n evict(free) {\n const head = this.head\n const k = this.keyList[head]\n const v = this.valList[head]\n if (this.isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('evicted'))\n } else {\n this.dispose(v, k, 'evict')\n if (this.disposeAfter) {\n this.disposed.push([v, k, 'evict'])\n }\n }\n this.removeItemSize(head)\n // if we aren't about to use the index, then null these out\n if (free) {\n this.keyList[head] = null\n this.valList[head] = null\n this.free.push(head)\n }\n this.head = this.next[head]\n this.keyMap.delete(k)\n this.size--\n return head\n }\n\n has(k, { updateAgeOnHas = this.updateAgeOnHas, status } = {}) {\n const index = this.keyMap.get(k)\n if (index !== undefined) {\n if (!this.isStale(index)) {\n if (updateAgeOnHas) {\n this.updateItemAge(index)\n }\n if (status) status.has = 'hit'\n this.statusTTL(status, index)\n return true\n } else if (status) {\n status.has = 'stale'\n this.statusTTL(status, index)\n }\n } else if (status) {\n status.has = 'miss'\n }\n return false\n }\n\n // like get(), but without any LRU updating or TTL expiration\n peek(k, { allowStale = this.allowStale } = {}) {\n const index = this.keyMap.get(k)\n if (index !== undefined && (allowStale || !this.isStale(index))) {\n const v = this.valList[index]\n // either stale and allowed, or forcing a refresh of non-stale value\n return this.isBackgroundFetch(v) ? v.__staleWhileFetching : v\n }\n }\n\n backgroundFetch(k, index, options, context) {\n const v = index === undefined ? undefined : this.valList[index]\n if (this.isBackgroundFetch(v)) {\n return v\n }\n const ac = new AC()\n if (options.signal) {\n options.signal.addEventListener('abort', () =>\n ac.abort(options.signal.reason)\n )\n }\n const fetchOpts = {\n signal: ac.signal,\n options,\n context,\n }\n const cb = (v, updateCache = false) => {\n const { aborted } = ac.signal\n const ignoreAbort = options.ignoreFetchAbort && v !== undefined\n if (options.status) {\n if (aborted && !updateCache) {\n options.status.fetchAborted = true\n options.status.fetchError = ac.signal.reason\n if (ignoreAbort) options.status.fetchAbortIgnored = true\n } else {\n options.status.fetchResolved = true\n }\n }\n if (aborted && !ignoreAbort && !updateCache) {\n return fetchFail(ac.signal.reason)\n }\n // either we didn't abort, and are still here, or we did, and ignored\n if (this.valList[index] === p) {\n if (v === undefined) {\n if (p.__staleWhileFetching) {\n this.valList[index] = p.__staleWhileFetching\n } else {\n this.delete(k)\n }\n } else {\n if (options.status) options.status.fetchUpdated = true\n this.set(k, v, fetchOpts.options)\n }\n }\n return v\n }\n const eb = er => {\n if (options.status) {\n options.status.fetchRejected = true\n options.status.fetchError = er\n }\n return fetchFail(er)\n }\n const fetchFail = er => {\n const { aborted } = ac.signal\n const allowStaleAborted =\n aborted && options.allowStaleOnFetchAbort\n const allowStale =\n allowStaleAborted || options.allowStaleOnFetchRejection\n const noDelete = allowStale || options.noDeleteOnFetchRejection\n if (this.valList[index] === p) {\n // if we allow stale on fetch rejections, then we need to ensure that\n // the stale value is not removed from the cache when the fetch fails.\n const del = !noDelete || p.__staleWhileFetching === undefined\n if (del) {\n this.delete(k)\n } else if (!allowStaleAborted) {\n // still replace the *promise* with the stale value,\n // since we are done with the promise at this point.\n // leave it untouched if we're still waiting for an\n // aborted background fetch that hasn't yet returned.\n this.valList[index] = p.__staleWhileFetching\n }\n }\n if (allowStale) {\n if (options.status && p.__staleWhileFetching !== undefined) {\n options.status.returnedStale = true\n }\n return p.__staleWhileFetching\n } else if (p.__returned === p) {\n throw er\n }\n }\n const pcall = (res, rej) => {\n this.fetchMethod(k, v, fetchOpts).then(v => res(v), rej)\n // ignored, we go until we finish, regardless.\n // defer check until we are actually aborting,\n // so fetchMethod can override.\n ac.signal.addEventListener('abort', () => {\n if (\n !options.ignoreFetchAbort ||\n options.allowStaleOnFetchAbort\n ) {\n res()\n // when it eventually resolves, update the cache.\n if (options.allowStaleOnFetchAbort) {\n res = v => cb(v, true)\n }\n }\n })\n }\n if (options.status) options.status.fetchDispatched = true\n const p = new Promise(pcall).then(cb, eb)\n p.__abortController = ac\n p.__staleWhileFetching = v\n p.__returned = null\n if (index === undefined) {\n // internal, don't expose status.\n this.set(k, p, { ...fetchOpts.options, status: undefined })\n index = this.keyMap.get(k)\n } else {\n this.valList[index] = p\n }\n return p\n }\n\n isBackgroundFetch(p) {\n return (\n p &&\n typeof p === 'object' &&\n typeof p.then === 'function' &&\n Object.prototype.hasOwnProperty.call(\n p,\n '__staleWhileFetching'\n ) &&\n Object.prototype.hasOwnProperty.call(p, '__returned') &&\n (p.__returned === p || p.__returned === null)\n )\n }\n\n // this takes the union of get() and set() opts, because it does both\n async fetch(\n k,\n {\n // get options\n allowStale = this.allowStale,\n updateAgeOnGet = this.updateAgeOnGet,\n noDeleteOnStaleGet = this.noDeleteOnStaleGet,\n // set options\n ttl = this.ttl,\n noDisposeOnSet = this.noDisposeOnSet,\n size = 0,\n sizeCalculation = this.sizeCalculation,\n noUpdateTTL = this.noUpdateTTL,\n // fetch exclusive options\n noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,\n allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,\n ignoreFetchAbort = this.ignoreFetchAbort,\n allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,\n fetchContext = this.fetchContext,\n forceRefresh = false,\n status,\n signal,\n } = {}\n ) {\n if (!this.fetchMethod) {\n if (status) status.fetch = 'get'\n return this.get(k, {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n status,\n })\n }\n\n const options = {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n ttl,\n noDisposeOnSet,\n size,\n sizeCalculation,\n noUpdateTTL,\n noDeleteOnFetchRejection,\n allowStaleOnFetchRejection,\n allowStaleOnFetchAbort,\n ignoreFetchAbort,\n status,\n signal,\n }\n\n let index = this.keyMap.get(k)\n if (index === undefined) {\n if (status) status.fetch = 'miss'\n const p = this.backgroundFetch(k, index, options, fetchContext)\n return (p.__returned = p)\n } else {\n // in cache, maybe already fetching\n const v = this.valList[index]\n if (this.isBackgroundFetch(v)) {\n const stale =\n allowStale && v.__staleWhileFetching !== undefined\n if (status) {\n status.fetch = 'inflight'\n if (stale) status.returnedStale = true\n }\n return stale ? v.__staleWhileFetching : (v.__returned = v)\n }\n\n // if we force a refresh, that means do NOT serve the cached value,\n // unless we are already in the process of refreshing the cache.\n const isStale = this.isStale(index)\n if (!forceRefresh && !isStale) {\n if (status) status.fetch = 'hit'\n this.moveToTail(index)\n if (updateAgeOnGet) {\n this.updateItemAge(index)\n }\n this.statusTTL(status, index)\n return v\n }\n\n // ok, it is stale or a forced refresh, and not already fetching.\n // refresh the cache.\n const p = this.backgroundFetch(k, index, options, fetchContext)\n const hasStale = p.__staleWhileFetching !== undefined\n const staleVal = hasStale && allowStale\n if (status) {\n status.fetch = hasStale && isStale ? 'stale' : 'refresh'\n if (staleVal && isStale) status.returnedStale = true\n }\n return staleVal ? p.__staleWhileFetching : (p.__returned = p)\n }\n }\n\n get(\n k,\n {\n allowStale = this.allowStale,\n updateAgeOnGet = this.updateAgeOnGet,\n noDeleteOnStaleGet = this.noDeleteOnStaleGet,\n status,\n } = {}\n ) {\n const index = this.keyMap.get(k)\n if (index !== undefined) {\n const value = this.valList[index]\n const fetching = this.isBackgroundFetch(value)\n this.statusTTL(status, index)\n if (this.isStale(index)) {\n if (status) status.get = 'stale'\n // delete only if not an in-flight background fetch\n if (!fetching) {\n if (!noDeleteOnStaleGet) {\n this.delete(k)\n }\n if (status) status.returnedStale = allowStale\n return allowStale ? value : undefined\n } else {\n if (status) {\n status.returnedStale =\n allowStale && value.__staleWhileFetching !== undefined\n }\n return allowStale ? value.__staleWhileFetching : undefined\n }\n } else {\n if (status) status.get = 'hit'\n // if we're currently fetching it, we don't actually have it yet\n // it's not stale, which means this isn't a staleWhileRefetching.\n // If it's not stale, and fetching, AND has a __staleWhileFetching\n // value, then that means the user fetched with {forceRefresh:true},\n // so it's safe to return that value.\n if (fetching) {\n return value.__staleWhileFetching\n }\n this.moveToTail(index)\n if (updateAgeOnGet) {\n this.updateItemAge(index)\n }\n return value\n }\n } else if (status) {\n status.get = 'miss'\n }\n }\n\n connect(p, n) {\n this.prev[n] = p\n this.next[p] = n\n }\n\n moveToTail(index) {\n // if tail already, nothing to do\n // if head, move head to next[index]\n // else\n // move next[prev[index]] to next[index] (head has no prev)\n // move prev[next[index]] to prev[index]\n // prev[index] = tail\n // next[tail] = index\n // tail = index\n if (index !== this.tail) {\n if (index === this.head) {\n this.head = this.next[index]\n } else {\n this.connect(this.prev[index], this.next[index])\n }\n this.connect(this.tail, index)\n this.tail = index\n }\n }\n\n get del() {\n deprecatedMethod('del', 'delete')\n return this.delete\n }\n\n delete(k) {\n let deleted = false\n if (this.size !== 0) {\n const index = this.keyMap.get(k)\n if (index !== undefined) {\n deleted = true\n if (this.size === 1) {\n this.clear()\n } else {\n this.removeItemSize(index)\n const v = this.valList[index]\n if (this.isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'))\n } else {\n this.dispose(v, k, 'delete')\n if (this.disposeAfter) {\n this.disposed.push([v, k, 'delete'])\n }\n }\n this.keyMap.delete(k)\n this.keyList[index] = null\n this.valList[index] = null\n if (index === this.tail) {\n this.tail = this.prev[index]\n } else if (index === this.head) {\n this.head = this.next[index]\n } else {\n this.next[this.prev[index]] = this.next[index]\n this.prev[this.next[index]] = this.prev[index]\n }\n this.size--\n this.free.push(index)\n }\n }\n }\n if (this.disposed) {\n while (this.disposed.length) {\n this.disposeAfter(...this.disposed.shift())\n }\n }\n return deleted\n }\n\n clear() {\n for (const index of this.rindexes({ allowStale: true })) {\n const v = this.valList[index]\n if (this.isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'))\n } else {\n const k = this.keyList[index]\n this.dispose(v, k, 'delete')\n if (this.disposeAfter) {\n this.disposed.push([v, k, 'delete'])\n }\n }\n }\n\n this.keyMap.clear()\n this.valList.fill(null)\n this.keyList.fill(null)\n if (this.ttls) {\n this.ttls.fill(0)\n this.starts.fill(0)\n }\n if (this.sizes) {\n this.sizes.fill(0)\n }\n this.head = 0\n this.tail = 0\n this.initialFill = 1\n this.free.length = 0\n this.calculatedSize = 0\n this.size = 0\n if (this.disposed) {\n while (this.disposed.length) {\n this.disposeAfter(...this.disposed.shift())\n }\n }\n }\n\n get reset() {\n deprecatedMethod('reset', 'clear')\n return this.clear\n }\n\n get length() {\n deprecatedProperty('length', 'size')\n return this.size\n }\n\n static get AbortController() {\n return AC\n }\n static get AbortSignal() {\n return AS\n }\n}\n\nexport default LRUCache\n","import 'core-js/modules/es.array.map';\nimport 'core-js/modules/es.object.assign';\nimport 'core-js/modules/es.regexp.exec';\nimport 'core-js/modules/es.string.replace';\nimport 'core-js/modules/es.string.split';\nimport { isPlainObject } from 'is-plain-object';\nimport { assert, assertType } from 'yaassertion';\nimport LRU from 'lru-cache';\n\nvar Globalize = require('@paypalcorp/globalize/dist/globalize');\n\n/**\n * Given a locale, it will return certain old locales to new form\n * @param {locale} locale to replace\n * @return {new_locale}\n */\nfunction normalizeLocale(locale) {\n // prettier-ignore\n return locale.replace(/\\bno\\b/, \"nb\").replace(/\\btl\\b/, \"fil\");\n}\nvar countryAliasMapping = {\n C2: \"CN\",\n UK: \"GB\"\n};\nfunction getResolvedRegion(region) {\n return countryAliasMapping[region] || region;\n}\nvar ENVIRONMENT = {\n PRODUCTION: \"production\"\n};\n\n/**\n * max: maximum number of keys that the cache can have\n * ttl: time to live in milliseconds (currently it's set to 10 minutes)\n */\nvar DEFAULT_CACHE_CONFIG = {\n max: 400,\n ttl: 10 * 60 * 1000\n};\n\n/**\n * Wrapper for LRU cache that can be used across worldready sdk.\n */\nvar Cache = /*#__PURE__*/function () {\n function Cache(options) {\n if (options === void 0) {\n options = {};\n }\n if (process.env.NODE_ENV !== ENVIRONMENT.PRODUCTION) {\n assertType(options, \"options\", [\"plain object\"]);\n }\n options = Object.assign({}, DEFAULT_CACHE_CONFIG, options);\n this.cache = new LRU(options);\n }\n\n /**\n * Utility function to set the value in cache.\n * @param {String} key string value that should be used as cache key\n * @param {Any} value value that needs to be stored in cache (can be string, number, object, etc.)\n * @param {Object} options an optional object that can have following props:\n * size\n * sizeCalculation\n * ttl\n * noDisposeOnSet\n * start\n * For more details, refer this link: https://github.com/isaacs/node-lru-cache#setkey-value--size-sizecalculation-ttl-nodisposeonset-start-\n * @returns {Any} value that's added to the cache\n */\n var _proto = Cache.prototype;\n _proto.set = function set(key, value, options) {\n if (options === void 0) {\n options = {};\n }\n return this.cache.set(key, value, options);\n }\n\n /**\n * Utility function to retrieve a value from cache.\n * @param {String} key string value that was used as key while entering the value in cache\n * @param {Object} options an optional object that can have following props:\n * updateAgeOnGet\n * allowStale\n * For more details, refer this link: https://github.com/isaacs/node-lru-cache#getkey--updateageonget-allowstale-----value\n * @returns {Any} value that's stored in cache for the corresponding key. It'll return undefined if key is not found.\n */;\n _proto.get = function get(key, options) {\n if (options === void 0) {\n options = {};\n }\n return this.cache.get(key, options);\n }\n\n /**\n * Utility function to check if value for a certain key is present in cache or not.\n * @param {*} key string value that could've been used as key while entering the value in cache\n * @param {*} options an optional object that can have following props:\n * updateAgeOnHas: if set to false, the recency of the key won't be updated\n * @returns {Boolean}\n */;\n _proto.has = function has(key, options) {\n if (options === void 0) {\n options = {};\n }\n return this.cache.has(key, options);\n }\n\n /**\n * Utility function to delete a key from cache.\n * @param {String} key string value that was used as key while entering the value in cache\n * @returns {Boolean} true if key was found, otherwise false\n */;\n _proto.delete = function _delete(key) {\n return this.cache.delete(key);\n }\n\n /**\n * Utility function to get total number of items present in cache.\n */;\n _proto.size = function size() {\n return this.cache.size;\n }\n\n /**\n * Helper function to clear contents of cache.\n */;\n _proto.clear = function clear() {\n return this.cache.clear();\n };\n return Cache;\n}();\nrequire(\"./globalize-overrides/relative-time\");\nrequire(\"./globalize-overrides/unit\");\nrequire(\"./globalize-overrides/date\");\n\n// Internationalization and localization data providers array:\nvar isWorldReadyLoadCalled;\nvar isWorldReadyInstance = function isWorldReadyInstance(object) {\n return object && object.globalize;\n};\nfunction _normalizeLocale(locale, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$langSubtag = _ref.langSubtag,\n langSubtag = _ref$langSubtag === void 0 ? true : _ref$langSubtag;\n if (locale.payPalLocaleCode) {\n // A payPalLocaleCode to existing limited locale support.\n var _locale$payPalLocaleC = locale.payPalLocaleCode,\n _locale = _locale$payPalLocaleC.locale,\n _country = _locale$payPalLocaleC.country;\n var _locale$split = _locale.split(/[-_]/),\n _localeLanguage = _locale$split[0];\n locale = _localeLanguage + \"-\" + _country;\n\n // A payPalLocaleCode to standard locale normalization: (when PayPal supports all locales anywhere)\n // const { locale: _locale } = locale.payPalLocaleCode;\n // const [_localeLanguage, _localeCountry] = _locale.split(/[-_]/);\n // if (_localeCountry === \"XC\") {\n // if (_localeLanguage === \"es\") {\n // // es_XC -> es-MX\n // locale = \"es-MX\";\n // } else {\n // // fr_XC -> fr\n // // zh_XC -> zh\n // locale = _localeLanguage;\n // }\n // } else {\n // locale = _locale;\n // }\n }\n if (process.env.NODE_ENV !== \"production\") {\n assert(typeof locale === \"string\", typeof locale === \"object\" ? \"Invalid locale {{locale}}. Did you mean {{didYouMean}}?\" : \"Invalid locale {{locale}}\", {\n locale: locale,\n didYouMean: {\n payPalLocaleCode: locale\n }\n });\n }\n locale = locale\n // Support both _ & - as locale separator.\n // Note: This must precede other replaces using `\\b`.\n .replace(/_/, \"-\")\n // If locale includes C2, replace it with CN-xbord\n .replace(/\\bC2\\b/, \"CN-xbord\");\n if (langSubtag) {\n locale = normalizeLocale(locale);\n }\n return locale;\n}\n\n/**\n * Region\n */\nvar Region = /*#__PURE__*/function () {\n function Region() {}\n Region.getRegionString = function getRegionString(worldReadyOrRegionOrString) {\n if (worldReadyOrRegionOrString && worldReadyOrRegionOrString.region) {\n return getResolvedRegion(worldReadyOrRegionOrString.region);\n }\n return getResolvedRegion(worldReadyOrRegionOrString);\n };\n return Region;\n}();\nif (process.env.NODE_ENV !== \"production\") {\n Region.assertType = function (parameterValue, parameterName) {\n assertType(parameterValue, parameterName, [\"string\", \"object\"]);\n };\n}\n\n/**\n * WorldReady\n */\nvar WorldReady = function WorldReady(locale) {\n var _main;\n if (process.env.NODE_ENV !== \"production\") {\n assert(isWorldReadyLoadCalled, \"Load WorldReady metadata first. Please read \" + \"https://github.paypal.com/pages/Globalization-R/worldready-js\" + \"/about-load-worldready-data.html\");\n }\n if (!(this instanceof WorldReady)) {\n return new WorldReady(locale);\n }\n\n // TODO assert locale\n locale = _normalizeLocale(locale);\n\n // Hack: set any locale as available locale.\n Globalize.load({\n main: (_main = {}, _main[locale] = {}, _main)\n });\n this.globalize = new Globalize(locale);\n var cldr = this.globalize.cldr;\n this.bundle = cldr.attributes.bundle;\n this.locale = cldr.locale;\n this.language = cldr.attributes.language;\n this.region = cldr.attributes.region;\n this.market = this.region;\n this.weekInfo = {\n minDays: cldr.get([\"supplemental/weekData/minDays\", this.region]) || cldr.get(\"supplemental/weekData/minDays/001\"),\n firstDay: cldr.get([\"supplemental/weekData/firstDay\", this.region]) || cldr.get(\"supplemental/weekData/firstDay/001\"),\n weekendStart: cldr.get([\"supplemental/weekData/weekendStart\", this.region]) || cldr.get(\"supplemental/weekData/weekendStart/001\"),\n weekendEnd: cldr.get([\"supplemental/weekData/weekendEnd\", this.region]) || cldr.get(\"supplemental/weekData/weekendEnd/001\")\n };\n this.metadata = cldr.get([\"metadata\"]) || {};\n};\n\n/**\n * async WorldReady.load()\n */\n{\n // Client-side\n WorldReady.load = function () {\n // TODO assert params\n isWorldReadyLoadCalled = true;\n for (var _len = arguments.length, providers = new Array(_len), _key = 0; _key < _len; _key++) {\n providers[_key] = arguments[_key];\n }\n providers.map(function (provider) {\n if (isPlainObject(provider)) {\n Globalize.load(provider);\n return;\n }\n throw new Error(\"Oops: Async provider not supported in browsers at the moment\");\n });\n };\n}\nWorldReady._Globalize = Globalize;\nWorldReady.cache = new Cache();\n\n/**\n * WorldReady features skeleton\n */\nif (process.env.NODE_ENV !== \"production\") {\n var loadError = function loadError(feature) {\n return function () {\n throw new Error(\"Missing feature, you may want to `import @paypalcorp/worldready-\" + feature + \"`\");\n };\n };\n WorldReady.prototype.Address = loadError(\"address\");\n WorldReady.prototype.RelativeTimeFormat = loadError(\"relative-time\");\n WorldReady.prototype.MessageFormat = loadError(\"message\");\n WorldReady.prototype.NumberFormat = loadError(\"number\");\n WorldReady.prototype.CurrencyFormat = loadError(\"currency\");\n}\nvar Griffin = WorldReady;\n\nexport { Griffin, Region, WorldReady, _normalizeLocale, isWorldReadyInstance };\n","import _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport { css, keyframes, useTheme, jsx } from '@emotion/react';\nimport { math, stripUnit, remToPx } from 'polished';\nimport { textStyles } from '@paypalcorp/pp-react-text';\nimport { devWarning, utilStyles, getColorValue, ColorContext, hasWindow } from '@paypalcorp/pp-react-utils';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React, { forwardRef, useMemo, useState, useRef, Children } from 'react';\nimport { LoadingSpinner } from '@paypalcorp/pp-react-loading-spinner';\nimport { CheckmarkIcon, ChevronUpIcon, ChevronDownIcon } from '@paypalcorp/pp-react-icons';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport { ActionMenu } from '@paypalcorp/pp-react-menu';\n\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21;\nfunction styles(tokens, colorTokens) {\n /* istanbul ignore next */\n if (!Object.keys(tokens).length) {\n devWarning('Missing Emotion theme. Use ThemeProvider from @emotion/react to pass a valid theme from pp-react.');\n return {};\n }\n\n var sysSpaceSm = tokens.sysSpaceSm,\n sysSpaceMd = tokens.sysSpaceMd,\n sysSpaceLg = tokens.sysSpaceLg,\n sysSpaceJumbo = tokens.sysSpaceJumbo,\n sysBorderRadiusSm = tokens.sysBorderRadiusSm,\n sysBorderThicknessEmphasis = tokens.sysBorderThicknessEmphasis,\n sysSizeIndicatorMd = tokens.sysSizeIndicatorMd,\n sysMotionDurationAction = tokens.sysMotionDurationAction,\n sysColorPrimaryMain = tokens.sysColorPrimaryMain,\n sysColorPrimaryContrast = tokens.sysColorPrimaryContrast,\n sysColorPrimaryMainHover = tokens.sysColorPrimaryMainHover,\n sysColorPrimaryMainActive = tokens.sysColorPrimaryMainActive,\n sysColorPrimaryContrastHover = tokens.sysColorPrimaryContrastHover,\n sysColorPrimaryContrastActive = tokens.sysColorPrimaryContrastActive,\n sysColorFeaturedMain = tokens.sysColorFeaturedMain,\n sysColorFeaturedMainHover = tokens.sysColorFeaturedMainHover,\n sysColorFeaturedMainActive = tokens.sysColorFeaturedMainActive,\n sysColorFeaturedContrast = tokens.sysColorFeaturedContrast,\n sysColorSecondaryMain = tokens.sysColorSecondaryMain,\n sysColorSuccessMain = tokens.sysColorSuccessMain,\n sysMotionDurationHover = tokens.sysMotionDurationHover,\n sysSizeMediaMd = tokens.sysSizeMediaMd,\n sysSizeMediaSm = tokens.sysSizeMediaSm;\n\n var _utilStyles = utilStyles(tokens),\n screenReader = _utilStyles.screenReader,\n focusStyles = _utilStyles.focusStyles;\n\n var _textStyles = textStyles(tokens),\n buttonLg = _textStyles.buttonLg,\n buttonSm = _textStyles.buttonSm;\n\n var focusOffsetElement = focusStyles.focusOffsetElement; // Base Styles for button\n\n var base = css(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n label: button_base;\\n position: relative;\\n border-radius: 1000px;\\n color: \", \";\\n cursor: pointer;\\n display: inline-block;\\n min-width: \", \";\\n text-align: center;\\n text-decoration: none;\\n transition: color \", \" ease,\\n background-color \", \" ease,\\n border-color \", \" ease;\\n border: \", \" solid\\n \", \";\\n \", \";\\n background-color: \", \";\\n padding: \", \"\\n \", \";\\n\\n &:hover,\\n &:active,\\n &:visited {\\n color: \", \";\\n }\\n\\n &:hover {\\n text-decoration: none;\\n background-color: \", \";\\n border-color: \", \";\\n }\\n\\n &:active {\\n outline: none;\\n background-color: \", \";\\n border-color: \", \";\\n }\\n\\n &:focus {\\n outline: none;\\n \", \";\\n }\\n \"])), getColorValue(colorTokens, sysColorPrimaryContrast, 'contrast'), '6rem', sysMotionDurationAction, sysMotionDurationAction, sysMotionDurationAction, sysBorderThicknessEmphasis, getColorValue(colorTokens, sysColorPrimaryMain, 'main'), buttonLg({\n color: getColorValue(colorTokens, sysColorPrimaryContrast, 'contrast')\n }), getColorValue(colorTokens, sysColorPrimaryMain, 'main'), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceJumbo, \" - \").concat(sysBorderThicknessEmphasis)), getColorValue(colorTokens, sysColorPrimaryContrast, 'contrast'), getColorValue(colorTokens, sysColorPrimaryMainHover, 'hover'), getColorValue(colorTokens, sysColorPrimaryMainHover, 'hover'), getColorValue(colorTokens, sysColorPrimaryMainActive, 'active'), getColorValue(colorTokens, sysColorPrimaryMainActive, 'active'), focusOffsetElement); // Styles for button in dark background\n\n var inverse = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n label: inverse;\\n background-color: \", \";\\n border-color: \", \";\\n color: \", \";\\n\\n &:hover,\\n &:active,\\n &:visited {\\n color: \", \";\\n }\\n\\n &:hover {\\n background: \", \";\\n border-color: \", \";\\n }\\n\\n &:active {\\n background: \", \";\\n border-color: \", \";\\n }\\n\\n &:focus {\\n border: 2px solid \", \";\\n }\\n \"])), getColorValue(colorTokens, sysColorPrimaryContrast, 'contrast'), getColorValue(colorTokens, sysColorPrimaryContrast, 'contrast'), getColorValue(colorTokens, sysColorPrimaryMain, 'main'), getColorValue(colorTokens, sysColorPrimaryMain, 'main'), getColorValue(colorTokens, sysColorPrimaryContrastHover, 'hover'), getColorValue(colorTokens, sysColorPrimaryContrastHover, 'hover'), getColorValue(colorTokens, sysColorPrimaryContrastActive, 'active'), getColorValue(colorTokens, sysColorPrimaryContrastActive, 'active'), sysColorPrimaryMain); // Styles for secondary buttons\n\n var secondary = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\\n label: secondary;\\n background: transparent;\\n border-color: \", \";\\n color: \", \";\\n\\n &:visited {\\n color: \", \";\\n }\\n\\n &:hover {\\n background: transparent;\\n color: \", \";\\n border-color: \", \";\\n }\\n\\n &:active {\\n background: transparent;\\n color: \", \";\\n border-color: \", \";\\n }\\n \"])), getColorValue(colorTokens, sysColorPrimaryMain, 'main'), getColorValue(colorTokens, sysColorPrimaryMain, 'main'), getColorValue(colorTokens, sysColorPrimaryMain, 'main'), getColorValue(colorTokens, sysColorPrimaryMainHover, 'hover'), getColorValue(colorTokens, sysColorPrimaryMainHover, 'hover'), getColorValue(colorTokens, sysColorPrimaryMainActive, 'active'), getColorValue(colorTokens, sysColorPrimaryMainActive, 'active')); // Styles for secondary inverse\n\n var secondaryInverse = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"\\n label: secondary_inverse;\\n border-color: \", \";\\n color: \", \";\\n background-color: transparent;\\n\\n &:visited {\\n color: \", \";\\n }\\n\\n &:hover {\\n background: \", \";\\n color: \", \";\\n border-color: \", \";\\n }\\n\\n &:active {\\n background: \", \";\\n color: \", \";\\n border-color: \", \";\\n }\\n\\n &:focus {\\n border: 2px solid \", \";\\n }\\n \"])), getColorValue(colorTokens, sysColorPrimaryContrast, 'contrast'), getColorValue(colorTokens, sysColorPrimaryContrast, 'contrast'), getColorValue(colorTokens, sysColorPrimaryContrastActive, 'contrast'), getColorValue(colorTokens, 'transparent', 'hover'), getColorValue(colorTokens, sysColorPrimaryContrastHover, 'contrast'), getColorValue(colorTokens, sysColorPrimaryContrastHover, 'contrast'), getColorValue(colorTokens, sysColorPrimaryMainActive, 'active'), getColorValue(colorTokens, sysColorPrimaryContrastActive, 'contrast'), getColorValue(colorTokens, sysColorPrimaryContrastActive, 'contrast'), sysColorPrimaryMain); // Styles for branded buttons\n // Only applies to large variant, cannot be applied to icon\n\n var branded = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"\\n label: branded;\\n background: \", \";\\n border-color: \", \";\\n color: \", \";\\n\\n &:hover,\\n &:active,\\n &:visited {\\n color: \", \";\\n }\\n\\n &:hover {\\n background: \", \";\\n border-color: \", \";\\n }\\n\\n &:active {\\n background: \", \";\\n border-color: \", \";\\n }\\n \"])), sysColorFeaturedMain, sysColorFeaturedMain, sysColorFeaturedContrast, sysColorFeaturedContrast, sysColorFeaturedMainHover, sysColorFeaturedMainHover, sysColorFeaturedMainActive, sysColorFeaturedMainActive); // Styles for tertiary button\n\n var tertiary = css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral([\"\\n label: tertiary;\\n position: relative;\\n cursor: pointer;\\n display: inline-block;\\n background: transparent;\\n border: none;\\n \", \"\\n padding: \", \" \", \";\\n\\n &:hover,\\n &:active {\\n color: \", \";\\n background: transparent;\\n }\\n\\n &:hover,\\n &:focus {\\n text-decoration: underline;\\n }\\n\\n &:active {\\n text-decoration: none;\\n }\\n\\n &:focus {\\n color: \", \";\\n border-radius: \", \";\\n \", \";\\n }\\n \"])), buttonLg({\n color: getColorValue(colorTokens, sysColorSecondaryMain, 'main')\n }), sysSpaceMd, sysSpaceSm, getColorValue(colorTokens, sysColorSecondaryMain, 'main'), getColorValue(colorTokens, sysColorSecondaryMain, 'main'), sysBorderRadiusSm, focusOffsetElement); // styles for icon\n\n var icon = css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([\"\\n label: icon;\\n vertical-align: top;\\n margin-inline-end: \", \";\\n margin-inline-start: 0;\\n \"])), sysSpaceSm);\n var affordance = css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral([\"\\n label: affordance;\\n margin-inline-start: \", \";\\n margin-inline-end: 0;\\n vertical-align: top;\\n position: relative;\\n pointer-events: none;\\n \"])), sysSpaceSm);\n var menuWrapper = css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral([\"\\n label: menu-wrap;\\n position: relative;\\n \"]))); // Size sm\n\n var sizeSm = css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral([\"\\n label: size_sm;\\n \", \"\\n min-width: \", \";\\n padding: \", \"\\n \", \";\\n \"])), buttonSm({\n color: getColorValue(colorTokens, sysColorPrimaryContrast, 'contrast')\n }), '3.75rem', math(\"\".concat(sysSizeIndicatorMd, \" - \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceLg, \" - \").concat(sysBorderThicknessEmphasis))); // Stateful button styles\n // Button success state\n\n var successState = css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral([\"\\n label: success_state;\\n border-color: \", \";\\n background-color: \", \";\\n pointer-events: none;\\n \"])), getColorValue(colorTokens, sysColorSuccessMain, 'main'), getColorValue(colorTokens, sysColorSuccessMain, 'main')); // Button processing state\n\n var processingState = css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral([\"\\n label: processing_state;\\n color: transparent;\\n pointer-events: none;\\n\\n &:hover,\\n &:active,\\n &:visited {\\n color: transparent;\\n }\\n \"])));\n var fadeIn = keyframes(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral([\"\\n 0% {\\n opacity: 0;\\n }\\n 100% {\\n opacity: 1;\\n }\\n \"]))); //Overlay\n\n var overlay = css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral([\"\\n label: overlay;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n border-radius: inherit;\\n text-align: center;\\n opacity: 0;\\n animation: \", \" \", \" ease-in forwards;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n padding-right: 0;\\n \"])), fadeIn, sysMotionDurationHover);\n var successStateOverlay = css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral([\"\\n label: success_state_overlay;\\n background-color: \", \";\\n \"])), getColorValue(colorTokens, sysColorSuccessMain, 'main'));\n var successStateIcon = css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral([\"\\n label: success_state_icon;\\n line-height: \", \";\\n color: \", \";\\n \"])), 2, getColorValue(colorTokens, sysColorPrimaryContrast, 'contrast'));\n var successStateIconSm = css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral([\"\\n label: success_state_icon_sm;\\n line-height: \", \";\\n \"])), 1.6);\n var buttonGroup = css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral([\"\\n label: button_group;\\n display: inline-grid;\\n grid-template-columns: 1fr 1fr;\\n gap: \", \";\\n padding: \", \" \", \";\\n \"])), sysSpaceLg, sysSpaceMd, sysSpaceLg);\n var buttonGroupSolo = css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral([\"\\n label: solo;\\n grid-template-columns: 1fr;\\n \"])));\n var btnFullWidth = css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral([\"\\n label: btn_full_width;\\n @media (max-width: \", \") {\\n width: 100%;\\n }\\n \"])), sysSizeMediaMd);\n var btnGroupFullWidth = css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral([\"\\n label: btn_group_full_width;\\n @media (max-width: \", \") {\\n grid-template-columns: none;\\n width: 100%;\\n }\\n \"])), sysSizeMediaSm);\n return {\n base: base,\n secondary: secondary,\n inverse: inverse,\n secondaryInverse: secondaryInverse,\n branded: branded,\n tertiary: tertiary,\n icon: icon,\n affordance: affordance,\n menuWrapper: menuWrapper,\n sizeSm: sizeSm,\n successState: successState,\n processingState: processingState,\n screenReader: screenReader,\n overlay: overlay,\n successStateOverlay: successStateOverlay,\n successStateIcon: successStateIcon,\n successStateIconSm: successStateIconSm,\n buttonGroup: buttonGroup,\n buttonGroupSolo: buttonGroupSolo,\n btnFullWidth: btnFullWidth,\n btnGroupFullWidth: btnGroupFullWidth\n };\n}\n\nvar _excluded = [\"isMenu\", \"isOpen\", \"isSmall\"],\n _excluded2 = [\"size\", \"inverse\", \"secondary\", \"branded\", \"tertiary\", \"isMenu\", \"isOpen\", \"btnState\", \"screenReaderText\", \"className\", \"children\", \"as\", \"iconComponent\", \"fullWidthOnMobile\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nvar AffordanceIcon = function (_ref) {\n var isMenu = _ref.isMenu,\n isOpen = _ref.isOpen,\n isSmall = _ref.isSmall,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n if (!isMenu) {\n return null;\n }\n\n var Icon = isOpen ? ChevronUpIcon : ChevronDownIcon; // @ts-ignore\n\n return jsx(Icon, _extends({}, rest, {\n size: isSmall ? 'xs' : 'sm',\n \"data-ppui\": \"true\"\n }));\n};\n\n/* eslint-disable complexity */\nvar Button = forwardRef(function (_ref2, ref) {\n var size = _ref2.size,\n inverse = _ref2.inverse,\n secondary = _ref2.secondary,\n branded = _ref2.branded,\n tertiary = _ref2.tertiary,\n isMenu = _ref2.isMenu,\n isOpen = _ref2.isOpen,\n _ref2$btnState = _ref2.btnState,\n btnState = _ref2$btnState === void 0 ? 'initial' : _ref2$btnState,\n screenReaderText = _ref2.screenReaderText,\n className = _ref2.className,\n children = _ref2.children,\n as = _ref2.as,\n iconComponent = _ref2.iconComponent,\n _ref2$fullWidthOnMobi = _ref2.fullWidthOnMobile,\n fullWidthOnMobile = _ref2$fullWidthOnMobi === void 0 ? true : _ref2$fullWidthOnMobi,\n rest = _objectWithoutProperties(_ref2, _excluded2);\n\n // If theme is not directly provided, get from themeContext\n var tokens = useTheme();\n var colorTokens = React.useContext(ColorContext);\n var buttonStyles = useMemo(function () {\n return styles(tokens, colorTokens);\n }, [tokens]);\n var loadingSpinnerProps = {};\n\n if (btnState === 'processing') {\n loadingSpinnerProps.as = 'span';\n\n if (size === 'sm') {\n loadingSpinnerProps.size = 'xs';\n }\n\n if (secondary && inverse || !secondary && !inverse) {\n loadingSpinnerProps.inverse = true;\n }\n }\n\n var cssVal;\n\n if (branded) {\n cssVal = [buttonStyles.base, buttonStyles.branded];\n } else if (tertiary) {\n cssVal = [buttonStyles.tertiary];\n } else {\n // Note: the order of composition below is very important since rules from a latter style set will override the former.\n cssVal = [buttonStyles.base, fullWidthOnMobile && buttonStyles.btnFullWidth, size === 'sm' && buttonStyles.sizeSm, inverse && buttonStyles.inverse, secondary && buttonStyles.secondary, secondary && inverse && buttonStyles.secondaryInverse, btnState === 'success' && buttonStyles.successState, btnState === 'processing' && buttonStyles.processingState];\n }\n\n var componentProps = _objectSpread({}, rest);\n\n if (isOpen !== undefined) {\n componentProps['aria-expanded'] = isOpen;\n }\n\n return jsx(as || 'button', _extends({\n css: cssVal,\n className: className,\n disabled: btnState && btnState !== 'initial',\n ref: ref,\n \"data-ppui-info\": \"buttons_7.9.4\"\n }, componentProps), function renderChildren() {\n var srText;\n\n if (btnState !== 'initial') {\n srText = screenReaderText || btnState;\n }\n\n var successIconSize = size === 'sm' ? 'sm' : 'md';\n var successIconCSSVal = [buttonStyles.successStateIcon, size === 'sm' && buttonStyles.successStateIconSm];\n var buttonCheckmarkIcon = jsx(CheckmarkIcon, {\n css: successIconCSSVal,\n size: successIconSize,\n \"data-ppui\": \"true\"\n });\n var iconMarkup = null;\n\n if (iconComponent) {\n var svgIconSize = size === 'sm' ? 'xs' : 'sm';\n iconMarkup = jsx(iconComponent, {\n css: buttonStyles.icon,\n size: svgIconSize,\n \"data-ppui\": \"true\"\n });\n }\n\n var overlayCSSVal = [buttonStyles.overlay, btnState === 'success' && buttonStyles.successStateOverlay];\n var stateOverlay = btnState !== 'initial' ? jsx(\"span\", {\n css: overlayCSSVal,\n \"data-ppui\": \"true\"\n }, btnState === 'success' && buttonCheckmarkIcon, btnState === 'processing' && jsx(LoadingSpinner, _extends({}, loadingSpinnerProps, {\n \"data-ppui\": \"true\"\n }))) : null;\n var assistiveText = srText ? jsx(\"span\", {\n role: \"status\",\n css: buttonStyles.screenReader,\n \"data-ppui\": \"true\"\n }, children, \" \", srText) : null;\n return jsx(React.Fragment, null, iconMarkup, children, jsx(AffordanceIcon, {\n isMenu: isMenu,\n isOpen: isOpen,\n isSmall: size === 'sm',\n css: buttonStyles.affordance,\n \"data-ppui\": \"true\"\n }), stateOverlay, assistiveText);\n }());\n});\n\nvar _excluded$1 = [\"id\", \"name\", \"onSelection\", \"options\", \"children\", \"mobileTitle\", \"onClose\"];\nvar ButtonMenu = function (props) {\n var id = props.id,\n name = props.name,\n onSelection = props.onSelection,\n options = props.options,\n children = props.children,\n _props$mobileTitle = props.mobileTitle,\n mobileTitle = _props$mobileTitle === void 0 ? name : _props$mobileTitle,\n onClose = props.onClose,\n rest = _objectWithoutProperties(props, _excluded$1);\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isMenuOpen = _useState2[0],\n setIsMenuOpen = _useState2[1];\n\n var menuId = \"\".concat(id, \"_menu\");\n var buttonRef = useRef(null);\n var buttonStyles = styles(useTheme());\n return jsx(\"div\", {\n css: buttonStyles.menuWrapper,\n \"data-ppui\": \"true\"\n }, jsx(Button, _extends({\n onClick: function toggleMenu() {\n setIsMenuOpen(function (currentlyOpen) {\n return !currentlyOpen;\n });\n },\n isMenu: true,\n isOpen: isMenuOpen,\n \"aria-haspopup\": menuId,\n \"aria-expanded\": isMenuOpen,\n id: id,\n ref: buttonRef\n }, rest, {\n \"data-ppui\": \"true\"\n }), children), jsx(ActionMenu, _extends({\n name: name,\n id: menuId,\n initialItemFocus: true,\n triggerRef: buttonRef,\n isOpen: isMenuOpen,\n options: options,\n mobileTitle: mobileTitle,\n onClose: function handleClose(evt) {\n setIsMenuOpen(false);\n /* istanbul ignore next */\n\n if (typeof onClose === 'function') {\n onClose(evt);\n }\n },\n onSelection: function handleSelection(index) {\n setIsMenuOpen(false);\n /* istanbul ignore next */\n\n if (typeof onSelection === 'function') {\n onSelection(index);\n }\n\n buttonRef.current.focus();\n }\n }, rest, {\n \"data-ppui\": \"true\"\n })));\n};\n\nvar ButtonGroup = function (_ref) {\n var className = _ref.className,\n _ref$fullWidthOnMobil = _ref.fullWidthOnMobile,\n fullWidthOnMobile = _ref$fullWidthOnMobil === void 0 ? true : _ref$fullWidthOnMobil,\n children = _ref.children;\n // If theme is not directly provided, get from themeContext\n var tokens = useTheme();\n\n var _styles = useMemo(function () {\n return styles(tokens);\n }, [tokens]);\n\n var childArray = Children.toArray(children); //@ts-ignore\n\n var breakPointValue = \"\".concat(stripUnit(remToPx(tokens.sysSizeMediaSm)));\n var innerWidth = hasWindow() && window.innerWidth;\n var computedChildren = children;\n\n if (breakPointValue && innerWidth > parseInt(breakPointValue, 10)) {\n computedChildren = childArray.reverse();\n }\n\n var hasButtonCountOne = childArray.length === 1;\n var buttonGroupCSSVal = [_styles.buttonGroup, hasButtonCountOne && _styles.buttonGroupSolo, fullWidthOnMobile && _styles.btnGroupFullWidth];\n return jsx(\"div\", {\n css: buttonGroupCSSVal,\n className: className,\n \"data-ppui\": \"true\"\n }, computedChildren);\n};\n\nexport { Button, ButtonGroup, ButtonMenu, styles as buttonStyles };\n","import poll from './poll';\nimport { nodeChatOnPageValidator } from './node-chat-on-page-validator';\nimport fireImpressionFptiForChatLoadError from './fire-impression-fpti-for-chat-load-error';\n\n// the Poll function will retry for at least 2 secs based on current retries = 10 and delay = 200 ms\nconst pollRetries = 5;\nconst pollDelay = 200;\n\n// eslint-disable-next-line\nexport const isChatBotCardOrPillPresentOnPage = () => {\n const chatPromptCard = document.getElementById('chat-question-card');\n if (chatPromptCard && chatPromptCard.style.display !== null) {\n return true;\n }\n\n const chatNowBtn = document.getElementById('chat-now-btn');\n return chatNowBtn && chatNowBtn.style.display !== null;\n};\n\nexport const initiateChatBot = (topicRefId, subject) => window.nodeChat.show('chatBot', topicRefId, subject);\n\n// Waits at least 3.20 secs based on current retries = 5 and delay = 200 ms\nexport const initializeChatBot = ({ topicRefId, link, hpid = '', subject }) =>\n poll(nodeChatOnPageValidator, pollRetries, pollDelay)\n // eslint-disable-next-line no-undef\n .then(() => initiateChatBot(topicRefId, subject))\n .catch(() => fireImpressionFptiForChatLoadError(link, hpid));\n\nexport const initializeLiveChat = (topicRefId, subject) =>\n poll(nodeChatOnPageValidator, pollRetries, pollDelay)\n // eslint-disable-next-line no-undef\n .then(() => nodeChat.show('liveChat', `${topicRefId}|finalIntent`, subject))\n .catch(() => fireImpressionFptiForChatLoadError('chat-shown'));\n\nexport const wasChatBotClicked = () => window.sessionStorage && sessionStorage.getItem('chatBotClicked') === 'true';\n\nexport const wasLiveChatClicked = () => window.sessionStorage && sessionStorage.getItem('liveChatClicked') === 'true';\n\nexport const isChatCardClicked = () => window.sessionStorage && sessionStorage.getItem('chatCardClicked') === 'true';\n\nexport const isChatBotClickedOnArticlePage = () =>\n typeof sessionStorage === 'object' && sessionStorage.getItem('articlePagechatBotClicked') === 'true';\n\nexport const setChatBotClickInSession = (value = false) => {\n sessionStorage.setItem('chatBotClicked', value);\n};\n\nexport const setLiveChatClickInSession = (value = false) => {\n sessionStorage.setItem('liveChatClicked', value);\n};\n\nexport const setArticlePageChatBotClickInSession = (value = false) => {\n sessionStorage.setItem('articlePagechatBotClicked', value);\n};\n\nexport const setChatCardClickInSession = (value = false) => {\n sessionStorage.setItem('chatCardClicked', value);\n};\n\nexport const resetAllChatClicksInSession = () => {\n sessionStorage.removeItem('chatBotClicked');\n sessionStorage.removeItem('liveChatClicked');\n sessionStorage.removeItem('articlePagechatBotClicked');\n};\n\n// TODO:: refactor this after validating\nexport const getChatAction = (topicRefId) => {\n setChatCardClickInSession(true);\n setLiveChatClickInSession(true);\n\n return (\n poll(nodeChatOnPageValidator, pollRetries, pollDelay)\n // eslint-disable-next-line no-undef\n .then(() => nodeChat.show('liveChat', `${topicRefId}|finalIntent`))\n .catch(() => fireImpressionFptiForChatLoadError('chat-shown'))\n );\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","import _isString from 'lodash/isString';\nimport _isEmpty from 'lodash/isEmpty';\nimport {\n getCoBrand,\n getExperience,\n getQualtricsConfig,\n getUserProfile,\n isBusinessUser,\n isLoggedIn,\n isMobileLayout,\n isTabletLayout,\n} from './twHelper';\nimport { experiences, pageNames } from '../common/constants';\nimport {\n ECM_COMPONENT_IDS_DEFAULT_VALUE,\n ECM_COMPONENT_IDS_KEY,\n ECM_DOC_ID_DEFAULT_VALUE,\n ECM_DOC_ID_KEY,\n} from '../../js/contactUs/constants/ecmFPTITagsKeys';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const getUserDisplayName = () => {\n const userProfile = getUserProfile();\n if (typeof userProfile === 'object') {\n if (getCoBrand().toLowerCase() === 'jp' && Object.hasOwnProperty.call(userProfile, 'lastName')) {\n return userProfile.lastName;\n }\n if (Object.hasOwnProperty.call(userProfile, 'firstName')) {\n return userProfile.firstName;\n }\n return '';\n }\n return '';\n};\n\nexport const getUrlWithQueryParams = (url, queryParams) => {\n let finalUrl = `${url}?`;\n // eslint-disable-next-line no-restricted-syntax\n for (const [key, value] of Object.entries(queryParams)) {\n finalUrl = `${finalUrl}${key}=${value}&`;\n }\n return finalUrl;\n};\n\n/**\n * This will set key and value in session\n * @param key\n * @param value\n * @returns {string|null}\n */\nexport const setInSession = (key, value) => {\n try {\n return window.sessionStorage && sessionStorage.setItem(key, value);\n } catch (e) {\n return null;\n }\n};\n\n/*\n * This will get the value by using the key in session\n * @param key\n * @returns {string|null}\n * */\nexport const getSession = (key) => {\n try {\n return window.sessionStorage && window.sessionStorage.getItem(key);\n } catch (e) {\n return null;\n }\n};\n\nexport const getCurrentOrigin = () => window && window.location && window.location.origin;\n\nexport const getCurrentOriginWithCoBrand = () => {\n const currentOrigin = getCurrentOrigin();\n return `${currentOrigin}/${getCoBrand()}`;\n};\n\nconst cleanTitle = (title) =>\n encodeURIComponent(title && title.replace(/ /g, '-').replace(/\\?/g, '').replace(/[/\\\\]/g, '-').toLowerCase());\n\nexport const getFormattedUrlForArticle = (title, id) => decodeURIComponent(`${cleanTitle(title)}-${id.toLowerCase()}`);\n\nexport const getArticleRedirectUrl = (title, id) =>\n `${getCurrentOriginWithCoBrand()}/smarthelp/article/${getFormattedUrlForArticle(title, id)}`;\n\nexport const getIcfRedirectUrl = (title, id) =>\n `${getCurrentOriginWithCoBrand()}/smarthelp/PAYPAL_HELP_GUIDE/${getFormattedUrlForArticle(title, id)}`;\n\nexport const getGuidesUrl = () => `${getCurrentOriginWithCoBrand()}/smarthelp/PAYPAL_HELP_GUIDE`;\n\nexport const getSearchUrl = (query) => `${getCurrentOriginWithCoBrand()}/smarthelp/search?q=${query}`;\n\nexport const parseSearchQuery = (query) => {\n const returnValue = query ? query.trim() : '';\n try {\n return encodeURIComponent(returnValue);\n } catch (error) {\n return returnValue;\n }\n};\n\nexport const layoutSize = () => {\n if (isMobileLayout()) {\n return 'sm';\n }\n if (isTabletLayout()) {\n return 'md';\n }\n return 'lg';\n};\n\n/**\n * Function to get experience of customer and change the css of the header based on the customer-experience\n */\nexport const getHeaderStyleByAccountType = () => {\n if (!isLoggedIn()) {\n return 'logout';\n }\n return !isBusinessUser() ? 'personal' : 'business';\n};\n\nexport const getFPTIPageId = () => {\n try {\n const locationPath = window.location && window.location.pathname;\n if (locationPath && _isString(locationPath)) {\n const pageNamePath = locationPath.split('/'); // Split path by '/'\n if (pageNamePath && Object.values(pageNames).includes(pageNamePath[3])) {\n return pageNamePath[3];\n }\n }\n return pageNames.HOME;\n } catch (err) {\n return pageNames.HOME;\n }\n};\n\nexport const isPersonalizedComponentEnabled = () => getExperience() !== experiences.TECHNICAL;\n\nexport const isBNAComponentEnabled = () => isLoggedIn() && getExperience() !== experiences.TECHNICAL;\n\n/**\n * For enabling Qualtrics Feedback icon\n */\nexport const isQualtricsFeedbackEnabled = (pageName) => {\n const qualticsConfig = getQualtricsConfig(); // qualtrics config\n if (qualticsConfig && !_isEmpty(qualticsConfig)) {\n const isMarketEnabled = qualticsConfig.isMarketEnabledForQualtrics; // Checking whether market enabled or not\n const pagename = `${pageName}Page`;\n // Checking whether market is enabled and of page names existance from qualtrics config\n if (isMarketEnabled && Array.isArray(qualticsConfig.pagesEnabled) && qualticsConfig.pagesEnabled.length > 0) {\n // Checking whether all the pages are enabled\n const isEnabledAllPages = qualticsConfig.pagesEnabled[0].enableAllPages;\n // Checking whether page is enabled\n const isPageEnabled = qualticsConfig.pagesEnabled[0][pagename];\n\n return !!(isMarketEnabled && (isEnabledAllPages || isPageEnabled));\n }\n }\n return false;\n};\n\n/**\n * Function to set session variable when Customer Journey API is called\n */\n\nexport const setCustomerJourneyAPISessionKey = (value) =>\n window.sessionStorage.setItem('customerJourneyAPICalled', value);\n\n/**\n * Function to get session variable of Customer Journey API if already called\n */\nexport const getCustomerJourneyAPISessionKey = () => window.sessionStorage.getItem('customerJourneyAPICalled');\n\nexport const redirectToHomePage = () => {\n window.location.href = `${getCurrentOriginWithCoBrand()}/smarthelp/home`;\n};\n\nexport const getLocationPath = () => {\n return window && window.location && window.location.pathname;\n};\n\nexport const getOriginPath = () => `${window.location.protocol}//${window.location.host}`;\n\n// Function to return fptiDocId and fptiComponentIds, from ECM ArticleData, used in Article FPTIs\nexport const getEcmArticleFptiTags = (articleData) => {\n const fptiDocId = articleData[ECM_DOC_ID_KEY] || ECM_DOC_ID_DEFAULT_VALUE;\n const fptiComponentIds = articleData[ECM_COMPONENT_IDS_KEY] || ECM_COMPONENT_IDS_DEFAULT_VALUE;\n\n return { fptiDocId, fptiComponentIds };\n};\n","// COVID-19 BCP HELPER\nimport _isEmpty from 'lodash/isEmpty';\nimport Page from './page';\nimport { modalChannels } from '../contactUs/constants/UtilVariables';\nimport UrlResources from '../home/constants/UrlResources';\nimport { isC2MerchantMigrated } from './globalHelper';\n// Get Remote config COVID BCP config from window\nconst getCovidConfig = () => {\n try {\n if (window && window.covidBcpConfig) {\n return window.covidBcpConfig;\n }\n return {};\n } catch (e) {\n return {};\n }\n};\n\n// Get EBS customer priority object from window.\nconst getEBSCustomerPriority = () => {\n try {\n if (window && window.cust_priority_info) {\n return window.cust_priority_info;\n }\n return {};\n } catch (e) {\n return {};\n }\n};\n\nexport const isTrackersEnabledInHome = () => {\n const config = getCovidConfig();\n if (!_isEmpty(config)) {\n return config.enableTrackersInHome || false;\n }\n return false;\n};\n\nexport const isPopUpWindowAlertEnabled = () => {\n const config = getCovidConfig();\n if (!_isEmpty(config)) {\n return config.popUpWindowAlert || false;\n }\n return false;\n};\n\n// KILL SWITCH to kill suppressing call US globally\nconst isSuppressCallUsKillSwitch = () => {\n const covidRemoteConfig = getCovidConfig();\n if (!_isEmpty(covidRemoteConfig)) {\n return covidRemoteConfig.suppressCallUs || false;\n }\n return false;\n};\n\n// Check if current locale is COVID BCP affected.\nexport const isMarketLocaleCovidAffected = () => {\n const country = Page.getCountry().toUpperCase();\n const locale = Page.getAPILocalilty();\n const covidRemoteConfig = getCovidConfig();\n\n if (!_isEmpty(covidRemoteConfig)) {\n if (covidRemoteConfig.covidEffectedLocales) {\n return (\n covidRemoteConfig.covidEffectedLocales\n .split(',')\n .filter((market) => market.indexOf(`${country}:`) >= 0)\n .filter((selectedMarket) => selectedMarket.split(':')[1].indexOf(locale) >= 0).length > 0\n );\n }\n }\n return false;\n};\n\n/**\n * Check customer priority level.\n * If customer is hig priority dispay call US if not supress call us.\n * customer EBS values are externalized and can be configured in remote config.\n * @returns {boolean}\n */\nconst isHighPriorityCustomer = () => {\n const customerPriorityInfo = getEBSCustomerPriority();\n const covidRemoteConfig = getCovidConfig();\n if (\n !_isEmpty(customerPriorityInfo) &&\n !_isEmpty(covidRemoteConfig) &&\n covidRemoteConfig.ebsPriorityLevels &&\n customerPriorityInfo.priority_reason\n ) {\n const rcEbsPriorityLevels = covidRemoteConfig.ebsPriorityLevels;\n return Array.isArray(rcEbsPriorityLevels) && rcEbsPriorityLevels.indexOf(customerPriorityInfo.priority_reason) >= 0;\n }\n return false;\n};\n\n/**\n * Single function to check we need suppress call Us option or not.\n * @returns {boolean}\n */\nexport const isSuppressCallUs = () => {\n // Exception is for C2 Migrated Merchants and don't filter the contact-options ( configired in Remote config )\n if (isC2MerchantMigrated()) return false;\n // Root kill switch callUs check. only if supressCallUs is set to true then check of other conditions if not return false\n // and fallback to old behaviour\n if (!isSuppressCallUsKillSwitch()) {\n return false;\n }\n\n // If market/locale is part of remote config then check if customer is high engaged\n // If high engaged customer display call us if not suppress call us.\n if (isMarketLocaleCovidAffected()) {\n return !isHighPriorityCustomer();\n }\n\n // default set to false.\n return false;\n};\n\n/**\n * This is to suppress guest call us link in logged out to login in modal window.\n * If market/locale is part of remote config suppress guest link.\n * @returns {boolean}\n */\nexport const isSuppressGuestCallUsLink = () => {\n // If not in contact us page show guest link for callus modal\n if (!Page.isContactUsPage()) {\n return false;\n }\n\n if (!isSuppressCallUsKillSwitch()) {\n return false;\n }\n\n return isMarketLocaleCovidAffected();\n};\n\n// Check if callUs channel is part of IDI response.\nexport const isCallUsPartOfIdi = (idiContactChannels = []) => {\n if (Array.isArray(idiContactChannels) && idiContactChannels.length) {\n const foundChannel = idiContactChannels.find((channel) => channel.type === modalChannels.call.toLowerCase());\n return !!(foundChannel && typeof foundChannel === 'object');\n }\n return false;\n};\n\n// Returns filtered contact channels by removing callUs from list.\nexport const filterCallUsFromChannels = (contactChannels = []) => {\n if (Array.isArray(contactChannels) && contactChannels.length) {\n return contactChannels.filter((channel) => channel.type !== modalChannels.call.toLowerCase());\n }\n return contactChannels;\n};\n\n/**\n * Checking in session to check whether alert popup is clicked\n */\nexport const isAlertPopUpClicked = () =>\n window.sessionStorage && sessionStorage.getItem('isAlertPopUpClicked') === 'true';\n\n/**\n * Changing alert popup session variable when alert is clicked\n */\nexport const setAlertPopUpClickInSession = (value = true) => {\n sessionStorage.setItem('isAlertPopUpClicked', value);\n};\n\n/**\n * To get the page name where we are displaying the alert\n */\nexport const renderPopUpFpti = (pathName) => {\n if (pathName) {\n if (pathName === `/${UrlResources.HOME}`) {\n return 'homeAlertPopup';\n }\n if (pathName.includes(`/${UrlResources.ARTICLE}`)) {\n return 'articleAlertPopup';\n }\n if (pathName.includes(`/${UrlResources.TOPIC}`)) {\n return 'topicAlertPopup';\n }\n if (pathName === `/${UrlResources.SEARCH}`) {\n return 'searchAlertPopup';\n }\n if (pathName === `/${UrlResources.PAYPALGUIDE}`) {\n return 'ICFTopicAlertPopup';\n }\n if (pathName !== `/${UrlResources.PAYPALGUIDE}` && pathName.includes(`/${UrlResources.PAYPALGUIDE}`)) {\n return 'ICFPageAlertPopup';\n }\n }\n return '';\n};\n","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export const pageNames = Object.freeze({\n // <---- Channel Steering Page Group ---->\n contactUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::contact-us:::',\n e: 'im',\n event_name: 'classic_help_contactus_page_shown',\n },\n contactUsPageContactOptions: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::contact-options:::',\n e: 'ac',\n event_name: 'classic_help_contactus_page_contact_option_shown',\n },\n contactUsPageUpfrontFAQ: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::upfront-faq:::',\n e: 'ac',\n event_name: 'classic_help_contactus_page_upfront_faq_shown',\n },\n contactUsPageSearchBox: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::intent-search:::',\n e: 'ac',\n event_name: 'classic_help_contactus_page_intent_search',\n },\n contactUsChatTimeoutPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::chat-timeout:::',\n },\n callUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::callus:::',\n e: 'im',\n event_name: 'classic_help_callus_page_shown',\n },\n // Call Us redesign page\n callPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::call:::',\n e: 'im',\n event_name: 'classic_help_callus_page_shown',\n },\n callPageInvalidTopicCode: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::call-invalid-topic-code:::',\n },\n emailPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::email:::',\n e: 'im',\n event_name: 'classic_help_email_page_shown',\n },\n emailByPassPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::emailByPass:::',\n },\n complaintsWebformShown: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::complaints:::',\n e: 'im',\n event_name: 'classic_help_complaints_webform_page_shown',\n },\n complaintsDropdownChange: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::complaints:::',\n e: 'ac',\n event_name: 'classic_help_complaints_webform_dropwown_changed',\n },\n complaintsSubmit: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::complaints:::',\n e: 'cl',\n event_name: 'classic_help_complaints_submit_button_clicked',\n },\n privacyWebformShown: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy:::',\n e: 'im',\n event_name: 'classic_help_privacy_webform_page_shown',\n },\n privacyWebformLoadError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy-error:::',\n e: 'im',\n event_name: 'classic_help_privacy_webform_page_load_error',\n },\n privacyWebformContentClicked: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy:::',\n e: 'ac',\n event_name: 'classic_help_privacy_webform_link_clicked',\n },\n privacyWebformMesssageUsClicked: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy:::',\n e: 'ac',\n event_name: 'classic_help_privacy_webform_message_us_icon_clicked',\n },\n privacyWebformLoginClicked: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy:::',\n e: 'ac',\n event_name: 'classic_help_privacy_webform_login_clicked',\n },\n privacyWebformNoAccountLoginClicked: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy:::',\n e: 'ac',\n event_name: 'classic_help_privacy_webform_no_account_login_link_clicked',\n },\n\n aupviolationWebformShown: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::aupviolation:::',\n e: 'im',\n event_name: 'classic_help_aupviolation_webform_page_shown',\n },\n aupviolationVenmoImage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::aupviolation:::',\n e: 'ac',\n event_name: 'classic_help_aupviolation_webform_page_venmo_image_exists',\n },\n aupviolationWebformLoadError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::aupviolation-error:::',\n e: 'im',\n event_name: 'classic_help_aupviolation_webform_page_load_error',\n },\n aupviolationWebformLoginClicked: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::aupviolation:::',\n e: 'ac',\n event_name: 'classic_help_aupviolation_webform_login_clicked',\n },\n aupviolationWebformReportClicked: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::aupviolation:::',\n e: 'ac',\n event_name: 'classic_help_aupviolation_webform_report_button_clicked',\n },\n aupviolationWebformContentClicked: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::aupviolation:::',\n e: 'ac',\n event_name: 'classic_help_aupviolation_webform_link_clicked',\n },\n payuponinvoiceWebformShown: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice:::',\n e: 'im',\n event_name: 'classic_help_payuponinvoice_webform_page_shown',\n },\n payuponinvoiceWebformLoadError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice-error:::',\n e: 'im',\n event_name: 'classic_help_payuponinvoice_webform_page_load_error',\n },\n payuponinvoiceWebformContactUsClick: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice:::',\n e: 'ac',\n event_name: 'classic_help_payuponinvoice_webform_page_contact_us_link_clicked',\n },\n payuponinvoiceWebformLogin: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice:::',\n e: 'ac',\n event_name: 'classic_help_payuponinvoice_webform_page_login_clicked',\n },\n ipinfringementWebformShown: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ipinfringement:::',\n e: 'im',\n event_name: 'classic_help_ipinfringement_webform_page_shown',\n },\n ipinfringementWebformLoadError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ipinfringement-error:::',\n e: 'im',\n event_name: 'classic_help_ipinfringement_webform_page_load_error',\n },\n // email form submit\n privacyWebformEmailFormSubmit: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy:::',\n e: 'ac',\n event_name: 'classic_help_privacy_webform_page_email_form_submit',\n },\n payuponinvoiceWebformEmailFormSubmit: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice:::',\n e: 'ac',\n event_name: 'classic_help_payuponinvoice_webform_page_email_form_submit',\n },\n ppgfWebformEmailFormSubmit: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ppgf:::',\n e: 'ac',\n event_name: 'classic_help_ppgf_webform_page_email_form_submit',\n },\n aupviolationWebformEmailFormSubmit: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::aupviolation:::',\n e: 'ac',\n event_name: 'classic_help_aupviolation_webform_page_email_form_submit',\n },\n ipinfringementWebformEmailFormSubmit: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ipinfringement:::',\n e: 'ac',\n event_name: 'classic_help_ipinfringement_webform_page_email_form_submit',\n },\n\n // email submit success\n privacyEmailSubmitSuccess: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy:::',\n e: 'im',\n event_name: 'classic_help_privacy_webform_email_submit_success',\n },\n aupviolationEmailSubmitSuccess: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::aupviolation:::',\n e: 'im',\n event_name: 'classic_help_aupviolation_webform_email_submit_success',\n },\n payuponinvoiceEmailSubmitSuccess: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice:::',\n e: 'im',\n event_name: 'classic_help_payuponinvoice_webform_email_submit_success',\n },\n ppgfEmailSubmitSuccess: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ppgf:::',\n e: 'im',\n event_name: 'classic_help_ppgf_webform_email_submit_success',\n },\n ipinfringementEmailSubmitSuccess: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ipinfringement:::',\n e: 'im',\n event_name: 'classic_help_ipinfringement_webform_email_submit_success',\n },\n\n // email submit failure\n privacyEmailSubmitFailed: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy:::',\n e: 'im',\n event_name: 'classic_help_privacy_webform_email_submit_failed',\n },\n aupviolationEmailSubmitFailed: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::aupviolation:::',\n e: 'im',\n event_name: 'classic_help_aupviolation_webform_email_submit_failed',\n },\n payuponinvoiceEmailSubmitFailed: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice:::',\n e: 'im',\n event_name: 'classic_help_payuponinvoice_webform_email_submit_failed',\n },\n ppgfEmailSubmitFailed: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ppgf:::',\n e: 'im',\n event_name: 'classic_help_ppgf_webform_email_submit_failed',\n },\n ipinfringementEmailSubmitFailed: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ipinfringement:::',\n e: 'im',\n event_name: 'classic_help_ipinfringement_webform_email_submit_failed',\n },\n\n // content link click in Notes component\n privacyContentLink: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy:::',\n e: 'cl',\n event_name: 'classic_help_privacy_webform_content_link_clicked',\n },\n aupviolationContentLink: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::aupviolation:::',\n e: 'cl',\n event_name: 'classic_help_aupviolation_webform_content_link_clicked',\n },\n payuponinvoiceContentLink: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice:::',\n e: 'cl',\n event_name: 'classic_help_payuponinvoice_webform_content_link_clicked',\n },\n ppgfContentLink: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ppgf:::',\n e: 'cl',\n event_name: 'classic_help_ppgf_webform_content_link_clicked',\n },\n privacyLinkTryAgainClick: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy-emailNoIntentError:::',\n e: 'cl',\n event_name: 'classic_help_privacy_email_no_intent_try_again_on_error_clicked',\n },\n ppgfLinkTryAgainClick: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ppgf-emailNoIntentError:::',\n e: 'cl',\n event_name: 'classic_help_ppgf_email_no_intent_try_again_on_error_clicked',\n },\n payuponinvoiceLinkTryAgainClick: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice-emailNoIntentError:::',\n e: 'cl',\n event_name: 'classic_help_payuponinvoice_email_no_intent_try_again_on_error_clicked',\n },\n // webform topic tree data error\n privacyTopicTreeDataError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy:::',\n e: 'im',\n event_name: 'classic_help_privacy_webform_topic_tree_data_error',\n },\n aupviolationTopicTreeDataError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::aupviolation:::',\n e: 'im',\n event_name: 'classic_help_aupviolation_webform_topic_tree_data_error',\n },\n payuponinvoiceTopicTreeDataError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice:::',\n e: 'im',\n event_name: 'classic_help_payuponinvoice_webform_topic_tree_data_error',\n },\n ppgfTopicTreeDataError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ppgf:::',\n e: 'im',\n event_name: 'classic_help_ppgf_webform_topic_tree_data_error',\n },\n ipinfringementTopicTreeDataError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ipinfringement:::',\n e: 'im',\n event_name: 'classic_help_ipinfringement_webform_topic_tree_data_error',\n },\n\n // Quick answers successfully loaded\n privacyQuickAnswersSuccess: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy:::',\n e: 'ac',\n event_name: 'classic_help_privacy_webform_page_quick_answers_shown',\n },\n payuponinvoiceQuickAnswersSuccess: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice:::',\n e: 'ac',\n event_name: 'classic_help_payuponinvoice_webform_page_quick_answers_shown',\n },\n ppgfQuickAnswersSuccess: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ppgf:::',\n e: 'ac',\n event_name: 'classic_help_ppgf_webform_page_quick_answers_shown',\n },\n aupviolationQuickAnswersSuccess: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::aupviolation:::',\n e: 'ac',\n event_name: 'classic_help_aupviolation_webform_page_quick_answers_shown',\n },\n ipinfringementQuickAnswersSuccess: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ipinfringement:::',\n e: 'ac',\n event_name: 'classic_help_ipinfringement_webform_page_quick_answers_shown',\n },\n privacyErrorMessageShown: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy-emailNoIntentError:::',\n e: 'ac',\n event_name: 'classic_help_privacy_email_no_intent_error_message_shown',\n },\n ppgfErrorMessageShown: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ppgf-emailNoIntentError:::',\n e: 'ac',\n event_name: 'classic_help_ppgf_email_no_intent_error_message_shown',\n },\n payuponinvoiceErrorMessageShown: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice-emailNoIntentError:::',\n e: 'ac',\n event_name: 'classic_help_payuponinvoice_email_no_intent_error_message_shown',\n },\n // Quick answers Failed to load\n privacyQuickAnswersFailed: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::privacy:::',\n e: 'ac',\n event_name: 'classic_help_privacy_webform_page_quick_answers_failed',\n },\n payuponinvoiceQuickAnswersFailed: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice:::',\n e: 'ac',\n event_name: 'classic_help_payuponinvoice_webform_page_quick_answers_failed',\n },\n ppgfQuickAnswersFailed: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ppgf:::',\n e: 'ac',\n event_name: 'classic_help_ppgf_webform_page_quick_answers_failed',\n },\n aupviolationQuickAnswersFailed: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::aupviolation:::',\n e: 'ac',\n event_name: 'classic_help_aupviolation_webform_page_quick_answers_failed',\n },\n ipinfringementQuickAnswersFailed: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ipinfringement:::',\n e: 'ac',\n event_name: 'classic_help_ipinfringement_webform_page_quick_answers_failed',\n },\n // message us click\n payuponinvoiceWebformMesssageUsClicked: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::payuponinvoice:::',\n e: 'ac',\n event_name: 'classic_help_payuponinvoice_webform_message_us_clicked',\n },\n\n ppgfWebformShown: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ppgf:::',\n e: 'im',\n event_name: 'classic_help_ppgf_webform_page_shown',\n },\n ppgfWebformLoadError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::ppgf-error:::',\n e: 'im',\n event_name: 'classic_help_ppgf_webform_page_load_error',\n },\n intermediatePage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::intermediate:::',\n e: 'im',\n event_name: 'classic_help_intermediate_page_shown',\n },\n intermediatePageClose: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::intermediate:::',\n e: 'cl',\n link: 'smarthelp-intermediate|close',\n event_name: 'classic_help_intermediate_page_close',\n },\n chatBot: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::chatBot:::',\n e: 'ac',\n event_name: 'classic_help_chatbot_in_contactus_page_shown',\n },\n chatBotContactUsIneligible: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::chatBot:::',\n e: 'ac',\n event_name: 'classic_help_chatbot_ineligible_in_contactus_page_shown',\n },\n webPinNotApplicable: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::web-pin-not-applicable:::',\n e: 'ac',\n event_name: 'classic_help_callus_page_webpin_not_applicable',\n },\n chatMessageUsChatBotLoadError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::chat-empty-channel:::',\n },\n\n // webPin Impression tracking\n webPinSuccess: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::web-pin:::',\n e: 'ac',\n event_name: 'classic_help_callus_page_webpin_shown',\n },\n\n webPinfailure: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::web-pin-error:::',\n e: 'ac',\n event_name: 'classic_help_callus_page_webpin_not_shown',\n },\n\n // <---- Error Pages ---->\n ErrorPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::error:::',\n },\n emailByPassPageError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::emailByPass-error:::',\n },\n chatBotArticleInEligible: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::smart-chatBotInEligible:::',\n },\n chatBotArticleError: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::chatBot-did-not-load-error:::',\n e: 'ac',\n event_name: 'classic_help_chat_bot_loading_error_in_article_page',\n },\n chatBotContactUsError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::chatBot-did-not-load-error:::',\n e: 'ac',\n event_name: 'classic_help_chat_bot_loading_error_in_contact_page',\n },\n chatBotHomeError: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::chatBot-did-not-load-error:::',\n e: 'ac',\n event_name: 'classic_help_chat_bot_loading_error_in_home_page',\n },\n contactLexaFailureError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::lexa-failure-intermediate:::',\n },\n articleLexaFailureError: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::lexa-failure-intermediate:::',\n },\n asyncContactUsError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::async-chat-did-not-load-error:::',\n e: 'ac',\n event_name: 'classic_help_async_chat_not_loaded_in_contactus_page',\n },\n loggedOutChatCaptchaSuccess: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::intermediate-captcha:::',\n e: 'ac',\n event_name: 'classic_help_logged_out_chat_captcha_success',\n },\n loggedOutChatCaptchaError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::intermediate-captcha:::',\n e: 'ac',\n event_name: 'classic_help_logged_out_chat_captcha_error',\n },\n\n // <---- HCR Page Group ---->\n homePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::home:::',\n e: 'im',\n event_name: 'classic_help_home_page_shown',\n },\n PCCTrackingPage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::pcc:::',\n e: 'ac',\n event_name: 'classic_help_pcc_article_in_home_page_shown',\n },\n searchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::search:::',\n e: 'im',\n event_name: 'classic_help_search_page_shown',\n },\n fullSearchClickedInhomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::full-search-clicked:::',\n e: 'cl',\n event_name: 'classic_help_full_search_clicked_in_home_page',\n },\n fullSearchClickedInarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::full-search-clicked:::',\n e: 'cl',\n event_name: 'classic_help_full_search_clicked_in_article_page',\n },\n fullSearchClickedInsearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::full-search-clicked:::',\n e: 'cl',\n event_name: 'classic_help_full_search_clicked_in_search_page',\n },\n fullSearchClickedIntopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::full-search-clicked:::',\n e: 'cl',\n event_name: 'classic_help_full_search_clicked_in_topic_page',\n },\n fullSearchClickedInICFTopicPage: {\n pageGroupName: 'main:help:smart::icf-topics',\n pageName: 'main:help:smart::full-search-clicked:::',\n e: 'cl',\n event_name: 'classic_help_full_search_clicked_in_icf_topics_page',\n },\n fullSearchClickedInICFTopic: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::full-search-clicked:::',\n e: 'cl',\n event_name: 'classic_help_full_search_clicked_in_icf_article_page',\n },\n searchBarFocusedInhomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::search-bar-focused:::',\n e: 'cl',\n event_name: 'classic_help_search_bar_focused_in_home_page',\n },\n searchBarFocusedInarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::search-bar-focused:::',\n e: 'cl',\n event_name: 'classic_help_search_bar_focused_in_article_page',\n },\n searchBarFocusedInsearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::search-bar-focused:::',\n e: 'cl',\n event_name: 'classic_help_search_bar_focused_in_search_page',\n },\n searchBarFocusedIntopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::search-bar-focused:::',\n e: 'cl',\n event_name: 'classic_help_search_bar_focused_in_topic_page',\n },\n searchBarFocusedInICFTopicPage: {\n pageGroupName: 'main:help:smart::icf-topics',\n pageName: 'main:help:smart::search-bar-focused:::',\n e: 'cl',\n event_name: 'classic_help_search_bar_focused_in_icf_topics_page',\n },\n searchBarFocusedInICFTopic: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::search-bar-focused:::',\n e: 'cl',\n event_name: 'classic_help_search_bar_focused_in_icf_article_page',\n },\n quicklinksShownInhomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::quicklinks-shown:::',\n e: 'ac',\n event_name: 'classic_help_quicklinks_for_common_questions_shown_in_home_page',\n },\n quicklinksShownInarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::quicklinks-shown:::',\n e: 'ac',\n event_name: 'classic_help_quicklinks_for_common_questions_shown_in_article_page',\n },\n quicklinksShownInsearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::quicklinks-shown:::',\n e: 'ac',\n event_name: 'classic_help_quicklinks_for_common_questions_shown_in_search_page',\n },\n quicklinksShownIntopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::quicklinks-shown:::',\n e: 'ac',\n event_name: 'classic_help_quicklinks_for_common_questions_shown_in_topic_page',\n },\n quicklinksShownInICFTopicPage: {\n pageGroupName: 'main:help:smart::icf-topics',\n pageName: 'main:help:smart::quicklinks-shown:::',\n e: 'ac',\n event_name: 'classic_help_quicklinks_for_common_questions_shown_in_icf_topics_page',\n },\n quicklinksShownInICFTopic: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::quicklinks-shown:::',\n e: 'ac',\n event_name: 'classic_help_quicklinks_for_common_questions_shown_in_icf_article_page',\n },\n searchErrorPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::search-error:::',\n e: 'im',\n event_name: 'classic_help_search_error_page_shown',\n },\n articlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::article:::',\n e: 'im',\n event_name: 'classic_help_article_page_shown',\n },\n articleErrorPage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::article-error:::',\n e: 'im',\n event_name: 'classic_help_article_error_page_shown',\n },\n currencyConverterArticle: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::currency-converter:::',\n },\n topicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::topic:::',\n e: 'im',\n event_name: 'classic_help_topic_page_shown',\n },\n L3topicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::topic:::',\n e: 'im',\n event_name: 'classic_help_level3_topic_page_shown',\n },\n L3topicErrorPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::topic-error:::',\n e: 'im',\n event_name: 'classic_help_level3_topic_error_page_shown',\n },\n L1topicClicked: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::home:::',\n e: 'cl',\n event_name: 'classic_help_level1_topic_clicked',\n },\n L2topicClicked: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::topic:::',\n e: 'cl',\n event_name: 'classic_help_level2_topic_clicked',\n },\n L3topicClicked: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::topic:::',\n e: 'cl',\n event_name: 'classic_help_level3_topic_clicked',\n },\n L2TopicAccordionClicked: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::topic:::',\n e: 'cl',\n event_name: 'classic_help_level2_topic_accordion_clicked',\n },\n L3TopicAccordionClicked: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::topic:::',\n e: 'cl',\n event_name: 'classic_help_level3_topic_accordion_clicked',\n },\n L2topicArticleClicked: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::topic:::',\n e: 'cl',\n event_name: 'classic_help_article_clicked_under_level2_topic',\n },\n L3topicArticleClicked: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::topic:::',\n e: 'cl',\n event_name: 'classic_help_article_clicked_under_level3_topic',\n },\n sideBarArticleClicked: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::article:::',\n e: 'cl',\n event_name: 'classic_help_article_clicked_on_sidebar_in_article_page',\n },\n L2topicArticleShowMoreClicked: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::topic:::',\n e: 'cl',\n event_name: 'classic_help_topic_level2_show_more_clicked',\n },\n L3topicArticleShowMoreClicked: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::topic:::',\n e: 'cl',\n event_name: 'classic_help_topic_level3_article_show_more_clicked',\n },\n chatBotHome: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::chatBot:::',\n e: 'ac',\n event_name: 'classic_help_chatbot_in_home_page_shown',\n },\n chatBotArticle: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::chatBot:::',\n e: 'ac',\n event_name: 'classic_help_chatbot_in_article_page_shown',\n },\n topicErrorPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::topic-error:::',\n e: 'im',\n event_name: 'classic_help_topic_error_page_shown',\n },\n articleintermediatePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::intermediate:::',\n e: 'im',\n event_name: 'classic_help_intermediate_page_in_article_page_shown',\n },\n CC3TrackingPage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::cc3:::',\n },\n omniTrackingPage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::omni:::',\n },\n // \n stepUpIntermediatePage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::step-up-intermediate:::',\n e: 'im',\n event_name: 'classic_help_intermediate_page_stepUpFlow_shown',\n },\n stepUpIntermediatePage_anwFailure: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::step-up-intermediate-anwFailure:::',\n e: 'ac',\n event_name: 'classic_help_intermediate_page_stepup_anw_failure',\n },\n stepUpIntermediatePage_anwIgnoreDecisions: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::step-up-intermediate-IgnoreDecisions:::',\n e: 'ac',\n event_name: 'classic_help_intermediate_page_stepup_ignoreDecisions',\n },\n stepUpIntermediatePage_decision: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::step-up-intermediate-decisions:::',\n e: 'ac',\n event_name: 'classic_help_intermediate_page_stepup_decision',\n },\n stepUpIntermediatePage_no_translations: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::step-up-intermediate-no-translations:::',\n e: 'ac',\n event_name: 'classic_help_intermediate_page_stepup_no_translations',\n },\n stepUpIntermediatePage_riskFailure: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::step-up-intermediate-risk-failure:::',\n e: 'ac',\n event_name: 'classic_help_intermediate_page_stepup_risk_failure',\n },\n stepUpIntermediatePage_anw_service_failure: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::step-up-intermediate-anw-service-failure:::',\n e: 'ac',\n event_name: 'classic_help_intermediate_page_stepup_anw_service_failure',\n },\n confirmAuthPrompt: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::confirm-auth-prompt:::',\n e: 'ac',\n event_name: 'classic_help_stepup_auth_confirmation_modal_window_shown',\n },\n confirmAuthPromptOnClick: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::confirm-auth-prompt:::',\n e: 'cl',\n },\n confirmAuthFailure: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::confirm-auth-failure:::',\n e: 'ac',\n event_name: 'classic_help_stepup_auth_confirmation_modal_window_failure',\n },\n\n // Dispute-Info\n disputeContactInfo: {\n // Dispute alert default tracking\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::dispute-status-info:::',\n e: 'ac',\n event_name: 'classic_help_dispute_alert_in_contactus_page_shown',\n },\n\n disputeSearchInfo: {\n // Dispute alert default tracking\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::dispute-status-info:::',\n e: 'ac',\n event_name: 'classic_help_dispute_alert_in_search_page_shown',\n },\n\n disputeTransactions: {\n pageGroupName: 'main:help:smart::transactions',\n pageName: 'main:help:smart::dispute-transactions:::',\n e: 'ac',\n event_name: 'classic_help_dispute_transactions_in_article_page_shown',\n },\n\n // ICF-Info\n\n ICFGuide: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::icf-guide:::',\n e: 'ac',\n event_name: 'classic_help_icf_guide_in_home_page_shown',\n },\n\n ICFL1Topic: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::icf:::',\n e: 'ac',\n event_name: 'classic_help_icf_guides_entry_in_L1_topic_in_home_page_shown',\n },\n\n ICFPage: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::icf-articles:::',\n e: 'im',\n event_name: 'classic_help_icf_article_page_shown',\n },\n\n ICFPageError: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::icf-articles-error:::',\n e: 'im',\n event_name: 'classic_help_icf_article_error_page_shown',\n },\n\n ICFTopic: {\n pageGroupName: 'main:help:smart::icf-topic',\n pageName: 'main:help:smart::icf-topic:::',\n e: 'im',\n event_name: 'classic_help_icf_topic_page_shown',\n },\n\n ICFTopicPageError: {\n pageGroupName: 'main:help:smart::icf-topic',\n pageName: 'main:help:smart::icf-topic-error:::',\n e: 'im',\n event_name: 'classic_help_icf_topic_error_page_shown',\n },\n\n // NAA Alert\n NAAContactUs: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::naa-alert:::',\n e: 'ac',\n event_name: 'classic_help_naa_alert_in_contactus_page_shown',\n },\n NAAHomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::naa-alert:::',\n e: 'ac',\n event_name: 'classic_help_naa_alert_in_home_page_shown',\n },\n NAAArticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::naa-alert:::',\n e: 'ac',\n event_name: 'classic_help_naa_alert_in_article_page_shown',\n },\n NAASearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::naa-alert:::',\n e: 'ac',\n event_name: 'classic_help_naa_alert_in_search_page_shown',\n },\n NAATopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::naa-alert:::',\n e: 'ac',\n event_name: 'classic_help_naa_alert_in_topic_page_shown',\n },\n NAAIcfPage: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::naa-alert:::',\n e: 'ac',\n event_name: 'classic_help_naa_alert_in_icftopic_page_shown',\n },\n\n // COVID BCP SUPPRESS CALLUS ALERT WINDOW\n covidBcpCallUsAlert: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::covid-bcp-callus-alert-window:::',\n },\n\n // Covid popup alerts\n contactUsAlertPopup: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::pop-up-alert:::',\n e: 'ac',\n event_name: 'classic_help_popup_alert_in_contactus_page_shown',\n },\n homeAlertPopup: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::pop-up-alert:::',\n e: 'ac',\n event_name: 'classic_help_popup_alert_in_home_page_shown',\n },\n searchAlertPopup: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::pop-up-alert:::',\n e: 'ac',\n event_name: 'classic_help_popup_alert_in_search_page_shown',\n },\n articleAlertPopup: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::pop-up-alert:::',\n e: 'ac',\n event_name: 'classic_help_popup_alert_in_article_page_shown',\n },\n topicAlertPopup: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::pop-up-alert:::',\n e: 'ac',\n event_name: 'classic_help_popup_alert_in_topic_page_shown',\n },\n ICFTopicAlertPopup: {\n pageGroupName: 'main:help:smart::icf-topic',\n pageName: 'main:help:smart::pop-up-alert:::',\n e: 'ac',\n event_name: 'classic_help_popup_alert_in_icftopic_page_shown',\n },\n ICFPageAlertPopup: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::pop-up-alert:::',\n e: 'ac',\n event_name: 'classic_help_popup_alert_in_icfalert_page_shown',\n },\n\n // Covid popup alerts\n // FPTI for critical alerts\n contactUsCriticalAlert: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'ac',\n event_name: 'classic_help_critical_alert_in_contact_page_shown',\n },\n contactUsCriticalAlertContentClicked: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'cl',\n event_name: 'classic_help_critical_alert_content_link_clicked_in_contact_us_page',\n },\n homeCriticalAlert: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'ac',\n event_name: 'classic_help_critical_alert_in_home_page_shown',\n },\n homeCriticalAlertContentClicked: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'cl',\n event_name: 'classic_help_critical_alert_content_link_clicked_in_home_page',\n },\n searchCriticalAlert: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'ac',\n event_name: 'classic_help_critical_alert_in_search_page_shown',\n },\n searchCriticalAlertContentClicked: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'cl',\n event_name: 'classic_help_critical_alert_content_link_clicked_in_search_page',\n },\n articleCriticalAlert: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'ac',\n event_name: 'classic_help_critical_alert_in_article_page_shown',\n },\n articleCriticalAlertContentClicked: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'cl',\n event_name: 'classic_help_critical_alert_content_link_clicked_in_article_page',\n },\n topicCriticalAlert: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'ac',\n event_name: 'classic_help_critical_alert_in_topic_page_shown',\n },\n topicCriticalAlertContentClicked: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'cl',\n event_name: 'classic_help_critical_alert_content_link_clicked_in_topic_page',\n },\n ICFTopicCriticalAlert: {\n pageGroupName: 'main:help:smart::icf-topic',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'ac',\n event_name: 'classic_help_critical_alert_in_icftopic_page_shown',\n },\n ICFTopicCriticalAlertContentClicked: {\n pageGroupName: 'main:help:smart::icf-topic',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'cl',\n event_name: 'classic_help_critical_alert_content_link_clicked_in_icf_topic_page',\n },\n ICFPageCriticalAlert: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'ac',\n event_name: 'classic_help_critical_alert_in_icfarticle_page_shown',\n },\n ICFPageCriticalAlertContentClicked: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::critical-alert:::',\n e: 'cl',\n event_name: 'classic_help_critical_alert_content_link_clicked_in_icf_page',\n },\n\n // FPTI for warning alert\n homeWarningAlert: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::warning-alert:::',\n e: 'ac',\n event_name: 'classic_help_warning_alert_in_home_page_shown',\n },\n homeWarningAlertContentClicked: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::warning-alert:::',\n e: 'cl',\n event_name: 'classic_help_warning_alert_content_link_clicked_in_home_page',\n },\n\n // FPTI for info alert\n homeInfoAlert: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::info-alert:::',\n e: 'ac',\n event_name: 'classic_help_info_alert_in_home_page_shown',\n },\n homeInfoAlertContentClicked: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::info-alert:::',\n e: 'cl',\n event_name: 'classic_help_info_alert_content_link_clicked_in_home_page',\n },\n\n // Refund Tracker\n refundsTrackerContactUs: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::refund-status-tracker:::',\n e: 'ac',\n event_name: 'classic_help_refund_status_tracker_in_contactus_page_shown',\n },\n refundsTrackerHome: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::refund-status-tracker:::',\n e: 'ac',\n event_name: 'classic_help_refund_status_tracker_in_home_page_shown',\n },\n refundsTrackerArticle: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::refund-status-tracker:::',\n e: 'ac',\n event_name: 'classic_help_refund_status_tracker_in_article_page_shown',\n },\n refundAlertContactUs: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::refund-status-alert:::',\n e: 'ac',\n event_name: 'classic_help_refund_status_alert_in_contactus_page_shown',\n },\n refundAlertSearch: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::refund-status-alert:::',\n e: 'ac',\n event_name: 'classic_help_refund_status_alert_in_search_page_shown',\n },\n // NNA\n nnaHomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::nna-widget:::',\n e: 'ac',\n event_name: 'classic_help_nna_widget_in_home_page_shown',\n },\n nnaHomePageError: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::nna-widget-error:::',\n e: 'ac',\n event_name: 'classic_help_nna_widget_error_in_home_page',\n },\n // omniChannel\n updateContexthomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::update-context:::',\n },\n updateContextSuccesshomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::update-context-success:::',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_success',\n },\n updateContextFailurehomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::update-context-failed:::',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_failed',\n },\n updateContextcontactUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::update-context:::',\n },\n updateContextSuccesscontactUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::update-context-success:::',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_success',\n },\n updateContextFailurecontactUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::update-context-failed:::',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_failed',\n },\n\n updateContextStepUp: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::step-up-update-context:::',\n },\n updateContextSuccessStepUp: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::step-up-update-context-success:::',\n e: 'ac',\n event_name: 'classic_help_ocp_step_up_update_context_success',\n },\n updateContextFailureStepUp: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::step-up-update-context-failed:::',\n e: 'ac',\n event_name: 'classic_help_ocp_step_up_update_context_failed',\n },\n\n setContexthomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::set-context:::',\n e: 'ac',\n event_name: 'classic_help_home_ocp_set_context_fired',\n },\n setContextSuccesshomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::set-context-success:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_success',\n },\n setContextFailurehomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::set-context-failed:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_failed',\n },\n setContextcontactUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::set-context:::',\n e: 'ac',\n event_name: 'classic_help_contactus_ocp_set_context',\n },\n setContextSuccesscontactUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::set-context-success:::',\n e: 'ac',\n event_name: 'classic_help_contactus_ocp_set_context_success',\n },\n setContextFailurecontactUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::set-context-failed:::',\n e: 'ac',\n event_name: 'classic_help_contactus_ocp_set_context_failed',\n },\n\n setContextarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::set-context:::',\n e: 'ac',\n event_name: 'classic_help_article_ocp_set_context_fired',\n },\n setContextSuccessarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::set-context-success:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_success',\n },\n setContextFailurearticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::set-context-failed:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_failed',\n },\n setContexttopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::set-context:::',\n e: 'ac',\n event_name: 'classic_help_topic_ocp_set_context_fired',\n },\n setContextSuccesstopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::set-context-success:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_success',\n },\n setContextFailuretopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::set-context-failed:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_failed',\n },\n setContextICFTopic: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::set-context:::',\n e: 'ac',\n event_name: 'classic_help_icf_ocp_set_context_fired',\n },\n setContextSuccessICFTopic: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::set-context-success:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_success',\n },\n setContextFailureICFTopic: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::set-context-failed:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_failed',\n },\n setContextsearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::set-context:::',\n e: 'ac',\n event_name: 'classic_help_search_ocp_set_context_fired',\n },\n setContextSuccesssearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::set-context-success:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_success',\n },\n setContextFailuresearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::set-context-failed:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_failed',\n },\n omniChannelSetContextNotFiredhomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::omni-channel-set-context-not-fired:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_not_fired',\n },\n omniChannelSetContextNotFiredcontactUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::omni-channel-set-context-not-fired:::',\n e: 'ac',\n event_name: 'classic_help_contactus_ocp_set_context_not_fired',\n },\n omniChannelSetContextNotFiredarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::omni-channel-set-context-not-fired:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_not_fired',\n },\n omniChannelSetContextNotFiredsearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::omni-channel-set-context-not-fired:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_not_fired',\n },\n omniChannelSetContextNotFiredIcfPage: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::omni-channel-set-context-not-fired:::',\n e: 'ac',\n event_name: 'classic_help_ocp_set_context_not_fired',\n },\n\n // Brexit\n complaintsPage: {\n pageGroupName: 'main:help:smart::complaints',\n pageName: 'main:help:smart::complaints-page:::',\n e: 'ac',\n event_name: 'classic_help_complaints_page_displayed',\n },\n complaintsPageModal: {\n pageGroupName: 'main:help:smart::complaints',\n pageName: 'main:help:smart::complaints-page-modal:::',\n e: 'ac',\n event_name: 'classic_help_complaints_page_modal_displayed',\n },\n complaintsDataPanel: {\n pageGroupName: 'main:help:smart::complaints',\n pageName: 'main:help:smart::complaints-page:::',\n e: 'ac',\n event_name: 'classic_help_complaints_data_shown',\n },\n complaintsDataSheetOpen: {\n pageGroupName: 'main:help:smart::complaints',\n pageName: 'main:help:smart::complaints-page:::',\n e: 'cl',\n event_name: 'classic_help_complaints_data_sheet_open',\n },\n complaintsDataSheetClose: {\n pageGroupName: 'main:help:smart::complaints',\n pageName: 'main:help:smart::complaints-page:::',\n e: 'cl',\n event_name: 'classic_help_complaints_data_sheet_close',\n },\n\n complaintsPageLoad: {\n pageGroupName: 'main:help:smart::complaints',\n pageName: 'main:help:smart::complaints-page:::',\n e: 'im',\n event_name: 'classic_help_complaints_page_displayed',\n },\n\n complaintsIntermediatePage: {\n pageGroupName: 'main:help:smart::complaints',\n pageName: 'main:help:smart::intermediate:::',\n e: 'im',\n event_name: 'classic_help_intermediate_page_in_complaints_page_displayed',\n },\n searchBarFocusedIncomplaintsPage: {\n pageGroupName: 'main:help:smart::complaints',\n pageName: 'main:help:smart::search-bar-focused:::',\n e: 'cl',\n event_name: 'classic_help_search_bar_focused_in_complaints_page',\n },\n quicklinksShownIncomplaintsPage: {\n pageGroupName: 'main:help:smart::complaints',\n pageName: 'main:help:smart::quicklinks-shown:::',\n e: 'ac',\n event_name: 'classic_help_quicklinks_for_common_questions_shown_in_complaints_page',\n },\n fullSearchClickedIncomplaintsPage: {\n pageGroupName: 'main:help:smart:complaints',\n pageName: 'main:help:smart:full-search-clicked',\n e: 'cl',\n event_name: 'classic_help_full_search_clicked_in_complaints_page',\n },\n omniChannelPromptDisplayed: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::omni-channel-prompt-displayed:::',\n e: 'ac',\n event_name: 'classic_help_ocp_prompt_displayed',\n },\n\n omniChannelPromptNotDisplayed: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::omni-channel-prompt-not-displayed:::',\n e: 'ac',\n event_name: 'classic_help_ocp_prompt_not_displayed',\n },\n omniChannelUpdateContextNotFiredHome: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::omni-channel-update-context-not-fired:::',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_not_fired',\n },\n omniChannelUpdateContextNotFiredContactUs: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::omni-channel-update-context-not-fired:::',\n e: 'ac',\n event_name: 'classic_help_ocp_update_context_not_fired',\n },\n\n contactUsOmniChannelPromptDisplayed: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::omni-channel-prompt:::',\n e: 'ac',\n event_name: 'classic_help_contactus_page_ocp_prompt_displayed',\n },\n contactUsOmniChannelPromptClicked: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::omni-channel-prompt:::',\n },\n contactUsOmniChannelPromptFinalIntentRedirectError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::omni-channel-prompt-error:::',\n e: 'ac',\n event_name: 'classic_help_contactus_page_ocp_prompt_final_intent_redirect_error',\n },\n contactUsOmniChannelPromptError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::omni-channel-prompt-error:::',\n e: 'ac',\n event_name: 'classic_help_contactus_page_ocp_prompt_not_displayed_due_to_render_error',\n },\n enhancedFooterFeedbackClickError: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::enhanced-footer-feedback-error:::',\n },\n\n // Qualtrics survey component\n qualtricsFeedbackcontactUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::qualtrics-footer-survey:::',\n e: 'ac',\n event_name: 'classic_help_qualtrics_survey_in_contact_page_shown',\n },\n qualtricsFeedbackhomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::qualtrics-footer-survey:::',\n e: 'ac',\n event_name: 'classic_help_qualtrics_survey_in_home_page_shown',\n },\n qualtricsFeedbacksearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::qualtrics-footer-survey:::',\n e: 'ac',\n event_name: 'classic_help_qualtrics_survey_in_search_page_shown',\n },\n qualtricsFeedbackarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::qualtrics-footer-survey:::',\n e: 'ac',\n event_name: 'classic_help_qualtrics_survey_in_article_page_shown',\n },\n qualtricsFeedbacktopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::qualtrics-footer-survey:::',\n e: 'ac',\n event_name: 'classic_help_qualtrics_survey_in_topic_page_shown',\n },\n qualtricsFeedbackICFTopic: {\n pageGroupName: 'main:help:smart::icf-topic',\n pageName: 'main:help:smart::qualtrics-footer-survey:::',\n e: 'ac',\n event_name: 'classic_help_qualtrics_survey_in_icftopic_page_shown',\n },\n vhtWidgetContactUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::schedule-callback-vht-widget:::',\n },\n vhtWidgetSuccess: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::schedule-callback-vht-widget:::',\n e: 'im',\n event_name: 'classic_help_schedule_callback_widget_shown_in_contactus_page',\n },\n vhtWidgetError: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::schedule-callback-vht-widget-error:::',\n e: 'ac',\n event_name: 'classic_help_schedule_callback_widget_error_in_contactus_page',\n },\n articlePageVideo: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::article-video:::',\n e: 'ac',\n event_name: 'classic_help_video_displayed_in_article_page',\n },\n icfArticlePageVideo: {\n pageGroupName: 'main:help:smart::icf',\n pageName: 'main:help:smart::icf-article-video:::',\n e: 'ac',\n event_name: 'classic_help_video_displayed_in_icf_article_page',\n },\n machineTranslationArticleButtonShown: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::article-machine-translation-button-shown:::',\n e: 'ac',\n event_name: 'classic_help_article_machine_translation_button_shown',\n },\n machineTranslationArticleSuccessShown: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::article-machine-translation-success:::',\n e: 'ac',\n event_name: 'classic_help_article_machine_translation_success_shown',\n },\n machineTranslationArticleErrorShown: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::article-machine-translation-error:::',\n e: 'ac',\n event_name: 'classic_help_article_machine_translation_error_shown',\n },\n searchCharLimiterTriggeredhomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::search-charLimit-error:::',\n e: 'ac',\n event_name: 'classic_help_search_char_limit_error',\n },\n searchCharLimiterTriggeredarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::search-charLimit-error:::',\n e: 'ac',\n event_name: 'classic_help_search_char_limit_error',\n },\n searchCharLimiterTriggeredsearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::search-charLimit-error:::',\n e: 'ac',\n event_name: 'classic_help_search_char_limit_error',\n },\n searchCharLimiterTriggeredtopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::search-charLimit-error:::',\n e: 'ac',\n event_name: 'classic_help_search_char_limit_error',\n },\n searchCharLimiterTriggeredICFTopic: {\n pageGroupName: 'main:help:smart::icf-topic',\n pageName: 'main:help:smart::search-charLimit-error:::',\n e: 'ac',\n event_name: 'classic_help_search_char_limit_error',\n },\n // search auto complete error fpti's\n searchAutoCompleteEmptyResulthomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::search-auto-complete-no-results:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_no_results',\n },\n searchAutoCompleteErrorhomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::search-auto-complete-error-response:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_error_response',\n },\n searchAutoCompleteResultsShownhomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::search-auto-complete-results:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_results_shown',\n },\n searchAutoCompleteEmptyResultarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::search-auto-complete-no-results:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_no_results',\n },\n searchAutoCompleteErrorarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::search-auto-complete-error-response:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_error_response',\n },\n searchAutoCompleteResultsShownarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::search-auto-complete-results:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_results_shown',\n },\n searchAutoCompleteEmptyResulttopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::search-auto-complete-no-results:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_no_results',\n },\n searchAutoCompleteErrortopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::search-auto-complete-error-response:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_error_response',\n },\n searchAutoCompleteResultsShowntopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::search-auto-complete-results:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_results_shown',\n },\n searchAutoCompleteEmptyResultICFTopic: {\n pageGroupName: 'main:help:smart::icf-topic',\n pageName: 'main:help:smart::search-auto-complete-no-results:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_no_results',\n },\n searchAutoCompleteErrorICFTopic: {\n pageGroupName: 'main:help:smart::icf-topic',\n pageName: 'main:help:smart::search-auto-complete-error-response:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_error_response',\n },\n searchAutoCompleteResultsShownICFTopic: {\n pageGroupName: 'main:help:smart::icf-topic',\n pageName: 'main:help:smart::search-auto-complete-results:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_results_shown',\n },\n searchAutoCompleteEmptyResultsearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::search-auto-complete-no-results:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_no_results',\n },\n searchAutoCompleteErrorsearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::search-auto-complete-error-response:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_error_response',\n },\n\n searchAutoCompleteResultsShownsearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::search-auto-complete-results:::',\n e: 'ac',\n event_name: 'classic_help_search_autocomplete_results_shown',\n },\n emailFormLoadFailure: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::emailByPass-error:::',\n e: 'im',\n event_name: 'classic_help_email_form_load_error',\n },\n customChatBotShownarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::custom-chatBot:::',\n e: 'ac',\n event_name: 'classic_help_article_custom_chatbot_shown',\n },\n customChatBotClickedarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::custom-chatBot:::',\n e: 'cl',\n event_name: 'classic_help_article_custom_chatbot_clicked',\n },\n customChatBotShownhomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::custom-chatBot:::',\n e: 'ac',\n event_name: 'classic_help_home_custom_chatbot_shown',\n },\n customChatBotClickedhomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::custom-chatBot:::',\n e: 'cl',\n event_name: 'classic_help_home_custom_chatbot_clicked',\n },\n updateBNA: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::update-bna',\n e: 'ac',\n event_name: 'classic_help_update_bna_response_sent',\n },\n updateBNAError: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::update-bna',\n e: 'ac',\n event_name: 'classic_help_update_bna_response_not_sent',\n },\n\n // Customer Journey add new home page fpti as well\n customerJourneycontactUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::customer-journey:::',\n e: 'ac',\n event_name: 'classic_help_contactus_customer_journey_api',\n },\n customerJourneySuccesscontactUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::customer-journey-success:::',\n e: 'ac',\n event_name: 'classic_help_contactus_customer_journey_api_success',\n },\n customerJourneyFailurecontactUsPage: {\n pageGroupName: 'main:help:smart::contact-us',\n pageName: 'main:help:smart::customer-journey-failed:::',\n e: 'ac',\n event_name: 'classic_help_contactus_customer_journey_api_failed',\n },\n customerJourneyhomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::customer-journey:::',\n e: 'ac',\n event_name: 'classic_help_home_customer_journey_api_fired',\n },\n customerJourneySuccesshomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::customer-journey-success:::',\n e: 'ac',\n event_name: 'classic_help_home_customer_journey_api_success',\n },\n customerJourneyFailurehomePage: {\n pageGroupName: 'main:help:smart::home',\n pageName: 'main:help:smart::customer-journey-failed:::',\n e: 'ac',\n event_name: 'classic_help_home_customer_journey_api_failed',\n },\n customerJourneyarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::customer-journey:::',\n e: 'ac',\n event_name: 'classic_help_article_customer_journey_api_fired',\n },\n customerJourneySuccessarticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::customer-journey-success:::',\n e: 'ac',\n event_name: 'classic_help_article_customer_journey_api_success',\n },\n customerJourneyFailurearticlePage: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::customer-journey-failed:::',\n e: 'ac',\n event_name: 'classic_help_article_customer_journey_api_failed',\n },\n customerJourneytopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::customer-journey:::',\n e: 'ac',\n event_name: 'classic_help_topic_customer_journey_api_fired',\n },\n customerJourneySuccesstopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::customer-journey-success:::',\n e: 'ac',\n event_name: 'classic_help_topic_customer_journey_api_success',\n },\n customerJourneyFailuretopicPage: {\n pageGroupName: 'main:help:smart::topic',\n pageName: 'main:help:smart::customer-journey-failed:::',\n e: 'ac',\n event_name: 'classic_help_topic_customer_journey_api_failed',\n },\n customerJourneyICFTopicPage: {\n pageGroupName: 'main:help:smart::icf-topic',\n pageName: 'main:help:smart::customer-journey:::',\n e: 'ac',\n event_name: 'classic_help_icf_topic_customer_journey_api_fired',\n },\n customerJourneySuccessICFTopicPage: {\n pageGroupName: 'main:help:smart::icf-topic',\n pageName: 'main:help:smart::customer-journey-success:::',\n e: 'ac',\n event_name: 'classic_help_icf_topic_customer_journey_api_success',\n },\n customerJourneyFailureICFTopicPage: {\n pageGroupName: 'main:help:smart::icf-topic',\n pageName: 'main:help:smart::customer-journey-failed:::',\n e: 'ac',\n event_name: 'classic_help_icf_topic_customer_journey_api_failed',\n },\n customerJourneyICFTopic: {\n pageGroupName: 'main:help:smart::icf-articles',\n pageName: 'main:help:smart::customer-journey:::',\n e: 'ac',\n event_name: 'classic_help_icf_articles_customer_journey_api_fired',\n },\n customerJourneySuccessICFTopic: {\n pageGroupName: 'main:help:smart::icf-articles',\n pageName: 'main:help:smart::customer-journey-success:::',\n e: 'ac',\n event_name: 'classic_help_icf_articles_customer_journey_api_success',\n },\n customerJourneyFailureICFTopic: {\n pageGroupName: 'main:help:smart::icf-articles',\n pageName: 'main:help:smart::customer-journey-failed:::',\n e: 'ac',\n event_name: 'classic_help_icf_articles_customer_journey_api_failed',\n },\n customerJourneysearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::customer-journey:::',\n e: 'ac',\n event_name: 'classic_help_search_customer_journey_api_fired',\n },\n customerJourneySuccesssearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::customer-journey-success:::',\n e: 'ac',\n event_name: 'classic_help_search_customer_journey_api_success',\n },\n customerJourneyFailuresearchPage: {\n pageGroupName: 'main:help:smart::search',\n pageName: 'main:help:smart::customer-journey-failed:::',\n e: 'ac',\n event_name: 'classic_help_search_customer_journey_api_failed',\n },\n articleRedirect: {\n pageGroupName: 'main:help:smart::article',\n pageName: 'main:help:smart::article-redirect:::',\n e: 'ac',\n event_name: 'classic_help_article_redirect_to_home',\n },\n});\n\nexport const PageMapping = {\n 'contact-us': 'contactUsPage',\n callus: 'callUsPage',\n email: 'emailPage',\n home: 'homePage',\n search: 'searchPage',\n article: 'articlePage',\n topic: 'topicPage',\n icf: 'ICFTopic',\n PAYPAL_HELP_GUIDE: 'ICFTopic',\n complaints: 'complaintsPage',\n};\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import axios from 'axios';\nimport _isEmpty from 'lodash/isEmpty';\nimport { getCsrfToken } from '../../helpers/twHelper';\nimport { getUrlWithQueryParams } from '../../helpers/globalHelper';\n\n// Constants\nimport {\n PERSONALIZED_FEED_API_URL,\n PERSONALIZED_FEED_ERROR,\n PERSONALIZED_FEED_REQUESTED,\n PERSONALIZED_FEED_SUCCESS,\n} from '../personalizedSection/PersonalizedSection-Actions';\n\nexport const CONTACT_US_TOPIC_TREE_INTENT_URL = '/smarthelp/api/topic-tree';\n\n// constants\nexport const TOPIC_INTENTS_REQUESTED = 'TOPIC_INTENTS_REQUESTED';\nexport const TOPIC_INTENTS_SUCCESS = 'TOPIC_INTENTS_SUCCESS';\nexport const TOPIC_INTENTS_ERROR = 'TOPIC_INTENTS_ERROR';\nexport const TOPIC_INTENT_SEARCH_SHEET_OPEN = 'TOPIC_INTENT_SEARCH_SHEET_OPEN';\nexport const TOPIC_INTENT_SEARCH_SHEET_CLOSE = 'TOPIC_INTENT_SEARCH_SHEET_CLOSE';\nexport const TOPIC_INTENT_FINAL_INTENT_SELECTED = 'TOPIC_INTENT_FINAL_INTENT_SELECTED';\nexport const TOPIC_INTENT_CHANGE_FINAL_INTENT_REQUESTED = 'TOPIC_INTENT_CHANGE_FINAL_INTENT_REQUESTED';\nexport const RESET_SELECTED_TOPIC = 'RESET_SELECTED_TOPIC';\nexport const OCP_PROMPT_CARD_SELECTED = 'OCP_PROMPT_CARD_SELECTED';\nexport const OCP_PROMPT_CARD_CHANGE_REQUESTED = 'OCP_PROMPT_CARD_CHANGE_REQUESTED';\n\nexport const requestTopicIntents = () => ({\n type: TOPIC_INTENTS_REQUESTED,\n payload: undefined,\n});\n\nexport const receiveTopicTreeIntents = ({ topicIntents, priorityIntents }) => ({\n type: TOPIC_INTENTS_SUCCESS,\n payload: {\n topicIntents,\n priorityIntents,\n },\n});\n\nexport const receiveTopicTreeIntentsError = () => ({\n type: TOPIC_INTENTS_ERROR,\n});\n\nexport const searchSheetOpen = () => ({\n type: TOPIC_INTENT_SEARCH_SHEET_OPEN,\n});\n\nexport const searchSheetClose = () => ({\n type: TOPIC_INTENT_SEARCH_SHEET_CLOSE,\n});\n\nexport const finalIntentSelected = (selectedFinalIntent) => ({\n type: TOPIC_INTENT_FINAL_INTENT_SELECTED,\n payload: selectedFinalIntent,\n});\n\nexport const resetSelectedIntent = () => ({\n type: RESET_SELECTED_TOPIC,\n});\n\nexport const ocpPromptCardSelected = (data) => ({\n type: OCP_PROMPT_CARD_SELECTED,\n payload: data,\n});\n\nexport const ocpPromptChangeSelected = () => ({\n type: OCP_PROMPT_CARD_CHANGE_REQUESTED,\n});\n\nexport const changeSelected = () => ({\n type: TOPIC_INTENT_CHANGE_FINAL_INTENT_REQUESTED,\n});\n\n// Personalized Feed Actions\nconst requestPersonalizedFeed = () => ({ type: PERSONALIZED_FEED_REQUESTED });\n\nconst receivedPersonalizedFeedError = (e) => ({ type: PERSONALIZED_FEED_ERROR, payload: e });\n\nconst receivedPersonalizedFeed = (pfData) => {\n const ocp = pfData.ocp || {};\n const isOcpEnabled = !_isEmpty(ocp) && Array.isArray(ocp.intentDetails) && ocp.intentDetails.length > 0;\n return {\n type: PERSONALIZED_FEED_SUCCESS,\n payload: {\n ocp,\n isOcpEnabled,\n },\n };\n};\n\nexport const getContactTopicTreeIntents = () => (dispatch) => {\n dispatch(requestTopicIntents());\n return axios\n .get(CONTACT_US_TOPIC_TREE_INTENT_URL)\n .then((response) => {\n dispatch(receiveTopicTreeIntents(response.data));\n })\n .catch(() => {\n dispatch(receiveTopicTreeIntentsError());\n });\n};\n\n/**\n * fetch personalized info - OCP Data\n */\nexport const getPersonalizedFeed = () => (dispatch) => {\n dispatch(requestPersonalizedFeed());\n let personalizedFeedUrl = `${getUrlWithQueryParams(PERSONALIZED_FEED_API_URL, {\n pathName: 'contactUs',\n ocp: true,\n trackers: false,\n })}`;\n\n // remove the '&' from end of the url\n personalizedFeedUrl = personalizedFeedUrl.slice(0, -1);\n\n return axios\n .get(personalizedFeedUrl)\n .then((feedResponse) => {\n dispatch(receivedPersonalizedFeed(feedResponse.data));\n })\n .catch((e) => dispatch(receivedPersonalizedFeedError(e)));\n};\n\n/**\n * Server side FPTI when the OCP Prompts are shown\n * @param {*} intentArticles\n * @returns\n */\nexport const doServerSideFptiCall = (intentArticles) =>\n axios\n .post('/smarthelp/server-side-fpti', { intentArticles, _csrf: getCsrfToken() })\n .then(() => null)\n .catch(() => null);\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Container } from '@paypalcorp/pp-react';\nimport { trackActivityEvent, trackJSError } from '../helpers/analytics/fptiHelper';\nimport ErrorMessage from './ErrorMessage';\n\n/*\n Error Boundary component to handle/catch error in the child components.\n Error boundaries catch errors during rendering, in lifecycle methods,\n and in constructors of the whole tree below them, unmount the component tree\n while maintaining the usual workings and renderings of the rest of the React application.\n */\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props);\n this.state = {\n error: '',\n errorInfo: '',\n hasError: false,\n };\n }\n\n static getDerivedStateFromError(error) {\n return { hasError: true, error };\n }\n\n componentDidCatch(error, errorInfo) {\n const { errorFPTI } = this.props;\n this.setState({\n error,\n errorInfo,\n });\n if (errorFPTI) {\n trackActivityEvent(this.props.errorFPTI);\n } else {\n trackActivityEvent(); // TODO:: set some default FPTI to catch errors\n }\n\n trackJSError({ error: JSON.stringify(error), errorInfo });\n }\n\n render() {\n if (!this.state.errorInfo) {\n return this.props.children;\n }\n\n if (this.props.suppressError) {\n return ;\n }\n\n return (\n \n \n \n );\n }\n}\n\nErrorBoundary.propTypes = {\n suppressError: PropTypes.bool,\n children: PropTypes.node,\n errorFPTI: PropTypes.shape({}), // Custom error FPTI corresponding to the component.\n // componentName: PropTypes.string,\n};\n\nErrorBoundary.defaultProps = {\n suppressError: false,\n};\n\nexport default ErrorBoundary;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React, { useMemo, useEffect, forwardRef, useRef, useState, useContext } from 'react';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport { CriticalIcon, CheckmarkBackgroundIcon } from '@paypalcorp/pp-react-icons';\nimport { css, useTheme, jsx, ClassNames } from '@emotion/react';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport { math, remToPx } from 'polished';\nimport { textStyles } from '@paypalcorp/pp-react-text';\nimport { devWarning, utilStyles } from '@paypalcorp/pp-react-utils';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport { IntlContext, getFormattedMessage } from '@paypalcorp/pp-react-intl';\n\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41, _templateObject42, _templateObject43, _templateObject44, _templateObject45, _templateObject46, _templateObject47, _templateObject48, _templateObject49, _templateObject50;\nfunction styles(tokens) {\n /* istanbul ignore next */\n if (!Object.keys(tokens).length) {\n devWarning('Missing Emotion theme. Use ThemeProvider from @emotion/react to pass a valid theme from pp-react.');\n return {};\n }\n\n var sysBorderThicknessNormal = tokens.sysBorderThicknessNormal,\n sysBorderThicknessEmphasis = tokens.sysBorderThicknessEmphasis,\n sysBorderRadiusSm = tokens.sysBorderRadiusSm,\n sysColorBackgroundSurface = tokens.sysColorBackgroundSurface,\n sysColorBackgroundMediumContrast = tokens.sysColorBackgroundMediumContrast,\n sysSpaceTiny = tokens.sysSpaceTiny,\n sysSpaceXs = tokens.sysSpaceXs,\n sysSpaceSm = tokens.sysSpaceSm,\n sysSpaceMd = tokens.sysSpaceMd,\n sysSpaceXl = tokens.sysSpaceXl,\n sysMotionDurationMoveSmall = tokens.sysMotionDurationMoveSmall,\n sysSizeTapTargetDefault = tokens.sysSizeTapTargetDefault,\n sysColorStructureBorderHighContrast = tokens.sysColorStructureBorderHighContrast,\n sysColorErrorMain = tokens.sysColorErrorMain,\n sysColorSuccessMain = tokens.sysColorSuccessMain,\n sysTypographyBodyLineHeight = tokens.sysTypographyBodyLineHeight,\n sysTypographyCaptionLineHeight = tokens.sysTypographyCaptionLineHeight,\n sysColorBackgroundHighContrast = tokens.sysColorBackgroundHighContrast,\n sysSizeFieldLg = tokens.sysSizeFieldLg;\n var backgroundSpaceTop = math(\"(\".concat(sysSizeFieldLg, \" - \").concat(sysTypographyBodyLineHeight, \") / 2\"));\n var backgroundSpaceBottom = math(\"(\".concat(sysSizeFieldLg, \" - \").concat(sysTypographyBodyLineHeight, \") / 2\")); // 64px - 8px - 20px - 2px - 24px\n\n var backgroundSpaceBottomEntered = math(\"\".concat(sysSizeFieldLg, \" - \").concat(sysSpaceSm, \" - \").concat(sysTypographyCaptionLineHeight, \" - \").concat(sysSpaceTiny, \" - \").concat(sysTypographyBodyLineHeight));\n var ppuiV2CurrencyInputMinHeight = math('4rem - 0.125rem'); //subtract borders in currency input\n\n var _utilStyles = utilStyles(tokens),\n focusStyles = _utilStyles.focusStyles,\n ellipsis = _utilStyles.ellipsis,\n screenReader = _utilStyles.screenReader,\n variables = _utilStyles.variables;\n\n var _textStyles = textStyles(tokens),\n caption = _textStyles.caption,\n body = _textStyles.body,\n fieldLabelSm = _textStyles.fieldLabelSm;\n\n var focusOffsetElement = focusStyles.focusOffsetElement;\n var ppuiEaseMoveSmall = variables.ppuiEaseMoveSmall;\n\n function info() {\n return css(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n \", \";\\n display: flex;\\n margin: \", \" 0 0;\\n \"])), caption({\n color: sysColorBackgroundMediumContrast\n }), sysSpaceXs);\n }\n\n function fieldIcon() {\n return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n text-decoration: none;\\n position: absolute;\\n \"])));\n }\n\n var label = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\\n label: label;\\n \", \"\\n \", \";\\n pointer-events: none;\\n position: absolute;\\n top: \", \";\\n transition: font-size \", \" \", \",\\n top \", \" \", \",\\n background-color \", \" \", \";\\n right: \", \";\\n left: \", \";\\n background-clip: padding-box;\\n \"])), fieldLabelSm({\n color: sysColorBackgroundMediumContrast\n }), ellipsis, sysSpaceSm, sysMotionDurationMoveSmall, ppuiEaseMoveSmall, sysMotionDurationMoveSmall, ppuiEaseMoveSmall, sysMotionDurationMoveSmall, ppuiEaseMoveSmall, sysSpaceMd, sysSpaceMd);\n var labelWhenPlaceholderShownAndInputNotFocused = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"\\n label: label_placeholder_shown_and_not_focused;\\n :placeholder-shown:not(:focus) ~ label {\\n \", \";\\n top: \", \";\\n background-color: transparent;\\n margin-bottom: 0;\\n }\\n \"])), body({\n color: sysColorBackgroundMediumContrast\n }), backgroundSpaceTop);\n var labelWithScreenreader = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"\\n label: label_screenreader;\\n \", \"\\n \"])), screenReader);\n var helperText = css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral([\"\\n label: helper_text;\\n \", \"\\n display: block;\\n list-style: none;\\n padding: 0;\\n overflow-wrap: break-word;\\n \"])), info());\n var base = css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([\"\\n label: text_input_base;\\n \", \";\\n padding: 0;\\n position: relative;\\n text-align: left;\\n [dir='rtl'] & {\\n text-align: right;\\n }\\n \"])), body());\n var iconRight = css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral([\"\\n label: icon_right;\\n \", \"\\n width: \", \";\\n height: \", \";\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n top: \", \";\\n right: \", \";\\n left: auto;\\n [dir='rtl'] & {\\n left: \", \";\\n right: auto;\\n }\\n \"])), fieldIcon(), sysSizeTapTargetDefault, sysSizeTapTargetDefault, sysSpaceSm, sysSpaceSm, sysSpaceSm);\n var iconLeft = css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral([\"\\n label: icon_left;\\n pointer-events: none;\\n z-index: 1;\\n \", \"\\n inset: \", \" auto \", \" \", \";\\n color: \", \";\\n [dir='rtl'] & {\\n inset: \", \" \", \" \", \" auto;\\n }\\n \"])), fieldIcon(), backgroundSpaceTop, backgroundSpaceTop, sysSpaceMd, sysColorBackgroundMediumContrast, backgroundSpaceTop, sysSpaceMd, backgroundSpaceTop);\n var control = css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral([\"\\n label: text_input_control;\\n padding: \", \"\\n \", \"\\n \", \"\\n \", \";\\n \", \";\\n text-overflow: ellipsis;\\n box-sizing: border-box;\\n width: 100%;\\n border: \", \" solid\\n \", \";\\n border-radius: \", \";\\n background-color: \", \";\\n &::placeholder {\\n color: \", \";\\n }\\n &:placeholder-shown:not(:focus)::-webkit-input-placeholder {\\n opacity: 0;\\n transition: opacity \", \" \", \";\\n }\\n &:placeholder-shown:not(:focus)::-moz-placeholder {\\n opacity: 0;\\n transition: opacity \", \" \", \";\\n }\\n &:first-line {\\n line-height: \", \";\\n }\\n &::-ms-reveal,\\n &::-ms-clear {\\n display: none;\\n }\\n\\n margin: 0;\\n outline: none;\\n position: relative;\\n\\n &:focus {\\n \", \";\\n }\\n\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n\\n min-height: \", \"; // Replace later\\n &::-webkit-input-placeholder {\\n color: \", \";\\n opacity: 1;\\n }\\n &:-moz-placeholder {\\n color: \", \";\\n opacity: 1;\\n transition: opacity \", \" \", \";\\n }\\n \"])), math(\"\".concat(backgroundSpaceTop, \" + \").concat(sysSpaceSm)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessNormal)), backgroundSpaceBottomEntered, math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessNormal)), body(), sysColorStructureBorderHighContrast, sysBorderThicknessNormal, sysBorderRadiusSm, sysColorBackgroundSurface, sysColorBackgroundMediumContrast, sysMotionDurationMoveSmall, ppuiEaseMoveSmall, sysMotionDurationMoveSmall, ppuiEaseMoveSmall, sysTypographyBodyLineHeight, focusOffsetElement, sysSizeFieldLg, sysColorBackgroundMediumContrast, sysColorBackgroundMediumContrast, sysMotionDurationMoveSmall, ppuiEaseMoveSmall);\n var nolabelControl = css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral([\"\\n label: no_label_text_input_control;\\n padding: \", \"\\n \", \"\\n \", \"\\n \", \";\\n &:placeholder-shown:not(:focus)::placeholder {\\n opacity: 1;\\n }\\n \"])), math(\"\".concat(backgroundSpaceTop, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(backgroundSpaceBottom, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessNormal)));\n var errorControl = css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral([\"\\n label: error_text_input_control;\\n border: \", \" solid \", \";\\n padding: \", \"\\n \", \"\\n \", \"\\n \", \";\\n \"])), sysBorderThicknessEmphasis, sysColorErrorMain, math(\"\".concat(backgroundSpaceTop, \" + \").concat(sysSpaceSm, \" - \").concat(sysBorderThicknessEmphasis, \" / 2\")), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(backgroundSpaceBottomEntered, \" - \").concat(sysBorderThicknessEmphasis, \" / 2\")), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessEmphasis)));\n var controlErrorWithIconRight = css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral([\"\\n label: text_input_control_error_with_icon_right;\\n padding-right: \", \";\\n padding-left: \", \";\\n [dir='rtl'] & {\\n padding-left: \", \";\\n padding-right: \", \";\\n }\\n \"])), math(\"\".concat(sysSpaceMd, \" +\\n \").concat(sysSizeTapTargetDefault, \" - \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" -\\n \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" +\\n \").concat(sysSizeTapTargetDefault, \" - \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" -\\n \").concat(sysBorderThicknessEmphasis)));\n var controlErrorWithIconLeft = css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral([\"\\n label: text_input_control_error_with_icon_left;\\n padding-left: \", \";\\n padding-right: \", \";\\n [dir='rtl'] & {\\n padding-right: \", \";\\n padding-left: \", \";\\n }\\n \"])), math(\"2 * \".concat(sysSpaceMd, \" + \").concat(sysSpaceXl, \" -\\n \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" -\\n \").concat(sysBorderThicknessEmphasis)), math(\"2 * \".concat(sysSpaceMd, \" + \").concat(sysSpaceXl, \" -\\n \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" -\\n \").concat(sysBorderThicknessEmphasis)));\n var controlErrorWithIconLeftAndRight = css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral([\"\\n label: text_input_control_error_with_icon_left_and_right;\\n padding-right: \", \";\\n padding-left: \", \";\\n [dir='rtl'] & {\\n padding-right: \", \";\\n padding-left: \", \";\\n }\\n \"])), math(\"\".concat(sysSpaceMd, \" +\\n \").concat(sysSizeTapTargetDefault, \" - \").concat(sysBorderThicknessEmphasis)), math(\"2 * \".concat(sysSpaceMd, \" + \").concat(sysSpaceXl, \" -\\n \").concat(sysBorderThicknessEmphasis)), math(\"2 * \".concat(sysSpaceMd, \" + \").concat(sysSpaceXl, \" -\\n \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" +\\n \").concat(sysSizeTapTargetDefault, \" - \").concat(sysBorderThicknessEmphasis)));\n var noLabelControlError = css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteral([\"\\n label: no_label_text_input_control_error;\\n padding: \", \"\\n \", \"\\n \", \"\\n \", \";\\n \"])), math(\"\".concat(backgroundSpaceTop, \" - \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(backgroundSpaceBottom, \" - \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessEmphasis)));\n var controlWithIconRight = css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral([\"\\n label: text_input_control_with_icon_right;\\n padding-right: \", \";\\n padding-left: \", \";\\n [dir='rtl'] & {\\n padding-left: \", \";\\n padding-right: \", \";\\n }\\n \"])), math(\"\".concat(sysSpaceMd, \" + \").concat(sysSpaceSm, \" + \").concat(sysSizeTapTargetDefault, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" + \").concat(sysSpaceSm, \" + \").concat(sysSizeTapTargetDefault, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessNormal)));\n var controlWithIconLeft = css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral([\"\\n label: text_input_control_with_icon_left;\\n padding-left: \", \";\\n padding-right: \", \";\\n [dir='rtl'] & {\\n padding-right: \", \";\\n padding-left: \", \";\\n }\\n \"])), math(\"2 * \".concat(sysSpaceMd, \" + \").concat(sysSpaceXl, \" -\\n \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" -\\n \").concat(sysBorderThicknessNormal)), math(\"2 * \".concat(sysSpaceMd, \" + \").concat(sysSpaceXl, \" -\\n \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" -\\n \").concat(sysBorderThicknessNormal)));\n var controlWithIconLeftAndRight = css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral([\"\\n label: text_input_control_with_icon_left_and_right;\\n padding-left: \", \";\\n padding-right: \", \";\\n [dir='rtl'] & {\\n padding-right: \", \";\\n padding-left: \", \";\\n }\\n \"])), math(\"2 * \".concat(sysSpaceMd, \" + \").concat(sysSpaceXl, \" -\\n \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" +\\n \").concat(sysSizeTapTargetDefault, \" - \").concat(sysBorderThicknessNormal)), math(\"2 * \".concat(sysSpaceMd, \" + \").concat(sysSpaceXl, \" -\\n \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" +\\n \").concat(sysSizeTapTargetDefault, \" - \").concat(sysBorderThicknessNormal)));\n var labelWithIconRight = css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral([\"\\n label: label_with_icon_right;\\n left: \", \";\\n right: \", \";\\n [dir='rtl'] & {\\n left: \", \";\\n right: \", \";\\n }\\n \"])), sysSpaceMd, math(\"\".concat(sysSpaceMd, \" +\\n \").concat(sysSizeTapTargetDefault)), math(\"\".concat(sysSpaceMd, \" + \").concat(sysSizeTapTargetDefault)), sysSpaceMd);\n var labelWithIconLeft = css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral([\"\\n label: label_with_icon_left;\\n left: \", \";\\n right: \", \";\\n [dir='rtl'] & {\\n right: \", \";\\n left: \", \";\\n }\\n \"])), math(\"2 * \".concat(sysSpaceMd, \" + \").concat(sysSpaceXl)), sysSpaceMd, math(\"2 * \".concat(sysSpaceMd, \" + \").concat(sysSpaceXl)), sysSpaceMd);\n var errorText = css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral([\"\\n label: error_text;\\n \", \"\\n align-items: center;\\n \"])), info());\n var errorIcon = css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral([\"\\n label: error_icon;\\n color: \", \";\\n margin-right: \", \";\\n margin-left: 0;\\n align-self: flex-start;\\n [dir='rtl'] & {\\n margin-left: \", \";\\n margin-right: 0;\\n }\\n \"])), sysColorErrorMain, sysSpaceXs, sysSpaceXs);\n var successIcon = css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral([\"\\n label: success_icon;\\n color: \", \";\\n margin-right: \", \";\\n margin-left: initial;\\n align-self: flex-start;\\n [dir='rtl'] & {\\n margin-left: \", \";\\n margin-right: 0;\\n }\\n \"])), sysColorSuccessMain, sysSpaceXs, sysSpaceXs);\n var multiLineError = css(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral([\"\\n label: multi_line_error;\\n list-style: none;\\n padding: 0;\\n margin: 0;\\n \"])));\n var prefixWrapper = css(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral([\"\\n label: prefix_wrapper;\\n position: relative;\\n display: flex;\\n background-color: \", \";\\n &:after {\\n content: ' ';\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n top: 0;\\n left: 0;\\n border: \", \" solid\\n \", \";\\n border-radius: \", \";\\n pointer-events: none;\\n }\\n &:focus-within {\\n border-radius: \", \";\\n \", \";\\n }\\n padding: \", \";\\n \"])), sysColorBackgroundSurface, sysBorderThicknessNormal, sysColorStructureBorderHighContrast, sysBorderRadiusSm, sysBorderRadiusSm, focusOffsetElement, sysBorderThicknessNormal);\n var prefixWrapperError = css(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral([\"\\n label: prefix_wrapper_error;\\n &:after {\\n border: \", \" solid \", \";\\n }\\n padding: \", \" \", \";\\n \"])), sysBorderThicknessEmphasis, sysColorErrorMain, sysBorderThicknessNormal, sysBorderThicknessEmphasis);\n var prefixSuffix = css(_templateObject28 || (_templateObject28 = _taggedTemplateLiteral([\"\\n label: prefix_suffix;\\n white-space: nowrap;\\n color: \", \";\\n padding: \", \" \", \"\\n \", \" \", \";\\n \"])), sysColorBackgroundHighContrast, math(\"\".concat(backgroundSpaceTop, \" + \").concat(sysSpaceSm)), sysSpaceTiny, backgroundSpaceBottomEntered, sysSpaceTiny);\n var PrefixWrapperControl = css(_templateObject29 || (_templateObject29 = _taggedTemplateLiteral([\"\\n label: prefix_wrapper_control;\\n border: none;\\n min-height: \", \";\\n &:focus {\\n box-shadow: none;\\n outline: none;\\n }\\n &:placeholder-shown:not(:focus) ~ div {\\n opacity: 0;\\n }\\n \"])), ppuiV2CurrencyInputMinHeight);\n var prefix = css(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral([\"\\n label: prefix;\\n order: -1;\\n \", \"\\n padding-left: \", \";\\n [dir='rtl'] & {\\n \", \"\\n padding-right: \", \";\\n }\\n \"])), prefixSuffix, sysSpaceMd, prefixSuffix, sysSpaceMd);\n var suffix = css(_templateObject31 || (_templateObject31 = _taggedTemplateLiteral([\"\\n label: suffix;\\n \", \"\\n padding-right: \", \";\\n [dir='rtl'] & {\\n \", \"\\n padding-left: \", \";\\n }\\n \"])), prefixSuffix, sysSpaceMd, prefixSuffix, sysSpaceMd);\n var noLabelSuffixOrPrefix = css(_templateObject32 || (_templateObject32 = _taggedTemplateLiteral([\"\\n label: no_label_suffix_or_prefix;\\n padding-top: \", \";\\n padding-bottom: \", \";\\n [dir='rtl'] & {\\n padding-top: \", \";\\n padding-bottom: \", \";\\n }\\n \"])), math(\"\".concat(backgroundSpaceTop, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(backgroundSpaceBottom, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(backgroundSpaceTop, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(backgroundSpaceBottom, \" - \").concat(sysBorderThicknessNormal)));\n var prefixWrapperControlWithPrefix = css(_templateObject33 || (_templateObject33 = _taggedTemplateLiteral([\"\\n label: prefix_wrapper_control_with_prefix;\\n padding-left: 0;\\n [dir='rtl'] & {\\n padding-right: 0;\\n padding-left: \", \";\\n }\\n \"])), sysSpaceMd);\n var prefixWrapperControlWithSuffix = css(_templateObject34 || (_templateObject34 = _taggedTemplateLiteral([\"\\n label: prefix_wrapper_control_with_prefix;\\n padding-right: 0;\\n [dir='rtl'] & {\\n padding-left: 0;\\n padding-right: \", \";\\n }\\n \"])), sysSpaceMd);\n var prefixWrapperControlWithPrefixSuffix = css(_templateObject35 || (_templateObject35 = _taggedTemplateLiteral([\"\\n label: prefix_wrapper_control_with_prefix_suffix;\\n padding-left: 0;\\n padding-right: 0;\\n [dir='rtl'] & {\\n padding-left: 0;\\n padding-right: 0;\\n }\\n \"])));\n /********* TextArea ************/\n\n var textAreaControl = css(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral([\"\\n label: text_area_control;\\n height: auto;\\n background-color: \", \";\\n outline: none;\\n box-shadow: none;\\n resize: none;\\n display: block;\\n &:placeholder-shown:not(:focus) {\\n ~ label {\\n padding-top: 0;\\n }\\n }\\n \"])), sysColorBackgroundSurface);\n var textAreaControlLabel = css(_templateObject37 || (_templateObject37 = _taggedTemplateLiteral([\"\\n label: text_area_control_label;\\n background-color: \", \";\\n top: \", \";\\n padding-top: \", \";\\n \"])), sysColorBackgroundSurface, sysBorderThicknessNormal, math(\"\".concat(sysSpaceSm, \" -\\n \").concat(sysBorderThicknessNormal)));\n var textAreaControlErrorLabel = css(_templateObject38 || (_templateObject38 = _taggedTemplateLiteral([\"\\n label: text_area_control_error_label;\\n top: \", \";\\n padding-top: \", \";\\n \"])), sysBorderThicknessEmphasis, math(\"\".concat(sysSpaceSm, \" -\\n \").concat(sysBorderThicknessEmphasis)));\n var textAreaCounterWrapper = css(_templateObject39 || (_templateObject39 = _taggedTemplateLiteral([\"\\n label: text_area_counter_wrapper;\\n cursor: text;\\n position: relative;\\n padding: \", \";\\n &:after {\\n content: ' ';\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n top: 0;\\n left: 0;\\n border: \", \" solid\\n \", \";\\n border-radius: \", \";\\n pointer-events: none;\\n }\\n textarea:focus,\\n textarea:not(:focus) {\\n border: none;\\n outline: none;\\n box-shadow: none;\\n }\\n\\n &:focus-within {\\n border-radius: \", \";\\n \", \";\\n }\\n \"])), sysBorderThicknessNormal, sysBorderThicknessNormal, sysColorStructureBorderHighContrast, sysBorderRadiusSm, sysBorderRadiusSm, focusOffsetElement);\n var textAreaCounterText = css(_templateObject40 || (_templateObject40 = _taggedTemplateLiteral([\"\\n label: text_area_counter_text;\\n \", \"\\n padding: \", \"\\n \", \"\\n \", \"\\n \", \";\\n text-align: right;\\n background-color: \", \";\\n [dir='rtl'] & {\\n text-align: left;\\n }\\n \"])), caption({\n color: sysColorBackgroundMediumContrast\n }), sysSpaceSm, math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceSm, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(sysSpaceMd, \" - \").concat(sysBorderThicknessNormal)), sysColorBackgroundSurface);\n var textAreaErrorCounterWrapper = css(_templateObject41 || (_templateObject41 = _taggedTemplateLiteral([\"\\n label: text_area_error_counter_wrapper;\\n padding-left: \", \";\\n padding-right: \", \";\\n\\n &:after {\\n border: \", \" solid \", \";\\n }\\n \"])), sysBorderThicknessEmphasis, sysBorderThicknessEmphasis, sysBorderThicknessEmphasis, sysColorErrorMain);\n var textAreaErrorCounterText = css(_templateObject42 || (_templateObject42 = _taggedTemplateLiteral([\"\\n label: text_area_error_counter_text;\\n color: \", \";\\n padding-left: \", \";\\n padding-right: \", \";\\n \"])), sysColorErrorMain, math(\"\".concat(sysSpaceMd, \" -\\n \").concat(sysBorderThicknessEmphasis)), math(\"\".concat(sysSpaceMd, \" -\\n \").concat(sysBorderThicknessEmphasis)));\n /********** Text Display ************/\n\n var ppuiTextInputDisplayRightIconSpaceRight = math(\"\".concat(sysSizeTapTargetDefault, \" + \").concat(sysSpaceMd)); // 48px + 12px\n\n var ppuiTextInputDisplayValueSpaceTop = math(\"\".concat(sysTypographyCaptionLineHeight, \" + \").concat(sysSpaceTiny)); // 20px (letter space) + 2px\n\n // 46px\n var textDisplayNoLabelControl = css(_templateObject43 || (_templateObject43 = _taggedTemplateLiteral([\"\\n label: text_display_no_label_control;\\n padding-top: \", \";\\n padding-bottom: \", \";\\n padding-left: 0;\\n [dir='rtl'] & {\\n padding-left: \", \";\\n }\\n \"])), sysSpaceMd, sysSpaceMd, ppuiTextInputDisplayRightIconSpaceRight);\n var textDisplayControl = css(_templateObject44 || (_templateObject44 = _taggedTemplateLiteral([\"\\n label: text_display_control;\\n border: 0;\\n padding-left: 0;\\n padding-top: \", \";\\n padding-bottom: 0;\\n min-height: \", \";\\n display: block;\\n background-color: transparent;\\n overflow-wrap: break-word;\\n [dir='rtl'] & {\\n padding-right: 0;\\n }\\n \"])), ppuiTextInputDisplayValueSpaceTop, '2.875rem');\n var textDisplayLabel = css(_templateObject45 || (_templateObject45 = _taggedTemplateLiteral([\"\\n label: text_display_label;\\n top: 0;\\n left: 0;\\n [dir='rtl'] & {\\n left: \", \";\\n right: 0;\\n }\\n \"])), ppuiTextInputDisplayRightIconSpaceRight);\n var textDisplayIconRight = css(_templateObject46 || (_templateObject46 = _taggedTemplateLiteral([\"\\n label: text_display_icon_right;\\n top: 0;\\n \"])));\n var textDisplaylabelIconRight = css(_templateObject47 || (_templateObject47 = _taggedTemplateLiteral([\"\\n label: text_display_label_icon_right;\\n right: \", \";\\n \"])), ppuiTextInputDisplayRightIconSpaceRight);\n var textDisplayControlIconRight = css(_templateObject48 || (_templateObject48 = _taggedTemplateLiteral([\"\\n label: text_display_control_icon_right;\\n padding-right: \", \";\\n\\n [dir='rtl'] & {\\n padding-left: \", \";\\n }\\n \"])), math(\"\".concat(ppuiTextInputDisplayRightIconSpaceRight, \" - \").concat(sysBorderThicknessNormal)), math(\"\".concat(ppuiTextInputDisplayRightIconSpaceRight, \" - \").concat(sysBorderThicknessNormal)));\n var placemat = css(_templateObject49 || (_templateObject49 = _taggedTemplateLiteral([\"\\n label: placemat;\\n \", \"\\n position: absolute;\\n top: 0;\\n right: 0;\\n left: 0;\\n padding: \", \"\\n \", \"\\n \", \"\\n \", \";\\n background-color: \", \";\\n white-space: nowrap;\\n & + input:focus {\\n background-color: transparent;\\n }\\n [dir='rtl'] & {\\n transform: translateX(-\", \");\\n }\\n \"])), body({\n color: sysColorBackgroundMediumContrast\n }), math(\"\".concat(backgroundSpaceTop, \" + \").concat(sysSpaceSm, \" + \").concat(sysBorderThicknessNormal)), sysSpaceMd, math(\"\".concat(backgroundSpaceBottomEntered, \" + \").concat(sysBorderThicknessNormal)), sysSpaceMd, sysColorBackgroundSurface, sysBorderThicknessNormal);\n var noLabelPlacemat = css(_templateObject50 || (_templateObject50 = _taggedTemplateLiteral([\"\\n label: no_label_placemat;\\n padding-top: \", \";\\n \"])), backgroundSpaceTop);\n return {\n label: label,\n labelWithScreenreader: labelWithScreenreader,\n helperText: helperText,\n base: base,\n iconRight: iconRight,\n iconLeft: iconLeft,\n control: control,\n nolabelControl: nolabelControl,\n errorControl: errorControl,\n prefixWrapperError: prefixWrapperError,\n controlErrorWithIconRight: controlErrorWithIconRight,\n controlErrorWithIconLeft: controlErrorWithIconLeft,\n controlErrorWithIconLeftAndRight: controlErrorWithIconLeftAndRight,\n noLabelControlError: noLabelControlError,\n placemat: placemat,\n noLabelPlacemat: noLabelPlacemat,\n controlWithIconRight: controlWithIconRight,\n controlWithIconLeft: controlWithIconLeft,\n controlWithIconLeftAndRight: controlWithIconLeftAndRight,\n labelWithIconRight: labelWithIconRight,\n labelWithIconLeft: labelWithIconLeft,\n errorText: errorText,\n errorIcon: errorIcon,\n successIcon: successIcon,\n multiLineError: multiLineError,\n prefixWrapper: prefixWrapper,\n prefixSuffix: prefixSuffix,\n PrefixWrapperControl: PrefixWrapperControl,\n prefix: prefix,\n suffix: suffix,\n noLabelSuffixOrPrefix: noLabelSuffixOrPrefix,\n prefixWrapperControlWithPrefix: prefixWrapperControlWithPrefix,\n prefixWrapperControlWithSuffix: prefixWrapperControlWithSuffix,\n prefixWrapperControlWithPrefixSuffix: prefixWrapperControlWithPrefixSuffix,\n labelWhenPlaceholderShownAndInputNotFocused: labelWhenPlaceholderShownAndInputNotFocused,\n textAreaControl: textAreaControl,\n textAreaControlLabel: textAreaControlLabel,\n textAreaControlErrorLabel: textAreaControlErrorLabel,\n textAreaCounterWrapper: textAreaCounterWrapper,\n textAreaCounterText: textAreaCounterText,\n textAreaErrorCounterWrapper: textAreaErrorCounterWrapper,\n textAreaErrorCounterText: textAreaErrorCounterText,\n textDisplayNoLabelControl: textDisplayNoLabelControl,\n textDisplayControl: textDisplayControl,\n textDisplayLabel: textDisplayLabel,\n textDisplayIconRight: textDisplayIconRight,\n textDisplaylabelIconRight: textDisplaylabelIconRight,\n textDisplayControlIconRight: textDisplayControlIconRight\n };\n}\n\nvar _excluded = [\"setFocus\", \"className\", \"inputClassName\", \"labelClassName\", \"successText\", \"successIconAriaLabel\", \"errorText\", \"error\", \"errorIconAriaLabel\", \"helperText\", \"value\", \"name\", \"id\", \"label\", \"isLabelHidden\", \"placeholder\", \"placemat\", \"leftIcon\", \"rightIcon\", \"onChange\", \"children\", \"renderContent\", \"removeBorderRadiusLeft\", \"removeBorderRadiusRight\", \"removeBorderRadiusBoth\", \"dir\", \"leftIconCSS\", \"rightIconCSS\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nvar FormMessage = function (_ref) {\n var messageId = _ref.messageId,\n helperText = _ref.helperText,\n errorText = _ref.errorText,\n errorIconAriaLabel = _ref.errorIconAriaLabel,\n successText = _ref.successText,\n successIconAriaLabel = _ref.successIconAriaLabel;\n var tokens = useTheme(); // Fetch tokens from Emotion context\n\n var _styles = useMemo(function () {\n return styles(tokens);\n }, [tokens]); // errorText takes higher priority over helperText\n\n\n if (errorText || successText) {\n var _errorIcon;\n\n var text = errorText ? errorText : successText;\n var processText = Array.isArray(text) ? jsx(\"ul\", {\n css: _styles.multiLineError,\n \"data-ppui\": \"true\"\n }, text.map(function (msg, index) {\n return jsx(\"li\", {\n key: \"msg\".concat(messageId, \"-\").concat(index),\n \"data-ppui\": \"true\"\n }, msg);\n })) : text;\n var errorIcon, successIcon;\n\n if (errorText) {\n var errorProps = {\n css: _styles.errorIcon,\n role: 'img',\n 'aria-label': errorIconAriaLabel\n };\n errorIcon = jsx(CriticalIcon, _extends({\n size: \"sm\"\n }, errorProps, {\n \"data-ppui\": \"true\"\n }));\n }\n\n if (!errorText) {\n var successProps = {\n css: _styles.successIcon,\n role: 'img',\n 'aria-label': successIconAriaLabel\n };\n successIcon = jsx(CheckmarkBackgroundIcon, _extends({\n size: \"sm\"\n }, successProps, {\n \"data-ppui\": \"true\"\n }));\n }\n\n return jsx(\"div\", {\n css: _styles.errorText,\n id: messageId,\n role: \"alert\",\n \"data-ppui\": \"true\"\n }, (_errorIcon = errorIcon) !== null && _errorIcon !== void 0 ? _errorIcon : successIcon, processText);\n }\n\n if (helperText) {\n var helperTextCssVal = [_styles.helperText];\n\n var _processText = Array.isArray(helperText) ? jsx(\"ul\", {\n css: helperTextCssVal,\n id: messageId,\n \"data-ppui\": \"true\"\n }, helperText.map(function (msg, index) {\n return jsx(\"li\", {\n key: \"msg\".concat(messageId, \"-\").concat(index),\n \"data-ppui\": \"true\"\n }, msg);\n })) : jsx(\"div\", {\n css: helperTextCssVal,\n id: messageId,\n \"data-ppui\": \"true\"\n }, helperText);\n\n return _processText;\n }\n\n return null;\n};\n\nvar renderIcon = function (icon, side, customIconCSS, _styles) {\n return icon ? jsx(\"div\", {\n css: [side === 'left' && _styles.iconLeft, side === 'right' && _styles.iconRight, customIconCSS],\n key: \"icon-\".concat(side),\n \"data-ppui\": \"true\"\n }, icon) : null;\n};\n\nvar TextInputWrapper = function (_ref2) {\n var setFocus = _ref2.setFocus,\n className = _ref2.className,\n inputClassName = _ref2.inputClassName,\n labelClassName = _ref2.labelClassName,\n successText = _ref2.successText,\n _ref2$successIconAria = _ref2.successIconAriaLabel,\n successIconAriaLabel = _ref2$successIconAria === void 0 ? 'Success' : _ref2$successIconAria,\n errorText = _ref2.errorText,\n _ref2$error = _ref2.error,\n error = _ref2$error === void 0 ? !!errorText : _ref2$error,\n _ref2$errorIconAriaLa = _ref2.errorIconAriaLabel,\n errorIconAriaLabel = _ref2$errorIconAriaLa === void 0 ? 'Error' : _ref2$errorIconAriaLa,\n helperText = _ref2.helperText,\n value = _ref2.value,\n name = _ref2.name,\n _ref2$id = _ref2.id,\n id = _ref2$id === void 0 ? \"text-input-\".concat(name) : _ref2$id,\n label = _ref2.label,\n isLabelHidden = _ref2.isLabelHidden,\n _ref2$placeholder = _ref2.placeholder,\n placeholder = _ref2$placeholder === void 0 ? ' ' : _ref2$placeholder,\n placemat = _ref2.placemat,\n _ref2$leftIcon = _ref2.leftIcon,\n leftIcon = _ref2$leftIcon === void 0 ? null : _ref2$leftIcon,\n _ref2$rightIcon = _ref2.rightIcon,\n rightIcon = _ref2$rightIcon === void 0 ? null : _ref2$rightIcon,\n onChange = _ref2.onChange,\n children = _ref2.children,\n renderContent = _ref2.renderContent,\n removeBorderRadiusLeft = _ref2.removeBorderRadiusLeft,\n removeBorderRadiusRight = _ref2.removeBorderRadiusRight,\n removeBorderRadiusBoth = _ref2.removeBorderRadiusBoth,\n dir = _ref2.dir,\n leftIconCSS = _ref2.leftIconCSS,\n rightIconCSS = _ref2.rightIconCSS,\n rest = _objectWithoutProperties(_ref2, _excluded);\n\n var tokens = useTheme(); // Fetch tokens from Emotion context\n\n var _styles = useMemo(function () {\n return styles(tokens);\n }, [tokens]);\n\n var mainCSS = [_styles.base];\n var msgId = \"message_\".concat(id);\n var valueProps = onChange ? {\n onChange: onChange,\n value: value\n } : {\n defaultValue: value\n };\n var ariaDescribedByProp = helperText || errorText ? {\n 'aria-describedby': msgId\n } : {};\n\n var otherProps = _objectSpread(_objectSpread(_objectSpread({}, ariaDescribedByProp), valueProps), rest);\n\n return jsx(\"div\", {\n className: className,\n css: mainCSS,\n dir: dir,\n \"data-ppui-info\": \"text-input_5.4.3\"\n }, renderIcon(leftIcon, 'left', leftIconCSS, _styles), renderContent(_objectSpread({\n inputClassName: inputClassName,\n name: name,\n id: id,\n setFocus: setFocus,\n hasError: error,\n placeholder: placeholder,\n placemat: placemat,\n label: label,\n labelClassName: labelClassName,\n isLabelHidden: isLabelHidden,\n inputTag: 'input',\n leftIcon: leftIcon,\n rightIcon: rightIcon\n }, otherProps)), jsx(FormMessage, {\n errorText: errorText,\n errorIconAriaLabel: errorIconAriaLabel,\n successText: successText,\n successIconAriaLabel: successIconAriaLabel,\n helperText: helperText,\n messageId: msgId,\n \"data-ppui\": \"true\"\n }), renderIcon(rightIcon, 'right', rightIconCSS, _styles));\n};\n\nvar _excluded$1 = [\"inputClassName\", \"inputTag\", \"name\", \"id\", \"setFocus\", \"inputRef\", \"hasError\", \"placeholder\", \"placemat\", \"label\", \"labelClassName\", \"isLabelHidden\", \"rightIcon\", \"leftIcon\", \"prefix\", \"suffix\"];\n\nvar overlayValue = function () {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var mask = arguments.length > 1 ? arguments[1] : undefined;\n var vLen = value.length;\n var mLen = mask.length;\n\n if (vLen >= mLen) {\n return value;\n }\n\n return value.concat(mask.substring(vLen));\n};\n\nvar Placemat = function (_ref) {\n var placeholder = _ref.placeholder,\n _ref$value = _ref.value,\n value = _ref$value === void 0 ? '' : _ref$value,\n _ref$isLabelHidden = _ref.isLabelHidden,\n isLabelHidden = _ref$isLabelHidden === void 0 ? false : _ref$isLabelHidden,\n _styles = _ref.styles;\n var combinedText = overlayValue(value, placeholder);\n var cssVal = [_styles.placemat, isLabelHidden && _styles.noLabelPlacemat];\n return jsx(\"div\", {\n css: cssVal,\n \"data-ppui\": \"true\"\n }, combinedText);\n};\n\nvar normalizePlaceholder = function (placeholder) {\n var normalized = placeholder !== null && placeholder !== void 0 ? placeholder : ' ';\n return normalized === '' ? ' ' : normalized;\n}; // eslint-disable-next-line complexity\n\n\nvar TextInputContent = function (_ref2) {\n var inputClassName = _ref2.inputClassName,\n inputTag = _ref2.inputTag,\n name = _ref2.name,\n id = _ref2.id,\n setFocus = _ref2.setFocus,\n inputRef = _ref2.inputRef,\n hasError = _ref2.hasError,\n placeholder = _ref2.placeholder,\n placemat = _ref2.placemat,\n label = _ref2.label,\n labelClassName = _ref2.labelClassName,\n isLabelHidden = _ref2.isLabelHidden,\n rightIcon = _ref2.rightIcon,\n leftIcon = _ref2.leftIcon,\n prefix = _ref2.prefix,\n suffix = _ref2.suffix,\n rest = _objectWithoutProperties(_ref2, _excluded$1);\n\n var tokens = useTheme(); // Fetch tokens from Emotion context\n\n var _styles = useMemo(function () {\n return styles(tokens);\n }, [tokens]);\n\n var isLabelHiddenFinal = !label || label === '' || isLabelHidden; // DO NOT CHANGE THE ORDER OF THE STYLES BELOW\n\n var inputTagCSS = [_styles.control, isLabelHiddenFinal && _styles.nolabelControl, rightIcon && _styles.controlWithIconRight, leftIcon && _styles.controlWithIconLeft, rightIcon && leftIcon && _styles.controlWithIconLeftAndRight, _styles.labelWhenPlaceholderShownAndInputNotFocused, hasError && _styles.errorControl, hasError && isLabelHiddenFinal && _styles.noLabelControlError, hasError && rightIcon && _styles.controlErrorWithIconRight, hasError && leftIcon && _styles.controlErrorWithIconLeft, hasError && leftIcon && rightIcon && _styles.controlErrorWithIconLeftAndRight, prefix || suffix ? _styles.PrefixWrapperControl : null, hasError && isLabelHiddenFinal && (prefix || suffix) ? _styles.noLabelControlError : null, prefix && _styles.prefixWrapperControlWithPrefix, suffix && _styles.prefixWrapperControlWithSuffix, prefix && suffix && _styles.prefixWrapperControlWithPrefixSuffix];\n var labelCSS = [_styles.label, rightIcon && _styles.labelWithIconRight, leftIcon && _styles.labelWithIconLeft, isLabelHiddenFinal && _styles.labelWithScreenreader];\n // @ts-ignore\n var value = rest.value;\n useEffect(function () {\n var elem = inputRef.current;\n\n if (setFocus && elem) {\n elem.focus();\n }\n }, [setFocus]);\n return jsx(React.Fragment, null, !!placemat && jsx(Placemat, {\n placeholder: placemat,\n value: value,\n isLabelHidden: isLabelHiddenFinal,\n styles: _styles,\n \"data-ppui\": \"true\"\n }), jsx(inputTag, _extends({\n className: inputClassName,\n css: inputTagCSS,\n name: name,\n id: id,\n ref: inputRef,\n \"aria-invalid\": hasError,\n placeholder: normalizePlaceholder(placeholder)\n }, rest, {\n \"data-ppui\": \"true\"\n })), label && jsx(\"label\", {\n htmlFor: id,\n id: \"\".concat(id, \"-label\"),\n className: labelClassName,\n css: labelCSS,\n \"data-ppui\": \"true\"\n }, label));\n};\n\nvar _excluded$2 = [\"label\", \"id\", \"prefix\", \"suffix\", \"prefixClassName\", \"suffixClassName\", \"inputClassName\", \"inputRef\", \"onBlur\", \"onFocus\", \"hasError\", \"isLabelHidden\"];\n\nvar TextInputContentWithPrefixSuffix = function (_ref) {\n var label = _ref.label,\n id = _ref.id,\n prefix = _ref.prefix,\n suffix = _ref.suffix,\n prefixClassName = _ref.prefixClassName,\n suffixClassName = _ref.suffixClassName,\n inputClassName = _ref.inputClassName,\n inputRef = _ref.inputRef,\n _ref$onBlur = _ref.onBlur,\n onBlur = _ref$onBlur === void 0 ? null : _ref$onBlur,\n _ref$onFocus = _ref.onFocus,\n onFocus = _ref$onFocus === void 0 ? null : _ref$onFocus,\n hasError = _ref.hasError,\n isLabelHidden = _ref.isLabelHidden,\n rest = _objectWithoutProperties(_ref, _excluded$2);\n\n var tokens = useTheme(); // Fetch tokens from Emotion context\n\n var _styles = useMemo(function () {\n return styles(tokens);\n }, [tokens]);\n\n var textInputRef = inputRef;\n var isLabelHiddenFinal = !label || label === '' || isLabelHidden;\n var prefixClass = [_styles.prefix, isLabelHiddenFinal && _styles.noLabelSuffixOrPrefix];\n var suffixClass = [_styles.suffix, isLabelHiddenFinal && _styles.noLabelSuffixOrPrefix];\n var prefixWrapperClass = [_styles.prefixWrapper, hasError && _styles.prefixWrapperError];\n var labelId = label ? \"\".concat(id, \"-label \") : '';\n var prefixEleId = prefix ? \"\".concat(id, \"-prefix \") : '';\n var suffixEleId = suffix ? \"\".concat(id, \"-suffix\") : '';\n var ariaLabelledByIds = \"\".concat(labelId).concat(prefixEleId).concat(suffixEleId);\n return jsx(\"div\", {\n css: prefixWrapperClass,\n onClick: function handlePrefixWrapperClick() {\n /* istanbul ignore else */\n if (textInputRef.current) {\n var textInputElm = textInputRef.current;\n textInputElm.focus();\n }\n },\n \"data-ppui\": \"true\"\n }, jsx(TextInputContent, _extends({\n label: label,\n id: id,\n prefix: prefix,\n suffix: suffix,\n inputClassName: inputClassName,\n inputRef: inputRef,\n onFocus: function handleFocus(event) {\n /* istanbul ignore else */\n if (onFocus) {\n onFocus(event);\n }\n },\n onBlur: function handleBlur(event) {\n /* istanbul ignore else */\n if (onBlur) {\n onBlur(event);\n }\n },\n \"aria-labelledby\": ariaLabelledByIds.trim(),\n hasError: hasError,\n isLabelHidden: isLabelHiddenFinal\n }, rest, {\n \"data-ppui\": \"true\"\n })), prefix && jsx(\"div\", {\n id: prefixEleId.trim(),\n css: prefixClass,\n className: prefixClassName,\n \"data-ppui\": \"true\"\n }, prefix), suffix && jsx(\"div\", {\n id: suffixEleId.trim(),\n css: suffixClass,\n className: suffixClassName,\n \"data-ppui\": \"true\"\n }, suffix));\n};\n\nvar _excluded$3 = [\"prefix\", \"suffix\", \"prefixClassName\", \"suffixClassName\"],\n _excluded2 = [\"inputClassName\", \"name\", \"id\", \"setFocus\", \"hasError\", \"placeholder\", \"placemat\", \"label\", \"labelClassName\", \"inputTag\"];\nvar TextInput = forwardRef(function (_ref, ref) {\n var prefix = _ref.prefix,\n suffix = _ref.suffix,\n prefixClassName = _ref.prefixClassName,\n suffixClassName = _ref.suffixClassName,\n props = _objectWithoutProperties(_ref, _excluded$3);\n\n var internalRef = useRef();\n var textInputRef = ref || internalRef;\n return /*#__PURE__*/React.createElement(TextInputWrapper, _extends({\n renderContent: function renderContent(_ref2) {\n var inputClassName = _ref2.inputClassName,\n name = _ref2.name,\n id = _ref2.id,\n setFocus = _ref2.setFocus,\n hasError = _ref2.hasError,\n placeholder = _ref2.placeholder,\n placemat = _ref2.placemat,\n label = _ref2.label,\n labelClassName = _ref2.labelClassName,\n inputTag = _ref2.inputTag,\n otherProps = _objectWithoutProperties(_ref2, _excluded2);\n\n if (prefix || suffix) {\n return /*#__PURE__*/React.createElement(TextInputContentWithPrefixSuffix, _extends({\n inputClassName: inputClassName,\n inputTag: inputTag,\n name: name,\n id: id,\n setFocus: setFocus,\n inputRef: textInputRef,\n hasError: hasError,\n placeholder: placeholder\n /*placemat={placemat} placemat is currently not supported with prefix and suffix*/\n ,\n label: label,\n labelClassName: labelClassName,\n prefix: prefix,\n suffix: suffix,\n prefixClassName: prefixClassName,\n suffixClassName: suffixClassName\n }, otherProps, {\n \"data-ppui\": \"true\"\n }));\n }\n\n return /*#__PURE__*/React.createElement(TextInputContent, _extends({\n inputClassName: inputClassName,\n inputTag: inputTag,\n name: name,\n id: id,\n setFocus: setFocus,\n inputRef: textInputRef,\n hasError: hasError,\n placeholder: placeholder,\n placemat: placemat,\n label: label,\n labelClassName: labelClassName\n }, otherProps, {\n \"data-ppui\": \"true\"\n }));\n }\n }, props, {\n \"data-ppui\": \"true\"\n }));\n});\n\nvar _excluded$4 = [\"className\", \"minRows\", \"maxRows\", \"showCharacterCounter\", \"maxCharacters\", \"counterStatusText\", \"onChange\", \"onBlur\", \"onFocus\", \"value\", \"errorText\", \"successText\"],\n _excluded2$1 = [\"inputClassName\", \"name\", \"id\", \"setFocus\", \"hasError\", \"placeholder\", \"label\", \"labelClassName\", \"inputTag\", \"placemat\"];\nvar MIN_ROWS = 2;\nvar MAX_ROWS = 6;\nvar TextArea = forwardRef(function (_ref, ref) {\n var className = _ref.className,\n _ref$minRows = _ref.minRows,\n minRows = _ref$minRows === void 0 ? MIN_ROWS : _ref$minRows,\n _ref$maxRows = _ref.maxRows,\n maxRows = _ref$maxRows === void 0 ? MAX_ROWS : _ref$maxRows,\n _ref$showCharacterCou = _ref.showCharacterCounter,\n showCharacterCounter = _ref$showCharacterCou === void 0 ? false : _ref$showCharacterCou,\n maxCharacters = _ref.maxCharacters,\n counterStatusText = _ref.counterStatusText,\n _ref$onChange = _ref.onChange,\n onChange = _ref$onChange === void 0 ? null : _ref$onChange,\n _ref$onBlur = _ref.onBlur,\n onBlur = _ref$onBlur === void 0 ? null : _ref$onBlur,\n _ref$onFocus = _ref.onFocus,\n onFocus = _ref$onFocus === void 0 ? null : _ref$onFocus,\n value = _ref.value,\n errorText = _ref.errorText,\n successText = _ref.successText,\n rest = _objectWithoutProperties(_ref, _excluded$4);\n\n var tokens = useTheme(); // Fetch tokens from Emotion context\n\n var _styles = useMemo(function () {\n return styles(tokens);\n }, [tokens]);\n\n var textLineHeight = remToPx( // @ts-ignore\n tokens.sysTypographyFieldLabelLgLineHeight).split('px')[0];\n var maxAllowedRows = maxRows ? Math.min(maxRows, MAX_ROWS) : MAX_ROWS;\n var minAllowedRows = minRows ? Math.max(minRows, MIN_ROWS) : MIN_ROWS;\n\n var _useState = useState(value ? value.length : 0),\n _useState2 = _slicedToArray(_useState, 2),\n charCount = _useState2[0],\n setCharCount = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n isRTL = _useState4[0],\n setRTL = _useState4[1];\n\n var internalRef = useRef();\n var textAreaRef = ref || internalRef;\n var intlContext = useContext(IntlContext);\n var bordersOffset = useRef(0);\n var maxHeight = useRef(textLineHeight * maxAllowedRows);\n var minHeight = useRef(textLineHeight * minAllowedRows);\n\n var computeHeight = function () {\n var textAreaElm = textAreaRef.current; // eslint-disable-next-line\n\n textAreaElm.style.height = 'auto';\n var newHeight = textAreaElm.scrollHeight + bordersOffset.current;\n /* istanbul ignore next */\n\n if (newHeight > maxHeight.current) {\n textAreaElm.style.height = \"\".concat(maxHeight.current, \"px\");\n } else if (newHeight > minHeight.current) {\n textAreaElm.style.height = \"\".concat(newHeight, \"px\");\n } else {\n textAreaElm.style.height = \"\".concat(minHeight.current, \"px\");\n }\n };\n\n useEffect(function () {\n /* istanbul ignore next */\n if (textAreaRef.current) {\n var textAreaElm = textAreaRef.current;\n var offsetHeight = textAreaElm.offsetHeight,\n clientHeight = textAreaElm.clientHeight;\n var computedStyle = window.getComputedStyle(textAreaElm);\n var lineHeightValue = Number(computedStyle.getPropertyValue('line-height').split('px')[0]);\n var paddingBottomValue = Number(computedStyle.getPropertyValue('padding-bottom').split('px')[0]);\n var paddingTopValue = Number(computedStyle.getPropertyValue('padding-top').split('px')[0]);\n var lineHeight = Number.isNaN(lineHeightValue) ? textLineHeight : lineHeightValue;\n var paddingBottom = Number.isNaN(paddingBottomValue) ? 0 : paddingBottomValue;\n var paddingTop = Number.isNaN(paddingTopValue) ? 0 : paddingTopValue;\n bordersOffset.current = offsetHeight - clientHeight;\n maxHeight.current = bordersOffset.current + paddingTop + paddingBottom + lineHeight * maxAllowedRows;\n minHeight.current = bordersOffset.current + paddingTop + paddingBottom + lineHeight * minAllowedRows;\n computeHeight();\n setRTL(computedStyle.direction === 'rtl');\n }\n }, [minAllowedRows, maxAllowedRows, value]);\n\n var handleCounterWrapperClick = function () {\n /* istanbul ignore else */\n if (textAreaRef.current) {\n var textAreaElm = textAreaRef.current;\n textAreaElm.focus();\n }\n };\n\n return jsx(TextInputWrapper, _extends({\n className: className,\n value: value,\n onChange: function handleChange(event) {\n var textAreaElm = event.target;\n setCharCount(textAreaElm.value.length);\n /* istanbul ignore else */\n\n if (onChange) {\n onChange(event);\n }\n },\n onFocus: function handleFocus(event) {\n /* istanbul ignore else */\n if (onFocus) {\n onFocus(event);\n }\n },\n onBlur: function handleBlur(event) {\n /* istanbul ignore else */\n if (onBlur) {\n onBlur(event);\n }\n },\n renderContent: function renderContent(_ref2) {\n var inputClassName = _ref2.inputClassName,\n name = _ref2.name,\n id = _ref2.id,\n setFocus = _ref2.setFocus,\n hasError = _ref2.hasError,\n placeholder = _ref2.placeholder,\n label = _ref2.label,\n labelClassName = _ref2.labelClassName,\n inputTag = _ref2.inputTag,\n placemat = _ref2.placemat,\n otherProps = _objectWithoutProperties(_ref2, _excluded2$1);\n\n var textInputContent = jsx(ClassNames, {\n \"data-ppui\": \"true\"\n }, function (_ref3) {\n var css = _ref3.css,\n cx = _ref3.cx;\n return jsx(TextInputContent, _extends({\n inputClassName: cx(inputClassName, _defineProperty({}, css(_styles.textAreaControl), true)),\n inputTag: \"textarea\",\n name: name,\n id: id,\n setFocus: setFocus,\n inputRef: textAreaRef,\n hasError: hasError,\n placeholder: placeholder,\n label: label,\n labelClassName: cx(labelClassName, _defineProperty({}, css(_styles.textAreaControlLabel), true), _defineProperty({}, css(_styles.textAreaControlErrorLabel), hasError))\n }, otherProps, {\n \"data-ppui\": \"true\"\n }));\n });\n\n if (showCharacterCounter) {\n var maxCharsText = '';\n\n if (maxCharacters) {\n maxCharsText = isRTL ? \"\".concat(maxCharacters, \"/\") : \"/\".concat(maxCharacters);\n }\n\n var counterText = isRTL ? \"\".concat(maxCharsText).concat(charCount) : \"\".concat(charCount).concat(maxCharsText);\n var counterStatusMessage = getFormattedMessage(intlContext, \"\".concat(charCount, \" out of \").concat(maxCharacters, \" characters used\"), counterStatusText, {\n charCount: charCount,\n maxCharacters: maxCharacters\n });\n var wrapperCSS = [_styles.textAreaCounterWrapper, hasError && _styles.textAreaErrorCounterWrapper];\n var counterTextCSS = [_styles.textAreaCounterText, hasError && _styles.textAreaErrorCounterText];\n return jsx(\"div\", {\n css: wrapperCSS,\n onClick: handleCounterWrapperClick,\n \"data-ppui\": \"true\"\n }, textInputContent, jsx(\"div\", {\n css: counterTextCSS,\n role: \"status\",\n \"aria-live\": \"polite\",\n \"aria-atomic\": \"true\",\n \"aria-label\": counterStatusMessage,\n \"data-ppui\": \"true\"\n }, counterText));\n }\n\n return textInputContent;\n },\n errorText: errorText,\n successText: successText,\n \"data-ppui-info\": \"text-area_5.4.3\"\n }, rest));\n});\n\nvar _excluded$5 = [\"className\", \"valueClassName\", \"labelClassName\", \"name\", \"id\", \"label\", \"value\", \"rightIcon\", \"helperText\", \"isLabelHidden\"];\n\nvar TextDisplay = function (_ref) {\n var className = _ref.className,\n valueClassName = _ref.valueClassName,\n labelClassName = _ref.labelClassName,\n _ref$name = _ref.name,\n name = _ref$name === void 0 ? 'textDisplay' : _ref$name,\n id = _ref.id,\n _ref$label = _ref.label,\n label = _ref$label === void 0 ? 'TextDisplay' : _ref$label,\n _ref$value = _ref.value,\n value = _ref$value === void 0 ? '' : _ref$value,\n rightIcon = _ref.rightIcon,\n helperText = _ref.helperText,\n isLabelHidden = _ref.isLabelHidden,\n rest = _objectWithoutProperties(_ref, _excluded$5);\n\n var tokens = useTheme();\n\n var _styles = useMemo(function () {\n return styles(tokens);\n }, [tokens]);\n\n var controlStyles = [_styles.control, _styles.textDisplayControl, rightIcon && _styles.textDisplayControlIconRight];\n var labelStyles = [_styles.label, _styles.textDisplayLabel, rightIcon && _styles.textDisplaylabelIconRight, isLabelHidden && _styles.textDisplayNoLabelControl, isLabelHidden && _styles.labelWithScreenreader];\n var labelId = \"txtDsplyLbl_\".concat(name);\n var valueId = \"txtDsplyVlu_\".concat(name);\n return jsx(TextInputWrapper, _extends({\n className: className,\n label: label,\n name: name,\n isLabelHidden: isLabelHidden,\n helperText: helperText,\n renderContent: function renderContent() {\n return jsx(\"div\", {\n \"aria-labelledby\": \"\".concat(labelId, \" \").concat(valueId),\n id: id,\n \"data-ppui-info\": \"text-display_5.4.3\"\n }, jsx(\"input\", {\n type: \"hidden\",\n name: name,\n value: value,\n \"data-ppui\": \"true\"\n }), jsx(\"span\", {\n css: controlStyles,\n className: valueClassName,\n id: valueId,\n \"data-ppui\": \"true\"\n }, value), jsx(\"span\", {\n css: labelStyles,\n className: labelClassName,\n id: labelId,\n \"data-ppui\": \"true\"\n }, label));\n },\n rightIcon: rightIcon,\n rightIconCSS: _styles.textDisplayIconRight\n }, rest, {\n \"data-ppui\": \"true\"\n }));\n};\n\nexport { TextArea, TextDisplay, TextInput, styles as textInputStyles };\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","import axios from 'axios';\nimport * as types from '../constants/ActionTypes';\n\nconst PPC_ENABLE_URL = 'ppcredit-checker';\n\n// PayPal Credit enable checker logic\nfunction PPCEnableChecker(response) {\n if (response && response.credit_accounts) {\n return Array.isArray(response.credit_accounts);\n }\n return false;\n}\n\n// Fetch PPCredit Account info for login user\nfunction requestPPCEnable() {\n return {\n type: types.REQUEST_PPC_ENABLE,\n };\n}\n\nfunction receivePPCEnable(responseData) {\n return {\n type: types.RECEIVE_PPC_ENABLE,\n payload: PPCEnableChecker(responseData),\n };\n}\n\nfunction receivePPCEnableError() {\n return {\n type: types.RECEIVE_PPC_ENABLE_ERROR,\n };\n}\n\nexport default function fetchPPCEnable() {\n return (dispatch) => {\n dispatch(requestPPCEnable());\n return axios\n .get(PPC_ENABLE_URL)\n .then((response) => {\n dispatch(receivePPCEnable(response.data));\n })\n .catch(() => {\n dispatch(receivePPCEnableError());\n });\n };\n}\n","/* eslint-disable import/prefer-default-export */\nimport _isEmpty from 'lodash/isEmpty';\nimport * as types from '../constants/ActionTypes';\nimport { chatBotContactTo, chatBotQueryParams, contactPage } from '../constants/UtilVariables';\nimport { fetchPhoneNumber } from './action-call-us';\nimport getTopicTree from '../../home/actions/action-topic-list';\nimport { accessLogoutEmail } from './action-email-no-intent';\nimport { fetchTopicTree } from './action-message-topic-tree';\nimport { fetchRelatedTopic } from './action-quick-answer-topics';\nimport Page from '../../lib/page';\nimport fetchPPCEnable from './action-ppc-checker';\nimport { fetchChatBotSessionChecker } from './action-chat-bot';\nimport providePPMEmailFields, { parseIpInfringementWebform } from './action-paypalme-email';\nimport {\n isIpInfringementHardcodeFormEnabled,\n isWebFormWithoutTCodeEnabled,\n validateAMFlag,\n} from '../../lib/globalHelper';\nimport { returnTcodeWithEmailQuery } from '../../lib/puiTopicHelper';\nimport { getLastPathVariable, securityUrlListCheck } from '../../lib/location-helper';\nimport { isNewContactUsExpEnabled } from '../../../jsV2/helpers/twHelper';\n\nexport const redirectLocation = ({ pageName }) => ({\n type: types.CONTACT_LOCATION_CHANGE,\n payload: { pageName },\n});\n\n// Fetch data for Call Page\nfunction fetchCallPageRequests(chatBotParams) {\n return (dispatch) => {\n // Trigger callus API only to the users other than loggedin and nonidienabled\n if (!validateAMFlag()) {\n dispatch(fetchPhoneNumber(chatBotParams));\n }\n if (Page.isLoggedIn() && Page.getIsMarketEnabledForPPCreditTab()) {\n dispatch(fetchPPCEnable());\n }\n };\n}\n\n/**\n * Updating email form reducer with all the hardcoded ipinfirngement form elements\n */\nexport const updateIpInfringementEmailFields = () => ({\n type: types.PROVIDE_PPM_EMAIL_FIELDS,\n payload: parseIpInfringementWebform(),\n});\n\n// fetch data for Email Page\nfunction fetchEmailPageRequests(options) {\n return (dispatch) => {\n // Using Hardcode webform data for PayPalMe/aupviolation controlled by remote config\n if (Page.isAUPHardcodeFormEnabled()) {\n dispatch(providePPMEmailFields());\n }\n if (isIpInfringementHardcodeFormEnabled()) {\n dispatch(updateIpInfringementEmailFields());\n } else {\n dispatch(fetchTopicTree(options));\n }\n\n dispatch(getTopicTree());\n const pathVariable = getLastPathVariable(window.location);\n const faqTopic = (Page.getWebformFaqTopic() && Page.getWebformFaqTopic()[pathVariable]) || {};\n if (faqTopic.isEnabled && faqTopic.topic) {\n dispatch(fetchRelatedTopic(faqTopic.topic));\n }\n };\n}\n\n// Redirect to Call or Email page based on current pageName\nfunction redirectToCallOrEmail(pageName) {\n return (dispatch) => {\n if (pageName === contactPage.callUs) {\n dispatch(fetchCallPageRequests()); // Fetch data for Call Us\n } else if (pageName === contactPage.email) {\n dispatch(fetchEmailPageRequests({ email: true })); // Fetch data for Email Page\n } else if (!isNewContactUsExpEnabled()) {\n // Loading Topic tree data in the Contact landing page\n dispatch(fetchTopicTree());\n }\n };\n}\n\nfunction checkChatBotSession(redirect = {}) {\n return (dispatch) => {\n const chatBotQueryRedirectParam = Page.getChatBotContactTo();\n const urlListCheck = !!securityUrlListCheck(document.referrer);\n const chatBotParams = {};\n if (chatBotQueryRedirectParam && chatBotQueryRedirectParam === chatBotContactTo.call) {\n chatBotParams.topic_code = Page.getQueryParamValue(chatBotQueryParams.TOPIC_CODE);\n chatBotParams.topic_key = Page.getQueryParamValue(chatBotQueryParams.TOPIC_KEY);\n }\n // Login and chatBot checker\n if (!chatBotQueryRedirectParam || !Page.isLoggedIn()) {\n // logged out version. Chat will also be false\n if (chatBotQueryRedirectParam && chatBotContactTo.call === chatBotQueryRedirectParam && urlListCheck) {\n chatBotParams.chatbot = false;\n return redirect.callUs(chatBotParams);\n }\n return redirect.default(); // default redirect logic\n }\n\n const chatBotSessionChecker = (responseData) => responseData && !_isEmpty(responseData.chatState);\n // Redirect to Call or Email page for ChatBot;\n const options = {};\n // eslint-disable-next-line no-shadow\n options.callBack = (responseData) => {\n const isChatStateExists = chatBotSessionChecker(responseData);\n if (!responseData || !isChatStateExists) {\n // if the chat bot session doesn't exist and query parameter has call us\n // check the referrer list from RC and if the current referrer URL exsist in the list redirect to call us page\n if (chatBotContactTo.call === chatBotQueryRedirectParam && urlListCheck) {\n chatBotParams.chatbot = isChatStateExists;\n return redirect.callUs(chatBotParams);\n }\n return redirect.default(); // default redirect\n }\n if (chatBotContactTo.email === chatBotQueryRedirectParam) {\n return redirect.email(); // Email redirect\n }\n if (chatBotContactTo.call === chatBotQueryRedirectParam) {\n chatBotParams.chatbot = isChatStateExists;\n return redirect.callUs(chatBotParams); // Call redirect\n }\n return redirect.default(); // default redirect if the chatBotQuery is not validate\n };\n\n return dispatch(fetchChatBotSessionChecker(options));\n };\n}\n\n// Check Current location and send API request for different locations\nexport const locationChecker = () => (dispatch, getState) => {\n const state = getState();\n const {\n location: { pageName },\n } = state;\n // query checker for logout Email; have validate refId for `email` query\n // getting the tcode from pui config remote config with the email query in the url as tcode is not available during page load\n const emailRef = Page.getLogoutEmailRefId() || returnTcodeWithEmailQuery();\n\n if (isWebFormWithoutTCodeEnabled()) {\n // Redirecting to complaints web-form without T-CODE\n dispatch(redirectLocation({ pageName: contactPage.emailNoTCode }));\n } else if (emailRef) {\n // Redirect to Logout WebForm\n dispatch(redirectLocation({ pageName: contactPage.email }));\n dispatch(fetchEmailPageRequests({ emailRef, logoutEmail: true }));\n dispatch(accessLogoutEmail());\n } else {\n // ChatBot redirect switcher\n const redirect = {\n default: () => {\n // if pageName is undefined which is initial state then redirect the location to contactUs home.\n // else redirect to appropriate page location.\n if (!pageName) {\n dispatch(redirectLocation({ pageName: contactPage.contactUs }));\n dispatch(redirectToCallOrEmail(contactPage.contactUs));\n } else {\n dispatch(redirectLocation({ pageName }));\n dispatch(redirectToCallOrEmail(pageName));\n }\n },\n email: () => {\n dispatch(redirectLocation({ pageName: contactPage.email }));\n dispatch(fetchEmailPageRequests({ email: true }));\n },\n callUs: (chatBotParams) => {\n dispatch(redirectLocation({ pageName: contactPage.callUs }));\n dispatch(fetchCallPageRequests(chatBotParams));\n },\n };\n\n // Check chatBot query and chatBot session data.\n // Based on the chatBot session response redirect to appropriate channel.\n dispatch(checkChatBotSession(redirect));\n }\n\n return {\n type: types.CONTACT_LOCATION_LOAD,\n };\n};\n\n// Update current location action, if users go to Email/CallUs page/Channel Steering\nexport const locationUpdate =\n ({ pageName }) =>\n (dispatch) => {\n if (pageName) {\n dispatch(redirectLocation({ pageName }));\n dispatch(locationChecker());\n }\n };\n\nexport const exportedForTesting = {\n fetchCallPageRequests,\n fetchEmailPageRequests,\n redirectToCallOrEmail,\n checkChatBotSession,\n};\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","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","// Polling + exponential backoff function\n// eslint-disable-next-line no-promise-executor-return\nconst waitForTimeout = (duration) => new Promise((res) => setTimeout(res, duration));\n\nexport default function poll(customDataValidator, retries = 1, delay = 200) {\n if (!retries || typeof customDataValidator !== 'function') {\n return Promise.reject(false);\n }\n\n return customDataValidator()\n .then((response) => Promise.resolve(response))\n .catch((err) => {\n if (retries) {\n return waitForTimeout(delay).then(() => poll(customDataValidator, retries - 1, delay * 2));\n }\n return Promise.reject(err);\n });\n}\n\n/*\nEXAMPLE of how to use this file:\n\nvar data; <- variable that's defined but has no data in it yet.\n\n// Let's simulate server lag time.\nsetTimeout(() => {\n data = 'hello!!!';\n}, 10);\n\n// This is a custom validator function which makes it so our poll function can be super generic since it doesn't care about how to validate data\nfunction testForData() {\n return (data) ? Promise.resolve(data) : Promise.reject(false);\n}\n\npoll(testForData, 3, 100)\n .then((resp) => console.log(resp))\n .catch((err) => console.log(err));\n\n*/\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport React from 'react';\n\nvar _excluded = [\"locale\", \"messageFormatter\", \"currencyFormatter\", \"getDisplayNamesObject\", \"phoneFormatter\", \"addressFormatter\", \"exampleGenerator\", \"dateTimeFormatter\", \"children\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar IntlContext = React.createContext(null);\n\nvar IntlProvider = function (_ref) {\n var locale = _ref.locale,\n messageFormatter = _ref.messageFormatter,\n currencyFormatter = _ref.currencyFormatter,\n getDisplayNamesObject = _ref.getDisplayNamesObject,\n phoneFormatter = _ref.phoneFormatter,\n addressFormatter = _ref.addressFormatter,\n exampleGenerator = _ref.exampleGenerator,\n dateTimeFormatter = _ref.dateTimeFormatter,\n children = _ref.children,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(IntlContext.Provider, {\n value: _objectSpread({\n locale: locale,\n messageFormatter: messageFormatter,\n currencyFormatter: currencyFormatter,\n getDisplayNamesObject: getDisplayNamesObject,\n phoneFormatter: phoneFormatter,\n addressFormatter: addressFormatter,\n exampleGenerator: exampleGenerator,\n dateTimeFormatter: dateTimeFormatter\n }, rest)\n }, children);\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nvar getFormattedMessage = function (intlContext, defaultMessage, id, variables) {\n if (!id) {\n return defaultMessage;\n }\n\n if (!(intlContext && intlContext.messageFormatter)) {\n return id;\n }\n\n return intlContext.messageFormatter({\n id: id\n }).format(variables);\n};\nvar getCurrencyMaskOptions = function (intlContext, maskOptions, currencyType) {\n if (intlContext && intlContext.currencyFormatter) {\n var currencyFormat = intlContext.currencyFormatter({\n currency: currencyType\n });\n var currencyPartsArr = currencyFormat.formatToParts(1000);\n\n var _getIntlCurrencyPatte = getIntlCurrencyPattern(currencyPartsArr),\n intlMaskOptions = _getIntlCurrencyPatte.intlMaskOptions,\n intlCurrencyPrefix = _getIntlCurrencyPatte.intlCurrencyPrefix,\n intlCurrencySuffix = _getIntlCurrencyPatte.intlCurrencySuffix; //set mask-options padFractionalZeros to false and scale to 0 if currency does not support fractional values\n\n\n var currencyFormatOptions = currencyFormat.resolvedOptions();\n\n if (currencyFormatOptions.maximumFractionDigits === 0) {\n intlMaskOptions.padFractionalZeros = false;\n intlMaskOptions.scale = 0;\n }\n\n return {\n currencyMaskOptions: _objectSpread$1(_objectSpread$1({\n padFractionalZeros: true\n }, intlMaskOptions), maskOptions),\n intlCurrencyPrefix: intlCurrencyPrefix,\n intlCurrencySuffix: intlCurrencySuffix\n };\n }\n\n return {\n currencyMaskOptions: maskOptions\n };\n};\n\nfunction getIntlCurrencyPattern(currencyPartsArr) {\n var intlMaskOptions = {\n mask: Number\n };\n var intlCurrencyPrefix = '';\n var intlCurrencySuffix = '';\n currencyPartsArr.forEach(function (_ref, idx) {\n var type = _ref.type,\n value = _ref.value;\n\n switch (type) {\n case 'currencySymbol':\n if (idx === 0) {\n intlCurrencyPrefix = value;\n } else {\n intlCurrencySuffix = value;\n }\n\n break;\n\n case 'currency':\n if (idx === 0) {\n intlCurrencyPrefix = value;\n } else {\n intlCurrencySuffix = value;\n }\n\n break;\n\n case 'group':\n intlMaskOptions.thousandsSeparator = value;\n break;\n\n case 'fraction':\n intlMaskOptions.scale = value.length;\n break;\n\n case 'decimal':\n intlMaskOptions.radix = value;\n break;\n }\n });\n return {\n intlMaskOptions: intlMaskOptions,\n intlCurrencyPrefix: intlCurrencyPrefix,\n intlCurrencySuffix: intlCurrencySuffix\n };\n}\n\nexport { IntlContext, IntlProvider, getCurrencyMaskOptions, getFormattedMessage };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport { useMemo } from 'react';\nimport { keyframes, css, useTheme, jsx } from '@emotion/react';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport { devWarning, utilStyles } from '@paypalcorp/pp-react-utils';\n\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;\nfunction styles(tokens) {\n /* istanbul ignore next */\n if (!Object.keys(tokens).length) {\n devWarning('Missing Emotion theme. Use ThemeProvider from @emotion/react to pass a valid theme from pp-react.');\n return {};\n }\n\n var sysColorPrimaryMain = tokens.sysColorPrimaryMain,\n sysColorPrimaryContrast = tokens.sysColorPrimaryContrast,\n sysSizeCircleXs = tokens.sysSizeCircleXs,\n sysSizeCircleSm = tokens.sysSizeCircleSm,\n sysSizeCircleMd = tokens.sysSizeCircleMd,\n sysSizeCircleXl = tokens.sysSizeCircleXl,\n sysBorderThicknessEmphasis = tokens.sysBorderThicknessEmphasis,\n sysMotionDurationLoopStandard = tokens.sysMotionDurationLoopStandard;\n var borderSpinner = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n to {\\n transform: rotate(360deg);\\n }\\n \"])));\n\n var _utilStyles = utilStyles(tokens),\n screenReader = _utilStyles.screenReader,\n variables = _utilStyles.variables;\n\n var ppuiEaseLoopStandard = variables.ppuiEaseLoopStandard;\n var base = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n label: loading-spinner_base;\\n width: \", \";\\n height: \", \";\\n color: \", \";\\n animation: \", \" \", \"\\n \", \" infinite;\\n border: \", \" solid currentColor;\\n border-radius: 50%;\\n clip-path: polygon(50% 0%, 50% 50%, 100% 50%, 100% 100%, 0 100%, 0 0);\\n \"])), sysSizeCircleXs, sysSizeCircleXs, sysColorPrimaryMain, borderSpinner, sysMotionDurationLoopStandard, ppuiEaseLoopStandard, sysBorderThicknessEmphasis); // Size Xs\n\n var sizeXs = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\\n label: size_xs;\\n width: \", \";\\n height: \", \";\\n \"])), sysSizeCircleXs, sysSizeCircleXs); // Size md\n\n var sizeMd = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"\\n label: size_md;\\n width: \", \";\\n height: \", \";\\n \"])), sysSizeCircleSm, sysSizeCircleSm); // Size Lg\n\n var sizeLg = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"\\n label: size_lg;\\n width: \", \";\\n height: \", \";\\n \"])), sysSizeCircleMd, sysSizeCircleMd); // Size Xl\n\n var sizeXl = css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral([\"\\n label: size_xl;\\n width: \", \";\\n height: \", \";\\n \"])), sysSizeCircleXl, sysSizeCircleXl); // Inverse\n\n var inverse = css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([\"\\n label: inverse;\\n color: \", \";\\n \"])), sysColorPrimaryContrast);\n return {\n base: base,\n sizeXs: sizeXs,\n sizeMd: sizeMd,\n sizeLg: sizeLg,\n sizeXl: sizeXl,\n inverse: inverse,\n screenReader: screenReader\n };\n}\n\nvar _excluded = [\"as\", \"className\", \"inverse\", \"size\", \"screenReaderText\"];\n\nvar LoadingSpinner = function (_ref) {\n var _ref$as = _ref.as,\n as = _ref$as === void 0 ? 'p' : _ref$as,\n className = _ref.className,\n inverse = _ref.inverse,\n size = _ref.size,\n screenReaderText = _ref.screenReaderText,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var tokens = useTheme();\n\n var _styles = useMemo(function () {\n return styles(tokens);\n }, [tokens]);\n\n var sizesStyleMap = {\n xs: _styles.sizeXs,\n // to be used for stateful buttons ONLY.\n sm: '',\n md: _styles.sizeMd,\n lg: _styles.sizeLg,\n xl: _styles.sizeXl\n };\n var cssVal = [_styles.base, inverse && _styles.inverse, sizesStyleMap[size]];\n return jsx(as, _extends({\n css: cssVal,\n className: className,\n \"data-ppui-info\": \"loading-spinner_3.2.2\"\n }, rest, {\n role: \"alert\"\n }), jsx(\"span\", {\n css: _styles.screenReader,\n \"data-ppui\": \"true\"\n }, screenReaderText));\n};\n\nexport { LoadingSpinner, styles as loadingSpinnerStyles };\n","import template from 'string-placeholder';\nimport { INVALID_CONTENT_REQUEST } from '../contactUs/constants/ActionTypes';\n\nconst defaultConfig = { before: '{', after: '}' };\n\nconst contentHelper = (content, data, option = defaultConfig) => {\n if (content) {\n if (data) {\n return template(content, data, option);\n }\n return template(content, undefined, { ...defaultConfig, clean: true });\n }\n return INVALID_CONTENT_REQUEST;\n};\n\nexport default contentHelper;\n","/**\n * ICF Guide actions - display ICF prompt list and fetch ICF article content\n */\nimport axios from 'axios';\nimport _isEmpty from 'lodash/isEmpty';\nimport _uniqBy from 'lodash/uniqBy';\nimport _get from 'lodash/get';\nimport * as types from '../constants/ActionTypes';\n\nimport { getICFAccessdArticle } from './action-icf-page';\nimport UrlResources from '../constants/UrlResources';\nimport Page from '../../lib/page';\nimport { getNNAIcfId } from '../../lib/nnaHelper';\nimport { BNA } from '../../common/commonConstants';\n\nconst getBNAArticles = (recommendArticles) =>\n Array.isArray(recommendArticles) && recommendArticles.filter((article) => article.channel === BNA);\n\n/* --------------- Actions --------------- */\n// Prepare fetching ICF content request\nconst requestICFContents = (url) => ({ type: types.REQUEST_ICF_CONTENTS, payload: url });\n\nconst requestICFArticleContents = (url) => ({ type: types.REQUEST_ARTICLE_ICF_CONTENTS, payload: url });\n\nconst receivedICFContents = (payload) => ({ type: types.RECEIVED_ICF_CONTENTS, payload });\n\nconst receivedICFArticleContents = (payload) => ({ type: types.RECEIVED_ARTICLE_ICF_CONTENTS, payload });\n\nconst receviedICFContentsError = () => ({ type: types.RECEIVED_ICF_CONTENTS_ERROR });\n\nconst receviedICFArticleContentsError = () => ({ type: types.RECEIVED_ARTICLE_ICF_CONTENTS_ERROR });\n\nexport const getIcfMappings = () => {\n try {\n const icfConfig = Page.getIcfConfig();\n return icfConfig.mapping;\n } catch (e) {\n return {};\n }\n};\n\n// Get ICF id from BNA-ICF mapping stored in the Remote config\nconst getICFList = (bnaArticles) => {\n const bnaMapping = getIcfMappings();\n\n const response = [];\n if (!Array.isArray(bnaArticles) || !bnaArticles.length || _isEmpty(bnaMapping)) {\n return response;\n }\n bnaArticles.forEach((article) => {\n const bnaId = (article.channelDetails || {}).bnaId;\n\n if (bnaMapping[bnaId]) {\n response.push(bnaMapping[bnaId]);\n }\n });\n return _uniqBy(response); // remove ICF duplications\n};\n\n// Formate URL with single/multiple ICF id\nconst getURL = (ICFList) => {\n if (!Array.isArray(ICFList) || !ICFList.length) {\n return '';\n }\n let baseUrl = '';\n ICFList.forEach((id) => {\n baseUrl += baseUrl ? `&icf_id=${id}` : `icf_id=${id}`;\n });\n return baseUrl;\n};\n\n// Using URL to fetch ICF contents\nexport const fetchGuideContents = (query) => (dispatch, getState) => {\n const pathName = _get(getState(), 'location.pathname');\n if (pathName && pathName.indexOf(UrlResources.HOME) !== -1) {\n // For Home Page\n dispatch(requestICFContents(query));\n\n return axios\n .get(`/smarthelp/interactive-guide?${query}`)\n .then((response) => {\n const icfData = response.data;\n const state = getState();\n let finalICFs = [];\n\n if (Array.isArray(icfData) && icfData.length > 0) {\n const isNNAEnabled = state.popular.isNetNewAccount;\n // If NNA is enabled - Before storing the data if there is any BNA ICFID related to NNA hide it from showing in ICF List\n if (isNNAEnabled) {\n const nnaICFid = getNNAIcfId(); // Get NNA ICF id which is part of RC\n finalICFs = icfData.map((icfArticle) => ({ ...icfArticle, isHidden: icfArticle.icf_id === nnaICFid }));\n } else {\n // Default response.\n finalICFs = icfData.map((icfArticle) => ({ ...icfArticle, isHidden: false }));\n }\n }\n\n dispatch(receivedICFContents(finalICFs));\n // Getting the ICF Visited List\n dispatch(getICFAccessdArticle());\n })\n .catch(() => {\n dispatch(receviedICFContentsError());\n });\n }\n // For ICF Article Page\n dispatch(requestICFArticleContents(query));\n // Getting the ICF Visited List\n dispatch(getICFAccessdArticle());\n\n return axios\n .get(`/smarthelp/interactive-guide?${query}`)\n .then((response) => {\n dispatch(receivedICFArticleContents(response.data));\n })\n .catch(() => {\n dispatch(receviedICFArticleContentsError());\n });\n};\n\nexport const fetchICFContents = ({ dispatch, recommendArticles, blacklistedMarketICFFlag }) => {\n if (typeof dispatch !== 'function' || !Array.isArray(recommendArticles)) {\n return null;\n }\n const bnaArticles = getBNAArticles(recommendArticles);\n\n if (Array.isArray(bnaArticles) && bnaArticles.length) {\n if (blacklistedMarketICFFlag) {\n return null;\n }\n } else {\n return null;\n }\n\n const ICFList = getICFList(bnaArticles);\n if (!Array.isArray(ICFList) || !ICFList.length) {\n return null;\n }\n\n const fetchingQuery = getURL(ICFList);\n\n return dispatch(fetchGuideContents(fetchingQuery));\n};\n","import axios from 'axios';\nimport Page from '../js/lib/page';\nimport { trackImpression } from '../js/lib/analytics-helper';\nimport { pageNames } from '../js/lib/page-name-identifiers';\nimport { isShowOnlySearchLayoutEnabled, isBotExperienceEnabled } from './helper';\n\nimport * as types from '../js/contactUs/constants/ActionTypes';\n\n/**\n * Innovation Guild: search only experiment. for channel steering call\n */\nfunction receivedIDIContactOptionsError() {\n return {\n type: types.RECEIVE_IDI_CONTACT_OPTIONS_ERROR,\n };\n}\n\nfunction receivedResponseFromRisk(riskOptions) {\n return {\n type: types.RECEIVED_RESPONSE_FROM_RISK,\n payload: riskOptions,\n };\n}\n\nconst searchOnlyFPTI = (status) => {\n let eventNameExp = '';\n if (isShowOnlySearchLayoutEnabled()) {\n eventNameExp = 'search-only-faq-exp';\n } else if (isBotExperienceEnabled()) {\n eventNameExp = 'search-only-bot-acitve-convo-exp';\n }\n\n const searchOnlyFpti = {\n id: Page.getFPTIPageId(),\n link: `${eventNameExp}|contact-options-${status}`,\n event_name: eventNameExp,\n page: pageNames.articlePage.pageName,\n pgrp: pageNames.articlePage.pageGroupName,\n e: 'ac',\n };\n trackImpression(searchOnlyFpti);\n};\n\nfunction updateUserSelection(topicId, topicName = '') {\n return (dispatch) => {\n if (topicId.length <= 0) topicId = 'GENPOOL';\n if (topicName.length <= 0) topicName = 'HELP_CENTER';\n return axios\n .post('/smarthelp/update-user-selection', {\n _csrf: Page.getCSRFtoken(),\n topicId,\n topicName,\n })\n .then((response) => {\n searchOnlyFPTI('success');\n dispatch(receivedResponseFromRisk((response.data || {}).channel_availability_decisions || {}));\n })\n .catch(() => {\n searchOnlyFPTI('failure');\n dispatch(receivedIDIContactOptionsError());\n });\n };\n}\n\nexport default updateUserSelection;\n","import split from 'lodash/split';\nimport axios from 'axios';\nimport _get from 'lodash/get';\nimport _isEmpty from 'lodash/isEmpty';\nimport _isEqual from 'lodash/isEqual';\nimport * as types from '../constants/ActionTypes';\nimport Page from '../../lib/page';\nimport { getContextId, isSetContextEnabled } from '../../lib/omnichannelHelper';\nimport { getIcfMappings } from '../../home/actions/action-icf-guide';\nimport { trackLink, trackPage } from '../../lib/analytics-helper';\nimport { getNNAIcfId } from '../../lib/nnaHelper';\nimport getHistory from '../../lib/HistoryHelper';\nimport {\n isOmniChannelAPITriggeredInSession,\n removeOmniChannelAPITriggeredInSession,\n omniChannelAPITriggeredInSession,\n parseOmniChannelIntents,\n} from '../../lib/globalHelper';\nimport UrlResources from '../../home/constants/UrlResources';\nimport updateBnaData from '../../home/actions/action-update-bna-data';\nimport { PageMapping } from '../../lib/page-name-identifiers';\nimport updateUserSelection from '../../../experimentations/updateUserSelection';\nimport { isBotExperienceEnabled, isShowOnlySearchLayoutEnabled } from '../../../experimentations/helper';\nimport {\n ECM_DOC_ID_KEY,\n ECM_COMPONENT_IDS_KEY,\n ECM_DOC_ID_DEFAULT_VALUE,\n ECM_COMPONENT_IDS_DEFAULT_VALUE,\n} from '../constants/ecmFPTITagsKeys';\n\nconst CancelToken = axios.CancelToken;\nconst source = CancelToken.source();\n\nconst ARTICLE_URL = '/smarthelp/article-content';\n\nexport function requestArticle() {\n return {\n type: types.REQUEST_ARTICLE,\n payload: undefined,\n };\n}\n\nexport function receiveArticle(responseData) {\n return {\n type: types.RECEIVE_ARTICLE_RESPONSE,\n payload: responseData,\n };\n}\n\nexport function receiveArticleError() {\n return {\n type: types.RECEIVE_ARTICLE_ERROR,\n payload: undefined,\n };\n}\n\nexport function resetOmniChannelPromptInfo() {\n return {\n type: types.RESET_OMNI_CHANNEL_PROMPT_INFO,\n };\n}\n\nconst setContextIntents = (params) => ({\n type: types.SET_CONTEXT_INTENTS,\n payload: params,\n});\n\nconst setContextResponse = (response) => ({\n type: types.SET_CONTEXT_RESPONSE,\n payload: response,\n});\n\nexport const resetOcpContextResponse = () => ({\n type: types.RESET_OCP_CONTACT_RESPONSE,\n});\n\n/**\n * Set context POST call with available tags information\n */\nexport function setContextApiCall(\n intents,\n faq,\n customerConfirmation = false,\n isTrackersData = false,\n trackersData = {},\n fptiDocId = '',\n fptiComponentIds = '',\n) {\n return (dispatch) => {\n dispatch(setContextIntents({ intents, faq }));\n const deviceType = Page.getDeviceType();\n // Returning customer conformed true only in contact us page or\n // if the article is clicked which has intents in search page\n const customerConfirmed = customerConfirmation || Page.isContactUsPage();\n const fptiPageId = Page.getFPTIPageId();\n\n // call set context service only when - we have intents AND faq OR trackers data\n if (Array.isArray(intents) && intents.length && (faq || (isTrackersData && trackersData))) {\n const setContextOptions = {\n _csrf: document.body.getAttribute('data-token'),\n intents,\n deviceType,\n faq,\n isTrackersData,\n trackersData,\n };\n\n // only if customer is confirmed we will be sending the customer confirmed key\n if (customerConfirmed) {\n setContextOptions.customerConfirmed = customerConfirmed;\n }\n\n // FPTI For Set context\n // For Contact-us final intent, changing set context as activity event\n if (Page.isContactUsPage()) {\n trackPage({\n id: 'setContextcontactUsPage',\n link: 'smarthelp-set-context',\n ocp_context_metadata: JSON.stringify(intents),\n context_status: 'ACTIVE',\n link_name: customerConfirmed,\n channel_name: 'HELP_CENTER',\n hpid: faq,\n help_doc_id: fptiDocId,\n help_component_ids: fptiComponentIds,\n });\n } else {\n trackPage({\n id: `setContext${fptiPageId}`,\n link: 'smarthelp-set-context',\n ocp_context_metadata: JSON.stringify(intents),\n context_status: 'ACTIVE',\n link_name: customerConfirmed,\n channel_name: 'HELP_CENTER',\n hpid: faq,\n help_doc_id: fptiDocId,\n help_component_ids: fptiComponentIds,\n });\n }\n return axios\n .post('/smarthelp/set-context', setContextOptions)\n .then((response) => {\n // Fpti when set context is success\n trackPage({\n id: `setContextSuccess${fptiPageId}`,\n link: 'smarthelp-set-context-success',\n hpid: faq,\n help_doc_id: fptiDocId,\n help_component_ids: fptiComponentIds,\n });\n if (Page.isContactUsPage() && response.data && response.data.contexts && response.data.contexts.items) {\n const setContextFilteredResponse = getContextId(intents, response.data.contexts.items);\n return dispatch(setContextResponse(setContextFilteredResponse));\n }\n return null;\n })\n .catch(() => {\n // Fpti when set context is failed\n trackPage({\n id: `setContextFailure${fptiPageId}`,\n link: 'smarthelp-set-context-failure',\n hpid: faq,\n help_doc_id: fptiDocId,\n help_component_ids: fptiComponentIds,\n });\n });\n }\n // if the required information is not available for firing set context call, then firing an FPTI\n return trackPage({\n id: `omniChannelSetContextNotFired${fptiPageId}`,\n link: 'smarthelp-set-context-not-fired',\n hpid: faq,\n help_doc_id: fptiDocId,\n help_component_ids: fptiComponentIds,\n });\n };\n}\n\n/**\n * Set context POST call with available tags information FOR EXP\n */\nexport function setContextApiCallForExp(intents, faq, customerConfirmation = false) {\n return (dispatch) => {\n dispatch(setContextIntents({ intents, faq }));\n const deviceType = Page.getDeviceType();\n // Returning customer conformed true only in contact us page or\n // if the article is clicked which has intents in search page\n const customerConfirmed = customerConfirmation || Page.isContactUsPage();\n const fptiPageId = Page.getFPTIPageId();\n\n // Only if we have intents and faq call set context service\n if (Page.isLoggedIn() && !_isEmpty(intents)) {\n const setContextOptions = {\n _csrf: document.body.getAttribute('data-token'),\n intents,\n deviceType,\n };\n\n // only if customer is confirmed wee will be sending the customer confirmed key\n if (customerConfirmed) {\n setContextOptions.customerConfirmed = customerConfirmed;\n }\n\n // FPTI For Set context\n // For Contact-us final intent, changing set context as activity event\n trackPage({\n id: `setContext${fptiPageId}`,\n link: 'smarthelp-set-context',\n ocp_context_metadata: JSON.stringify(intents),\n context_status: 'ACTIVE',\n link_name: customerConfirmed,\n channel_name: 'HELP_CENTER',\n });\n return axios\n .post('/smarthelp/set-context', setContextOptions)\n .then((response) => {\n // Fpti when set context is success\n trackPage({ id: `setContextSuccess${fptiPageId}`, link: 'smarthelp-set-context-success' });\n if (Page.isContactUsPage() && response.data && response.data.contexts && response.data.contexts.items) {\n const setContextFilteredResponse = getContextId(intents, response.data.contexts.items);\n return dispatch(setContextResponse(setContextFilteredResponse));\n }\n return null;\n })\n .catch(() => {\n // Fpti when set context is failed\n trackPage({ id: `setContextFailure${fptiPageId}`, link: 'smarthelp-set-context-failure' });\n });\n }\n // if the required information is not available for firing set context call, then firing an FPTI\n return trackPage({ id: `omniChannelSetContextNotFired${fptiPageId}`, link: 'smarthelp-set-context-not-fired' });\n };\n}\n\nexport function fetchArticle(faqId, checkTechnical = false) {\n return (dispatch, getState) => {\n dispatch(requestArticle());\n const faq = split(faqId, ',')[0];\n const isHomePage = !!window.localStorage.getItem('isHome');\n\n // taking the flag set in updatebna and passing it as a param for the article-content\n const isPCC = !!window.localStorage.getItem('isBNA') || faq.toUpperCase().indexOf('PCC') === 0;\n let articleURL = `${ARTICLE_URL}?article_id=${faq}&isPCC=${isPCC}&isHomePage=${isHomePage}`;\n\n const topicDetails = _get(getState(), 'selectResult.topicTreeSelectResult', {});\n\n // Checking the session storage for omni channel API triggered value from session\n const setContextTriggered = isOmniChannelAPITriggeredInSession();\n\n if (checkTechnical) {\n articleURL = Page.setChannelForTechnicalExp(articleURL);\n }\n\n return axios\n .get(articleURL, {\n cancelToken: source.token,\n })\n .then((response) => {\n // Removing the isBna flag since we have already passed it as a param to article-content\n window.localStorage.removeItem('isBNA');\n if (response.data && response.data.articleContent) {\n window.localStorage.removeItem('isHome');\n dispatch(receiveArticle(response.data.articleContent));\n // Innovation Guild: search only experiments enabled for show FAQ result or launching bot.\n if (isShowOnlySearchLayoutEnabled() || isBotExperienceEnabled()) {\n const topicId = response.data.articleContent.topicId;\n const topicName = response.data.articleContent.topicName;\n dispatch(updateUserSelection(topicId, topicName));\n }\n\n const articleIntents = isSetContextEnabled(topicDetails, response.data);\n\n let isCustomerConfirmed = false;\n const customerSaysIntent = _get(getState(), 'searchResult.items[0].customerSaysIntent', '');\n let intentPredictions = _get(response, 'data.articleContent.tags[0].predictions', []);\n // verify if the customerSaysIntent matches with article intent then set the CustomerConfirmed true for setContext API\n if (Array.isArray(intentPredictions) && intentPredictions.length > 0) {\n intentPredictions = parseOmniChannelIntents(intentPredictions);\n\n // Checking the customersays intent and top intent from the Search\n isCustomerConfirmed = _isEqual(\n customerSaysIntent?.toLowerCase(),\n intentPredictions[0].customer_intent?.toLowerCase(),\n );\n } else {\n // omni-channel not fired FPTI for search page\n trackPage({ id: 'omniChannelSetContextNotFiredsearchPage', link: 'smarthelp-set-context-not-fired', faq });\n }\n\n // If set context API already triggered when clicked on search results do not trigger the API again\n if (!setContextTriggered && Page.isLoggedIn()) {\n // get the ECM API tags from article data\n const fptiDocId = response.data.articleContent[ECM_DOC_ID_KEY] || ECM_DOC_ID_DEFAULT_VALUE;\n const fptiComponentIds =\n response.data.articleContent[ECM_COMPONENT_IDS_KEY] || ECM_COMPONENT_IDS_DEFAULT_VALUE;\n\n dispatch(\n setContextApiCall(articleIntents, faq, isCustomerConfirmed, false, {}, fptiDocId, fptiComponentIds),\n );\n }\n\n // Removing OmniChannel API triggered value from session\n removeOmniChannelAPITriggeredInSession();\n } else if (isHomePage) {\n window.localStorage.removeItem('isHome');\n trackPage({ id: 'articleRedirect', hpid: faqId, link: 'smarthelp-article-redirect-to-home' });\n window.location.href = '/smarthelp/home';\n }\n })\n .catch(() => {\n window.localStorage.removeItem('isHome');\n window.localStorage.removeItem('isBNA');\n dispatch(receiveArticleError());\n const articleIntents = isSetContextEnabled(topicDetails, {});\n // Innovation Guild: search only experiments enabled for show FAQ result or launching bot.\n if (isShowOnlySearchLayoutEnabled() || isBotExperienceEnabled()) {\n dispatch(updateUserSelection('GENPOOL', 'HELP_CENTER'));\n }\n // If set context API already triggered when clicked on search results do not trigger the API again\n if (!setContextTriggered && Page.isLoggedIn()) {\n dispatch(setContextApiCall(articleIntents, faq, false));\n }\n\n // Removing OmniChannel API triggered value from session\n removeOmniChannelAPITriggeredInSession();\n });\n };\n}\n\nexport function cancelArtilceRequest() {\n source.cancel('article request canceled.');\n}\n\n/**\n * Update context POST call with available intents information\n */\nexport function updateContext(\n articleContent,\n icfId,\n customerConfirmed,\n authFlowContextId = '',\n stepUpRequestedTime = '',\n) {\n const intents = (articleContent && articleContent.channelDetails) || '';\n const deviceType = Page.getDeviceType();\n let pathName = PageMapping.home;\n if (Page.isContactUsPage()) {\n pathName = PageMapping['contact-us'];\n }\n // if icf id exists pass icf id else pass the article id\n const faq = icfId || articleContent.articleId;\n\n // get the ECM API tags from article data\n const fptiDocId = (articleContent && articleContent[ECM_DOC_ID_KEY]) || ECM_DOC_ID_DEFAULT_VALUE;\n const fptiComponentIds = (articleContent && articleContent[ECM_COMPONENT_IDS_KEY]) || ECM_COMPONENT_IDS_DEFAULT_VALUE;\n\n // Only if we have intents and faq call update context service\n if (Page.isLoggedIn() && !_isEmpty(intents) && faq) {\n // setting the session variable when omni channel API is triggered, only when customerConfirmed is true\n // customerConfirmed will be false only when NO is clicked on the omni channel prompt\n if (customerConfirmed) {\n omniChannelAPITriggeredInSession(true);\n }\n\n const timeStamp = Math.round(+new Date() / 1000);\n\n const updateContextReqParams = {\n _csrf: document.body.getAttribute('data-token'),\n intents,\n deviceType,\n faq,\n customerConfirmed,\n };\n\n // If authFlowContextId and stepUpRequestedTime exists adding them to update context request params\n // these values are available once step up up is initiated\n // and after step up is done and while redirecting to help center page we will be making update context call by adding these params\n if (authFlowContextId && stepUpRequestedTime) {\n updateContextReqParams.authFlowContextId = authFlowContextId;\n updateContextReqParams.stepUpRequestedTime = stepUpRequestedTime;\n // changing the pathname to fire step up update context API.\n pathName = 'StepUp';\n }\n\n // FPTI For update context\n trackLink({\n id: `updateContext${pathName}`,\n link: 'smarthelp-update-context',\n ocp_context_metadata: JSON.stringify(intents),\n timestamp: timeStamp,\n context_status: 'ACTIVE',\n link_name: customerConfirmed,\n channel_name: 'HELP_CENTER',\n help_doc_id: fptiDocId,\n help_component_ids: fptiComponentIds,\n });\n\n return axios\n .post('/smarthelp/update-context', updateContextReqParams)\n .then(() => {\n // Fpti when update context is success\n trackPage({\n id: `updateContextSuccess${pathName}`,\n link: 'smarthelp-update-context-success',\n hpid: faq,\n help_doc_id: fptiDocId,\n help_component_ids: fptiComponentIds,\n });\n })\n .catch(() => {\n // Fpti when update context is failed\n trackPage({\n id: `updateContextFailure${pathName}`,\n link: 'smarthelp-update-context-failure',\n hpid: faq,\n help_doc_id: fptiDocId,\n help_component_ids: fptiComponentIds,\n });\n });\n }\n\n // if the required information is not available for firing update context call, thne firing an FPTI call\n return trackPage({\n id: `omniChannelUpdateContextNotFired${pathName}`,\n link: 'smarthelp-update-context-not-fired',\n hpid: faq,\n help_doc_id: fptiDocId,\n help_component_ids: fptiComponentIds,\n });\n}\n\n/**\n * Function to return BNA-ID if ICF-ID is passed\n * @param icfId\n * @returns {Array}\n */\nfunction returnBnaId(icfId) {\n const bnaMapping = getIcfMappings();\n const bnaId = [];\n Object.keys(bnaMapping).forEach((key) => {\n if (bnaMapping[key] === icfId) {\n // Pushing all the BNA's which match ICF articles\n bnaId.push(key);\n }\n });\n return bnaId;\n}\n\n/**\n * Function to get BNA article mapped to ICF and call update con text API\n */\nexport function icfArticleUpdateContext(icfArticle, articles, isNNAIcf = false) {\n // This is the common update context for regular ICF's and NNA ICF. If update context is initiated from NNA article\n // get icf id from remote config. if not get the icfId from icf article.\n // By default isNNAIcf will false\n let icfId = null;\n if (isNNAIcf) {\n icfId = getNNAIcfId();\n } else {\n icfId = icfArticle && icfArticle.icf_id;\n }\n\n if (icfId) {\n // get bnaid with icfid\n const BnaId = returnBnaId(icfId);\n /* eslint-disable array-callback-return */\n // eslint-disable-next-line consistent-return\n return articles.filter((article) => {\n // checking for BNA ID in the list of BNA id returned from icf remote config mapping\n if (article.channel === 'BNA' && BnaId.indexOf(article.channelDetails.bnaId) >= 0) {\n return updateBnaData(article);\n }\n });\n }\n return trackPage({ id: 'updateContextFailure', link: 'smarthelp-update-context-failure-null-icf-id' });\n}\n\n/**\n * Function triggered when clicked on yes on omnichannel prompt in home page\n */\nexport function updateContextPromptConfirmation(articleInfo, intentCode) {\n return (dispatch) => {\n const faqId = articleInfo.articleId || '';\n // FPTI\n trackLink({\n id: 'omniChannelPromptDisplayed',\n link: `smarthelp-omnichannel-prompt-yes|suggested-solution-${faqId}`,\n ocp_context_metadata: intentCode,\n });\n\n // Set/update context\n updateContext(articleInfo, '', true);\n dispatch(resetOmniChannelPromptInfo());\n\n // If FaqId exists redirect to article page\n if (faqId) {\n return getHistory().push(`/${UrlResources.ARTICLE}/${faqId}`);\n }\n // if faq doesnt exists closing the omnichannel prompt and fpti is triggered\n return trackPage({\n id: 'omniChannelPromptDisplayed',\n link: 'smarthelp-omnichannel-prompt-yes-faq-not-available',\n ocp_context_metadata: intentCode,\n });\n };\n}\n/**\n * Function triggered when clicked on yes on omnichannel prompt in home page\n */\nexport function updateContextPromptRejection(articleInfo, intentCode) {\n return (dispatch) => {\n const faqId = articleInfo.articleId || '';\n trackLink({\n id: 'omniChannelPromptDisplayed',\n link: `smarthelp-omnichannel-prompt-clicked-no|suggested-solution-${faqId}`,\n ocp_context_metadata: intentCode,\n });\n dispatch(resetOmniChannelPromptInfo());\n return updateContext(articleInfo, '', false);\n };\n}\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","import _find from 'lodash/find';\nimport _isEmpty from 'lodash/isEmpty';\nimport _get from 'lodash/get';\nimport Page from '../../lib/page';\nimport { modalChannels } from '../constants/UtilVariables';\nimport { trackPage } from '../../lib/analytics-helper';\nimport { initiateAsyncChat, isMessageUsAvailable } from '../../lib/asyncMessageHelper';\nimport poll from '../../lib/poll';\nimport { nodeChatOnPageValidator } from '../../lib/node-chat-on-page-validator';\nimport fireImpressionFptiForChatLoadError from '../../lib/fire-impression-fpti-for-chat-load-error';\nimport { asyncOrigins, chatBotMessageUsRefIdsMapping } from '../../common/commonConstants';\nimport { getAsyncChatPillOCPParams } from '../../lib/omnichannelHelper';\n\n// redirect to appropriate channel after checking the IDI response.\nexport function initializeAppropriateChannel(topic = {}, redirectChannel) {\n if (_isEmpty(redirectChannel)) {\n return trackPage({\n id: 'chatMessageUsChatBotLoadError',\n link: `chat-chatbot-messageUs-loading-error|redirect-channel-${redirectChannel}`,\n });\n }\n const topicRefId =\n topic && topic.topicRefId\n ? `${topic.topicRefId}|${chatBotMessageUsRefIdsMapping.FINAL_INTENT}`\n : chatBotMessageUsRefIdsMapping.GENPOOL_CONTACT_US;\n\n // Async - MESSAGE US\n if (redirectChannel === modalChannels.messageUs) {\n const ocpParamsForChatPill = getAsyncChatPillOCPParams(topic.chatPillOcpParams);\n const customerIntent = ocpParamsForChatPill.customerIntent;\n const intentCode = ocpParamsForChatPill.intentCode;\n const asyncOrigin = topicRefId.includes(chatBotMessageUsRefIdsMapping.FINAL_INTENT)\n ? asyncOrigins.FINAL_CONTACT_OPTIONS\n : asyncOrigins.DEFAULT_CONTACT_OPTIONS;\n return initiateAsyncChat({\n topicRefId,\n customerIntent,\n intentCode,\n origin: asyncOrigin,\n });\n }\n\n // If chat is available in IDI response live chat will be opened if not chat bot will be opened.\n if (redirectChannel === modalChannels.chatBot || redirectChannel === modalChannels.liveChat) {\n // Waits at least 3.20 secs based on current retries = 5 and delay = 200 ms\n return poll(nodeChatOnPageValidator, 5, 200)\n .then(() => {\n // eslint-disable-next-line no-undef\n nodeChat.show(redirectChannel, topicRefId);\n })\n .catch(() => fireImpressionFptiForChatLoadError());\n }\n\n return trackPage({\n id: 'chatMessageUsChatBotLoadError',\n link: `chat-chatbot-messageUs-loading-error|redirect-channel-${redirectChannel}`,\n });\n}\n\n/**\n IDI eligibility checker to wait for IDI response and to check the availability of channels.\n Once the IDI response is available these are the sequence of checks\n 1) If async user checks if MESSAGE_US is available - if available returns messageUS\n 2) If non async user checks if CHAT is available - if available returns chat\n 3) if both the channels are not available check the postchatbot eligibility response\n If ELIGIBLE return chat bot\n if INELIGIBLE show ineligible modal window.\n * */\nexport function idiChatEligibilityChecker(topicId, fromChannel, showChat, reject) {\n return (dispatch, getState) => {\n // Time out to keep checking IDI contact options.\n const stateValues = getState();\n const timeOutIDICheck = window.location.href.includes('localhost') ? 1500 : 1000;\n const chatPillOcpParams = _get(stateValues, 'ocpContextResponse.setContextIntents', null);\n const callback = (params) => {\n if (!params.eligible) {\n return dispatch(reject()); // Show error message, if the Chat eligibilty is failed after logged in\n }\n\n return showChat({ topicRefId: topicId, chatPillOcpParams }, params.redirectChannel);\n };\n\n const checkPostChatBotEligibility = (state) => {\n const {\n postChatBotEligibility: { isLoading, chatBotDisplay },\n } = state;\n if (!isLoading && chatBotDisplay) {\n return {\n eligible: true,\n redirectChannel: modalChannels.chatBot,\n };\n }\n\n return { eligible: false };\n };\n\n const checker = (idiChannelDecisions, state) => {\n // If no IDI channels check for post chat bot eligibility.\n if (!idiChannelDecisions || !Array.isArray(idiChannelDecisions)) {\n // return post chat bot eligibility decision\n return checkPostChatBotEligibility(state);\n }\n\n // First check if MESSAGE_US is available\n if (isMessageUsAvailable(idiChannelDecisions)) {\n return {\n eligible: true,\n redirectChannel: modalChannels.messageUs,\n };\n }\n\n // Second check if CHAT is available\n const chatAvailable = _find(idiChannelDecisions, (channel) => channel.name === 'CHAT');\n if (chatAvailable && chatAvailable.availability_decision === 'AVAILABLE') {\n return {\n eligible: true,\n redirectChannel: modalChannels.liveChat,\n };\n }\n\n // Fallback to bot\n return checkPostChatBotEligibility(state);\n };\n\n // DELAY CHECKER TO KEEP CHECKING FOR IDI CONTACT OPTIONS.\n const delayCheckerForIDIOptions = (retry) => {\n const state = getState();\n\n if (state.contactChannels.IDIIsLoaded) {\n const finalIntentIDIDecisions = state.contactChannels.IDIAvailability;\n return callback(checker(finalIntentIDIDecisions, state));\n }\n\n if (retry >= 0) {\n return setTimeout(() => delayCheckerForIDIOptions(retry - 1), timeOutIDICheck);\n }\n return callback(checker(null, state));\n };\n\n // Final intent\n if (!_isEmpty(topicId)) {\n return delayCheckerForIDIOptions(10); // Wait IDI contact options to finish loading\n }\n\n // Default\n const defaultIdiChannelDecisions = Page.getIDIContactOptionDecisions();\n return callback(checker(defaultIdiChannelDecisions, getState()));\n };\n}\n\n/**\n * NON IDI market chat eligibility checker.\n * For non idi markets post chat bot eligibility response is will be checked.\n If ELIGIBLE return chat bot\n if INELIGIBLE show ineligible modal window.\n\n * @param topicId\n * @param fromChannel\n * @param showChat\n * @param reject\n * @returns {Function}\n */\nexport function nonIdiChatEligibilityChecker(topicId, fromChannel, showChat, reject) {\n return (dispatch, getState) => {\n // Time out to keep checking IDI contact options.\n const timeOutIDICheck = window.location.href.includes('localhost') ? 1500 : 1000;\n\n const callback = (params) => {\n if (!params) {\n return dispatch(reject()); // Show error message/ ineligible modal window\n }\n\n return showChat({ topicRefId: topicId }, modalChannels.chatBot);\n };\n\n // DELAY CHECKER TO KEEP CHECKING FOR IDI CONTACT OPTIONS.\n const delayCheckerForPostChatBotResponse = (retry) => {\n const {\n postChatBotEligibility: { isLoading, chatBotDisplay },\n } = getState();\n if (!isLoading) {\n return callback(chatBotDisplay);\n }\n\n if (retry >= 0) {\n return setTimeout(() => delayCheckerForPostChatBotResponse(retry - 1), timeOutIDICheck);\n }\n return callback(chatBotDisplay);\n };\n\n delayCheckerForPostChatBotResponse(10); // Wait for post chat bot eligibility call to finish loading\n };\n}\n","import axios from 'axios';\nimport _isEmpty from 'lodash/isEmpty';\nimport * as types from '../constants/ActionTypes';\nimport { trackPage } from '../../lib/analytics-helper';\nimport { mappingRemoteConfig, isStepUpEnabled, isTopicSupportedForRisk } from '../../lib/step-up-helper';\nimport { fetchFinalTopicContent } from './action-select-topic';\nimport { loadModalContainer, closeModalContainer } from './action-login-modal';\nimport { modalChannels, stepUpChannels } from '../constants/UtilVariables';\nimport { setChatCardClickInSession } from '../../lib/chat-bot-live-helper';\nimport Page from '../../lib/page';\nimport { loadChatIneligibleModalContainer } from './action-chat-ineligible-modal';\nimport { idiChatEligibilityChecker, initializeAppropriateChannel, nonIdiChatEligibilityChecker } from './action-chat';\nimport { locationUpdate } from './action-contact-location';\nimport { isChannelAvailableInContactOptions, isNodeChatAlreadyExists } from '../../lib/globalHelper';\nimport { getIdiContactChannels } from './action-update-user-selection';\nimport { isSuppressCallUs } from '../../lib/covidHelper';\nimport { showHideCovidBcpModalAlert } from './action-covid-modal-alert';\nimport { requestLoggedOutChatValidation } from '../../lib/loggedOutChatHelper';\nimport { chatBotEligibilityResponse } from './action-chat-bot';\n\nconst isIdiContactOptionsEnabled = Page.getIsIDIContactOptions();\n\nconst attempts = {\n FIRST: 'first',\n SECOND: 'second',\n};\n\n/**\n * Get selected TopicRefId to perform risk check. TopicRefId is required to perform risk check.\n * For already logged in user getting topicRefId from state.selectResult\n * For logged Out to logged in case getting topicRefId from state.smcResultKeeper - which is from session storage.\n *\n * @param state\n * @returns topicRefId || undefined\n */\nconst getTopicRefId = (state = {}) => {\n const refId =\n ((state.selectResult || {}).topicTreeSelectResult || {}).topicRefId ||\n ((state.smcResultKeeper || {}).topicTreeSelectResult || {}).topicRefId;\n return typeof refId === 'string' ? refId : undefined;\n};\n\nexport const isLoggedOutToLogin = (state = {}) => !_isEmpty((state.modal || {}).fromChannel);\n\n// TODO:: This is a temporary fix to set proper contact channel for step-up RISK. Needs clean up.\n/**\n * In the current implementation, for logged-out to logged-in the fromChannel name is liveChat.\n * so replacing liveChat with chat as RISK will support only chat.\n * Set contactChannel as messageUs when from channel is liveChat || chat and asyncUser\n * @param fromChannel\n * @returns {string}\n */\nexport const getRiskContactChannelName = (fromChannel) => {\n if ((fromChannel === stepUpChannels.liveChat || fromChannel === stepUpChannels.chat) && Page.isPilotUser()) {\n return stepUpChannels.messageUs;\n }\n\n if (fromChannel === stepUpChannels.liveChat) {\n return stepUpChannels.chat;\n }\n return fromChannel;\n};\n\n// --------------------------- ANW [Auth Node Web]-----------------------------------\n\nexport const requestAnwCheck = () => ({ type: types.REQUEST_ANW_CHECK_INITIATED });\n\nexport const receivedANWCheck = (anwInfo) => ({\n type: types.RECEIVE_ANW_SUCCESS,\n payload: anwInfo,\n});\n\nexport const receivedANWError = () => ({ type: types.RECEIVE_ANW_ERROR });\n\nconst getContextId = (state = {}) => {\n const authContextId = ((state.stepUp || {}).riskInfo || {}).authflow_context_id;\n return typeof authContextId === 'string' ? authContextId : '';\n};\n\nconst stepUpRequestTime = (timeStamp) => ({\n type: types.STEP_UP_REQUEST_TIME,\n payload: timeStamp,\n});\n\nexport const initiateANWCheck = () => (dispatch, getState) => {\n dispatch(requestAnwCheck());\n const state = getState();\n const contextId = getContextId(state);\n const {\n stepUp: { fromChannel },\n } = state;\n const contactChannel = getRiskContactChannelName(fromChannel);\n const anwURL = `/smarthelp/stepup-anw?contextId=${contextId}&contactChannel=${contactChannel}`;\n\n const timeStamp = new Date().toISOString();\n dispatch(stepUpRequestTime(timeStamp));\n\n return axios\n .get(anwURL)\n .then((response) => {\n const anwInfo = ((response || {}).data || {}).authNodeWebUrl;\n dispatch(receivedANWCheck(anwInfo));\n })\n .catch(() => {\n trackPage({\n id: 'stepUpIntermediatePage_anwFailure',\n link: `smarthelp-step-up-intermediate|${getTopicRefId(state)}|${contactChannel}|anw-failure`,\n });\n dispatch(receivedANWError());\n });\n};\n\n// ----------------------------------- End of ANW -------------------------------------------\n\n// --------------------------------- RISK [ Step Up]-----------------------------------------\n\nexport const loadStepUpContainer = () => ({ type: types.LOAD_STEP_UP_CONTAINER });\n\nexport const closeStepUpContainer = ({ redirectToChannel }) => ({\n type: types.CLOSE_STEP_UP_CONTAINER,\n payload: redirectToChannel,\n});\n\nexport const resetStepUp = () => ({ type: types.RESET_STEP_UP });\n\nexport const requestRiskCheck = (fromChannel, selectedTopic) => ({\n type: types.REQUEST_RISK_CHECK_INITIATED,\n fromChannel,\n selectedTopic,\n});\n\nexport const receiveRiskError = () => ({ type: types.RECEIVE_RISK_ERROR });\n\nexport const receivedRiskAllow = () => ({ type: types.RECEIVED_RISK_ALLOW });\n\nexport const receiveRiskCheck = (riskInfo) => ({\n type: types.RECEIVE_RISK_CHECK,\n payload: riskInfo,\n});\n\n/**\n * Service call to perform RISK check.\n * 1) If RISK decision is STEPUP_AUTH open stepup container\n * 2) If RISK decision is STEPUP_AUTH and is from logged out to logged in then open final topic content and stepup container\n * 3) IF RISK decision is ALLOW redirect to the channel where step up is triggered from.\n * 4) Default redirect to the channel where step up is triggered from.\n *\n * @param topicRefId\n * @param fromChannel\n * @param attempt\n * @returns dispatches appropriate actions\n */\nexport const performStepUpCall = (topicRefId, fromChannel, attempt) => (dispatch, getState) => {\n const {\n persistedStepUp: {\n anw: { isRedirectedToAnw },\n },\n } = getState();\n\n const riskURL = `/smarthelp/stepup-risk?intentId=${topicRefId}&contactChannel=${fromChannel}&attempt=${attempt}&appEntryPoint=channelSteering`;\n\n return axios\n .get(riskURL)\n .then((response) => {\n const riskInfo = ((response || {}).data || {}).riskInfo;\n\n // Check risk decision and perform actions based on that.\n const riskDecision = riskInfo.decisions && riskInfo.decisions.length ? riskInfo.decisions[0].decision_code : '';\n\n // On Second attempt ignore the decision and fire an FPTI.\n if (attempt === attempts.SECOND) {\n return trackPage({\n id: 'stepUpIntermediatePage_anwIgnoreDecisions',\n link: `smarthelp-step-up-intermediate|${topicRefId}|${fromChannel}|${attempt}|decision-${riskDecision}|anwRedirect-ignoreDecision`,\n });\n }\n\n // If the attempt is first time perform the below operations.\n dispatch(receiveRiskCheck(riskInfo));\n\n // Fire FPTI with Decision\n trackPage({\n id: 'stepUpIntermediatePage_decision',\n link: `smarthelp-step-up-intermediate|${topicRefId}|${fromChannel}|${attempt}|decision-${riskDecision}`,\n });\n\n switch (riskDecision) {\n case 'CONTINGENT': {\n // if the decision is STEP_UP then need to load final intent page for callUs channel before opening step-up modal window.\n if ((isLoggedOutToLogin(getState()) || isRedirectedToAnw) && fromChannel === stepUpChannels.call) {\n const { topic } = getState().persistedStepUp;\n dispatch(fetchFinalTopicContent({ topic }));\n }\n\n // If the decision is contingent and if there is no translations fire an FPTI and redirect to ANW page.\n if (!isTopicSupportedForRisk(topicRefId)) {\n trackPage({\n id: 'stepUpIntermediatePage_no_translations',\n link: `smarthelp-step-up-intermediate|${topicRefId}|${fromChannel}|no-translations-found-redirecting-to-anw`,\n });\n return dispatch(initiateANWCheck());\n }\n\n // Load step-up window only if translations for the selected topicId exists.\n return dispatch(loadStepUpContainer());\n }\n case 'ALLOW': {\n if ((isLoggedOutToLogin(getState()) || isRedirectedToAnw) && fromChannel === stepUpChannels.call) {\n const { topic } = getState().persistedStepUp;\n dispatch(getIdiContactChannels(topic.topicRefId, topic.topicName));\n }\n return dispatch(receivedRiskAllow());\n }\n default:\n return dispatch(receivedRiskAllow());\n }\n })\n .catch(() => {\n trackPage({\n id: 'stepUpIntermediatePage_riskFailure',\n link: `smarthelp-step-up-intermediate|${topicRefId}|${fromChannel}|${attempt}|risk-failure`,\n });\n\n // Do not dispatch error on second attempt.\n if (attempt !== attempts.SECOND) {\n dispatch(receiveRiskError());\n }\n });\n};\n\n/**\n * This is the start point for step up risk initiation.\n * Risk check will be performed only of the selected topic is supported for step-up\n * If not supported will be redirected / open the channel it was triggered from.\n *\n * @param fromChannel\n * @param selectedTopic\n * @param isOpenFinalIntentBeforeStepUp\n * @param attempt\n * @returns {Function}\n */\nexport const initiateRiskCheck = (\n fromChannel,\n selectedTopic,\n isOpenFinalIntentBeforeStepUp = false,\n attempt = attempts.FIRST,\n) =>\n function (dispatch, getState) {\n // Before initializing step-up check whether chat/messageUs window is already open\n // When a chat/messageUs window is already active do not perform step-up operation.\n // If fromChannel is chat/messageUs/chatBot/liveChat and if node chat already exists return null\n if (\n (mappingRemoteConfig[fromChannel] === stepUpChannels.chat ||\n mappingRemoteConfig[fromChannel] === stepUpChannels.messageUs) &&\n isNodeChatAlreadyExists()\n ) {\n return null;\n }\n const topicRefId = (selectedTopic && selectedTopic.topicRefId) || null;\n\n dispatch(requestRiskCheck(fromChannel, selectedTopic));\n\n // Only for logged out customers when click on ChatWithUs / callUs / messageUs in contact options\n if (!Page.isLoggedIn()) {\n if (fromChannel === modalChannels.chat) {\n setChatCardClickInSession(true);\n\n // If final intent check is logged out chat is eligible\n if (topicRefId) {\n dispatch(requestLoggedOutChatValidation(topicRefId));\n }\n\n return dispatch(loadModalContainer(modalChannels.chat));\n }\n if (fromChannel === modalChannels.messageUs) {\n // If final intent check is logged out chat is eligible\n if (topicRefId) {\n dispatch(requestLoggedOutChatValidation(topicRefId));\n }\n\n return dispatch(loadModalContainer(modalChannels.messageUs));\n }\n if (fromChannel === modalChannels.call) {\n return dispatch(loadModalContainer(modalChannels.call));\n }\n }\n\n // If logged in\n if (Page.isLoggedIn() && topicRefId) {\n const contactChannel = getRiskContactChannelName(fromChannel);\n\n // Check step-up channel is enabled in remote config - Kill switch check\n if (isStepUpEnabled(contactChannel)) {\n const {\n persistedStepUp: {\n topic,\n anw: { isRedirectedToAnw },\n },\n } = getState();\n\n // If attempt is a second time which is a redirect from ANW.\n if (attempt === attempts.SECOND) {\n // If the fromChannel is from chatBot/liveChat/MessageUs open the final intent.\n if (\n (fromChannel === stepUpChannels.chatBot ||\n fromChannel === stepUpChannels.liveChat ||\n fromChannel === stepUpChannels.chat ||\n fromChannel === stepUpChannels.messageUs) &&\n isOpenFinalIntentBeforeStepUp\n ) {\n dispatch(fetchFinalTopicContent({ topic }));\n }\n\n // in the second attempt which is a redirect from ANW fire IDI service to check if the callus is available in IDI response or not.\n if (fromChannel === stepUpChannels.call) {\n dispatch(getIdiContactChannels(topic.topicRefId, topic.topicName));\n }\n\n // If there is service error during redirect to ANW UI then treat as allow to redirect the user to selected channel\n // and fire an FPTI with service error.\n if (Page.validateAnwIsRedirectError() && isRedirectedToAnw) {\n trackPage({\n id: 'stepUpIntermediatePage_anw_service_failure',\n link: `smarthelp-step-up-intermediate|${topicRefId}|${contactChannel}|anw-redirect-service-error`,\n });\n return dispatch(receivedRiskAllow());\n }\n\n // On Redirect from ANW whether the decision is ALLOW or STEPUP\n // we should allow the user to go the channel which was selected.\n dispatch(receivedRiskAllow());\n\n // Fire and forget the service call. Risk decision is ignored on redirected from ANW whether its success or error from ANW.\n return dispatch(performStepUpCall(topicRefId, contactChannel, attempt));\n\n // If the attempt if first time and If isOpenFinalIntentBeforeStepUp is set explicitly true\n // then will load the final intent before performing risk call.\n // Using this for chat, chatBot, MessageUs channels.\n }\n if (isOpenFinalIntentBeforeStepUp) {\n dispatch(fetchFinalTopicContent({ topic }));\n }\n\n return dispatch(performStepUpCall(topicRefId, contactChannel, attempt));\n }\n }\n\n // Default case if topic is not supported or in any error cases skip step-up and redirect to selected channel.\n return dispatch(receivedRiskAllow());\n };\n\n// callback function after checking for callUs channel in IDI response.\nconst cbFunctionForCallUs = (value, dispatch) => {\n if (value) {\n dispatch(locationUpdate({ pageName: 'callUs' }));\n } else {\n dispatch(showHideCovidBcpModalAlert(true));\n }\n};\n\n// ------------------------ Common place for redirect logic ------------------------------\n\n// Redirect to appropriate channel after step-up\nexport const redirectToAppropriateChannel = () => (dispatch, getState) => {\n const state = getState();\n const {\n persistedStepUp: {\n topic,\n anw: { isRedirectedToAnw },\n },\n stepUp: { fromChannel },\n } = state;\n switch (fromChannel) {\n case stepUpChannels.call: {\n // COVID-19 BCP FINAL INTENT LOGIC\n // NON IDI\n if (!Page.getIsIDIContactOptions()) {\n if (isSuppressCallUs()) {\n // Show COVID Callus alert window.\n dispatch(showHideCovidBcpModalAlert(true));\n } else {\n dispatch(locationUpdate({ pageName: fromChannel }));\n }\n }\n\n // IDI\n // Logged out to logged in or from ANW redirect.\n if (isLoggedOutToLogin(state) || isRedirectedToAnw) {\n // check if callUs channel is available in IDI response.\n isChannelAvailableInContactOptions(getState, dispatch, 'PHONE', cbFunctionForCallUs);\n } else {\n dispatch(locationUpdate({ pageName: fromChannel }));\n }\n\n // TODO:: Remove/refactor this as post chat bot eligibility API is not required in callus Page.\n if (isRedirectedToAnw) {\n dispatch(chatBotEligibilityResponse()); // Combine with Pilot user checker\n }\n break;\n }\n\n case stepUpChannels.liveChat:\n case stepUpChannels.messageUs:\n case stepUpChannels.chat: {\n // if from logged out to logged in or from ANW page file post chat bot eligibility call.\n if (isLoggedOutToLogin(getState()) || isRedirectedToAnw) {\n dispatch(chatBotEligibilityResponse());\n }\n\n const options = {\n topicRefId: topic && topic.topicRefId,\n fromChannel,\n showChat: initializeAppropriateChannel,\n reject: loadChatIneligibleModalContainer,\n };\n\n // Chat eligibility checker\n // IDI\n if (isIdiContactOptionsEnabled) {\n dispatch(idiChatEligibilityChecker(options.topicRefId, options.fromChannel, options.showChat, options.reject));\n } else {\n // NON IDI\n dispatch(\n nonIdiChatEligibilityChecker(options.topicRefId, options.fromChannel, options.showChat, options.reject),\n );\n }\n break;\n }\n\n default:\n break;\n }\n\n dispatch(resetStepUp());\n dispatch(closeModalContainer());\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","/* eslint-disable import/prefer-default-export */\nimport PropTypes from 'prop-types';\n\nexport const TOPIC_TREE_OBJECT = {\n topicId: PropTypes.string.isRequired,\n topicName: PropTypes.string.isRequired,\n iconName: PropTypes.string,\n subCategory: PropTypes.string,\n};\n\nexport const TOPIC_INTENT_OBJECT = {\n priority: PropTypes.number.isRequired,\n ref_id: PropTypes.string.isRequired,\n topic_id: PropTypes.number.isRequired,\n topic_name: PropTypes.string.isRequired,\n};\n\nexport const FAQ_ARTICLE = {\n articleContent: PropTypes.string.isRequired,\n articleId: PropTypes.string.isRequired,\n articleTitle: PropTypes.string.isRequired,\n topicId: PropTypes.string,\n breadCrumbPath: PropTypes.string,\n breadCrumbTitle: PropTypes.string,\n};\n\nexport const FPTI_DATA = {\n pgrp: PropTypes.string.isRequired,\n page: PropTypes.string.isRequired,\n e: PropTypes.string.isRequired,\n link: PropTypes.string.isRequired,\n event_name: PropTypes.string.isRequired,\n};\n\nexport const PP_SAC_NUMBER = {\n phone_type: PropTypes.string,\n phone_value: PropTypes.string,\n};\n\nexport const CUSTOMER_HOUR = {\n hoursOfService: PropTypes.string,\n generalTime1: PropTypes.string,\n generalTime2: PropTypes.string,\n amTime1: PropTypes.string,\n amTime2: PropTypes.string,\n amPerCall: PropTypes.string,\n};\n\nexport const CALL_US_INFO = {\n logOutPrefferedNumber: PropTypes.string,\n customerHour: PropTypes.shape(CUSTOMER_HOUR),\n prefferedHoo: PropTypes.string,\n isInstructionPresent: PropTypes.bool,\n specialInstruction: PropTypes.string,\n prefferedNumber: PropTypes.string,\n phoneNumbers: PropTypes.arrayOf(PropTypes.string),\n isphonePresent: PropTypes.bool,\n ppSACNumbers: PropTypes.arrayOf(PropTypes.shape(PP_SAC_NUMBER)),\n showServiceHourHeader: PropTypes.bool,\n webPin: PropTypes.string,\n mtsPhone: PropTypes.string,\n generalMTS: PropTypes.string,\n generalPhoneNumber: PropTypes.string,\n amPhone: PropTypes.string,\n amFlag: PropTypes.string,\n accountManagerEmail: PropTypes.string,\n};\n","/**\n * This is helper class will be utilized for Omnichannel configuration\n */\nimport _isEmpty from 'lodash/isEmpty';\nimport Page from './page';\nimport i18n from './reacti18n';\n\n// Get Remote config for Ominichannel config from window\nexport const getOmnichannelConfig = () => {\n try {\n if (window && window.omniChannelConfig) {\n return window.omniChannelConfig;\n }\n return {};\n } catch (e) {\n return {};\n }\n};\n\nexport const returnRefIDforIntentCode = (intentCode) => {\n const omniConfig = getOmnichannelConfig().setContext.supportedIntents;\n return Object.keys(omniConfig).find((key) => omniConfig[key] === intentCode) || '';\n};\n\nexport const returnRefIdEnabledPrompts = (refId) => {\n if (refId) {\n return getOmnichannelConfig().promtEnabledIntents[refId] || '';\n }\n return '';\n};\n\n// this funciton is used to validate whether setContext wired-on /off ?\nexport const isSetContextFeatureWiredOn = (config) => {\n if (!_isEmpty(config) && !_isEmpty(config.setContext)) {\n return config.setContext.isFeatureWiredON || false;\n }\n return false;\n};\n\n// this funciton is used to validate whether isSetContextEnabledGlobally ?\nexport const isSetContextEnabledGlobally = (config) => {\n if (!_isEmpty(config) && !_isEmpty(config.setContext)) {\n return config.setContext.isEnabledGlobally || false;\n }\n return false;\n};\n\n// Check if it setContext is enabled\nexport const isMarketEnabledForSetContext = (config) => {\n const country = Page.getCountry().toUpperCase();\n const locale = Page.getAPILocalilty();\n if (!_isEmpty(config) && !_isEmpty(config.setContext)) {\n const enabledMarkets = config.setContext.enabledMarkets;\n if (enabledMarkets) {\n return (\n enabledMarkets\n .split(',')\n .filter((market) => market.indexOf(`${country}:`) >= 0)\n .filter((selectedMarket) => selectedMarket.split(':')[1].indexOf(locale) >= 0).length > 0\n );\n }\n }\n return false;\n};\n\nexport const isSetContextEnabledFromRC = () => {\n const config = getOmnichannelConfig();\n if (\n isSetContextFeatureWiredOn(config) &&\n (isSetContextEnabledGlobally(config) || isMarketEnabledForSetContext(config))\n )\n return true;\n // default return false;\n return false;\n};\n\n/**\n * Function to parse intent information from SAC\n */\nconst getSacIntents = (topicDetails) => {\n const intentCode = topicDetails.intentCode;\n const customerTreatment = topicDetails.customerIntent;\n const internalTreatment = topicDetails.internalTreatment;\n\n const intentResp = [{}];\n\n if (intentCode) {\n intentResp[0].code = intentCode;\n }\n\n if (customerTreatment) {\n intentResp[0].customer_intent = customerTreatment;\n }\n\n if (internalTreatment) {\n intentResp[0].internal_treatment = internalTreatment;\n }\n\n return intentResp;\n};\n\nexport const getStandardIntent = (topicRefId) => {\n const config = getOmnichannelConfig();\n if (!_isEmpty(config) && !_isEmpty(config.setContext) && !_isEmpty(config.setContext.supportedIntents)) {\n const standardIntents = config.setContext.supportedIntents;\n if (standardIntents[topicRefId]) {\n return [{ code: standardIntents[topicRefId] }];\n }\n }\n return [];\n};\n\n/**\n * Function to check for topic refid in remote config for contact us page\n */\nexport const isFinalIntentEnabledForSetContext = (topicDetails = {}, responseBody) => {\n const sacStandardIntents = getSacIntents(topicDetails);\n\n // checking for intents availability in SAC\n if (Array.isArray(sacStandardIntents) && sacStandardIntents.length > 0 && !_isEmpty(sacStandardIntents[0])) {\n return sacStandardIntents;\n }\n\n // checking for remote config existance and topic refid existance in the remote config\n const topicRefId = topicDetails.topicRefId;\n const arrStandardIntents = getStandardIntent(topicRefId);\n if (arrStandardIntents.length > 0) return arrStandardIntents;\n\n // checking for tags info in article\n if (\n responseBody.articleContent &&\n Array.isArray(responseBody.articleContent.tags) &&\n responseBody.articleContent.tags.length &&\n Array.isArray(responseBody.articleContent.tags[0].predictions) &&\n responseBody.articleContent.tags[0].predictions.length\n ) {\n const articleTags = responseBody.articleContent.tags[0].predictions;\n // Parsing article repsonse by changing intent to customer_intent to pass to set context API\n return articleTags.map(({ intent, score }) => ({ customer_intent: intent, score }));\n }\n\n // returning empty array for exception cases\n return [];\n};\n\n/**\n * Function to check whether user is loggedIn and intents exist for making set context API Call\n */\nexport const isSetContextEnabled = (topicDetails, articleResponse) => {\n const isIntentsEnabled = isFinalIntentEnabledForSetContext(topicDetails, articleResponse);\n\n if (\n Page.isLoggedIn() && // Logged-in customer\n isSetContextEnabledFromRC() && // enabled in RC\n Array.isArray(isIntentsEnabled) && // Has intents available\n isIntentsEnabled.length > 0\n ) {\n return isIntentsEnabled;\n }\n return [];\n};\n\n/**\n * Function to get context Id from Set context response to pass it to update context after step up\n */\nexport const getContextId = (setContextIntents, setContextResponse) => {\n let intentResp;\n return setContextIntents.map((intent) => {\n const intentKeys = Object.keys(intent);\n /* eslint-disable array-callback-return */\n setContextResponse.filter((intents) =>\n intentKeys.map((intentKey) => {\n if (intents.intent[intentKey] === intent[intentKey]) {\n intentResp = intents;\n }\n }),\n );\n return intentResp;\n });\n};\n\n/**\n * Function to check is key exists in locale property file.\n * Pass key to this function to check whether key exists in property file or not\n * @returns {boolean} true/false\n */\nexport const isKeyExistInPropertyFile = (filepath, keyValue) => {\n const snowManCode = '%E2%98%83';\n const keyLabel = i18n.message(`${filepath}.${keyValue}`);\n return !encodeURI(keyLabel).includes(snowManCode);\n};\n\n/**\n * Function to check intent code exists in the omni-channel articles\n * Used for both desktop and minihelp/Venice\n */\nexport const isIntentCodeExists = (omniChannelIntentArticles) =>\n !!(\n !_isEmpty(omniChannelIntentArticles) &&\n Array.isArray(omniChannelIntentArticles.intentArticleDetails) &&\n omniChannelIntentArticles.intentArticleDetails.length > 0 &&\n omniChannelIntentArticles.intentArticleDetails[0].channelDetails &&\n omniChannelIntentArticles.intentArticleDetails[0].channelDetails.intentCode\n );\n\n/**\n * Function to Send out the same intent_code and customer_code as setContext\n * If the array contains more than one customer_intent then send out the highest intent\n */\n\nexport const getAsyncChatPillOCPParams = (chatPillOcpParams) => {\n const ocpParams = {\n customerIntent: null,\n intentCode: null,\n };\n if (Array.isArray(chatPillOcpParams) && chatPillOcpParams.length > 0) {\n if (chatPillOcpParams.length > 1) {\n const maxScoreValue = chatPillOcpParams.reduce((previousScore, currentScore) =>\n previousScore.score > currentScore.score ? previousScore : currentScore,\n );\n ocpParams.customerIntent = maxScoreValue.customer_intent;\n } else {\n if (chatPillOcpParams[0].customer_intent) {\n ocpParams.customerIntent = chatPillOcpParams[0].customer_intent;\n }\n if (chatPillOcpParams[0].intent_code) {\n ocpParams.intentCode = chatPillOcpParams[0].intent_code;\n }\n }\n }\n return ocpParams;\n};\n\n/**\n * Function to get isCustomerjourneyAPIEnabled RC flag from omnichannel config\n */\nexport const isCustomerJourneyAPIEnabled = () => getOmnichannelConfig().isCustomerJourneyEnabled || false;\n","import PropTypes from 'prop-types';\n\n// TODO: to revist the structure after the service\nexport const TOPIC_FAQ_ITEM = {\n id: PropTypes.string,\n title: PropTypes.string,\n solutionId: PropTypes.string,\n solutionClass: PropTypes.string,\n topicId: PropTypes.string,\n};\n\nexport const TOPIC = {\n id: PropTypes.string,\n name: PropTypes.string,\n ocpIntent: PropTypes.string,\n faqList: PropTypes.arrayOf(PropTypes.shape(TOPIC_FAQ_ITEM)),\n};\n\nexport const ARTICLE_LIST = {\n articleId: PropTypes.string,\n articleTitle: PropTypes.string,\n articleList: PropTypes.arrayOf(PropTypes.shape(TOPIC)),\n};\n\nexport const COMMUNITY = {\n error: PropTypes.bool,\n isLoading: PropTypes.bool,\n results: PropTypes.arrayOf(\n PropTypes.shape({\n articleTitle: PropTypes.string,\n articleId: PropTypes.number,\n views: PropTypes.number,\n link: PropTypes.string,\n }),\n ),\n};\n\nexport const BREADCRUMB_ITEM = {\n id: PropTypes.string,\n title: PropTypes.string,\n path: PropTypes.string,\n};\n\nexport const CHANNEL_DETAIL_BNA = {\n bnaId: PropTypes.string,\n bnaListId: PropTypes.string,\n intentId: PropTypes.string,\n intentPromptedTime: PropTypes.string,\n};\n\nexport const POPULAR_ARTICLE = {\n articleId: PropTypes.string,\n articleTitle: PropTypes.string,\n channel: PropTypes.string,\n channelDetails: PropTypes.shape(CHANNEL_DETAIL_BNA),\n rank: PropTypes.number,\n usage: PropTypes.number,\n};\n\nexport const CASE_PARTIES = {\n association: PropTypes.string,\n user_id: PropTypes.string,\n user_type: PropTypes.string,\n};\n\nexport const OPEN_CASE = {\n amount: PropTypes.shape({\n currency_code: PropTypes.string,\n value: PropTypes.string,\n }),\n case_lifecycle_stage: PropTypes.string,\n case_parties: PropTypes.arrayOf(PropTypes.shape(CASE_PARTIES)),\n case_type: PropTypes.arrayOf(PropTypes.string),\n claim_type: PropTypes.string,\n creation_timestamp: PropTypes.string,\n detailed_case_status: PropTypes.string,\n facilitator_id: PropTypes.string,\n id: PropTypes.string,\n origin: PropTypes.string,\n policy_name: PropTypes.string,\n reason_code: PropTypes.string,\n status: PropTypes.string,\n};\n\nexport const ARTICLE_CONTENT = {\n articleContent: PropTypes.string,\n articleId: PropTypes.string,\n articleTitle: PropTypes.string,\n breadCrumbPath: PropTypes.string,\n breadCrumbTitle: PropTypes.string,\n consumerContent: PropTypes.string,\n rank: PropTypes.number,\n topicId: PropTypes.string,\n topicName: PropTypes.string,\n usage: PropTypes.number,\n};\n\nexport const MACHINE_ARTICLE = {\n article: PropTypes.shape(ARTICLE_CONTENT),\n error: PropTypes.bool,\n isLoading: PropTypes.bool,\n};\n\nexport const ELMO_TREATMENT = {\n elmoTreatments: PropTypes.string,\n};\n\nexport const ICF_ARTICLE = {\n article_id: PropTypes.string,\n title: PropTypes.string,\n rank: PropTypes.number,\n article_content: PropTypes.string,\n status: PropTypes.string,\n};\n\nexport const ICF_CONTENT = {\n customer_experience: PropTypes.string,\n icf_id: PropTypes.number,\n icf_summary: PropTypes.string,\n icf_title: PropTypes.string,\n locale: PropTypes.string,\n articles: PropTypes.arrayOf(PropTypes.shape(ICF_ARTICLE)),\n};\n\nexport const ICF_GUIDE = {\n description: PropTypes.string,\n icf_id: PropTypes.string,\n icf_title: PropTypes.string,\n internal_lable: PropTypes.string,\n user_experience: PropTypes.string,\n};\n\nexport const DISPUTE_CASE = {\n create_time: PropTypes.string,\n dispute_amount: PropTypes.shape({\n currency_code: PropTypes.string,\n value: PropTypes.string,\n }),\n dispute_channel: PropTypes.string,\n dispute_flow: PropTypes.string,\n dispute_id: PropTypes.string,\n dispute_life_cycle_stage: PropTypes.string,\n dispute_state: PropTypes.string,\n};\n\nexport const OMNI_CHANNEL_ARTICLE = {\n intentCode: PropTypes.string,\n intentArticle: PropTypes.string,\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export const elmoExperimentResourceNames = {\n default: 'GOPS_smarthelp',\n pcc: 'GOPS_smarthelp_pcc',\n kmSearch: 'GOPS_smarthelp_km_search',\n nnaDesign: 'CustomerSupport:NNAExperiances',\n nativeMessagingExperience: 'GOPS_smarthelp_native_messaging_in_venice',\n searchLimiterResourceName: 'GOPS_smarthelp_Search_Limiter_Exp',\n contactUsVerbiageResourceName: 'GOPS_smarthelp_contactus_mc_verbiage',\n resolutionCenterResource: 'helpcenter_mobile',\n callUsGuestResource: 'GOPS_smarthelp_guest_call_us_link',\n whiteBannerChatBotResourceName: 'chatbotRamp',\n ipsNewDesign: 'GOPS_smarthelp_IPS_Design',\n};\n\nexport const elmoTreatmentNames = {\n nnaEnabled: 'Trmt_CustomerSupportR_NNAExperiances_By_Channel',\n nativeMessagingEnabled: 'Trmt_GOPS_Helpcenter_Native_Messaging_In_Venice_Enabled',\n searchLimiterTreatmentName: 'Trmt_GOPS_Helpcenter_Search_Limiter_Exp',\n messageCenterLinkShowExp: 'Trmt_GOPS_Helpcenter_MC_link',\n messageCenterContactCardExp: 'Trmt_GOPS_Helpcenter_MC_verbiage',\n messageCenterContactUsVerbiageExp: 'Trmt_GOPS_Helpcenter_ContactUs_MC_Verbiage',\n resolutionCenterExp: 'Trmt_Helpcenter_Home_Resolution_Center_Card',\n callUsGuestExp: 'Trmt_GOPS_Helpcenter_Guest_Call_Us_Link',\n whiteBannerChatBotExp: 'Trmt_GOPS_Helpcenter_White_Banner_Bot',\n ipsNewDesignTreatment: 'Trmt_GOPS_Helpcenter_IPS_Contexual_Help_design',\n chatBotAssistantShortMessageExp: 'Trmt_GOPS_Helpcenter_Chatbot_Assistant_Short_Msg',\n chatBotAssistantLongMessageExp: 'Trmt_GOPS_Helpcenter_Chatbot_Assistant_Long_Msg',\n};\n\nexport const isPartOfElmoExpTreatment = (elmoTreatments, treatmentName) =>\n Array.isArray(elmoTreatments) && elmoTreatments.indexOf(treatmentName) >= 0;\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t {\n const title = {\n topic: i18n.message('smarthelp/index.topicTitle'),\n article: i18n.message('smarthelp/index.articleTitle'),\n home: i18n.message('smarthelp/index.homeTitle'),\n search: i18n.message('smarthelp/index.searchTitle'),\n PAYPAL_HELP_GUIDE: i18n.message('smarthelp/index.icfTitle'),\n };\n if (location && location.pathname) {\n const paths = location.pathname.split('/');\n const path = paths[1] || '';\n if (_has(title, path)) {\n Page.setDocumentTitle(title[path]);\n }\n }\n\n // If there is hash in the URL, then the page will not scroll to top\n if (!location.hash) {\n // Scroll to top when switch URL in the HCR\n scroll.scrollToTop({\n duration: 0,\n });\n }\n});\n\nconst getHistory = () => history;\n\nexport default getHistory;\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\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 Array.isArray(val);\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 a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\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) && (isArrayBuffer(val.buffer));\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 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 plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\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 FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\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.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\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 * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\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 (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\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\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\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 isPlainObject: isPlainObject,\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 stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","import axios from 'axios';\nimport * as types from '../constants/ActionTypes';\nimport Page from '../../lib/page';\nimport { modalChannels } from '../constants/UtilVariables';\n\nconst isLoggedIn = Page.isLoggedIn();\n\nfunction requestPostChatBotEligibilityAPI() {\n return {\n type: types.REQUEST_POST_CHATBOT_ELIGIBILITY,\n };\n}\n\nfunction postChatBotEligibilityResponse(responseData) {\n return {\n type: types.POST_CHATBOT_ELIGIBILITY_RESPONSE,\n payload: responseData && responseData.chatBotInfo,\n };\n}\n\nfunction postChatBotEligibilityError() {\n return {\n type: types.POST_CHATBOT_ELIGIBILITY_ERROR,\n };\n}\n\nexport function postChatBotEligibleFalse() {\n return {\n type: types.POST_CHATBOT_ELIGIBILITY_FALSE,\n };\n}\n\nfunction mmtCheckResponse(mmtResponse) {\n return {\n type: types.MMT_CHECK_RESPONSE,\n payload: mmtResponse,\n };\n}\n/**\n * calling post-chat-bot-eligibility API\n */\nexport function postChatBotEligibility(options) {\n const optionsBody = options.postChatBotResponse ? options.postChatBotResponse : options;\n return (dispatch, getState) => {\n // don't need to check in email pages\n if (Page.getLogoutEmailRefId()) {\n return null;\n }\n const state = getState();\n // Get topic from smcResultKeeper if locale is not changed.\n // If locale is changed get the topic from modal.\n const topic = ((state || {}).smcResultKeeper || {}).topicTreeSelectResult || ((state || {}).modal || {}).topic;\n const channel = modalChannels.chatBot;\n const { intentId, intentType, entryPoint } = optionsBody;\n dispatch(requestPostChatBotEligibilityAPI());\n\n const URL = `/smarthelp/post-chat-bot-eligibility?intentId=${intentId}&intentType=${intentType}&entryPoint=${entryPoint}`;\n return axios\n .get(URL)\n .then((response) => {\n dispatch(postChatBotEligibilityResponse(response.data));\n // if user is logged in & API returns eligible, chatBotDisplay returns true\n const chatBotDisplay =\n isLoggedIn && response.data && response.data.chatBotInfo && response.data.chatBotInfo.result === 'ELIGIBLE';\n /**\n * if user is loggedIn by clicking on the chatBot\n * showChat callback is for opening the chat\n * reject callback is for opening the chatBotIneligible Modal\n */\n if (chatBotDisplay && typeof options.showChat === 'function') {\n dispatch(options.showChat(topic, channel, options.origin));\n } else if (!chatBotDisplay && typeof options.reject === 'function') {\n dispatch(options.reject());\n }\n })\n .catch(() => {\n dispatch(postChatBotEligibilityError());\n /**\n * if user is loggedIn by clicking on the chatBot and\n * if API returns error return reject callback which opens chatBotIneligible Modal\n */\n if (isLoggedIn && typeof options.reject === 'function') {\n dispatch(options.reject());\n }\n });\n };\n}\n\nexport function mmtCheck() {\n return (dispatch) => {\n const requestURL = '/smarthelp/mmt-async-check';\n return axios\n .get(requestURL)\n .then((response) => {\n const conversations = response && response.data && response.data.conversations;\n if (conversations && conversations.length) {\n dispatch(mmtCheckResponse({ isConversationActive: true, id: conversations[0].id, serviceError: false }));\n } else {\n dispatch(mmtCheckResponse({ isConversationActive: false, serviceError: false }));\n }\n })\n .catch(() => {\n dispatch(mmtCheckResponse({ isConversationActive: false, serviceError: true }));\n });\n };\n}\n\nexport const exportedForTesting = {\n requestPostChatBotEligibilityAPI,\n postChatBotEligibilityResponse,\n postChatBotEligibilityError,\n mmtCheckResponse,\n};\n","/**\n * defines a focus group\n */\nexport var FOCUS_GROUP = 'data-focus-lock';\n/**\n * disables element discovery inside a group marked by key\n */\nexport var FOCUS_DISABLED = 'data-focus-lock-disabled';\n/**\n * allows uncontrolled focus within the marked area, effectively disabling focus lock for it's content\n */\nexport var FOCUS_ALLOW = 'data-no-focus-lock';\n/**\n * instructs autofocus engine to pick default autofocus inside a given node\n * can be set on the element or container\n */\nexport var FOCUS_AUTO = 'data-autofocus-inside';\n/**\n * instructs autofocus to ignore elements within a given node\n * can be set on the element or container\n */\nexport var FOCUS_NO_AUTOFOCUS = 'data-no-autofocus';\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\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, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of