{"version":3,"sources":["webpack:///./ClientApp/services/Localizer.tsx","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./ClientApp/features/my-account/routes.roc.tsx","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./ClientApp/shared/components/svg/LockSimpleSVG.tsx","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///./ClientApp/shared/components/svg/GearSVG.tsx","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./ClientApp/features/setup/vendor/clickMenu.js","webpack:///./ClientApp/services/AxiosHelper.ts","webpack:///./ClientApp/shared/edit/InlineAlert.tsx","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./ClientApp/styles/app.scss?4071","webpack:///./ClientApp/features/tracking/gtag.ts","webpack:///./ClientApp/features/tracking/helpers.ts","webpack:///./ClientApp/features/setup/banners.ts","webpack:///./ClientApp/shared/components/svg/CheckClipBoard.tsx","webpack:///./ClientApp/shared/components/svg/UserSVG.tsx","webpack:///./ClientApp/shared/components/RocPopover.tsx","webpack:///./ClientApp/shared/components/svg/DownChevronSVG.tsx","webpack:///./ClientApp/shared/components/svg/UpChevronSVG.tsx","webpack:///./ClientApp/features/setup/Utils.ts","webpack:///./ClientApp/features/header/HeaderUtilNav.tsx","webpack:///./ClientApp/features/header/HeaderUtils.tsx","webpack:///./ClientApp/features/setup/userType.ts","webpack:///./ClientApp/features/setup/navigation.ts","webpack:///./ClientApp/setup.js","webpack:///./ClientApp/features/header/index.tsx","webpack:///./ClientApp/shared/util/AccountUrls.ts","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./ClientApp/shared/util/ErrorBoundary.tsx","webpack:///./ClientApp/shared/util/ApplicationInit.tsx","webpack:///./ClientApp/features/setup/recaptcha.ts","webpack:///./ClientApp/shared/components/Spinner.tsx","webpack:///./ClientApp/shared/hooks/useDelayedDisplay.tsx","webpack:///./ClientApp/services/UserData.ts","webpack:///./ClientApp/util/StringUtil.ts","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./ClientApp/services/ServerData.ts","webpack:///./node_modules/css-loader/dist/runtime/api.js"],"names":["LocalizerResources","isAlreadyLogged","initializeLocalizerResources","windowWithResources","window","__ROC_LOCALIZER_RESOURCES__","Array","isArray","forEach","obj","Object","keys","key","Localizer","replaceStrings","length","console","warn","resource","replace","match","index","LocalizedSpan","props","resourceKey","args","localizedString","data-testid","toKebabCase","dangerouslySetInnerHTML","__html","_inheritsLoose","subClass","superClass","prototype","create","constructor","__proto__","MY_ACCOUNT_PATH_PREFIX","MY_ACCOUNT_AUTHENTICATOR_URL","MY_ACCOUNT_GENERATE_RECOVERY_CODES_URL","MY_ACCOUNT_CONFIGURE_AUTHENTICATOR_URL","MY_ACCOUNT_SETTINGS_URL","SettingsComponent","React","lazy","GenerateRecoveryCodesComponent","ConfigureAuthenticatorComponent","Suspense","fallback","exact","path","component","_objectWithoutPropertiesLoose","source","excluded","i","target","sourceKeys","indexOf","LockSimpleSVG","className","rest","viewBox","classnames","d","module","exports","defineProperty","value","b","Symbol","for","c","e","f","g","h","k","l","m","n","p","q","r","t","a","u","$$typeof","type","v","typeOf","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","isValidElementType","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","GearSVG","runtime","Op","hasOwn","hasOwnProperty","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","method","arg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","done","makeInvokeMethod","fn","call","err","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","Promise","resolve","reject","invoke","result","__await","then","unwrapped","error","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","awrap","async","iter","toString","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","factory","define","$","nodeName","require","jQuery","ClickMenu","bind","arguments","shift","apply","concat","element","settings","dataSettings","_","defaults","menutype","animationSpeed","toggle","menu","htmlClass","expanderText","landings","expanders","singleClick","isAutoClose","isRTL","data","options","extend","$menu","$menuBar","find","$menuToggle","$html","isActive","isToggled","leavingMenu","currentFocus","initialLinks","currentLinks","keyHandler","proxy","findCurrentLinks","resetMenus","cleanUpEvents","destroy","showMenu","hideMenu","menuToggle","subMenuToggle","menuHandler","menuToggleHandler","init","on","addClass","attr","role","idNum","last","highestNum","each","currentNum","split","parseInt","$sibling","func","wait","immediate","timeout","$anchor","$parentLi","closest","tabindex","parent","hasClass","siblings","not","$expandable","newID","text","after","visibleAlready","height","$duplicate","is","get","outerHTML","children","removeAttr","removeClass","prepend","$subMenu","adjustMenu","$adjustable","maxWidth","innerWidth","leftPosition","position","left","css","debounceAdjustments","later","callNow","clearTimeout","setTimeout","load","resize","trigger","keyPress","keyCode","preventDefault","direction","close","open","oldLink","focus","first","$currAnchor","skipFocus","actualKey","filter","val","$item","width","$links","$toggle","$opened","labelId","$relatedSub","off","getClickMenu","params","currentTarget","menuType","$relatedMenu","subOptions","parents","contains","clickMenu","ret","opt","AxiosHelper","axios","headers","common","addUnauthorizedAccessInterceptor","history","interceptors","response","use","status","location","AccountUrls","Login","encodeURIComponent","pathname","InlineAlert","title","message","theme","isTitleOnOwnRow","defaultProps","$filter","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","proto","forced","callbackfn","api","content","__esModule","default","exported","locals","setBannerImpression","gtag","event_label","event_category","non_interaction","promotions","generateKeyForGroupRequest","bannerGroupRequest","groupCode","pageUrl","isRandom","bannerPlaceholders","document","querySelectorAll","bannerGroupsPlaceholderDetails","bannerPlaceholder","item","placeholderData","dataset","requestData","groupKey","placeholder","distinctBannerGroups","map","group","elem","findIndex","post","groupCodes","bannersFromServer","bannersForGroups","placeholderDetails","bannersGroups","isCarousel","classList","banners","banner","htmlBanner","createElement","customHtml","innerHTML","img","imageUrl","src","altTag","alt","elementToAppend","forwardUrl","link","href","browserTarget","appendChild","style","display","setupBannerClick","setupSliderForCarousel","onclick","event","clickedBannerData","bannerPlaceHolder","showControls","toLowerCase","tns","container","items","slideBy","autoplay","controls","nav","autoplayButtonOutput","onInit","childElementCount","events","bannerData","slideItems","setupBanners","serverBannerContainers","serverBannersContainer","j","setupServerBanners","setupClientBanners","CheckClipboardSVG","focusable","aria-hidden","UserSVG","RocPopover","innerRef","targetRef","size","ref","DownChevronSVG","UpChevronSVG","slugify","HeaderUtilNav","HeaderUtilNavItemLink","icon","testId","aria-label","HeaderUtilNavItemPopover","triggerRef","useRef","popoverWrapperRef","isOpen","openPopover","closePopover","handleDocumentClick","current","useEffect","addEventListener","removeEventListener","onClick","positionMatchWidth","HeaderUtils","useState","userData","setUserData","popoverOpen","setPopoverOpen","getUserData","iconClass","summary","isSignedIn","firstName","action","Logout","id","Register","htmlEl","isRecentTouchUser","initReactApp","render","setupReCaptcha","documentElement","add","throttle","remove","BaseUrl","ServerData","ACCOUNT_URL_BASE","ACCOUNT_LOGIN_URL","Login2fa","ACCOUNT_LOGIN_WITH_2FA_URL","ACCOUNT_REGISTER_URL","ForgotPassword","ACCOUNT_FORGOT_PASSWORD_URL","LoginWithRecoveryCode","ACCOUNT_LOGIN_WITH_RECOVERY_CODE_URL","ACCOUNT_LOGOUT_URL","fails","toIndexedObject","nativeGetOwnPropertyDescriptor","DESCRIPTORS","FAILS_ON_PRIMITIVES","stat","sham","getOwnPropertyDescriptor","it","ownKeys","getOwnPropertyDescriptorModule","createProperty","getOwnPropertyDescriptors","descriptor","O","ErrorBoundary","setState","renderError","Component","getReactElement","elementId","getElementById","ReactDOM","reCaptchaCallbackPromise","windowWithReCaptchaCallbacks","onReCaptchaLoadCallback","Spinner","light","waitMs","align","block","setDisplay","useDelayedDisplay","userDataPromise","getUserDataNoCache","getCsrfToken","requestToken","trim","toLocaleLowerCase","memo","isOldIE","Boolean","all","atob","getTarget","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","stylesInDom","getIndexByIdentifier","identifier","modulesToDom","list","idCountMap","identifiers","base","count","media","sourceMap","references","updater","addStyle","insertStyleElement","attributes","nonce","setAttribute","insert","textStore","replaceText","replacement","join","applyToSingletonTag","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","removeAttribute","btoa","unescape","JSON","stringify","firstChild","singleton","singletonCounter","update","styleIndex","parentNode","removeStyleElement","newObj","lastIdentifiers","newList","newLastIdentifiers","_i","_index","splice","_extends","assign","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bool","number","string","symbol","any","arrayOf","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","checkPropTypes","PropTypes","windowWithServerData","__ROC_SERVER_DATA__","initializeServerData","useSourceMap","cssMapping","sourceMapping","base64","sourceURLs","sources","sourceRoot","cssWithMappingToString","modules","mediaQuery","dedupe","alreadyImportedModules"],"mappings":"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","file":"main.js","sourcesContent":["import * as React from 'react';\r\nimport { LoginResourceKeys } from 'features/login/resources';\r\nimport { ContactFormResourceKeys } from 'features/contact-form/resources';\r\nimport { ResetPasswordResourceKeys } from 'features/reset-password/resources';\r\nimport { MyAccountResourceKeys } from 'features/my-account/resources';\r\nimport { SubmitQuestionResourceKeys } from 'features/submit-question/resources';\r\nimport { LoginWith2faResourceKeys } from 'features/login-with-2fa/resources';\r\nimport { LoginWithRecoveryCodeResourceKeys } from 'features/login-with-recovery-code/resources';\r\nimport { toKebabCase } from 'util/StringUtil';\r\n\r\n/**\r\n * Type that will hold all the global localization keys\r\n */\r\ntype LocalizerGlobalResourceKeys =\r\n\t| 'Success'\r\n\t| 'OfTotalPages'\r\n\t| 'Cancel'\r\n\t| 'Confirm'\r\n\t| 'FirstName'\r\n\t| 'LastName'\r\n\t| 'Email'\r\n\t| 'Username'\r\n\t| 'Amount'\r\n\t| 'NameOnCard'\r\n\t| 'CardNumber'\r\n\t| 'ExpDate'\r\n\t| 'ExpMonth'\r\n\t| 'ExpYear'\r\n\t| 'Expires'\r\n\t| 'SecurityCode'\r\n\t| 'Submit'\r\n\t| 'Save'\r\n\t| 'ZipCode'\r\n\t| 'Remove'\r\n\t| 'Removed'\r\n\t| 'Update'\r\n\t| 'Undo'\r\n\t| 'Cancel'\r\n\t| 'Enter'\r\n\t| 'Close'\r\n\t| 'SortBy'\r\n\t| 'PleaseWait'\r\n\t| 'Unknown'\r\n\t| 'Yes'\r\n\t| 'No'\r\n\t| 'Delete'\r\n\t| 'Update'\r\n\t| 'SaveAndContinueButtonText'\r\n\t| 'SaveAndContinue'\r\n\t| 'Continue'\r\n\t| 'SaveErrorMessage'\r\n\t| 'Edit'\r\n\t| 'ErrorMessageGenericTitle'\r\n\t| 'CheckEnteredValues'\r\n\t| 'ErrorOccurredSubmittingTheForm'\r\n\t| 'UnexpectedErrorOccurred'\r\n\t| 'Login'\r\n\t| 'ReturnToShipping'\r\n\t| 'BreadcrumbsLabel'\r\n\t| 'Other'\r\n\t| 'RememberMe'\r\n\t| 'ForgotYourPassword'\r\n\t| 'RegisterNewUserLinkText'\r\n\t| 'LoginPageTitleText'\r\n\t| 'ForgotPasswordPageTitle'\r\n\t| 'ForgotPasswordConfirmationPageTitle'\r\n\t| 'ForgotPasswordConfirmation'\r\n\t| 'Optional'\r\n\t| 'SearchBoxPlaceholder'\r\n\t| 'XOutOfYStars'\r\n\t| 'XToYOfZ'\r\n\t| 'RequiredFields';\r\n\r\n/**\r\n * Type that will hold all the localization keys\r\n */\r\nexport type LocalizerResourceKey =\r\n\t| LocalizerGlobalResourceKeys\r\n\t| LoginResourceKeys\r\n\t| ContactFormResourceKeys\r\n\t| ResetPasswordResourceKeys\r\n\t| SubmitQuestionResourceKeys\r\n\t| ResetPasswordResourceKeys\r\n\t| MyAccountResourceKeys\r\n\t| LoginWith2faResourceKeys\r\n\t| LoginWithRecoveryCodeResourceKeys;\r\n\r\n/**\r\n * Interface for the resources\r\n *\r\n * @export\r\n * @interface LocalizerResource\r\n */\r\ninterface LocalizerResource {\r\n\t[id: string]: string;\r\n}\r\n\r\n/**\r\n * Extends Window with a property that will hold the localizer resources\r\n *\r\n * @interface WindowWithResources\r\n * @extends {Window}\r\n */\r\nexport interface WindowWithResources extends Window {\r\n\t__ROC_LOCALIZER_RESOURCES__?: LocalizerResource[];\r\n}\r\n\r\n/**\r\n * Main object that will hold all the localized resources\r\n */\r\nconst LocalizerResources: LocalizerResource = {};\r\n\r\n/**\r\n * To prevent redundant logging\r\n */\r\nconst isAlreadyLogged = {};\r\n\r\n/**\r\n * Initializer function that will populate the main localized resources object\r\n */\r\nfunction initializeLocalizerResources() {\r\n\tconst windowWithResources = window as WindowWithResources;\r\n\r\n\tif (\r\n\t\twindowWithResources &&\r\n\t\twindowWithResources.__ROC_LOCALIZER_RESOURCES__ &&\r\n\t\tArray.isArray(windowWithResources.__ROC_LOCALIZER_RESOURCES__)\r\n\t) {\r\n\t\twindowWithResources.__ROC_LOCALIZER_RESOURCES__.forEach((obj) => {\r\n\t\t\tfor (const key of Object.keys(obj)) {\r\n\t\t\t\tLocalizerResources[key] = obj[key];\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\n/**\r\n * Function that can be used to load the localized strings with support to parameter replacements\r\n *\r\n * @export\r\n * @param {string} key\r\n * @param {...string[]} replaceStrings\r\n * @returns\r\n */\r\nexport function Localizer(key: LocalizerResourceKey, ...replaceStrings: string[]) {\r\n\tif (Object.keys(LocalizerResources).length === 0) {\r\n\t\tinitializeLocalizerResources();\r\n\t}\r\n\r\n\tif (!LocalizerResources || !LocalizerResources[key]) {\r\n\t\t// if running in a test environment, just skip any warnings.\r\n\t\tif (process.env.NODE_ENV !== 'test') {\r\n\t\t\tif (!isAlreadyLogged[key]) {\r\n\t\t\t\tconsole.warn(key, 'Localizer Resource not found. Key will be used instead.');\r\n\t\t\t\tisAlreadyLogged[key] = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn key;\r\n\t}\r\n\r\n\tconst resource = LocalizerResources[key];\r\n\r\n\tif (!replaceStrings) {\r\n\t\treturn resource;\r\n\t}\r\n\r\n\treturn resource.replace(/{(\\d+)}/g, (match: string, index: number) => {\r\n\t\treturn replaceStrings[index] ? replaceStrings[index] : '';\r\n\t});\r\n}\r\n\r\n/**\r\n * Interface for the LocalizedSpan component\r\n *\r\n * @interface LocalizedSpanProps\r\n */\r\ninterface LocalizedSpanProps {\r\n\tresourceKey: LocalizerResourceKey;\r\n\targs?: string[];\r\n}\r\n\r\n/**\r\n * Component responsible for the initialization of the react app\r\n */\r\nexport function LocalizedSpan(props: LocalizedSpanProps) {\r\n\tconst { resourceKey, args = [] } = props;\r\n\tconst localizedString = Localizer(resourceKey, ...args);\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n}\r\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import React from 'react';\r\nimport { Route, Switch } from 'react-router';\r\nimport Spinner from 'shared/components/Spinner';\r\n\r\nexport const MY_ACCOUNT_PATH_PREFIX = '/my-account';\r\nexport const MY_ACCOUNT_PERSONAL_DATA_URL = `${MY_ACCOUNT_PATH_PREFIX}/personal-data`;\r\nexport const MY_ACCOUNT_AUTHENTICATOR_URL = `${MY_ACCOUNT_PATH_PREFIX}/authenticator`;\r\nexport const MY_ACCOUNT_GENERATE_RECOVERY_CODES_URL = `${MY_ACCOUNT_AUTHENTICATOR_URL}/generate-recovery-codes`;\r\nexport const MY_ACCOUNT_CONFIGURE_AUTHENTICATOR_URL = `${MY_ACCOUNT_AUTHENTICATOR_URL}/configure`;\r\nexport const MY_ACCOUNT_LOGIN_URL = `${MY_ACCOUNT_PATH_PREFIX}/login`;\r\nexport const MY_ACCOUNT_LOGOUT_URL = `${MY_ACCOUNT_PATH_PREFIX}/logout`;\r\nexport const MY_ACCOUNT_SETTINGS_URL = `${MY_ACCOUNT_PATH_PREFIX}`;\r\n\r\nconst SettingsComponent = React.lazy(() => import(/* webpackChunkName: \"my-account-settings\" */ './settings/Settings'));\r\n\r\nconst PersonalDataComponent = React.lazy(() =>\r\n\timport(/* webpackChunkName: \"my-account-personal-data\" */ './personal-data/PersonalData'),\r\n);\r\nconst GenerateRecoveryCodesComponent = React.lazy(() =>\r\n\timport(\r\n\t\t/* webpackChunkName: \"my-account-generate-recovery-codes\" */ './generate-recovery-codes/GenerateRecoveryCodesContainer'\r\n\t),\r\n);\r\nconst ConfigureAuthenticatorComponent = React.lazy(() =>\r\n\timport(\r\n\t\t/* webpackChunkName: \"my-account-configure-authenticator\" */ './configure-authenticator/ConfigureAuthenticator'\r\n\t),\r\n);\r\n\r\nexport default (\r\n\t}>\r\n\t\t\r\n\t\t\t{/* Under Review */}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n);\r\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\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\n return target;\n}","import React from 'react';\r\nimport { SVGProps } from './SVGProps';\r\nimport classnames from 'classnames';\r\n\r\n/**\r\n * Lock Simple SVG\r\n *\r\n * @returns\r\n */\r\nfunction LockSimpleSVG({ className, ...rest }: SVGProps) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default LockSimpleSVG;\r\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n","import React from 'react';\r\nimport { SVGProps } from './SVGProps';\r\nimport classnames from 'classnames';\r\n\r\n/**\r\n * Gear SVG\r\n *\r\n * @returns\r\n */\r\nfunction GearSVG({ className, ...rest }: SVGProps) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default GearSVG;\r\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/* eslint-disable */\r\n/*! CLICK NAVIGATION FUNCTIONALITY\r\n * Version: 0.9.8.5\r\n * Author: Nick Goodrum\r\n * Licensed under MIT:\r\n * http://www.opensource.org/licenses/mit-license.php\r\n * Followed WAI-ARIA spec except for typing a letter key keyboard functionality (optional) and left/right moving to next previous main tiers\r\n * TO DO - CONFIRM DATA-ATTRIBUTE APPROACH, EXTEND MEGA / SLIDING TO REDUCE CODE BASE, DETERMINE IF MORE OR LESS OF THE WAI-ARIA SPEC IS NEEDED */\r\n\r\n(function (window, factory) {\r\n\t'use strict';\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(['jquery'], function ($) {\r\n\t\t\treturn factory(window, $);\r\n\t\t});\r\n\t} else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {\r\n\t\tmodule.exports = factory(window, require('jquery'));\r\n\t} else {\r\n\t\tfactory(window, jQuery);\r\n\t}\r\n})(typeof window !== 'undefined' ? window : this, function (window, $) {\r\n\t'use strict';\r\n\tvar ClickMenu = window.ClickMenu || {};\r\n\r\n\t/*----------- ADD DEBOUNCER -----------*/\r\n\r\n\t// Code from Underscore.js\r\n\r\n\tvar debounce = function (func, wait, immediate) {\r\n\t\tvar timeout;\r\n\t\treturn function () {\r\n\t\t\tvar context = this,\r\n\t\t\t\targs = arguments;\r\n\t\t\tvar later = function () {\r\n\t\t\t\ttimeout = null;\r\n\t\t\t\tif (!immediate) func.apply(context, args);\r\n\t\t\t};\r\n\t\t\tvar callNow = immediate && !timeout;\r\n\t\t\tclearTimeout(timeout);\r\n\t\t\ttimeout = setTimeout(later, wait);\r\n\t\t\tif (callNow) func.apply(context, args);\r\n\t\t};\r\n\t};\r\n\r\n\t/*----------- ADD PROTOTYPE FOR OLDER BROWSERS -----------*/\r\n\tif (!Function.prototype.bind) {\r\n\t\tFunction.prototype.bind = function () {\r\n\t\t\tvar fn = this,\r\n\t\t\t\targs = Array.prototype.slice.call(arguments),\r\n\t\t\t\tobject = args.shift();\r\n\t\t\treturn function () {\r\n\t\t\t\treturn fn.apply(object, args.concat(Array.prototype.slice.call(arguments)));\r\n\t\t\t};\r\n\t\t};\r\n\t}\r\n\r\n\tClickMenu = (function () {\r\n\t\tfunction ClickMenu(element, settings) {\r\n\t\t\tvar _ = this,\r\n\t\t\t\tdataSettings;\r\n\r\n\t\t\t_.defaults = {\r\n\t\t\t\tmenutype: 'dropdown',\r\n\t\t\t\tanimationSpeed: 400,\r\n\t\t\t\ttoggle: 'toggle-menu',\r\n\t\t\t\tmenu: 'cm-menu',\r\n\t\t\t\thtmlClass: 'cm-js-menu-active',\r\n\t\t\t\texpanderText: 'expand / collapse',\r\n\t\t\t\t//TODO: Eventually add parentLi Selector option so they aren't only lis\r\n\t\t\t\tlandings: false,\r\n\t\t\t\texpanders: false,\r\n\t\t\t\tsingleClick: true,\r\n\t\t\t\tisAutoClose: true,\r\n\t\t\t\tisRTL: false,\r\n\t\t\t};\r\n\r\n\t\t\tdataSettings = $(element).data() || {};\r\n\r\n\t\t\t_.options = $.extend({}, _.defaults, dataSettings, settings);\r\n\r\n\t\t\t_.menu = element;\r\n\t\t\t_.$menu = $(element);\r\n\t\t\t_.$menuBar = _.$menu.find('.' + _.options.menu);\r\n\t\t\t_.$menuToggle = _.$menu.find('.' + _.options.toggle);\r\n\t\t\t_.$html = $('html');\r\n\t\t\t_.isActive = false;\r\n\t\t\t_.isToggled = false;\r\n\t\t\t_.leavingMenu = false;\r\n\t\t\t_.currentFocus = 0;\r\n\t\t\t_.initialLinks = [];\r\n\t\t\t_.currentLinks = [];\r\n\r\n\t\t\t// Add in proxies so _ scope ties to this function even when called via outside event bindings, etc.\r\n\t\t\t_.keyHandler = $.proxy(_.keyHandler, _);\r\n\t\t\t_.findCurrentLinks = $.proxy(_.findCurrentLinks, _);\r\n\t\t\t_.resetMenus = $.proxy(_.resetMenus, _);\r\n\t\t\t_.cleanUpEvents = $.proxy(_.cleanUpEvents, _);\r\n\t\t\t_.destroy = $.proxy(_.destroy, _);\r\n\t\t\t_.showMenu = $.proxy(_.showMenu, _);\r\n\t\t\t_.hideMenu = $.proxy(_.hideMenu, _);\r\n\t\t\t_.menuToggle = $.proxy(_.menuToggle, _);\r\n\t\t\t_.subMenuToggle = $.proxy(_.subMenuToggle, _);\r\n\t\t\t_.menuHandler = $.proxy(_.menuHandler, _);\r\n\t\t\t_.menuToggleHandler = $.proxy(_.menuToggleHandler, _);\r\n\r\n\t\t\tif (_.$menuBar.length > 0) {\r\n\t\t\t\t_.init();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ClickMenu;\r\n\t})();\r\n\r\n\tClickMenu.prototype.init = function () {\r\n\t\tvar _ = this;\r\n\r\n\t\t//Bind Toggle Function to expand/collapse menu in small screens\r\n\t\t_.$menuToggle.on('touchstart click', _.menuToggle);\r\n\r\n\t\t// Add Aria Aspects and initial classes to menu wrap and menu\r\n\t\t_.$menu.addClass('cm-js-enabled').attr({ role: 'navigation' });\r\n\t\t_.$menuBar.attr('role', 'menubar');\r\n\r\n\t\t//If there are prior dropdowns you want to get the highest one and add to the numbers\r\n\t\tvar idNum = 1;\r\n\r\n\t\tif ($(\"[id^='cm-dropdown']\").last().length > 0) {\r\n\t\t\tvar highestNum = 0;\r\n\r\n\t\t\t$(\"[id^='cm-dropdown']\").each(function () {\r\n\t\t\t\tvar currentNum = $(this).attr('id').split('dropdown')[1];\r\n\r\n\t\t\t\thighestNum =\r\n\t\t\t\t\tcurrentNum && highestNum < parseInt(currentNum, 10) ? parseInt(currentNum, 10) : highestNum;\r\n\t\t\t});\r\n\r\n\t\t\tidNum = highestNum + 1;\r\n\t\t}\r\n\r\n\t\t_.$menu.on('keydown', _.keyHandler);\r\n\t\t//With Firefox 52 support coming in - this is a clean solution for tab users to toggle open/close menus - but will need to possibly consider if focusin is worth the fighting\r\n\t\t_.$menuBar.on('focusin', _.showMenu);\r\n\r\n\t\t_.$menu.find('.' + _.options.menu + ' a').each(function () {\r\n\t\t\tvar $anchor = $(this),\r\n\t\t\t\t$parentLi = $anchor.closest('li'),\r\n\t\t\t\t$sibling;\r\n\r\n\t\t\t$anchor.attr({ role: 'menuitem', tabindex: '-1' });\r\n\t\t\t$parentLi.attr('role', 'presentation');\r\n\r\n\t\t\tif (!$parentLi.data('type') && $parentLi.parent().hasClass(_.options.menu)) {\r\n\t\t\t\t$parentLi.attr('data-type', _.options.menutype);\r\n\t\t\t}\r\n\r\n\t\t\t// Have anchor do what it normally would do unless it has subs\r\n\r\n\t\t\tif ($anchor.siblings().not('a').length > 0 && $parentLi.attr('data-option') !== 'openSubs') {\r\n\t\t\t\t//Style it up via class\r\n\t\t\t\tvar $expandable = $anchor.siblings(),\r\n\t\t\t\t\tnewID = 'cm-dropdown' + idNum;\r\n\r\n\t\t\t\tif (_.options.expanders) {\r\n\t\t\t\t\t$sibling = $(\r\n\t\t\t\t\t\t\"\" +\r\n\t\t\t\t\t\t\t_.options.expanderText +\r\n\t\t\t\t\t\t\t' ' +\r\n\t\t\t\t\t\t\t$anchor.text() +\r\n\t\t\t\t\t\t\t'',\r\n\t\t\t\t\t);\r\n\t\t\t\t\t$anchor.wrap(\"
\").after($sibling);\r\n\r\n\t\t\t\t\t$sibling.on('click', _.subMenuToggle);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//if there is an ID use it and make sure the expandable item gets it otherwise add the new id created\r\n\t\t\t\t\tif ($anchor.attr('id')) {\r\n\t\t\t\t\t\tnewID = $anchor.attr('id');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$anchor.attr('id', 'cm-dropdown' + idNum);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// bind click functionality for anchors as well as aria / class\r\n\t\t\t\t\t$anchor.attr({ 'aria-haspopup': 'true' }).addClass('has-sub').on('click', _.subMenuToggle);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar visibleAlready = $expandable.height() > 0 ? true : false;\r\n\t\t\t\t$expandable.attr({\r\n\t\t\t\t\trole: 'menu',\r\n\t\t\t\t\t'aria-expanded': visibleAlready,\r\n\t\t\t\t\t'aria-hidden': !visibleAlready,\r\n\t\t\t\t\t'aria-labelledby': newID,\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (_.options.landings && !_.options.expanders) {\r\n\t\t\t\t\tvar $duplicate = $expandable.is('ul')\r\n\t\t\t\t\t\t? $(\"')\r\n\t\t\t\t\t\t: $(\"');\r\n\t\t\t\t\t$duplicate.children().removeAttr('aria-haspopup class id');\r\n\t\t\t\t\t$duplicate.find('a').removeClass('has-sub');\r\n\t\t\t\t\t$expandable.prepend($duplicate);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($parentLi.data('type') && $parentLi.data('type') === 'sliding') {\r\n\t\t\t\t\tvar $subMenu = $(\"\");\r\n\r\n\t\t\t\t\t$expandable.wrap($subMenu);\r\n\r\n\t\t\t\t\tvar adjustMenu = function () {\r\n\t\t\t\t\t\tvar maxWidth = _.$menu.innerWidth(),\r\n\t\t\t\t\t\t\tleftPosition = $parentLi.position().left,\r\n\t\t\t\t\t\t\t$adjustable;\r\n\r\n\t\t\t\t\t\t$adjustable = $parentLi.children('.sub-menu');\r\n\t\t\t\t\t\t$adjustable.find('> ul > li > ul').innerWidth(maxWidth);\r\n\r\n\t\t\t\t\t\t$adjustable.innerWidth(maxWidth).css('left', '-' + leftPosition + 'px');\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tvar debounceAdjustments = debounce(adjustMenu, 300);\r\n\r\n\t\t\t\t\t$(window).load(function () {\r\n\t\t\t\t\t\tadjustMenu();\r\n\r\n\t\t\t\t\t\t$(window).resize(debounceAdjustments);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (newID === 'cm-dropdown' + idNum) {\r\n\t\t\t\t\tidNum++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// ADD In Initial Links for main tier\r\n\t\t\tif ($anchor.closest('[role]:not(a)').is('[data-type]') && $anchor.is(':visible')) {\r\n\t\t\t\t_.initialLinks.push($anchor);\r\n\r\n\t\t\t\tif (_.options.expanders && $sibling) {\r\n\t\t\t\t\t_.initialLinks.push($sibling);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t_.currentLinks = _.initialLinks;\r\n\r\n\t\tif (_.currentLinks[_.currentFocus]) {\r\n\t\t\t_.currentLinks[_.currentFocus].attr('tabindex', '0');\r\n\t\t}\r\n\r\n\t\t_.$menu.trigger('init', [_]);\r\n\t};\r\n\r\n\tClickMenu.prototype.keyHandler = function (e) {\r\n\t\tvar _ = this,\r\n\t\t\tkeyPress = e.keyCode;\r\n\r\n\t\tif (!_.$menu.hasClass('cm-js-inFocus') && keyPress !== 9) {\r\n\t\t\t_.$menu.addClass('cm-js-inFocus').attr('tabindex', '-1');\r\n\t\t}\r\n\t\tswitch (keyPress) {\r\n\t\t\t//TAB\r\n\t\t\tcase 9:\r\n\t\t\t\t_.$menu.removeClass('cm-js-inFocus');\r\n\t\t\t\tbreak;\r\n\t\t\t//LEFT UP RIGHT DOWN\r\n\t\t\tcase 37:\r\n\t\t\tcase 38:\r\n\t\t\tcase 39:\r\n\t\t\tcase 40:\r\n\t\t\t\t//Prevent Scrolling aspects from browser\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t//Maintain currentLink since it will potentially be overwritten with the next focus\r\n\t\t\t\tvar oldLink = _.currentLinks[_.currentFocus];\r\n\r\n\t\t\t\t//Don't do anything if in mid transition\r\n\t\t\t\tif (oldLink) {\r\n\t\t\t\t\tvar inMainTier = oldLink.closest('[role]:not(a)').is('[data-type]'),\r\n\t\t\t\t\t\tnext,\r\n\t\t\t\t\t\tdirection,\r\n\t\t\t\t\t\tclose,\r\n\t\t\t\t\t\topen;\r\n\r\n\t\t\t\t\t//IF LEFT / UP (Depending on TIER) change next item to rotate to\r\n\r\n\t\t\t\t\tif (inMainTier) {\r\n\t\t\t\t\t\t// IF LEFT / RIGHT rotate to new item\r\n\t\t\t\t\t\tif (keyPress === 37) {\r\n\t\t\t\t\t\t\tdirection = _.options.isRTL ? 'next' : 'prev';\r\n\t\t\t\t\t\t} else if (keyPress === 39) {\r\n\t\t\t\t\t\t\tdirection = _.options.isRTL ? 'prev' : 'next';\r\n\t\t\t\t\t\t} else if (keyPress === 40 || keyPress === 38) {\r\n\t\t\t\t\t\t\topen = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// IF UP / DOWN rotate to new item - IF LEFT on sub subs close menu\r\n\t\t\t\t\t\tif (keyPress === 38) {\r\n\t\t\t\t\t\t\tdirection = 'prev';\r\n\t\t\t\t\t\t} else if (keyPress === 40) {\r\n\t\t\t\t\t\t\tdirection = 'next';\r\n\t\t\t\t\t\t} else if (keyPress === 39) {\r\n\t\t\t\t\t\t\tif (_.options.isRTL) {\r\n\t\t\t\t\t\t\t\tclose = true;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\topen = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t//} else if ( ! inSecondTier && keyPress === 37 ) {\r\n\t\t\t\t\t\t} else if (keyPress === 37) {\r\n\t\t\t\t\t\t\tif (_.options.isRTL) {\r\n\t\t\t\t\t\t\t\topen = true;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tclose = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (direction) {\r\n\t\t\t\t\t\tif (direction === 'prev') {\r\n\t\t\t\t\t\t\t//If there aren't any prior items move to last item in the list\r\n\t\t\t\t\t\t\t_.currentFocus = _.currentFocus - 1 >= 0 ? _.currentFocus - 1 : _.currentLinks.length - 1;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t//If there aren't any more items move to first item in the list\r\n\t\t\t\t\t\t\t_.currentFocus = _.currentFocus + 1 < _.currentLinks.length ? _.currentFocus + 1 : 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnext = _.currentLinks[_.currentFocus];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//If there isn't anything next click the anchor\r\n\t\t\t\t\tif (next) {\r\n\t\t\t\t\t\toldLink.attr('tabindex', '-1');\r\n\t\t\t\t\t\t_.currentLinks[_.currentFocus].attr('tabindex', '0').focus();\r\n\t\t\t\t\t} else if (close) {\r\n\t\t\t\t\t\t//Same as ESCAPE - TBD should we actually close the whole menu and go to a previous item (ARIA Spec)?\r\n\t\t\t\t\t\t_.$menu.find('.opened').last().find('[aria-haspopup]').first().trigger('click');\r\n\t\t\t\t\t} else if (open) {\r\n\t\t\t\t\t\t//Only open if it isn't opened - escape is how to close a menu\r\n\t\t\t\t\t\t//Also don't trigger click on a normal link - TBD should we really close the whole menu and go to the next item (ARIA Spec)?\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t!oldLink.closest('li').hasClass('opened') &&\r\n\t\t\t\t\t\t\t_.currentLinks[_.currentFocus].hasClass('has-sub')\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t_.currentLinks[_.currentFocus].trigger('click');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t//ESCAPE\r\n\t\t\tcase 27:\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\t_.$menu.find('.opened').last().find('[aria-haspopup]').first().trigger('click');\r\n\t\t\t\tbreak;\r\n\t\t\t//SPACE BAR (ENTER ALREADY BY DEFAULT DOES THIS)\r\n\t\t\tcase 32:\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\t_.currentLinks[_.currentFocus].trigger('click');\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t};\r\n\r\n\tClickMenu.prototype.findCurrentLinks = function ($parentLi, $currAnchor, skipFocus) {\r\n\t\tvar _ = this;\r\n\r\n\t\t$.each(_.currentLinks, function () {\r\n\t\t\tvar $anchor = this;\r\n\t\t\t$anchor.attr('tabindex', '-1');\r\n\t\t});\r\n\r\n\t\t_.currentLinks = [];\r\n\t\t_.currentFocus = 0;\r\n\r\n\t\tif ($parentLi && !$parentLi.data('type')) {\r\n\t\t\tvar actualKey = 0;\r\n\r\n\t\t\t$parentLi\r\n\t\t\t\t.closest('[role=menu]')\r\n\t\t\t\t.find('a, input, select, textarea, button')\r\n\t\t\t\t.filter(':visible')\r\n\t\t\t\t.each(function (key, val) {\r\n\t\t\t\t\t//How do you find :hidden items that aren't actually hidden? Check the height of the parent - be careful of floating clearout issues\r\n\t\t\t\t\tvar $item = $(val);\r\n\t\t\t\t\t//Looks like even with animation speed done correctly there can be a minor amount of pixels still transitioning in css\r\n\t\t\t\t\tif ($item.closest('[role=menu]').height() > 10 && $item.closest('[role=menu]').width() > 10) {\r\n\t\t\t\t\t\t_.currentLinks.push($item);\r\n\r\n\t\t\t\t\t\tif ($currAnchor && $currAnchor.attr('id') && $currAnchor.attr('id') === $item.attr('id')) {\r\n\t\t\t\t\t\t\t_.currentFocus = actualKey;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tactualKey++;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tvar $tabbables = _.$menuBar.find('a, input, select, textarea, button').filter(':visible');\r\n\r\n\t\t\t$tabbables.each(function (key, val) {\r\n\t\t\t\tvar $item = $(val);\r\n\t\t\t\tif ($item.closest('[role]:not(a)').is('[data-type]')) {\r\n\t\t\t\t\t_.currentLinks.push($item);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t//If a ParentLi is supplied e.g. from submenutoggle then get the eq otherwise get the first visible eq\r\n\t\t\t_.currentFocus = $parentLi ? $parentLi.index() : 0;\r\n\t\t}\r\n\r\n\t\tif (_.currentLinks[_.currentFocus]) {\r\n\t\t\t_.currentLinks[_.currentFocus].attr('tabindex', '0');\r\n\r\n\t\t\tif (!_.leavingMenu && !skipFocus) {\r\n\t\t\t\t_.currentLinks[_.currentFocus].focus();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tClickMenu.prototype.resetMenus = function ($links) {\r\n\t\t$links.each(function () {\r\n\t\t\tvar $toggle = $(this),\r\n\t\t\t\t$opened = $toggle.closest('.opened'),\r\n\t\t\t\tlabelId = $toggle.attr('id'),\r\n\t\t\t\t$relatedSub = $(\"[aria-labelledby='\" + labelId + \"']\");\r\n\r\n\t\t\t$toggle.attr('tabindex', '-1');\r\n\t\t\t$relatedSub.attr({ 'aria-hidden': true, 'aria-expanded': false });\r\n\t\t\t$opened.removeClass('opened animating animated');\r\n\t\t});\r\n\t};\r\n\r\n\tClickMenu.prototype.cleanUpEvents = function () {\r\n\t\tvar _ = this;\r\n\t\t_.$menu.find('li a').off('click', _.subMenuToggle);\r\n\r\n\t\t// Change into FOCUS with corresponding namespace function\r\n\t\t_.$menu.off('keydown', _.keyHandler);\r\n\t\t_.$menuBar.off('focusin', _.showMenu);\r\n\r\n\t\t_.$html.off('touchstart click focusin', _.menuHandler);\r\n\t\t_.$html.off('touchstart click focusin', _.menuToggleHandler);\r\n\t};\r\n\r\n\tClickMenu.prototype.destroy = function () {\r\n\t\tvar _ = this;\r\n\r\n\t\t_.$menu.removeClass('cm-js-enabled cm-js-inFocus cm-js-active').removeAttr('tabindex');\r\n\t\t_.$menuBar.removeAttr('role');\r\n\t\t_.$menu\r\n\t\t\t.find('[role=presentation]')\r\n\t\t\t.removeAttr('role')\r\n\t\t\t.filter('.opened')\r\n\t\t\t.removeClass('opened animating animated');\r\n\t\t_.$menu.find('[role=menuitem]').removeAttr('tabindex aria-haspopup role').removeClass('has-sub');\r\n\t\t_.$menu.find('[role=menu]').removeAttr('aria-expanded aria-hidden aria-labelledby role');\r\n\t\t_.cleanUpEvents();\r\n\t};\r\n\r\n\tClickMenu.prototype.getClickMenu = function () {\r\n\t\treturn this;\r\n\t};\r\n\r\n\tClickMenu.prototype.showMenu = function (e) {\r\n\t\tvar _ = this;\r\n\r\n\t\t//Need to make it check for hasClass on the current item rather than html and all items\r\n\t\tif (_.$menuBar.height() <= 10 && !_.$menu.hasClass('cm-js-active') && !_.$menu.hasClass('cm-animate-out')) {\r\n\t\t\t_.$menu.trigger('beforeMenuShow', [_]);\r\n\r\n\t\t\t_.isActive = true;\r\n\t\t\t_.isToggled = true;\r\n\t\t\t_.$menu.addClass('cm-js-active');\r\n\r\n\t\t\t_.$menuToggle.addClass('active');\r\n\t\t\t_.$html.addClass(_.options.htmlClass); // ADD FOR INITIAL STYLING\r\n\r\n\t\t\t_.findCurrentLinks();\r\n\r\n\t\t\t_.$html.off('touchstart click focusin', _.menuToggleHandler);\r\n\r\n\t\t\t// ADD TOGGLE HANDLER AFTER ANIMATION TO PREVENT CLOSING MENUS FROM REMOVING THE HANDLER\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t_.$menu.trigger('afterMenuShow', [_]);\r\n\t\t\t\t_.$html.addClass(_.options.htmlClass).on('touchstart click focusin', _.menuToggleHandler);\r\n\t\t\t}, _.options.animationSpeed);\r\n\t\t}\r\n\t};\r\n\r\n\tClickMenu.prototype.hideMenu = function (e) {\r\n\t\tvar _ = this;\r\n\r\n\t\tif (_.$menu.hasClass('cm-js-active') && _.$html.hasClass(_.options.htmlClass)) {\r\n\t\t\t_.$menu.trigger('beforeMenuHide', [_]);\r\n\r\n\t\t\t_.isActive = false;\r\n\t\t\t_.isToggled = false;\r\n\t\t\t_.$menu.removeClass('cm-js-active cm-js-inFocus');\r\n\t\t\t_.$menuToggle.removeClass('active');\r\n\r\n\t\t\t_.$html.removeClass(_.options.htmlClass).off('touchstart click focusin', _.menuToggleHandler);\r\n\t\t\t_.$menu.addClass('cm-animate-out');\r\n\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t_.$html.removeClass(_.options.htmlClass);\r\n\t\t\t\t_.$menu.removeClass('cm-animate-out').trigger('afterMenuHide', [_]);\r\n\t\t\t}, _.options.animationSpeed);\r\n\t\t}\r\n\t};\r\n\r\n\tClickMenu.prototype.menuToggle = function (e) {\r\n\t\tvar _ = this;\r\n\t\te.preventDefault();\r\n\r\n\t\tif (_.isActive) {\r\n\t\t\t_.hideMenu();\r\n\t\t} else {\r\n\t\t\t_.showMenu();\r\n\t\t}\r\n\t};\r\n\r\n\tClickMenu.prototype.subMenuToggle = function (e, params) {\r\n\t\tvar _ = this;\r\n\r\n\t\tvar $currAnchor = $(e.currentTarget),\r\n\t\t\t$parentLi = $currAnchor.closest('li'),\r\n\t\t\t$menuCol = $currAnchor.closest('[data-type]'),\r\n\t\t\tmenuType = $menuCol.data('type'),\r\n\t\t\t$relatedMenu = $('[aria-labelledby=' + $currAnchor.attr('id') + ']');\r\n\r\n\t\tvar subDefaults = { skipFocus: false },\r\n\t\t\tsubOptions = $.extend({}, subDefaults, params);\r\n\r\n\t\t_.$html.off('touchstart click focusin', _.menuHandler);\r\n\r\n\t\tif ($parentLi.hasClass('opened')) {\r\n\t\t\t_.$menu.trigger('beforeSubClose', [_, $currAnchor, $relatedMenu]);\r\n\r\n\t\t\tif (_.options.singleClick) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif (menuType === 'sliding' && $parentLi.parents('.sub-menu').hasClass('sub-menu')) {\r\n\t\t\t\t\t$parentLi.parents('.sub-menu').addClass('cm-js-inactive');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$parentLi.removeClass('opened animating animated');\r\n\r\n\t\t\t\tif (_.$menu.find('.opened').length > 0 && _.options.isAutoClose) {\r\n\t\t\t\t\t_.$html.on('touchstart click focusin', _.menuHandler);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$relatedMenu.attr({ 'aria-expanded': 'false', 'aria-hidden': 'true' });\r\n\r\n\t\t\t\t$relatedMenu.find('[aria-expanded=true]').each(function () {\r\n\t\t\t\t\tvar $childMenu = $(this);\r\n\r\n\t\t\t\t\t$childMenu\r\n\t\t\t\t\t\t.attr({ 'aria-expanded': 'false', 'aria-hidden': 'true' })\r\n\t\t\t\t\t\t.closest('[role=presentation]')\r\n\t\t\t\t\t\t.removeClass('opened animating animated');\r\n\t\t\t\t});\r\n\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t//Update Current Links for keyboard\r\n\t\t\t\t\t_.findCurrentLinks($parentLi, $currAnchor, subOptions.skipFocus);\r\n\r\n\t\t\t\t\t_.$menu.trigger('afterSubClose', [_, $currAnchor, $relatedMenu]);\r\n\t\t\t\t}, _.options.animationSpeed);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// Otherwise Open submenu and attach site click handler\r\n\t\t\t// Also - close any other open menus and their children\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\t_.$menu.trigger('beforeSubOpen', [_, $currAnchor, $relatedMenu]);\r\n\r\n\t\t\t$parentLi\r\n\t\t\t\t.addClass('opened animating')\r\n\t\t\t\t.siblings()\r\n\t\t\t\t.removeClass('opened animating animated')\r\n\t\t\t\t.find('.opened')\r\n\t\t\t\t.removeClass('opened animating animated');\r\n\r\n\t\t\t//FOR SLIDING MENUS\r\n\t\t\t$parentLi.siblings().find('.sub-menu').addClass('cm-js-inactive');\r\n\r\n\t\t\tif (menuType === 'sliding' && $parentLi.parents('.sub-menu').length > 0) {\r\n\t\t\t\t$parentLi.parents('.sub-menu').removeClass('cm-js-inactive');\r\n\t\t\t}\r\n\t\t\t//END FOR SLIDING MENU\r\n\r\n\t\t\t$relatedMenu.attr({ 'aria-expanded': 'true', 'aria-hidden': 'false' });\r\n\r\n\t\t\t//Wait until timer is complete so the bindings and currentLink groupings don't overlap\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tif ($parentLi.hasClass('animating')) {\r\n\t\t\t\t\t$parentLi.removeClass('animating').addClass('animated');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Update Current Links for keyboard\r\n\t\t\t\t_.findCurrentLinks($relatedMenu, $relatedMenu.find('a').first(), subOptions.skipFocus);\r\n\r\n\t\t\t\t// ADD TOGGLE HANDLER AFTER ANIMATION TO PREVENT CLOSING MENUS FROM REMOVING THE HANDLER\r\n\t\t\t\tif (_.options.isAutoClose) {\r\n\t\t\t\t\t// Only add if (default) menus set to auto close\r\n\t\t\t\t\t_.$html.on('touchstart click focusin', _.menuHandler);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_.$menu.trigger('afterSubOpen', [_, $currAnchor, $relatedMenu]);\r\n\t\t\t}, _.options.animationSpeed);\r\n\t\t}\r\n\t};\r\n\r\n\tClickMenu.prototype.menuToggleHandler = function (e) {\r\n\t\tvar _ = this;\r\n\r\n\t\tif (!$.contains(_.menu, e.target) && !_.$menu.is($(e.target)) && _.isToggled) {\r\n\t\t\t_.isToggled = false;\r\n\r\n\t\t\tif (_.$menuToggle.length > 0) {\r\n\t\t\t\t_.$menuToggle.trigger('click');\r\n\t\t\t} else {\r\n\t\t\t\t_.hideMenu();\r\n\t\t\t}\r\n\r\n\t\t\t_.$html.removeClass(_.options.htmlClass).off('touchstart click focusin', _.menuToggleHandler);\r\n\t\t}\r\n\t};\r\n\r\n\tClickMenu.prototype.menuHandler = function (e) {\r\n\t\tvar _ = this;\r\n\r\n\t\tif (!$.contains(_.menu, e.target) && !_.$menu.is($(e.target))) {\r\n\t\t\t//Make sure not to leave any tabindex=0 on submenu links by making sure the toggle knows we are leaving the menu\r\n\t\t\t_.leavingMenu = true;\r\n\r\n\t\t\t_.resetMenus(_.$menu.find('.opened > .has-sub, .opened > .expander-wrap > .has-sub'));\r\n\t\t\t_.findCurrentLinks();\r\n\r\n\t\t\t_.$html.off('touchstart click focusin', _.menuHandler);\r\n\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\t//We now know we have left the menu and are done triggering sub menus\r\n\t\t\t\t_.leavingMenu = false;\r\n\t\t\t}, _.options.animationSpeed);\r\n\t\t}\r\n\t};\r\n\r\n\t$.fn.clickMenu = function () {\r\n\t\tvar _ = this,\r\n\t\t\topt = arguments[0],\r\n\t\t\targs = Array.prototype.slice.call(arguments, 1),\r\n\t\t\tl = _.length,\r\n\t\t\ti,\r\n\t\t\tret;\r\n\r\n\t\tfor (i = 0; i < l; i++) {\r\n\t\t\tif (typeof opt == 'object' || typeof opt == 'undefined') {\r\n\t\t\t\t_[i].clickMenu = new ClickMenu(_[i], opt);\r\n\t\t\t} else {\r\n\t\t\t\tret = _[i].clickMenu[opt].apply(_[i].clickMenu, args);\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof ret != 'undefined') return ret;\r\n\t\t}\r\n\r\n\t\treturn _;\r\n\t};\r\n});\r\n","import axios, { AxiosInstance, AxiosResponse, AxiosError } from 'axios';\r\nimport AccountUrls from 'shared/util/AccountUrls';\r\n\r\n/**\r\n * Helper that creates an instance of Axios to be used throughout the client application\r\n * and adds a default X-Requested-With header to all requests.\r\n *\r\n */\r\nconst AxiosHelper: AxiosInstance = axios.create();\r\nAxiosHelper.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\r\n\r\nexport default AxiosHelper;\r\n\r\nexport const addUnauthorizedAccessInterceptor = (history) => {\r\n\t// this allows us to act when any request going through axios succeeds or fails.\r\n\tAxiosHelper.interceptors.response.use(\r\n\t\t(response: AxiosResponse) => {\r\n\t\t\treturn response;\r\n\t\t},\r\n\t\t(error: AxiosError) => {\r\n\t\t\tif (error.response && error.response.status === 401) {\r\n\t\t\t\twindow.location.replace(\r\n\t\t\t\t\t`${AccountUrls.Login}?ReturnUrl=${encodeURIComponent(window.location.pathname)}`,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn Promise.reject(error);\r\n\t\t},\r\n\t);\r\n};\r\n","import React from 'react';\r\nimport classnames from 'classnames';\r\nimport { Localizer } from 'services/Localizer';\r\n\r\ntype Theme = 'danger' | 'warning' | 'info' | 'success';\r\n\r\nexport interface ErrorAlertProps {\r\n\ttitle: string;\r\n\tmessage: React.ReactNode | string;\r\n\tchildren?: any;\r\n\ttheme?: Theme;\r\n\tisTitleOnOwnRow?: boolean;\r\n}\r\n\r\n/**\r\n * Reusable Error Alert Component.\r\n */\r\nexport default function InlineAlert(props: ErrorAlertProps) {\r\n\tconst {\r\n\t\ttitle = Localizer('ErrorMessageGenericTitle'),\r\n\t\tmessage = Localizer('UnexpectedErrorOccurred'),\r\n\t\tchildren,\r\n\t\ttheme = 'danger',\r\n\t\tisTitleOnOwnRow = false,\r\n\t} = props;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{title}\r\n\t\t\t{' '}\r\n\t\t\t{message}\r\n\t\t\t{children ? <> {children} : null}\r\n\t\t\r\n\t);\r\n}\r\n\r\n/**\r\n * Error Alert Default Props\r\n */\r\nInlineAlert.defaultProps = {\r\n\ttitle: Localizer('ErrorMessageGenericTitle'),\r\n\tmessage: Localizer('UnexpectedErrorOccurred'),\r\n};\r\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var api = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../node_modules/mini-css-extract-plugin/dist/loader.js!../../node_modules/css-loader/dist/cjs.js!../../node_modules/postcss-loader/src/index.js!../../node_modules/sass-loader/lib/loader.js!./app.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","const tagManagerName = 'gtag';\r\nlet isAlreadyLogged = false;\r\n/**\r\n * Wrapper function to send data to Google (page views, events, enhanced ecommerce data, etc.).\r\n *\r\n * @param {*} args\r\n */\r\nexport default (...args: any[]) => {\r\n\tif (typeof window === 'undefined' || typeof window[tagManagerName] !== 'function') {\r\n\t\tif (!isAlreadyLogged) {\r\n\t\t\tconsole.warn('Unable to add data to the data layer, the Global Site Tag is not setup.');\r\n\t\t\tisAlreadyLogged = true;\r\n\t\t}\r\n\t\treturn;\r\n\t}\r\n\twindow[tagManagerName](...args);\r\n};\r\n","/* eslint-disable @typescript-eslint/camelcase */\r\nimport gtag from './gtag';\r\n\r\n/**\r\n * Helper that reports banner impression and promotion impression (enhanced ecommerce).\r\n *\r\n * @param {string} name The banner name\r\n */\r\nexport function setBannerImpression(name: string): void {\r\n\t// standard impression event + non interaction\r\n\tgtag('event', 'impression', {\r\n\t\tevent_label: name,\r\n\t\tevent_category: 'banner',\r\n\t\tnon_interaction: true,\r\n\t});\r\n\r\n\t// enhanced ecommerce: track it as promo impression\r\n\tgtag('event', 'view_promotion', {\r\n\t\tpromotions: [\r\n\t\t\t{\r\n\t\t\t\tname,\r\n\t\t\t},\r\n\t\t],\r\n\t});\r\n}\r\n\r\n/**\r\n * Helper that reports banner click and promotion click (enhanced ecommerce).\r\n *\r\n * @param {string} name The banner name\r\n */\r\nexport function setBannerClick(name: string): void {\r\n\t// standard click event\r\n\tgtag('event', 'click', {\r\n\t\tevent_label: name,\r\n\t\tevent_category: 'banner',\r\n\t});\r\n\r\n\t// enhanced ecommerce: track it as promo click\r\n\tgtag('event', 'select_content', {\r\n\t\tpromotions: [\r\n\t\t\t{\r\n\t\t\t\tname,\r\n\t\t\t},\r\n\t\t],\r\n\t});\r\n}\r\n","import axios from 'axios';\r\nimport { tns } from 'tiny-slider/src/tiny-slider';\r\nimport 'tiny-slider/dist/tiny-slider.css';\r\nimport * as gtag from 'features/tracking/helpers';\r\nimport { BannerGroupRequest, BannerPlaceholderDetails, BannersForGroupsResponse } from 'features/types/banners';\r\n\r\n/**\r\n * Generates a key for the provided banners group as a combinantion of groupCode, pageUrl, isRandom and index (for random banners ONLY)\r\n * @param bannerGroupRequest\r\n * @param index\r\n */\r\nfunction generateKeyForGroupRequest(bannerGroupRequest: BannerGroupRequest, index: number): string {\r\n\tlet key = '';\r\n\r\n\tif (bannerGroupRequest.groupCode) {\r\n\t\tkey += bannerGroupRequest.groupCode + '_';\r\n\t}\r\n\r\n\tif (bannerGroupRequest.pageUrl) {\r\n\t\tkey += bannerGroupRequest.pageUrl + '_';\r\n\t}\r\n\r\n\tkey += bannerGroupRequest.isRandom ? 0 : 1;\r\n\r\n\t// append element's index in the group key only for random banners\r\n\tif (bannerGroupRequest.isRandom) {\r\n\t\tkey += '_' + index.toString();\r\n\t}\r\n\treturn key;\r\n}\r\n\r\n/**\r\n * Setup function for both client and server side banners.\r\n */\r\nfunction setupBanners() {\r\n\tsetupServerBanners();\r\n\tsetupClientBanners();\r\n}\r\n\r\n/**\r\n * Setup function for the server-side rendered banners that is reponsible for setting up tracking/click events and initializing sliders\r\n */\r\nfunction setupServerBanners() {\r\n\t// find all server-side rendered containers with banners\r\n\tconst serverBannerContainers = document.querySelectorAll('[data-banner-type=\"server\"]');\r\n\r\n\tif (!serverBannerContainers) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// process server-side rendered containers to set them up\r\n\tfor (let i = 0; i < serverBannerContainers.length; i++) {\r\n\t\tconst serverBannersContainer = serverBannerContainers.item(i);\r\n\r\n\t\t// setup click event/impressions for all banners in the current container\r\n\t\tfor (let j = 0; j < serverBannersContainer.childElementCount; j++) {\r\n\t\t\tconst banner = serverBannersContainer.children.item(j) as HTMLElement;\r\n\t\t\tsetupBannerClick(banner);\r\n\r\n\t\t\tconst bannerData = banner.dataset;\r\n\r\n\t\t\tif (bannerData.name) {\r\n\t\t\t\tgtag.setBannerImpression(bannerData.name);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// setup slider/carousel\r\n\t\tconst isCarousel = serverBannersContainer.classList.contains('roc-slider');\r\n\r\n\t\tif (isCarousel) {\r\n\t\t\tsetupSliderForCarousel(serverBannersContainer);\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Setup function for the client-side banners that is responsible for populating all the banners on a page\r\n */\r\nasync function setupClientBanners() {\r\n\tconst bannerPlaceholders = document.querySelectorAll('[data-banner-type=\"client\"]');\r\n\r\n\tif (!bannerPlaceholders) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst bannerGroupsPlaceholderDetails: BannerPlaceholderDetails[] = [];\r\n\r\n\t// go over each banner placeholder and gather details for each element\r\n\tfor (let i = 0; i < bannerPlaceholders.length; i++) {\r\n\t\tconst bannerPlaceholder = bannerPlaceholders.item(i);\r\n\t\tconst placeholderData = bannerPlaceholder.dataset;\r\n\r\n\t\t// details based on data-* attributes\r\n\t\tconst requestData = {\r\n\t\t\tgroupCode: placeholderData.groupCode,\r\n\t\t\tisRandom: placeholderData.isRandom === 'true',\r\n\t\t\tpageUrl: placeholderData.pageUrl,\r\n\t\t};\r\n\r\n\t\t// generate unique key for this placeholder/group\r\n\t\t// the key will be used to process response from the server\r\n\t\tconst groupKey = generateKeyForGroupRequest(requestData, i);\r\n\r\n\t\t// add details about this placeholder/group into an array that will be used to create a request object\r\n\t\tbannerGroupsPlaceholderDetails.push({\r\n\t\t\tkey: groupKey,\r\n\t\t\tplaceholder: bannerPlaceholder,\r\n\t\t\trequestData,\r\n\t\t});\r\n\t}\r\n\r\n\tif (bannerGroupsPlaceholderDetails.length === 0) {\r\n\t\t// no client-side banners found, so let's exit.\r\n\t\treturn;\r\n\t}\r\n\r\n\ttry {\r\n\t\t// create request object + remove duplicated groups\r\n\t\tconst distinctBannerGroups = bannerGroupsPlaceholderDetails\r\n\t\t\t.map((group) => {\r\n\t\t\t\treturn { ...group.requestData, key: group.key };\r\n\t\t\t})\r\n\t\t\t.filter((elem, index, self) => {\r\n\t\t\t\treturn self.findIndex((t) => t.key === elem.key) === index;\r\n\t\t\t});\r\n\r\n\t\t// get all the banners for the marked landing zones\r\n\t\tconst response = await axios.post('/ajax/banners', {\r\n\t\t\tgroupCodes: distinctBannerGroups,\r\n\t\t});\r\n\r\n\t\tconst bannersFromServer = response.data.bannersForGroups;\r\n\r\n\t\t// go over each landing zone and populate banners\r\n\t\tfor (const placeholderDetails of bannerGroupsPlaceholderDetails) {\r\n\t\t\t// ensure that there is data for the requested group by checking if server response has the requested key\r\n\t\t\tif (!bannersFromServer.hasOwnProperty(placeholderDetails.key)) {\r\n\t\t\t\tconsole.error(`No matching banner group was found on the server (key: ${placeholderDetails.key})`);\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tconst bannersGroups = bannersFromServer[placeholderDetails.key];\r\n\t\t\tconst isCarousel = placeholderDetails.placeholder.classList.contains('roc-slider');\r\n\r\n\t\t\tfor (const banner of bannersGroups.banners) {\r\n\t\t\t\tconst htmlBanner = document.createElement('div');\r\n\t\t\t\thtmlBanner.dataset.name = banner.name;\r\n\r\n\t\t\t\tswitch (banner.type) {\r\n\t\t\t\t\tcase 'WYSIWYG':\r\n\t\t\t\t\t\tif (banner.customHtml) {\r\n\t\t\t\t\t\t\thtmlBanner.innerHTML = banner.customHtml;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'Image':\r\n\t\t\t\t\t\tconst img = document.createElement('img');\r\n\r\n\t\t\t\t\t\tif (banner.imageUrl) {\r\n\t\t\t\t\t\t\timg.src = banner.imageUrl;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (banner.altTag) {\r\n\t\t\t\t\t\t\timg.alt = banner.altTag;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet elementToAppend: HTMLElement;\r\n\t\t\t\t\t\tif (banner.forwardUrl) {\r\n\t\t\t\t\t\t\tconst link = document.createElement('a');\r\n\t\t\t\t\t\t\tlink.href = banner.forwardUrl;\r\n\r\n\t\t\t\t\t\t\tif (banner.browserTarget) {\r\n\t\t\t\t\t\t\t\tlink.target = banner.browserTarget;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tlink.appendChild(img);\r\n\t\t\t\t\t\t\telementToAppend = link;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\telementToAppend = img;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (isCarousel) {\r\n\t\t\t\t\t\t\t// when rendering banners for carousel render them as display:none\r\n\t\t\t\t\t\t\t// because slider first needs to do the sizing and then it will make them visible\r\n\t\t\t\t\t\t\thtmlBanner.style.display = 'none';\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\thtmlBanner.appendChild(elementToAppend);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tsetupBannerClick(htmlBanner);\r\n\t\t\t\tplaceholderDetails.placeholder.appendChild(htmlBanner);\r\n\t\t\t\tgtag.setBannerImpression(banner.name); // init banner impression\r\n\t\t\t}\r\n\r\n\t\t\tif (isCarousel) {\r\n\t\t\t\tsetupSliderForCarousel(placeholderDetails.placeholder);\r\n\t\t\t}\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tconsole.error('Unable to load banners:', error);\r\n\t}\r\n}\r\n\r\n/**\r\n * Setups click event for the banner\r\n *\r\n * @param banner\r\n */\r\nfunction setupBannerClick(banner: HTMLElement) {\r\n\tbanner.onclick = (event: MouseEvent) => {\r\n\t\tconst clickedBannerData = (event.currentTarget as HTMLElement).dataset;\r\n\t\tif (clickedBannerData.name) {\r\n\t\t\tgtag.setBannerClick(clickedBannerData.name);\r\n\t\t}\r\n\t};\r\n}\r\n\r\n/**\r\n * Setups slider for the provided banner container\r\n *\r\n * @param bannerPlaceHolder\r\n */\r\nfunction setupSliderForCarousel(bannerPlaceHolder: HTMLElement) {\r\n\tconst showControls =\r\n\t\t(bannerPlaceHolder.dataset.showControls && bannerPlaceHolder.dataset.showControls.toLowerCase() === 'true') ||\r\n\t\tfalse;\r\n\r\n\tconst slider = tns({\r\n\t\tcontainer: bannerPlaceHolder,\r\n\t\titems: (bannerPlaceHolder.dataset.items && parseInt(bannerPlaceHolder.dataset.items)) || 3,\r\n\t\tslideBy: (bannerPlaceHolder.dataset.slideBy && parseInt(bannerPlaceHolder.dataset.slideBy)) || 1,\r\n\t\tautoplay:\r\n\t\t\t(bannerPlaceHolder.dataset.autoplay && bannerPlaceHolder.dataset.autoplay.toLowerCase() === 'true') || true,\r\n\t\tcontrols: showControls,\r\n\t\tnav: showControls,\r\n\t\tautoplayButtonOutput: showControls,\r\n\t\tonInit: () => {\r\n\t\t\t// on slider initialization we have to make sure that all banners are visible on the front-end\r\n\t\t\t// that's why we iterate through all of them and reset their display style which would be set to display:none on the server-side\r\n\t\t\tif (bannerPlaceHolder.childElementCount === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tfor (let i = 0; i < bannerPlaceHolder.childElementCount; i++) {\r\n\t\t\t\tconst banner = bannerPlaceHolder.children.item(i) as HTMLElement;\r\n\r\n\t\t\t\tif (banner) {\r\n\t\t\t\t\tbanner.style.display = '';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t});\r\n\r\n\tslider.events.on('indexChanged', (info) => {\r\n\t\tconst bannerData = (info.slideItems[info.index] as HTMLElement).dataset;\r\n\t\tif (bannerData.name) {\r\n\t\t\tgtag.setBannerImpression(bannerData.name);\r\n\t\t}\r\n\t});\r\n}\r\n\r\nexport default setupBanners;\r\n","import React from 'react';\r\nimport { SVGProps } from './SVGProps';\r\nimport classnames from 'classnames';\r\n\r\n/**\r\n * Check Clipboard SVG\r\n *\r\n * @returns\r\n */\r\nfunction CheckClipboardSVG({ className, ...rest }: SVGProps) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default CheckClipboardSVG;\r\n","import React from 'react';\r\nimport { SVGProps } from './SVGProps';\r\nimport classnames from 'classnames';\r\n\r\n/**\r\n * User SVG\r\n *\r\n * @returns\r\n */\r\nfunction UserSVG({ className, ...rest }: SVGProps) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default UserSVG;\r\n","import React from 'react';\r\nimport Popover from '@reach/popover';\r\nimport classnames from 'classnames';\r\n\r\nexport type RocPopoverSize = 'xs' | 'sm' | 'md' | 'lg';\r\n\r\ninterface RocPopoverProps {\r\n\tinnerRef: React.MutableRefObject;\r\n\ttargetRef: React.MutableRefObject;\r\n\tposition: any;\r\n\ttitle?: string;\r\n\tsize?: RocPopoverSize;\r\n\tchildren: React.ReactNode;\r\n}\r\n\r\n/**\r\n * Reusable popover component for displaying a ReachUI popover with sizing options.\r\n *\r\n * @export\r\n * @param {RocPopoverProps} props\r\n * @returns\r\n */\r\nexport default function RocPopover(props: RocPopoverProps) {\r\n\tconst { innerRef, targetRef, position, title, size = 'sm', children } = props;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{title ?

{title}

: null}\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n}\r\n","import React from 'react';\r\nimport { SVGProps } from './SVGProps';\r\nimport classnames from 'classnames';\r\n\r\n/**\r\n * Up chevron SVG\r\n *\r\n * @returns\r\n */\r\nfunction DownChevronSVG({ className, ...rest }: SVGProps) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default DownChevronSVG;\r\n","import React from 'react';\r\nimport { SVGProps } from './SVGProps';\r\nimport classnames from 'classnames';\r\n\r\n/**\r\n * Up chevron SVG\r\n *\r\n * @returns\r\n */\r\nfunction UpChevronSVG({ className, ...rest }: SVGProps) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default UpChevronSVG;\r\n","export const GenerateUniqueID = (uniqueString: string) => {\r\n\treturn uniqueString + '-' + Math.random().toString(36).substr(2, 9);\r\n};\r\n\r\nexport function slugify(text) {\r\n\treturn text\r\n\t\t.toString()\r\n\t\t.toLowerCase()\r\n\t\t.replace(/\\s+/g, '-') // Replace spaces with -\r\n\t\t.replace(/[^\\w\\-]+/g, '') // Remove all non-word chars\r\n\t\t.replace(/\\-\\-+/g, '-') // Replace multiple - with single -\r\n\t\t.replace(/^-+/, '') // Trim - from start of text\r\n\t\t.replace(/-+$/, ''); // Trim - from end of text\r\n}\r\n","import { positionMatchWidth } from '@reach/popover';\r\nimport React, { useEffect, useRef } from 'react';\r\nimport { WithTestId } from 'shared-client/types/test';\r\nimport RocPopover, { RocPopoverSize } from 'shared/components/RocPopover';\r\nimport DownChevronSVG from 'shared/components/svg/DownChevronSVG';\r\nimport UpChevronSVG from 'shared/components/svg/UpChevronSVG';\r\nimport UserSVG from 'shared/components/svg/UserSVG';\r\nimport { toKebabCase } from 'util/StringUtil';\r\nimport { slugify } from 'features/setup/Utils';\r\n\r\ninterface HeaderUtilNavProps {\r\n\tchildren: React.ReactNode;\r\n}\r\n\r\n/**\r\n * Simple component wrapper for header util nav.\r\n *\r\n * @export\r\n * @param {HeaderUtilNavProps} props\r\n * @returns\r\n */\r\nexport default function HeaderUtilNav(props: HeaderUtilNavProps) {\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{props.children}\r\n\t\t
\r\n\t);\r\n}\r\n\r\ninterface HeaderUtilNavButtonProps {\r\n\tonClick: () => void;\r\n\ttext: string;\r\n\ticon?: React.ReactNode;\r\n}\r\n\r\n/**\r\n * Reusable component for buttons inside header util nav.\r\n *\r\n * @export\r\n * @param {HeaderUtilNavButtonProps} props\r\n * @returns\r\n */\r\nexport function HeaderUtilNavItemButton(props: HeaderUtilNavButtonProps) {\r\n\tconst { onClick, text, icon } = props;\r\n\treturn (\r\n\t\t
  • \r\n\t\t\t\r\n\t\t\t\t{icon}\r\n\t\t\t\t{text}\r\n\t\t\t\r\n\t\t
  • \r\n\t);\r\n}\r\n\r\ninterface HeaderUtilNavLinkProps extends WithTestId {\r\n\tpath: string;\r\n\ttext: string;\r\n\ticon?: React.ReactNode;\r\n}\r\n\r\n/**\r\n * Reusable component for links inside header util nav.\r\n *\r\n * @export\r\n * @param {HeaderUtilNavLinkProps} props\r\n * @returns\r\n */\r\nexport function HeaderUtilNavItemLink(props: HeaderUtilNavLinkProps) {\r\n\tconst { path, text, icon = , testId } = props;\r\n\treturn (\r\n\t\t
  • \r\n\t\t\t\r\n\t\t\t\t{icon}\r\n\t\t\t\t{text}\r\n\t\t\t\r\n\t\t
  • \r\n\t);\r\n}\r\n\r\ninterface HeaderUtilNavPopoverProps extends WithTestId {\r\n\ttext: string;\r\n\tisOpen: boolean;\r\n\topenPopover: () => void;\r\n\tclosePopover: () => void;\r\n\ticon?: React.ReactNode;\r\n\ttitle?: string;\r\n\tsize?: RocPopoverSize;\r\n\tchildren: React.ReactNode;\r\n}\r\n\r\n/**\r\n * Reusable component for links inside header util nav.\r\n *\r\n * @export\r\n * @param {HeaderUtilNavPopoverProps} props\r\n * @returns\r\n */\r\nexport function HeaderUtilNavItemPopover(props: HeaderUtilNavPopoverProps) {\r\n\tconst triggerRef = useRef(null);\r\n\tconst popoverWrapperRef = useRef(null);\r\n\r\n\tconst {\r\n\t\tisOpen,\r\n\t\topenPopover,\r\n\t\tclosePopover,\r\n\t\ttext,\r\n\t\ticon = ,\r\n\t\tchildren,\r\n\t\ttitle,\r\n\t\tsize,\r\n\t} = props;\r\n\r\n\tuseEffect(() => {\r\n\t\tdocument.addEventListener('mousedown', handleDocumentClick, false);\r\n\r\n\t\treturn () => {\r\n\t\t\tdocument.removeEventListener('mousedown', handleDocumentClick, false);\r\n\t\t};\r\n\t}, []);\r\n\r\n\t/**\r\n\t * If you click outside the popoover when its open, close the popover.\r\n\t *\r\n\t * @param {*} e\r\n\t * @returns\r\n\t */\r\n\tfunction handleDocumentClick(e) {\r\n\t\tif (popoverWrapperRef.current === null || triggerRef.current === null) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// If click is inside popover or trigger, return.\r\n\t\tif (\r\n\t\t\ttriggerRef.current === e.target ||\r\n\t\t\ttriggerRef.current.contains(e.target) ||\r\n\t\t\tpopoverWrapperRef.current === e.target ||\r\n\t\t\tpopoverWrapperRef.current.contains(e.target)\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tclosePopover();\r\n\t}\r\n\r\n\t/**\r\n\t * Handles button click and either opens or closes the popover.\r\n\t *\r\n\t */\r\n\tfunction handleClick() {\r\n\t\tif (isOpen) {\r\n\t\t\tclosePopover();\r\n\t\t} else {\r\n\t\t\topenPopover();\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t
  • \r\n\t\t\t\r\n\t\t\t\t{icon}\r\n\t\t\t\t{text}\r\n\r\n\t\t\t\t{isOpen ? (\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\r\n\t\t\t{isOpen && (\r\n\t\t\t\t\r\n\t\t\t\t\t{children}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
  • \r\n\t);\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Localizer } from 'services/Localizer';\r\nimport { getUserData, UserData } from 'services/UserData';\r\nimport CheckClipboardSVG from 'shared/components/svg/CheckClipBoard';\r\nimport UserSVG from 'shared/components/svg/UserSVG';\r\nimport GearSVG from 'shared/components/svg/GearSVG';\r\nimport LockSimpleSVG from 'shared/components/svg/LockSimpleSVG';\r\nimport HeaderUtilNav, { HeaderUtilNavItemLink, HeaderUtilNavItemPopover } from './HeaderUtilNav';\r\nimport { MY_ACCOUNT_PATH_PREFIX } from 'features/my-account/routes.roc';\r\nimport AccountUrls from 'shared/util/AccountUrls';\r\n\r\nexport const headerUtilsIconClass = 'utlity-nav__menu-item-icon';\r\n\r\n/**\r\n * Component that manages the header utilities, such as login, location, etc.\r\n *\r\n * @export\r\n * @returns\r\n */\r\nexport default function HeaderUtils() {\r\n\tconst [userData, setUserData] = useState(null);\r\n\tconst [popoverOpen, setPopoverOpen] = useState(false);\r\n\r\n\tuseEffect(() => {\r\n\t\t(async () => {\r\n\t\t\ttry {\r\n\t\t\t\tconst data = (await getUserData()).data;\r\n\r\n\t\t\t\tsetUserData(data);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error('Unable to load user data.', error);\r\n\t\t\t}\r\n\t\t})();\r\n\t}, []);\r\n\r\n\tif (!userData) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tconst iconClass = 'roc-utlity-nav__menu-item-link-icon';\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{userData && userData.summary && userData.summary.isSignedIn ? (\r\n\t\t\t\t setPopoverOpen(true)}\r\n\t\t\t\t\tclosePopover={() => setPopoverOpen(false)}\r\n\t\t\t\t\ticon={}\r\n\t\t\t\t\ttext={Localizer('HeaderWelcomeText', userData.summary.firstName || 'User')}\r\n\t\t\t\t\ttitle={Localizer('MyAccount')}\r\n\t\t\t\t\tsize=\"xs\"\r\n\t\t\t\t\ttestId=\"my-account\"\r\n\t\t\t\t>\r\n\t\t\t\t\t
      \r\n\t\t\t\t\t\t{/*
    • \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{Localizer('HeaderUtilNavAccountOverview')}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    • */}\r\n\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{Localizer('HeaderUtilNavSettings')}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t{/* Under Review\r\n\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{Localizer('HeaderUtilNavPersonalData')}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    • */}\r\n\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{Localizer('HeaderUtilNavLogout')}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    • \r\n\t\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t<>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\tpath={AccountUrls.Register}\r\n\t\t\t\t\t\ttext={Localizer('Register')}\r\n\t\t\t\t\t\ttestId=\"register\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
    \r\n\t);\r\n}\r\n","import throttle from 'lodash-es/throttle';\r\n\r\nexport default function setupUserType() {\r\n\t// Create html element constant\r\n\tconst htmlEl = document.documentElement;\r\n\r\n\t// Temporary boolean that stores whether the touch user was recently added\r\n\tlet isRecentTouchUser = false;\r\n\r\n\t// If element can be found\r\n\tif (htmlEl) {\r\n\t\t// Add a user bind init class to HTML element if it doesn't have it\r\n\t\tif (!htmlEl.classList.contains('js-user-bind-init')) {\r\n\t\t\thtmlEl.classList.add('js-user-bind-init');\r\n\t\t}\r\n\r\n\t\t// If keyboard usage detected then add keyboard class and remove visual class\r\n\t\twindow.addEventListener(\r\n\t\t\t'keyup',\r\n\t\t\tthrottle(() => {\r\n\t\t\t\tif (!htmlEl.classList.contains('js-keyboard-user')) {\r\n\t\t\t\t\thtmlEl.classList.remove('js-mouse-user');\r\n\t\t\t\t\thtmlEl.classList.remove('js-touch-user');\r\n\t\t\t\t\thtmlEl.classList.add('js-keyboard-user');\r\n\t\t\t\t}\r\n\t\t\t}, 500),\r\n\t\t);\r\n\r\n\t\t// If visual click usage detected then add visual click class and remove keyboard class\r\n\t\twindow.addEventListener(\r\n\t\t\t'mouseup',\r\n\t\t\tthrottle(() => {\r\n\t\t\t\tif (!isRecentTouchUser) {\r\n\t\t\t\t\tif (!htmlEl.classList.contains('js-mouse-user')) {\r\n\t\t\t\t\t\thtmlEl.classList.remove('js-keyboard-user');\r\n\t\t\t\t\t\thtmlEl.classList.remove('js-touch-user');\r\n\t\t\t\t\t\thtmlEl.classList.add('js-mouse-user');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, 500),\r\n\t\t);\r\n\r\n\t\t// If visual click usage detected then add visual click class and remove keyboard class\r\n\t\twindow.addEventListener(\r\n\t\t\t'touchend',\r\n\t\t\tthrottle(() => {\r\n\t\t\t\tif (!htmlEl.classList.contains('js-touch-user')) {\r\n\t\t\t\t\thtmlEl.classList.remove('js-keyboard-user');\r\n\t\t\t\t\thtmlEl.classList.remove('js-mouse-user');\r\n\t\t\t\t\thtmlEl.classList.add('js-touch-user');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tisRecentTouchUser = true;\r\n\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tisRecentTouchUser = false;\r\n\t\t\t\t}, 300);\r\n\t\t\t}, 500),\r\n\t\t);\r\n\t}\r\n}\r\n","import './vendor/clickMenu';\r\nimport $ from 'jquery';\r\n\r\nexport default function setupNavigation() {\r\n\t($('.roc-main-nav') as any).clickMenu();\r\n}\r\n","import setupNavigation from 'features/setup/navigation';\r\nimport setupBanners from 'features/setup/banners';\r\nimport setupHeader from 'features/header';\r\nimport setupReCaptcha from 'features/setup/recaptcha';\r\nimport setupUserType from 'features/setup/userType';\r\n\r\nexport default function setup() {\r\n\tsetupNavigation();\r\n\tsetupBanners();\r\n\tsetupHeader();\r\n\tsetupReCaptcha();\r\n\tsetupUserType();\r\n}\r\n","import React from 'react';\r\nimport HeaderUtils from './HeaderUtils';\r\nimport { initReactApp } from 'shared/util/ApplicationInit';\r\n\r\nexport default function setupHeader() {\r\n\tconst render = initReactApp(() => , 'header-utils');\r\n\r\n\trender();\r\n\r\n\t// optional, use this to enable hot reloading\r\n\tif ((module as any).hot) {\r\n\t\t(module as any).hot.accept('./HeaderUtils', () => {\r\n\t\t\trender();\r\n\t\t});\r\n\t}\r\n}\r\n","import { ServerData } from 'services/ServerData';\r\n\r\nexport default {\r\n\tBaseUrl: ServerData.ACCOUNT_URL_BASE ?? '/my-account',\r\n\tLogin: ServerData.ACCOUNT_LOGIN_URL ?? '/my-account/login',\r\n\tLogin2fa: ServerData.ACCOUNT_LOGIN_WITH_2FA_URL ?? '/my-account/login-with-2fa',\r\n\tRegister: ServerData.ACCOUNT_REGISTER_URL ?? '/my-account/register',\r\n\tForgotPassword: ServerData.ACCOUNT_FORGOT_PASSWORD_URL ?? '/my-account/forgot-password',\r\n\tLoginWithRecoveryCode: ServerData.ACCOUNT_LOGIN_WITH_RECOVERY_CODE_URL ?? '/my-account/login-with-recovery-code',\r\n\tLogout: ServerData.ACCOUNT_LOGOUT_URL ?? '/my-account/logout',\r\n};\r\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","import React from 'react';\r\nimport InlineAlert from 'shared/edit/InlineAlert';\r\n\r\n// eslint-disable-next-line\r\n// tslint:disable-next-line\r\nexport interface ErrorBoundaryRenderProps extends ErrorBoundaryState {}\r\n\r\nexport interface ErrorBoundaryProps {\r\n\tchildren: React.ReactNode;\r\n\trenderError?: (renderProps: ErrorBoundaryRenderProps) => React.ReactNode;\r\n}\r\n\r\nexport interface ErrorBoundaryState {\r\n\terror?: Error;\r\n}\r\n\r\n/**\r\n * Default Error Boundary component for frontend components, so that in case a JS error occurs, we show\r\n * something instead of nothing.\r\n */\r\nexport default class ErrorBoundary extends React.Component {\r\n\tpublic static defaultProps = {\r\n\t\trenderError: () => ,\r\n\t};\r\n\r\n\tpublic state: ErrorBoundaryState = {};\r\n\r\n\tpublic componentDidCatch(error: Error) {\r\n\t\tthis.setState({\r\n\t\t\terror,\r\n\t\t});\r\n\t}\r\n\r\n\tpublic render() {\r\n\t\tif (this.state.error) {\r\n\t\t\treturn this.props.renderError!(this.state);\r\n\t\t}\r\n\r\n\t\treturn this.props.children;\r\n\t}\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport ErrorBoundary from './ErrorBoundary';\r\n\r\n/**\r\n * A helper function to facilitate initializing react applications on top of server-side rendered elements.\r\n * @param getReactElement Function that returns the react component to render.\r\n * @param elementId The ID of the DOM element being targeted.\r\n */\r\nexport const initReactApp = (getReactElement: () => React.ReactElement, elementId: string) => {\r\n\tif (typeof getReactElement !== 'function' || !elementId) {\r\n\t\treturn () => {\r\n\t\t\tconsole.warn('A react element generator function and element ID are required.');\r\n\t\t};\r\n\t}\r\n\r\n\tconst element = document.getElementById(elementId);\r\n\r\n\tif (!element) {\r\n\t\treturn () => {\r\n\t\t\tconsole.warn(\r\n\t\t\t\t`Element with ID '${elementId}' was not found. Did you forget to render it on the server or is this entry point not supposed to run?`,\r\n\t\t\t);\r\n\t\t};\r\n\t}\r\n\r\n\treturn () => {\r\n\t\tconsole.debug(`Rendering application inside element with ID ${elementId}.`);\r\n\t\tReactDOM.render({getReactElement()}, element);\r\n\t};\r\n};\r\n","/**\r\n * Extends Window with recaptcha callback fields\r\n */\r\ninterface WindowWithReCaptchaCallbacks extends Window {\r\n\t/**\r\n\t * Executes the methods in the rocReCaptchaCallbacks array\r\n\t */\r\n\tonReCaptchaLoadCallback: () => void;\r\n\t/**\r\n\t * List of recaptcha callbacks\r\n\t */\r\n\trocReCaptchaCallbacks: Array<() => void>;\r\n}\r\n\r\nexport let reCaptchaCallbackPromise: Promise | null = null;\r\n\r\n/**\r\n * Setup function for recaptcha.\r\n * The window.onReCaptchaLoadCallback() gets called when the recaptcha script is loaded.\r\n * Then this method calls the recaptcha instances init functions, stored in window.rocReCaptchaCallbacks\r\n *\r\n * @export\r\n */\r\nexport default function setupReCaptcha() {\r\n\tconst windowWithReCaptchaCallbacks = (window as unknown) as WindowWithReCaptchaCallbacks;\r\n\r\n\treCaptchaCallbackPromise = new Promise((resolve) => {\r\n\t\twindowWithReCaptchaCallbacks.onReCaptchaLoadCallback = resolve;\r\n\t});\r\n}\r\n","import React from 'react';\r\nimport useDelayedDisplay from 'shared/hooks/useDelayedDisplay';\r\nimport classnames from 'classnames';\r\n\r\ntype SpinnerAlignment = 'left' | 'right';\r\n\r\ninterface SpinnerProps {\r\n\tlight?: boolean;\r\n\twaitMs?: number;\r\n\talign?: SpinnerAlignment;\r\n\tblock?: boolean;\r\n}\r\n\r\n/**\r\n * Reusable roc-spinner component with color, alignment and wait time props.\r\n *\r\n * @export\r\n * @param {SpinnerProps} { light = false, waitMs = 200, align = 'right', block }\r\n * @returns\r\n */\r\nexport default function Spinner({ light = false, waitMs = 200, align = 'right', block }: SpinnerProps) {\r\n\tconst display = useDelayedDisplay(waitMs);\r\n\r\n\tif (!display) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t
    \r\n\t);\r\n}\r\n","import { useState, useEffect } from 'react';\r\n\r\n/**\r\n * Reusable hook that returns true after a certain amount of time has passed. Useful to delay\r\n * displaying components in render functions.\r\n *\r\n * @export\r\n * @param {number} [waitMs=200]\r\n * @returns\r\n */\r\nexport default function useDelayedDisplay(waitMs: number = 200) {\r\n\tconst [display, setDisplay] = useState(false);\r\n\r\n\tuseEffect(() => {\r\n\t\t// after a set amount of time, show the spinner\r\n\t\tconst timeout = setTimeout(() => {\r\n\t\t\tsetDisplay(true);\r\n\t\t}, waitMs);\r\n\r\n\t\treturn () => {\r\n\t\t\tclearTimeout(timeout);\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn display;\r\n}\r\n","import AxiosHelper from 'services/AxiosHelper';\r\nimport { AxiosResponse } from 'axios';\r\n\r\nexport interface UserSummary {\r\n\tisSignedIn: boolean;\r\n\tuserName: string | null;\r\n\tfirstName: string | null;\r\n\tlastName: string | null;\r\n\temail: string | null;\r\n\tphoneNumber: string | null;\r\n\ttwoFactorEnabled: boolean;\r\n\thasRecoveryCodes: boolean;\r\n\tisMachineRemembered: boolean;\r\n}\r\n\r\nexport interface UserData {\r\n\t/**\r\n\t * Summary of user-specific details\r\n\t */\r\n\tsummary?: UserSummary;\r\n\t/**\r\n\t * CSRF validation token generated by the server\r\n\t */\r\n\trequestToken?: string;\r\n}\r\n\r\nlet userDataPromise: Promise> | null = null;\r\n\r\n/**\r\n * Returns details related to the current user. By default, this is primarily their first/last name\r\n * and whether they are logged in or not. This can customized to include more details if necessary.\r\n */\r\nexport const getUserData = () => {\r\n\tif (userDataPromise === null) {\r\n\t\tuserDataPromise = AxiosHelper.get('/ajax/user');\r\n\t}\r\n\r\n\treturn userDataPromise;\r\n};\r\n\r\n/**\r\n * Returns non-cached details related to the current user. By default, this is primarily their first/last name\r\n * and whether they are logged in or not. This can customized to include more details if necessary.\r\n */\r\nexport const getUserDataNoCache = () => {\r\n\treturn AxiosHelper.get('/ajax/user');\r\n};\r\n\r\n/**\r\n * Returns a promise that will contain the CSRF token generated on the server to be used to validate\r\n * forms being posted via AJAX.\r\n */\r\nexport async function getCsrfToken() {\r\n\ttry {\r\n\t\tconst userData = await getUserData();\r\n\t\treturn userData.data.requestToken;\r\n\t} catch (error) {\r\n\t\tconsole.warn('Unable to load CSRF token.');\r\n\t\treturn '';\r\n\t}\r\n}\r\n","// These functions may be potentially innaccurate in certain locales that use differing amounts of characters in different cases\r\n\r\n/**\r\n * Tests if a string includes another if casing is ignored\r\n * @param thisString The string to test\r\n * @param otherString The potentially included string being tested for\r\n */\r\nexport function stringWeaklyIncludes(thisString: string, otherString: string) {\r\n\treturn thisString.toLocaleLowerCase().includes(otherString.toLocaleLowerCase());\r\n}\r\n\r\n/**\r\n * Tests if a string starts with another if casing is ignored\r\n * @param thisString The string to test\r\n * @param otherString The potentially included string being tested for\r\n */\r\nexport function stringWeaklyStartsWith(thisString: string, otherString: string) {\r\n\treturn thisString.toLocaleLowerCase().startsWith(otherString.toLocaleLowerCase());\r\n}\r\n\r\n/**\r\n * Tests if a string ends with another if casing is ignored\r\n * @param thisString The string to test\r\n * @param otherString The potentially included string being tested for\r\n */\r\nexport function stringWeaklyEndsWith(thisString: string, otherString: string) {\r\n\treturn thisString.toLocaleLowerCase().endsWith(otherString.toLocaleLowerCase());\r\n}\r\n\r\n/**\r\n * Converts the first character in a string to upper-case. Will not work for all languages (for example Dutch).\r\n *\r\n * @export\r\n * @param {string} thisString\r\n * @returns\r\n */\r\nexport function firstCharacterToUpper(thisString: string) {\r\n\tif (!thisString) {\r\n\t\treturn '';\r\n\t}\r\n\r\n\tlet newString = thisString.substring(0, 1).toLocaleUpperCase();\r\n\r\n\tif (thisString.length > 1) {\r\n\t\tnewString += thisString.substring(1);\r\n\t}\r\n\r\n\treturn newString;\r\n}\r\n\r\n/**\r\n * Converts the first character in a string to upper-case. Will not work for all languages (for example Dutch).\r\n *\r\n * @export\r\n * @param {string} thisString\r\n * @returns\r\n */\r\nexport function firstCharacterToLower(thisString: string) {\r\n\tif (!thisString) {\r\n\t\treturn '';\r\n\t}\r\n\r\n\tlet newString = thisString.substring(0, 1).toLocaleLowerCase();\r\n\r\n\tif (thisString.length > 1) {\r\n\t\tnewString += thisString.substring(1);\r\n\t}\r\n\r\n\treturn newString;\r\n}\r\n\r\n// https://github.com/uxitten/polyfill/blob/master/string.polyfill.js\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart\r\nexport function padStart(value, targetLength, padString) {\r\n\t// tslint:disable-next-line:no-bitwise\r\n\ttargetLength = targetLength >> 0; // truncate if number, or convert non-number to 0;\r\n\tpadString = String(typeof padString !== 'undefined' ? padString : ' ');\r\n\tif (value.length >= targetLength) {\r\n\t\treturn String(value);\r\n\t} else {\r\n\t\ttargetLength = targetLength - value.length;\r\n\t\tif (targetLength > padString.length) {\r\n\t\t\tpadString += padString.repeat(targetLength / padString.length); // append to original to ensure we are longer than needed\r\n\t\t}\r\n\t\treturn padString.slice(0, targetLength) + String(value);\r\n\t}\r\n}\r\n\r\n/**\r\n * Converts a string from \" Something Like This\" to \"something-like-this\"\r\n * @param value The string to convert\r\n */\r\nexport function toKebabCase(value: string) {\r\n\tif (!value || !value.trim()) {\r\n\t\treturn '';\r\n\t}\r\n\r\n\treturn value\r\n\t\t.trim()\r\n\t\t.replace(/[^a-zA-Z0-9]+/g, '-')\r\n\t\t.replace(/([a-z0-9])([A-Z])/g, '$1-$2')\r\n\t\t.replace(/([A-Z])([A-Z])(?=[a-z])/g, '$1-$2')\r\n\t\t.toLocaleLowerCase();\r\n}\r\n\r\n/**\r\n * Removes html characters\r\n *\r\n * @export\r\n * @param {*} html\r\n * @returns\r\n */\r\nexport function stripHtml(html) {\r\n\tconst tmp = document.createElement('div');\r\n\ttmp.innerHTML = html;\r\n\treturn tmp.textContent || tmp.innerText || '';\r\n}\r\n\r\n/**\r\n * Cuts of text and adds ellipsis (...) after a certain number of characters\r\n * @param text The text to format\r\n * @param cutoff The number of characters to add the ellipsis after\r\n */\r\nexport function addEllipsis(text: string, cutoff: number = 20) {\r\n\tif (!text || text.length < cutoff) {\r\n\t\treturn text;\r\n\t}\r\n\r\n\treturn text.substring(0, cutoff) + '...';\r\n}\r\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\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 && btoa) {\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