{"version":3,"file":"static/js/main.61ee8834.js","mappings":"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","sources":["../node_modules/attr-accept/dist/es/index.js","../node_modules/error-stack-parser/error-stack-parser.js","../node_modules/exenv/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/isarray/index.js","../node_modules/object-assign/index.js","../node_modules/path-to-regexp/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-apple-signin-auth/dist/AppleSigninButton/AppleSigninButton.js","../node_modules/react-apple-signin-auth/dist/appleAuthHelpers/index.js","../node_modules/react-apple-signin-auth/dist/hooks/useScript.js","../node_modules/react-apple-signin-auth/dist/index.js","../node_modules/react-apple-signin-auth/dist/utils/waitForVar.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-facebook-login/dist/facebook-login-with-button.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-modal/lib/components/Modal.js","../node_modules/react-modal/lib/components/ModalPortal.js","../node_modules/react-modal/lib/helpers/ariaAppHider.js","../node_modules/react-modal/lib/helpers/bodyTrap.js","../node_modules/react-modal/lib/helpers/classList.js","../node_modules/react-modal/lib/helpers/focusManager.js","../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../node_modules/react-modal/lib/helpers/scopeTab.js","../node_modules/react-modal/lib/helpers/tabbable.js","../node_modules/react-modal/lib/index.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-router/node_modules/react-is/index.js","../node_modules/react-text-truncate/lib/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/stackframe/stackframe.js","../node_modules/warning/warning.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/history/esm/history.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-router/modules/miniCreateReactContext.js","../node_modules/react-router/modules/createContext.js","../node_modules/react-router/modules/createNamedContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/generatePath.js","../node_modules/react-router/modules/Redirect.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/@openreplay/tracker/lib/modules/conditionsManager.js","../node_modules/@openreplay/tracker/lib/modules/featureFlags.js","../node_modules/@openreplay/tracker/lib/app/messages.gen.js","../node_modules/@openreplay/tracker/lib/utils.js","../node_modules/@openreplay/tracker/lib/app/nodes.js","../node_modules/@openreplay/tracker/lib/app/guards.js","../node_modules/@openreplay/tracker/lib/app/observer/observer.js","../node_modules/@openreplay/tracker/lib/app/observer/iframe_observer.js","../node_modules/@openreplay/tracker/lib/app/observer/shadow_root_observer.js","../node_modules/@openreplay/tracker/lib/app/observer/iframe_offsets.js","../node_modules/@openreplay/tracker/lib/app/observer/top_observer.js","../node_modules/@openreplay/tracker/lib/app/sanitizer.js","../node_modules/@openreplay/tracker/lib/app/ticker.js","../node_modules/@openreplay/tracker/lib/app/logger.js","../node_modules/@openreplay/tracker/lib/app/session.js","../node_modules/fflate/esm/browser.js","../node_modules/@openreplay/tracker/lib/modules/performance.js","../node_modules/@openreplay/tracker/lib/modules/attributeSender.js","../node_modules/@openreplay/tracker/lib/app/canvas.js","../node_modules/@openreplay/tracker/lib/modules/userTesting/styles.js","../node_modules/@openreplay/tracker/lib/modules/userTesting/recorder.js","../node_modules/@openreplay/tracker/lib/modules/userTesting/utils.js","../node_modules/@openreplay/tracker/lib/modules/userTesting/SignalManager.js","../node_modules/@openreplay/tracker/lib/modules/userTesting/index.js","../node_modules/@openreplay/tracker/lib/modules/userTesting/dnd.js","../node_modules/@openreplay/tracker/lib/modules/tagWatcher.js","../node_modules/@openreplay/tracker/lib/app/index.js","../node_modules/@openreplay/tracker/lib/modules/console.js","../node_modules/@openreplay/tracker/lib/modules/exception.js","../node_modules/@openreplay/tracker/lib/modules/img.js","../node_modules/@openreplay/tracker/lib/modules/input.js","../node_modules/@medv/finder/finder.js","../node_modules/@openreplay/tracker/lib/modules/mouse.js","../node_modules/@openreplay/tracker/lib/modules/timing.js","../node_modules/@openreplay/tracker/lib/modules/scroll.js","../node_modules/@openreplay/tracker/lib/modules/constructedStyleSheets.js","../node_modules/@openreplay/tracker/lib/modules/axiosSpy.js","../node_modules/@openreplay/tracker/lib/modules/Network/networkMessage.js","../node_modules/@openreplay/tracker/lib/modules/Network/utils.js","../node_modules/@openreplay/tracker/lib/modules/Network/fetchProxy.js","../node_modules/@openreplay/tracker/lib/modules/Network/xhrProxy.js","../node_modules/@openreplay/tracker/lib/modules/Network/beaconProxy.js","../node_modules/@openreplay/tracker/lib/modules/Network/index.js","../node_modules/@openreplay/tracker/lib/modules/network.js","../node_modules/@openreplay/tracker/lib/modules/selection.js","../node_modules/@openreplay/tracker/lib/index.js","../node_modules/@openreplay/tracker/lib/modules/viewport.js","../node_modules/@openreplay/tracker/lib/modules/cssrules.js","../node_modules/@openreplay/tracker/lib/modules/connection.js","../node_modules/@openreplay/tracker/lib/modules/focus.js","../node_modules/@openreplay/tracker/lib/modules/fonts.js","../node_modules/@openreplay/tracker/lib/modules/tabs.js","components/LoaderContext.tsx","components/Menubar.tsx","images/location-pointer.svg","components/FindLocationHome.tsx","pages/HomePage.tsx","pages/AboutPage.tsx","modals/DeleteModal.tsx","modals/EditYoloDescriptionModal.tsx","modals/UploadPhotoModal.tsx","modals/ChangeCategoryModal.tsx","modals/AddMoreTagsModal.tsx","modals/ConfirmationModal.tsx","modals/TagsConfirmationModal.tsx","../node_modules/tslib/tslib.es6.js","../node_modules/file-selector/src/file.ts","../node_modules/file-selector/src/file-selector.ts","../node_modules/react-dropzone/dist/es/utils/index.js","../node_modules/react-dropzone/dist/es/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","utils/helpers.js","images/AppleLogo.svg","pages/LoginPage.tsx","pages/RestaurantPage.tsx","modals/EditYoloNameModal.tsx","modals/EditUpvoteYoloModal.tsx","components/ItemNew.tsx","components/CategoryItems.tsx","components/CopyUrl.tsx","pages/MyPage.tsx","pages/UserPage.tsx","pages/SettingsPage.tsx","pages/NotificationsPage.tsx","pages/ChangeIdentityPage.tsx","pages/FaqPage.tsx","pages/TermsPage.tsx","pages/PolicyPage.tsx","pages/EatPage.tsx","pages/DrinksPage.tsx","pages/EatYolosPage.tsx","components/FindRestaurant.tsx","components/FindLocation.tsx","pages/LoginPagev2.tsx","pages/AddYoloPage.tsx","pages/LogoutPage.tsx","pages/AdminPage.tsx","pages/RestaurantSearch.tsx","pages/AccountSettingPage.tsx","pages/shareholdersPage.tsx","pages/ClosedRestaurantsPage.tsx","pages/newMemberPage.tsx","pages/recentYollsPage.tsx","components/cityLocation.tsx","pages/adminRestaurentPage.tsx","pages/adminRestaorentsDetailPage.tsx","pages/FirstSplashScreen.tsx","pages/SecondSplahScreen.tsx","pages/VerificationSuccess.tsx","pages/DisclaimerPage.tsx","pages/ExpiredItemsPage.tsx","pages/adminItemNoLongerPage.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n}(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\n\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[()]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\n }\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\n\n // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n\n // remove the parenthesized location from the line, if it was matched\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n var tokens = sanitizedLine.split(/\\s+/).slice(1);\n // if a location was matched, pass it to extractLocation() otherwise pop the last token\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(\n new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n })\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return filtered.map(function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n}));\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\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';var 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?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(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 t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\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","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = prefix || defaultDelimiter\n var pattern = capture || group\n var prevText = prefix || (typeof tokens[tokens.length - 1] === 'string' ? tokens[tokens.length - 1] : '')\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : restrictBacktrack(delimiter, prevText))\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\nfunction restrictBacktrack(delimiter, prevText) {\n if (!prevText || prevText.indexOf(delimiter) > -1) {\n return '[^' + escapeString(delimiter) + ']+?'\n }\n\n return escapeString(prevText) + '|(?:(?!' + escapeString(prevText) + ')[^' + escapeString(delimiter) + '])+?'\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\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","/**\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _useScript = _interopRequireDefault(require(\"../hooks/useScript\"));\n\nvar _appleAuthHelpers = _interopRequireDefault(require(\"../appleAuthHelpers\"));\n\nvar _excluded = [\"onSuccess\", \"onError\", \"skipScript\", \"authOptions\", \"iconProps\", \"render\", \"uiType\", \"className\", \"noDefaultStyle\", \"buttonExtraChildren\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/** css styles */\nvar _style = \"\\n.react-apple-signin-auth-btn {\\n background-color: transparent;\\n border: none;\\n padding: 0;\\n cursor: pointer;\\n border-radius: 4px;\\n padding: 0 8px 0 2px;\\n font-size: 14px;\\n font-size: 1em;\\n line-height: 1;\\n border: 1px solid #000;\\n overflow: hidden;\\n display: inline-flex;\\n justify-content: center;\\n align-items: center;\\n}\\n.react-apple-signin-auth-btn-light {\\n background-color: #FFF;\\n color: #000;\\n border-color: #000;\\n}\\n.react-apple-signin-auth-btn-dark {\\n background-color: #000;\\n color: #FFF;\\n border-color: #FFF;\\n}\".replace(/ {2}|\\n/g, '');\n\nvar AppleSigninButton = function AppleSigninButton(_ref) {\n var onSuccess = _ref.onSuccess,\n onError = _ref.onError,\n _ref$skipScript = _ref.skipScript,\n skipScript = _ref$skipScript === void 0 ? false : _ref$skipScript,\n authOptions = _ref.authOptions,\n iconProps = _ref.iconProps,\n render = _ref.render,\n _ref$uiType = _ref.uiType,\n uiType = _ref$uiType === void 0 ? 'dark' : _ref$uiType,\n className = _ref.className,\n _ref$noDefaultStyle = _ref.noDefaultStyle,\n noDefaultStyle = _ref$noDefaultStyle === void 0 ? false : _ref$noDefaultStyle,\n _ref$buttonExtraChild = _ref.buttonExtraChildren,\n buttonExtraChildren = _ref$buttonExtraChild === void 0 ? 'Continue with Apple' : _ref$buttonExtraChild,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n /** load script if neccessary */\n (0, _useScript.default)(skipScript ? null : _appleAuthHelpers.default.APPLE_SCRIPT_SRC);\n /** Button click handler */\n\n var handleClick = function handleClick(e) {\n if (e) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n _appleAuthHelpers.default.signIn({\n authOptions: authOptions,\n onSuccess: onSuccess,\n onError: onError\n });\n };\n /** common props */\n\n\n var props = _objectSpread({\n children: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"44px\",\n viewBox: \"0 0 24 44\"\n }, iconProps), /*#__PURE__*/_react.default.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/_react.default.createElement(\"rect\", {\n fill: uiType === 'light' ? '#FFF' : '#000',\n x: \"0\",\n y: \"0\",\n width: \"24\",\n height: \"44\"\n }), /*#__PURE__*/_react.default.createElement(\"path\", {\n d: \"M12.2337427,16.9879688 C12.8896607,16.9879688 13.7118677,16.5445313 14.2014966,15.9532812 C14.6449341,15.4174609 14.968274,14.6691602 14.968274,13.9208594 C14.968274,13.8192383 14.9590357,13.7176172 14.9405591,13.6344727 C14.2107349,13.6621875 13.3330982,14.1241016 12.8065162,14.7430664 C12.3907935,15.2142188 12.012024,15.9532812 12.012024,16.7108203 C12.012024,16.8216797 12.0305005,16.9325391 12.0397388,16.9694922 C12.0859302,16.9787305 12.1598365,16.9879688 12.2337427,16.9879688 Z M9.92417241,28.1662891 C10.8202857,28.1662891 11.2175318,27.5658008 12.3353638,27.5658008 C13.4716724,27.5658008 13.721106,28.1478125 14.7188404,28.1478125 C15.6980982,28.1478125 16.3540162,27.2424609 16.972981,26.3555859 C17.6658521,25.339375 17.9522388,24.3416406 17.9707154,24.2954492 C17.9060474,24.2769727 16.0306763,23.5101953 16.0306763,21.3576758 C16.0306763,19.491543 17.5088013,18.6508594 17.5919459,18.5861914 C16.612688,17.1819727 15.1253248,17.1450195 14.7188404,17.1450195 C13.6194849,17.1450195 12.7233716,17.8101758 12.1598365,17.8101758 C11.5501099,17.8101758 10.7463794,17.1819727 9.79483648,17.1819727 C7.98413335,17.1819727 6.14571538,18.6785742 6.14571538,21.5054883 C6.14571538,23.2607617 6.8293482,25.1176563 7.67003179,26.3186328 C8.39061773,27.3348438 9.01882085,28.1662891 9.92417241,28.1662891 Z\",\n fill: uiType === 'light' ? '#000' : '#FFF',\n fillRule: \"nonzero\"\n }))), buttonExtraChildren),\n onClick: handleClick\n }, rest);\n /** use render function if passed */\n\n\n if (render) {\n return render(props);\n }\n /** render button */\n\n\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(\"button\", _extends({\n className: \"\".concat(noDefaultStyle ? '' : \"react-apple-signin-auth-btn react-apple-signin-auth-btn-\".concat(uiType)).concat(className ? \" \".concat(className) : ''),\n type: \"button\",\n \"aria-label\": \"Signin with apple ID\"\n }, props)), noDefaultStyle ? null : /*#__PURE__*/_react.default.createElement(\"style\", null, _style));\n};\n\nvar _default = AppleSigninButton;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _waitForVar = _interopRequireDefault(require(\"../utils/waitForVar\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar APPLE_SCRIPT_SRC = 'https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js';\n/**\n * Performs an apple ID signIn operation\n */\n\nvar signIn = function signIn(_ref) {\n var authOptions = _ref.authOptions,\n onSuccess = _ref.onSuccess,\n onError = _ref.onError;\n return (\n /** wait for apple sript to load */\n (0, _waitForVar.default)('AppleID').then(function () {\n /** Handle if appleID script was not loaded -- log + throw error to be caught below */\n if (!window.AppleID) {\n console.error(new Error('Error loading apple script'));\n }\n /** Init apple auth */\n\n\n window.AppleID.auth.init(authOptions);\n /** Signin to appleID */\n\n return window.AppleID.auth.signIn().then(function (response) {\n /** This is only called in case usePopup is true */\n if (onSuccess) {\n onSuccess(response);\n }\n /** resolve with the reponse */\n\n\n return response;\n }).catch(function (err) {\n if (onError) {\n /** Call onError catching the error */\n onError(err);\n } else {\n /** Log the error to help debug */\n console.error(err);\n }\n\n return null;\n });\n }).catch(function (err) {\n if (onError) {\n /** Call onError catching the error */\n onError(err);\n } else {\n /** Log the error to help debug */\n console.error(err);\n }\n\n return null;\n })\n );\n};\n\nvar _default = {\n APPLE_SCRIPT_SRC: APPLE_SCRIPT_SRC,\n signIn: signIn\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = require(\"react\");\n\n/**\n * useScript hook\n *\n * https://usehooks.com/useScript\n */\nfunction useScript(src) {\n (0, _react.useEffect)(function () {\n // Allow falsy src value if waiting on other data needed for\n // constructing the script URL passed to this hook.\n if (!src) {\n return;\n } // Fetch existing script element by src\n // It may have been added by another intance of this hook\n\n\n var script = document.querySelectorAll(\"script[src=\\\"\".concat(src, \"\\\"]\"))[0];\n\n if (!script) {\n // Create script\n script = document.createElement('script');\n script.src = src;\n script.async = true; // Add script to document body\n\n document.body.appendChild(script);\n }\n }, [src] // Only re-run effect if script src changes\n );\n}\n\nvar _default = useScript;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"appleAuthHelpers\", {\n enumerable: true,\n get: function get() {\n return _appleAuthHelpers.default;\n }\n});\nObject.defineProperty(exports, \"useScript\", {\n enumerable: true,\n get: function get() {\n return _useScript.default;\n }\n});\nexports.default = void 0;\n\nvar _AppleSigninButton = _interopRequireDefault(require(\"./AppleSigninButton/AppleSigninButton\"));\n\nvar _appleAuthHelpers = _interopRequireDefault(require(\"./appleAuthHelpers\"));\n\nvar _useScript = _interopRequireDefault(require(\"./hooks/useScript\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = _AppleSigninButton.default;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * Async wait for a variable till it gets defined in a parent\n *\n * • Usage Example: Waiting for async window.FB var to be initialized\n * - eg: `waitForVar('FB').then(FB => FB.test())`\n * - eg: `waitForVar('FB', { pollFrequency: 500, retries: 2, parent: window || global }).then(FB => FB.test())`\n * - eg: `waitForVar('FB', { retries: ({ retries } => retries * 500) }).then(FB => FB.test())`\n */\nvar waitForVar = function waitForVar(name) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n pollFrequency: 1000,\n retries: 100,\n parent: window\n },\n _ref$pollFrequency = _ref.pollFrequency,\n pollFrequency = _ref$pollFrequency === void 0 ? 1000 : _ref$pollFrequency,\n _ref$retries = _ref.retries,\n inRetries = _ref$retries === void 0 ? 100 : _ref$retries,\n _ref$parent = _ref.parent,\n parent = _ref$parent === void 0 ? window : _ref$parent;\n\n // eslint-disable-next-line no-prototype-builtins\n if (parent && parent.hasOwnProperty(name)) {\n return Promise.resolve(parent[name]);\n }\n\n if (!inRetries) {\n return Promise.resolve(undefined);\n }\n\n var retries = inRetries - 1;\n return new Promise(function (resolve) {\n return setTimeout(resolve, typeof pollFrequency === 'function' ? pollFrequency({\n retries: retries\n }) : pollFrequency);\n }).then(function () {\n return waitForVar(name, {\n pollFrequency: pollFrequency,\n parent: parent,\n retries: retries\n });\n });\n};\n\nvar _default = waitForVar;\nexports.default = _default;","/** @license React v17.0.2\n * react-dom.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 Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=0},m=function(e){function t(){return r(this,t),i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return a(t,e),c(t,[{key:\"style\",value:function(){var e=this.constructor.defaultProps.cssClass;return this.props.cssClass===e&&l[\"default\"].createElement(\"style\",{dangerouslySetInnerHTML:{__html:b[\"default\"]}})}},{key:\"containerStyle\",value:function(e){var t=e.isProcessing,o=e.isSdkLoaded,n=e.isDisabled,r={transition:\"opacity 0.5s\"};return(t||!o||n)&&(r.opacity=.6),s(r,this.props.containerStyle)}},{key:\"renderOwnButton\",value:function(e){var t=this.props,o=t.cssClass,n=t.size,r=t.icon,i=t.textButton,a=t.typeButton,c=t.buttonStyle,u=e.onClick,f=e.isDisabled,p=\"string\"==typeof r,d={};return f&&g(this.props.tag)&&(d.disabled=!0),l[\"default\"].createElement(\"span\",{style:this.containerStyle(e)},p&&l[\"default\"].createElement(\"link\",{rel:\"stylesheet\",href:\"https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css\"}),l[\"default\"].createElement(this.props.tag,s({type:a,className:o+\" \"+n,style:c,onClick:u},d),r&&p&&l[\"default\"].createElement(\"i\",{className:\"fa \"+r}),r&&!p&&r,i),this.style())}},{key:\"render\",value:function(){var e=this;return l[\"default\"].createElement(h[\"default\"],s({},this.props,{render:function(t){return e.renderOwnButton(t)}}))}}]),t}(l[\"default\"].Component);m.propTypes={textButton:p[\"default\"].string,typeButton:p[\"default\"].string,size:p[\"default\"].string,cssClass:p[\"default\"].string,icon:p[\"default\"].any,containerStyle:p[\"default\"].object,buttonStyle:p[\"default\"].object,tag:p[\"default\"].oneOfType([p[\"default\"].node,p[\"default\"].func])},m.defaultProps={textButton:\"Login with Facebook\",typeButton:\"button\",size:\"metro\",fields:\"name\",cssClass:\"kep-login-facebook\",tag:\"button\"},t[\"default\"]=m},function(e,t,o){t=e.exports=o(10)(),t.push([e.id,\".kep-login-facebook{font-family:Helvetica,sans-serif;font-weight:700;-webkit-font-smoothing:antialiased;color:#fff;cursor:pointer;display:inline-block;font-size:calc(.27548vw + 12.71074px);text-decoration:none;text-transform:uppercase;transition:background-color .3s,border-color .3s;background-color:#4c69ba;border:calc(.06887vw + .67769px) solid #4c69ba;padding:calc(.34435vw + 13.38843px) calc(.34435vw + 18.38843px)}.kep-login-facebook.small{padding:calc(.34435vw + 3.38843px) calc(.34435vw + 8.38843px)}.kep-login-facebook.medium{padding:calc(.34435vw + 8.38843px) calc(.34435vw + 13.38843px)}.kep-login-facebook.metro{border-radius:0}.kep-login-facebook .fa{margin-right:calc(.34435vw + 3.38843px)}\",\"\"]),t.locals={\"kep-login-facebook\":\"kep-login-facebook\",small:\"small\",medium:\"medium\",metro:\"metro\",fa:\"fa\"}},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t18 (which dropped IE support).\n */\nvar isTabKey = function isTabKey(event) {\n return event.code === \"Tab\" || event.keyCode === 9;\n};\nvar isEscKey = function isEscKey(event) {\n return event.code === \"Escape\" || event.keyCode === 27;\n};\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n _inherits(ModalPortal, _Component);\n\n function ModalPortal(props) {\n _classCallCheck(this, ModalPortal);\n\n var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n _this.setOverlayRef = function (overlay) {\n _this.overlay = overlay;\n _this.props.overlayRef && _this.props.overlayRef(overlay);\n };\n\n _this.setContentRef = function (content) {\n _this.content = content;\n _this.props.contentRef && _this.props.contentRef(content);\n };\n\n _this.afterClose = function () {\n var _this$props = _this.props,\n appElement = _this$props.appElement,\n ariaHideApp = _this$props.ariaHideApp,\n htmlOpenClassName = _this$props.htmlOpenClassName,\n bodyOpenClassName = _this$props.bodyOpenClassName,\n parentSelector = _this$props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Remove classes.\n bodyOpenClassName && classList.remove(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.remove(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n // Reset aria-hidden attribute if all modals have been removed\n if (ariaHideApp && ariaHiddenInstances > 0) {\n ariaHiddenInstances -= 1;\n\n if (ariaHiddenInstances === 0) {\n ariaAppHider.show(appElement);\n }\n }\n\n if (_this.props.shouldFocusAfterRender) {\n if (_this.props.shouldReturnFocusAfterClose) {\n focusManager.returnFocus(_this.props.preventScroll);\n focusManager.teardownScopedFocus();\n } else {\n focusManager.popWithoutFocus();\n }\n }\n\n if (_this.props.onAfterClose) {\n _this.props.onAfterClose();\n }\n\n _portalOpenInstances2.default.deregister(_this);\n };\n\n _this.open = function () {\n _this.beforeOpen();\n if (_this.state.afterOpen && _this.state.beforeClose) {\n clearTimeout(_this.closeTimer);\n _this.setState({ beforeClose: false });\n } else {\n if (_this.props.shouldFocusAfterRender) {\n focusManager.setupScopedFocus(_this.node);\n focusManager.markForFocusLater();\n }\n\n _this.setState({ isOpen: true }, function () {\n _this.openAnimationFrame = requestAnimationFrame(function () {\n _this.setState({ afterOpen: true });\n\n if (_this.props.isOpen && _this.props.onAfterOpen) {\n _this.props.onAfterOpen({\n overlayEl: _this.overlay,\n contentEl: _this.content\n });\n }\n });\n });\n }\n };\n\n _this.close = function () {\n if (_this.props.closeTimeoutMS > 0) {\n _this.closeWithTimeout();\n } else {\n _this.closeWithoutTimeout();\n }\n };\n\n _this.focusContent = function () {\n return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n };\n\n _this.closeWithTimeout = function () {\n var closesAt = Date.now() + _this.props.closeTimeoutMS;\n _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n });\n };\n\n _this.closeWithoutTimeout = function () {\n _this.setState({\n beforeClose: false,\n isOpen: false,\n afterOpen: false,\n closesAt: null\n }, _this.afterClose);\n };\n\n _this.handleKeyDown = function (event) {\n if (isTabKey(event)) {\n (0, _scopeTab2.default)(_this.content, event);\n }\n\n if (_this.props.shouldCloseOnEsc && isEscKey(event)) {\n event.stopPropagation();\n _this.requestClose(event);\n }\n };\n\n _this.handleOverlayOnClick = function (event) {\n if (_this.shouldClose === null) {\n _this.shouldClose = true;\n }\n\n if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n if (_this.ownerHandlesClose()) {\n _this.requestClose(event);\n } else {\n _this.focusContent();\n }\n }\n _this.shouldClose = null;\n };\n\n _this.handleContentOnMouseUp = function () {\n _this.shouldClose = false;\n };\n\n _this.handleOverlayOnMouseDown = function (event) {\n if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n event.preventDefault();\n }\n };\n\n _this.handleContentOnClick = function () {\n _this.shouldClose = false;\n };\n\n _this.handleContentOnMouseDown = function () {\n _this.shouldClose = false;\n };\n\n _this.requestClose = function (event) {\n return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n };\n\n _this.ownerHandlesClose = function () {\n return _this.props.onRequestClose;\n };\n\n _this.shouldBeClosed = function () {\n return !_this.state.isOpen && !_this.state.beforeClose;\n };\n\n _this.contentHasFocus = function () {\n return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n };\n\n _this.buildClassName = function (which, additional) {\n var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n base: CLASS_NAMES[which],\n afterOpen: CLASS_NAMES[which] + \"--after-open\",\n beforeClose: CLASS_NAMES[which] + \"--before-close\"\n };\n var className = classNames.base;\n if (_this.state.afterOpen) {\n className = className + \" \" + classNames.afterOpen;\n }\n if (_this.state.beforeClose) {\n className = className + \" \" + classNames.beforeClose;\n }\n return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n };\n\n _this.attributesFromObject = function (prefix, items) {\n return Object.keys(items).reduce(function (acc, name) {\n acc[prefix + \"-\" + name] = items[name];\n return acc;\n }, {});\n };\n\n _this.state = {\n afterOpen: false,\n beforeClose: false\n };\n\n _this.shouldClose = null;\n _this.moveFromContentToOverlay = null;\n return _this;\n }\n\n _createClass(ModalPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.isOpen) {\n this.open();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== \"production\") {\n if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n // eslint-disable-next-line no-console\n console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n }\n }\n\n if (this.props.isOpen && !prevProps.isOpen) {\n this.open();\n } else if (!this.props.isOpen && prevProps.isOpen) {\n this.close();\n }\n\n // Focus only needs to be set once when the modal is being opened\n if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n this.focusContent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.state.isOpen) {\n this.afterClose();\n }\n clearTimeout(this.closeTimer);\n cancelAnimationFrame(this.openAnimationFrame);\n }\n }, {\n key: \"beforeOpen\",\n value: function beforeOpen() {\n var _props = this.props,\n appElement = _props.appElement,\n ariaHideApp = _props.ariaHideApp,\n htmlOpenClassName = _props.htmlOpenClassName,\n bodyOpenClassName = _props.bodyOpenClassName,\n parentSelector = _props.parentSelector;\n\n\n var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n // Add classes.\n bodyOpenClassName && classList.add(parentDocument.body, bodyOpenClassName);\n\n htmlOpenClassName && classList.add(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n if (ariaHideApp) {\n ariaHiddenInstances += 1;\n ariaAppHider.hide(appElement);\n }\n\n _portalOpenInstances2.default.register(this);\n }\n\n // Don't steal focus from inner elements\n\n }, {\n key: \"render\",\n value: function render() {\n var _props2 = this.props,\n id = _props2.id,\n className = _props2.className,\n overlayClassName = _props2.overlayClassName,\n defaultStyles = _props2.defaultStyles,\n children = _props2.children;\n\n var contentStyles = className ? {} : defaultStyles.content;\n var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n if (this.shouldBeClosed()) {\n return null;\n }\n\n var overlayProps = {\n ref: this.setOverlayRef,\n className: this.buildClassName(\"overlay\", overlayClassName),\n style: _extends({}, overlayStyles, this.props.style.overlay),\n onClick: this.handleOverlayOnClick,\n onMouseDown: this.handleOverlayOnMouseDown\n };\n\n var contentProps = _extends({\n id: id,\n ref: this.setContentRef,\n style: _extends({}, contentStyles, this.props.style.content),\n className: this.buildClassName(\"content\", className),\n tabIndex: \"-1\",\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleContentOnMouseDown,\n onMouseUp: this.handleContentOnMouseUp,\n onClick: this.handleContentOnClick,\n role: this.props.role,\n \"aria-label\": this.props.contentLabel\n }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n \"data-testid\": this.props.testId\n });\n\n var contentElement = this.props.contentElement(contentProps, children);\n return this.props.overlayElement(overlayProps, contentElement);\n }\n }]);\n\n return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n style: {\n overlay: {},\n content: {}\n },\n defaultStyles: {}\n};\nModalPortal.propTypes = {\n isOpen: _propTypes2.default.bool.isRequired,\n defaultStyles: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n style: _propTypes2.default.shape({\n content: _propTypes2.default.object,\n overlay: _propTypes2.default.object\n }),\n className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n parentSelector: _propTypes2.default.func,\n bodyOpenClassName: _propTypes2.default.string,\n htmlOpenClassName: _propTypes2.default.string,\n ariaHideApp: _propTypes2.default.bool,\n appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n onAfterOpen: _propTypes2.default.func,\n onAfterClose: _propTypes2.default.func,\n onRequestClose: _propTypes2.default.func,\n closeTimeoutMS: _propTypes2.default.number,\n shouldFocusAfterRender: _propTypes2.default.bool,\n shouldCloseOnOverlayClick: _propTypes2.default.bool,\n shouldReturnFocusAfterClose: _propTypes2.default.bool,\n preventScroll: _propTypes2.default.bool,\n role: _propTypes2.default.string,\n contentLabel: _propTypes2.default.string,\n aria: _propTypes2.default.object,\n data: _propTypes2.default.object,\n children: _propTypes2.default.node,\n shouldCloseOnEsc: _propTypes2.default.bool,\n overlayRef: _propTypes2.default.func,\n contentRef: _propTypes2.default.func,\n id: _propTypes2.default.string,\n overlayElement: _propTypes2.default.func,\n contentElement: _propTypes2.default.func,\n testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n if (globalElement) {\n if (globalElement.removeAttribute) {\n globalElement.removeAttribute(\"aria-hidden\");\n } else if (globalElement.length != null) {\n globalElement.forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n } else {\n document.querySelectorAll(globalElement).forEach(function (element) {\n return element.removeAttribute(\"aria-hidden\");\n });\n }\n }\n globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var check = globalElement || {};\n console.log(\"ariaAppHider ----------\");\n console.log(check.nodeName, check.className, check.id);\n console.log(\"end ariaAppHider ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n if (!nodeList || !nodeList.length) {\n throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n }\n}\n\nfunction setElement(element) {\n var useElement = element;\n if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n var el = document.querySelectorAll(useElement);\n assertNodeList(el, useElement);\n useElement = el;\n }\n globalElement = useElement || globalElement;\n return globalElement;\n}\n\nfunction validateElement(appElement) {\n var el = appElement || globalElement;\n if (el) {\n return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n } else {\n (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n return [];\n }\n}\n\nfunction hide(appElement) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var el = _step.value;\n\n el.setAttribute(\"aria-hidden\", \"true\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n\nfunction show(appElement) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var el = _step2.value;\n\n el.removeAttribute(\"aria-hidden\");\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n after = void 0,\n instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n var _arr = [before, after];\n\n for (var _i = 0; _i < _arr.length; _i++) {\n var item = _arr[_i];\n if (!item) continue;\n item.parentNode && item.parentNode.removeChild(item);\n }\n before = after = null;\n instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n console.log(\"bodyTrap ----------\");\n console.log(instances.length);\n var _arr2 = [before, after];\n for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n var item = _arr2[_i2];\n var check = item || {};\n console.log(check.nodeName, check.className, check.id);\n }\n console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n if (instances.length === 0) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Open instances > 0 expected\");\n }\n return;\n }\n instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n if (!before && !after) {\n before = document.createElement(\"div\");\n before.setAttribute(\"data-react-modal-body-trap\", \"\");\n before.style.position = \"absolute\";\n before.style.opacity = \"0\";\n before.setAttribute(\"tabindex\", \"0\");\n before.addEventListener(\"focus\", focusContent);\n after = before.cloneNode();\n after.addEventListener(\"focus\", focusContent);\n }\n\n instances = openInstances;\n\n if (instances.length > 0) {\n // Add focus trap\n if (document.body.firstChild !== before) {\n document.body.insertBefore(before, document.body.firstChild);\n }\n if (document.body.lastChild !== after) {\n document.body.appendChild(after);\n }\n } else {\n // Remove focus trap\n if (before.parentElement) {\n before.parentElement.removeChild(before);\n }\n if (after.parentElement) {\n after.parentElement.removeChild(after);\n }\n }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n var htmlElement = document.getElementsByTagName(\"html\")[0];\n for (var cls in htmlClassList) {\n removeClass(htmlElement, htmlClassList[cls]);\n }\n\n var body = document.body;\n for (var _cls in docBodyClassList) {\n removeClass(body, docBodyClassList[_cls]);\n }\n\n htmlClassList = {};\n docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n var classes = document.getElementsByTagName(\"html\")[0].className;\n var buffer = \"Show tracked classes:\\n\\n\";\n\n buffer += \" (\" + classes + \"):\\n \";\n for (var x in htmlClassList) {\n buffer += \" \" + x + \" \" + htmlClassList[x] + \"\\n \";\n }\n\n classes = document.body.className;\n\n buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n \";\n for (var _x in docBodyClassList) {\n buffer += \" \" + _x + \" \" + docBodyClassList[_x] + \"\\n \";\n }\n\n buffer += \"\\n\";\n\n console.log(buffer);\n }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n if (!poll[className]) {\n poll[className] = 0;\n }\n poll[className] += 1;\n return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n if (poll[className]) {\n poll[className] -= 1;\n }\n return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n incrementReference(poll, className);\n classListRef.add(className);\n });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll The poll to be used.\n * @param {Array} classes The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n classes.forEach(function (className) {\n decrementReference(poll, className);\n poll[className] === 0 && classListRef.remove(className);\n });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n * It may contain more then one class\n * with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"focusManager ----------\");\n focusLaterElements.forEach(function (f) {\n var check = f || {};\n console.log(check.nodeName, check.className, check.id);\n });\n console.log(\"end focusManager ----------\");\n }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n if (!modalElement) {\n return;\n }\n // need to see how jQuery shims document.on('focusin') so we don't need the\n // setTimeout, firefox doesn't support focusin, if it did, we could focus\n // the element outside of a setTimeout. Side-effect of this implementation\n // is that the document.body gets focus, and then we focus our element right\n // after, seems fine.\n setTimeout(function () {\n if (modalElement.contains(document.activeElement)) {\n return;\n }\n var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n el.focus();\n }, 0);\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var toFocus = null;\n try {\n if (focusLaterElements.length !== 0) {\n toFocus = focusLaterElements.pop();\n toFocus.focus({ preventScroll: preventScroll });\n }\n return;\n } catch (e) {\n console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n modalElement = element;\n\n if (window.addEventListener) {\n window.addEventListener(\"blur\", handleBlur, false);\n document.addEventListener(\"focus\", handleFocus, true);\n } else {\n window.attachEvent(\"onBlur\", handleBlur);\n document.attachEvent(\"onFocus\", handleFocus);\n }\n}\n\nfunction teardownScopedFocus() {\n modalElement = null;\n\n if (window.addEventListener) {\n window.removeEventListener(\"blur\", handleBlur);\n document.removeEventListener(\"focus\", handleFocus);\n } else {\n window.detachEvent(\"onBlur\", handleBlur);\n document.detachEvent(\"onFocus\", handleFocus);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n var _this = this;\n\n _classCallCheck(this, PortalOpenInstances);\n\n this.register = function (openInstance) {\n if (_this.openInstances.indexOf(openInstance) !== -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n }\n return;\n }\n _this.openInstances.push(openInstance);\n _this.emit(\"register\");\n };\n\n this.deregister = function (openInstance) {\n var index = _this.openInstances.indexOf(openInstance);\n if (index === -1) {\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n }\n return;\n }\n _this.openInstances.splice(index, 1);\n _this.emit(\"deregister\");\n };\n\n this.subscribe = function (callback) {\n _this.subscribers.push(callback);\n };\n\n this.emit = function (eventType) {\n _this.subscribers.forEach(function (subscriber) {\n return subscriber(eventType,\n // shallow copy to avoid accidental mutation\n _this.openInstances.slice());\n });\n };\n\n this.openInstances = [];\n this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n console.log(\"portalOpenInstances ----------\");\n console.log(portalOpenInstances.openInstances.length);\n portalOpenInstances.openInstances.forEach(function (p) {\n return console.log(p);\n });\n console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n var tabbable = (0, _tabbable2.default)(node);\n\n if (!tabbable.length) {\n // Do nothing, since there are no elements that can receive focus.\n event.preventDefault();\n return;\n }\n\n var target = void 0;\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var activeElement = getActiveElement();\n\n // proceed with default browser behavior on tab.\n // Focus on last element on shift + tab.\n if (node === activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n // Safari radio issue.\n //\n // Safari does not move the focus to the radio button,\n // so we need to force it to really walk through all elements.\n //\n // This is very error prone, since we are trying to guess\n // if it is a safari browser from the first occurence between\n // chrome or safari.\n //\n // The chrome user agent contains the first ocurrence\n // as the 'chrome/version' and later the 'safari/version'.\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n // If we are not in safari desktop, let the browser control\n // the focus\n if (!isSafariDesktop) return;\n\n var x = tabbable.indexOf(activeElement);\n\n if (x > -1) {\n x += shiftKey ? -1 : 1;\n }\n\n target = tabbable[x];\n\n // If the tabbable element does not exist,\n // focus head/tail based on shiftKey\n if (typeof target === \"undefined\") {\n event.preventDefault();\n target = shiftKey ? tail : head;\n target.focus();\n return;\n }\n\n event.preventDefault();\n\n target.focus();\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar DISPLAY_NONE = \"none\";\nvar DISPLAY_CONTENTS = \"contents\";\n\nvar tabbableNode = /input|select|textarea|button|object|iframe/;\n\nfunction isNotOverflowing(element, style) {\n return style.getPropertyValue(\"overflow\") !== \"visible\" ||\n // if 'overflow: visible' set, check if there is actually any overflow\n element.scrollWidth <= 0 && element.scrollHeight <= 0;\n}\n\nfunction hidesContents(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n // If the node is empty, this is good enough\n if (zeroSize && !element.innerHTML) return true;\n\n try {\n // Otherwise we need to check some styles\n var style = window.getComputedStyle(element);\n var displayValue = style.getPropertyValue(\"display\");\n return zeroSize ? displayValue !== DISPLAY_CONTENTS && isNotOverflowing(element, style) : displayValue === DISPLAY_NONE;\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.warn(\"Failed to inspect element style\");\n return false;\n }\n}\n\nfunction visible(element) {\n var parentElement = element;\n var rootNode = element.getRootNode && element.getRootNode();\n while (parentElement) {\n if (parentElement === document.body) break;\n\n // if we are not hidden yet, skip to checking outside the Web Component\n if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n if (hidesContents(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute(\"tabindex\");\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n }, []);\n return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","/** @license React v16.13.1\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';var 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?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(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 t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\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","\"use strict\";\n\n(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.React, global.propTypes);\n global.undefined = mod.exports;\n }\n})(void 0, function (exports, _react, _propTypes) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = undefined;\n\n var _react2 = _interopRequireDefault(_react);\n\n var _propTypes2 = _interopRequireDefault(_propTypes);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n 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 }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n var PRECISION = 0.0001;\n\n var isEqual = function isEqual(n1, n2) {\n return Math.abs(n1 - n2) < PRECISION;\n };\n\n var TextTruncate = function (_Component) {\n _inherits(TextTruncate, _Component);\n\n function TextTruncate() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, TextTruncate);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(TextTruncate)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"onResize\", function () {\n if (_this.rafId) {\n window.cancelAnimationFrame(_this.rafId);\n }\n\n _this.rafId = window.requestAnimationFrame(_this.update.bind(_assertThisInitialized(_this)));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onToggled\", function (truncated) {\n typeof _this.props.onToggled === 'function' && setTimeout(function () {\n return _this.props.onToggled(truncated);\n }, 0);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTruncated\", function () {\n typeof _this.props.onTruncated === 'function' && setTimeout(function () {\n return _this.props.onTruncated();\n }, 0);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onCalculated\", function () {\n typeof _this.props.onCalculated === 'function' && setTimeout(function () {\n return _this.props.onCalculated();\n }, 0);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"update\", function () {\n var style = window.getComputedStyle(_this.scope);\n var font = [style['font-weight'], style['font-style'], style['font-size'], style['font-family'], style['letter-spacing']].join(' ');\n _this.canvas.font = font;\n\n _this.forceUpdate();\n });\n\n return _this;\n }\n\n _createClass(TextTruncate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var canvas = document.createElement('canvas');\n var docFragment = document.createDocumentFragment();\n var style = window.getComputedStyle(this.scope);\n var font = [style['font-weight'], style['font-style'], style['font-size'], style['font-family']].join(' ');\n docFragment.appendChild(canvas);\n this.canvas = canvas.getContext('2d');\n this.canvas.font = font;\n this.forceUpdate();\n window.addEventListener('resize', this.onResize);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('resize', this.onResize);\n\n if (this.rafId) {\n window.cancelAnimationFrame(this.rafId);\n }\n }\n }, {\n key: \"measureWidth\",\n value: function measureWidth(text) {\n return this.canvas.measureText(text).width;\n }\n }, {\n key: \"getRenderText\",\n value: function getRenderText() {\n var _this$props = this.props,\n containerClassName = _this$props.containerClassName,\n element = _this$props.element,\n line = _this$props.line,\n onCalculated = _this$props.onCalculated,\n onTruncated = _this$props.onTruncated,\n onToggled = _this$props.onToggled,\n text = _this$props.text,\n textElement = _this$props.textElement,\n textTruncateChild = _this$props.textTruncateChild,\n truncateText = _this$props.truncateText,\n maxCalculateTimes = _this$props.maxCalculateTimes,\n props = _objectWithoutProperties(_this$props, [\"containerClassName\", \"element\", \"line\", \"onCalculated\", \"onTruncated\", \"onToggled\", \"text\", \"textElement\", \"textTruncateChild\", \"truncateText\", \"maxCalculateTimes\"]);\n\n var scopeWidth = this.scope.getBoundingClientRect().width; // return if display:none\n\n if (scopeWidth === 0) {\n return null;\n }\n\n var fullTextWidth = this.measureWidth(text); // return if all of text can be displayed\n\n if (scopeWidth > fullTextWidth || isEqual(scopeWidth, fullTextWidth)) {\n this.onToggled(false);\n return (0, _react.createElement)(textElement, props, text);\n }\n\n var childText = '';\n\n if (textTruncateChild && typeof textTruncateChild.type === 'string') {\n var type = textTruncateChild.type;\n\n if (type.indexOf('span') >= 0 || type.indexOf('a') >= 0) {\n childText = textTruncateChild.props.children;\n }\n }\n\n var currentPos = 1;\n var maxTextLength = text.length;\n var truncatedText = '';\n var splitPos = 0;\n var startPos = 0;\n var displayLine = line;\n var width = 0;\n var lastIsEng = false;\n var isPrevLineWithoutSpace = false;\n var lastPos = 0;\n var lastSpaceIndex = -1;\n var ext = '';\n var loopCnt = 0;\n\n while (displayLine-- > 0) {\n ext = displayLine ? '' : truncateText + (childText ? ' ' + childText : '');\n\n while (currentPos <= maxTextLength) {\n truncatedText = text.substr(startPos, currentPos);\n width = this.measureWidth(truncatedText + ext);\n\n if (width < scopeWidth) {\n splitPos = text.indexOf(' ', currentPos + 1);\n\n if (splitPos === -1) {\n currentPos += 1;\n lastIsEng = false;\n } else {\n lastIsEng = true;\n currentPos = splitPos;\n }\n } else {\n do {\n if (loopCnt++ >= maxCalculateTimes) {\n break;\n }\n\n truncatedText = text.substr(startPos, currentPos);\n\n if (!displayLine) {\n currentPos--;\n }\n\n if (truncatedText[truncatedText.length - 1] === ' ') {\n truncatedText = text.substr(startPos, currentPos - 1);\n }\n\n if (lastIsEng) {\n lastSpaceIndex = truncatedText.lastIndexOf(' ');\n\n if (lastSpaceIndex > -1) {\n currentPos = lastSpaceIndex;\n\n if (displayLine) {\n currentPos++;\n }\n\n truncatedText = text.substr(startPos, currentPos);\n } else {\n currentPos--;\n truncatedText = text.substr(startPos, currentPos);\n }\n } else {\n currentPos--;\n truncatedText = text.substr(startPos, currentPos);\n }\n\n width = this.measureWidth(truncatedText + ext);\n } while ((width > scopeWidth || isEqual(width, scopeWidth)) && truncatedText.length > 0);\n\n startPos += currentPos;\n break;\n }\n }\n\n if (currentPos >= maxTextLength) {\n startPos = maxTextLength;\n break;\n }\n\n if (lastIsEng && !isPrevLineWithoutSpace && text.substr(lastPos, currentPos).indexOf(' ') === -1) {\n isPrevLineWithoutSpace = text.substr(lastPos, currentPos).indexOf(' ') === -1;\n displayLine--;\n }\n\n lastPos = currentPos + 1;\n }\n\n if (startPos === maxTextLength) {\n this.onToggled(false);\n return (0, _react.createElement)(textElement, props, text);\n }\n\n this.onTruncated();\n this.onToggled(true);\n return _react2[\"default\"].createElement(\"span\", props, (0, _react.createElement)(textElement, props, text.substr(0, startPos) + truncateText + ' '), textTruncateChild);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n element = _this$props2.element,\n text = _this$props2.text,\n _this$props2$style = _this$props2.style,\n style = _this$props2$style === void 0 ? {} : _this$props2$style,\n containerClassName = _this$props2.containerClassName,\n line = _this$props2.line,\n onCalculated = _this$props2.onCalculated,\n onTruncated = _this$props2.onTruncated,\n onToggled = _this$props2.onToggled,\n textElement = _this$props2.textElement,\n textTruncateChild = _this$props2.textTruncateChild,\n truncateText = _this$props2.truncateText,\n maxCalculateTimes = _this$props2.maxCalculateTimes,\n props = _objectWithoutProperties(_this$props2, [\"element\", \"text\", \"style\", \"containerClassName\", \"line\", \"onCalculated\", \"onTruncated\", \"onToggled\", \"textElement\", \"textTruncateChild\", \"truncateText\", \"maxCalculateTimes\"]);\n\n var fontWeight = style.fontWeight,\n fontStyle = style.fontStyle,\n fontSize = style.fontSize,\n fontFamily = style.fontFamily;\n var renderText = this.scope && line ? this.getRenderText() : (0, _react.createElement)(textElement, props, text);\n var rootProps = {\n ref: function ref(el) {\n _this2.scope = el;\n },\n className: containerClassName,\n style: {\n overflow: 'hidden',\n fontWeight: fontWeight,\n fontStyle: fontStyle,\n fontSize: fontSize,\n fontFamily: fontFamily\n }\n };\n this.scope && this.onCalculated();\n return (0, _react.createElement)(element, rootProps, renderText);\n }\n }]);\n\n return TextTruncate;\n }(_react.Component);\n\n _defineProperty(TextTruncate, \"propTypes\", {\n containerClassName: _propTypes2[\"default\"].string,\n element: _propTypes2[\"default\"].string,\n line: _propTypes2[\"default\"].oneOfType([_propTypes2[\"default\"].number, _propTypes2[\"default\"].bool]),\n onCalculated: _propTypes2[\"default\"].func,\n onTruncated: _propTypes2[\"default\"].func,\n onToggled: _propTypes2[\"default\"].func,\n text: _propTypes2[\"default\"].string,\n textElement: _propTypes2[\"default\"].elementType,\n textTruncateChild: _propTypes2[\"default\"].node,\n truncateText: _propTypes2[\"default\"].string,\n maxCalculateTimes: _propTypes2[\"default\"].number\n });\n\n _defineProperty(TextTruncate, \"defaultProps\", {\n element: 'div',\n line: 1,\n text: '',\n textElement: 'span',\n truncateText: '…',\n maxCalculateTimes: 10\n });\n\n exports.default = TextTruncate;\n ;\n module.exports = exports.default;\n});\n","/** @license React v17.0.2\n * react-jsx-runtime.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'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.2\n * react.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'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.StackFrame = factory();\n }\n}(this, function() {\n 'use strict';\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function() {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n var objectProps = ['evalOrigin'];\n\n var props = booleanProps.concat(numericProps, stringProps, arrayProps, objectProps);\n\n function StackFrame(obj) {\n if (!obj) return;\n for (var i = 0; i < props.length; i++) {\n if (obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function() {\n return this.args;\n },\n setArgs: function(v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n this.args = v;\n },\n\n getEvalOrigin: function() {\n return this.evalOrigin;\n },\n setEvalOrigin: function(v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n\n toString: function() {\n var fileName = this.getFileName() || '';\n var lineNumber = this.getLineNumber() || '';\n var columnNumber = this.getColumnNumber() || '';\n var functionName = this.getFunctionName() || '';\n if (this.getIsEval()) {\n if (fileName) {\n return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return '[eval]:' + lineNumber + ':' + columnNumber;\n }\n if (functionName) {\n return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return fileName + ':' + lineNumber + ':' + columnNumber;\n }\n };\n\n StackFrame.fromString = function StackFrame$$fromString(str) {\n var argsStartIndex = str.indexOf('(');\n var argsEndIndex = str.lastIndexOf(')');\n\n var functionName = str.substring(0, argsStartIndex);\n var args = str.substring(argsStartIndex + 1, argsEndIndex).split(',');\n var locationString = str.substring(argsEndIndex + 1);\n\n if (locationString.indexOf('@') === 0) {\n var parts = /@(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(locationString, '');\n var fileName = parts[1];\n var lineNumber = parts[2];\n var columnNumber = parts[3];\n }\n\n return new StackFrame({\n functionName: functionName,\n args: args || undefined,\n fileName: fileName,\n lineNumber: lineNumber || undefined,\n columnNumber: columnNumber || undefined\n });\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function(p) {\n return function(v) {\n this[p] = Boolean(v);\n };\n })(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function(p) {\n return function(v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n this[p] = Number(v);\n };\n })(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function(p) {\n return function(v) {\n this[p] = String(v);\n };\n })(stringProps[k]);\n }\n\n return StackFrame;\n}));\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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"bf7454c8\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"yolomeal:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkyolomeal\"] = self[\"webpackChunkyolomeal\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nconst MAX_SIGNED_31_BIT_INT = 1073741823;\n\nconst commonjsGlobal =\n typeof globalThis !== \"undefined\" // 'global proper'\n ? // eslint-disable-next-line no-undef\n globalThis\n : typeof window !== \"undefined\"\n ? window // Browser\n : typeof global !== \"undefined\"\n ? global // node.js\n : {};\n\nfunction getUniqueId() {\n let key = \"__global_unique_id__\";\n return (commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1);\n}\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n let handlers = [];\n return {\n on(handler) {\n handlers.push(handler);\n },\n\n off(handler) {\n handlers = handlers.filter(h => h !== handler);\n },\n\n get() {\n return value;\n },\n\n set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(handler => handler(value, changedBits));\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nexport default function createReactContext(defaultValue, calculateChangedBits) {\n const contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n class Provider extends React.Component {\n emitter = createEventEmitter(this.props.value);\n\n static childContextTypes = {\n [contextProp]: PropTypes.object.isRequired\n };\n\n getChildContext() {\n return {\n [contextProp]: this.emitter\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n let oldValue = this.props.value;\n let newValue = nextProps.value;\n let changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits =\n typeof calculateChangedBits === \"function\"\n ? calculateChangedBits(oldValue, newValue)\n : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== \"production\") {\n warning(\n (changedBits & MAX_SIGNED_31_BIT_INT) === changedBits,\n \"calculateChangedBits: Expected the return value to be a \" +\n \"31-bit integer. Instead received: \" +\n changedBits\n );\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n }\n\n render() {\n return this.props.children;\n }\n }\n\n class Consumer extends React.Component {\n static contextTypes = {\n [contextProp]: PropTypes.object\n };\n\n observedBits;\n\n state = {\n value: this.getValue()\n };\n\n componentWillReceiveProps(nextProps) {\n let { observedBits } = nextProps;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n let { observedBits } = this.props;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n }\n\n getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n }\n\n onUpdate = (newValue, changedBits) => {\n const observedBits = this.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n this.setState({ value: this.getValue() });\n }\n };\n\n render() {\n return onlyChild(this.props.children)(this.state.value);\n }\n }\n\n return {\n Provider,\n Consumer\n };\n}\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport createReactContext from \"./miniCreateReactContext\";\n\nexport default React.createContext || createReactContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"./createContext\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","export default class ConditionsManager {\n constructor(app, startParams) {\n this.app = app;\n this.startParams = startParams;\n this.conditions = [];\n this.hasStarted = false;\n this.createConditionFromFilter = (filter) => {\n if (filter.value.length) {\n const resultCondition = mapCondition(filter);\n if (resultCondition.type) {\n return resultCondition;\n }\n }\n return undefined;\n };\n this.durationInt = null;\n }\n setConditions(conditions) {\n this.conditions = conditions;\n }\n async fetchConditions(projectId, token) {\n try {\n const r = await fetch(`${this.app.options.ingestPoint}/v1/web/conditions/${projectId}`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n const { conditions } = (await r.json());\n const mappedConditions = [];\n conditions.forEach((c) => {\n const filters = c.filters;\n filters.forEach((filter) => {\n let cond;\n if (filter.type === 'fetch') {\n cond = {\n type: 'network_request',\n subConditions: [],\n name: c.name,\n };\n filter.filters.forEach((f) => {\n const subCond = this.createConditionFromFilter(f);\n if (subCond) {\n ;\n cond.subConditions.push(subCond);\n }\n });\n }\n else {\n cond = this.createConditionFromFilter(filter);\n }\n if (cond) {\n if (cond.type === 'session_duration') {\n this.processDuration(cond.value[0], c.name);\n }\n mappedConditions.push(Object.assign(Object.assign({}, cond), { name: c.name }));\n }\n });\n });\n this.conditions = mappedConditions;\n }\n catch (e) {\n this.app.debug.error('Critical: cannot fetch start conditions');\n }\n }\n trigger(conditionName) {\n if (this.hasStarted)\n return;\n try {\n this.hasStarted = true;\n void this.app.start(this.startParams, undefined, conditionName);\n }\n catch (e) {\n this.app.debug.error(e);\n }\n }\n processMessage(message) {\n if (this.hasStarted)\n return;\n switch (message[0]) {\n case 78 /* Type.JSException */:\n this.jsExceptionEvent(message);\n break;\n case 27 /* Type.CustomEvent */:\n this.customEvent(message);\n break;\n case 69 /* Type.MouseClick */:\n this.clickEvent(message);\n break;\n case 4 /* Type.SetPageLocation */:\n this.pageLocationEvent(message);\n break;\n case 83 /* Type.NetworkRequest */:\n this.networkRequest(message);\n break;\n default:\n break;\n }\n }\n processFlags(flag) {\n const flagConds = this.conditions.filter((c) => c.type === 'feature_flag');\n if (flagConds.length) {\n flagConds.forEach((flagCond) => {\n const operator = operators[flagCond.operator];\n if (operator && flag.find((f) => operator(f.key, flagCond.value))) {\n this.trigger(flagCond.name);\n }\n });\n }\n }\n processDuration(durationMs, condName) {\n this.durationInt = setInterval(() => {\n const sessionLength = performance.now();\n if (sessionLength > durationMs) {\n this.trigger(condName);\n }\n }, 1000);\n this.app.attachStopCallback(() => {\n if (this.durationInt) {\n clearInterval(this.durationInt);\n }\n });\n }\n networkRequest(message) {\n // method - 2, url - 3, status - 6, duration - 8\n const reqConds = this.conditions.filter((c) => c.type === 'network_request');\n if (!reqConds.length)\n return;\n reqConds.forEach((reqCond) => {\n const validSubConditions = reqCond.subConditions.filter((c) => c.operator !== 'isAny');\n if (validSubConditions.length) {\n const allPass = validSubConditions.every((subCond) => {\n let value;\n switch (subCond.key) {\n case 'url':\n value = message[3];\n break;\n case 'status':\n value = message[6];\n break;\n case 'method':\n value = message[2];\n break;\n case 'duration':\n value = message[8];\n break;\n default:\n break;\n }\n const operator = operators[subCond.operator];\n // @ts-ignore\n if (operator && operator(value, subCond.value)) {\n return true;\n }\n });\n if (allPass) {\n this.trigger(reqCond.name);\n }\n }\n else if (validSubConditions.length === 0 && reqCond.subConditions.length) {\n this.trigger(reqCond.name);\n }\n });\n }\n customEvent(message) {\n // name - 1, payload - 2\n const evConds = this.conditions.filter((c) => c.type === 'custom_event');\n if (evConds.length) {\n evConds.forEach((evCond) => {\n const operator = operators[evCond.operator];\n if (operator &&\n (operator(message[1], evCond.value) || operator(message[2], evCond.value))) {\n this.trigger(evCond.name);\n }\n });\n }\n }\n clickEvent(message) {\n // label - 3, selector - 4\n const clickCond = this.conditions.filter((c) => c.type === 'click');\n if (clickCond.length) {\n clickCond.forEach((click) => {\n const operator = operators[click.operator];\n if (operator && (operator(message[3], click.value) || operator(message[4], click.value))) {\n this.trigger(click.name);\n }\n });\n }\n }\n pageLocationEvent(message) {\n // url - 1\n const urlConds = this.conditions.filter((c) => c.type === 'visited_url');\n if (urlConds) {\n urlConds.forEach((urlCond) => {\n const operator = operators[urlCond.operator];\n if (operator && operator(message[1], urlCond.value)) {\n this.trigger(urlCond.name);\n }\n });\n }\n }\n jsExceptionEvent(message) {\n // name - 1, message - 2, payload - 3\n const testedValues = [message[1], message[2], message[3]];\n const exceptionConds = this.conditions.filter((c) => c.type === 'exception');\n if (exceptionConds) {\n exceptionConds.forEach((exceptionCond) => {\n const operator = operators[exceptionCond.operator];\n if (operator && testedValues.some((val) => operator(val, exceptionCond.value))) {\n this.trigger(exceptionCond.name);\n }\n });\n }\n }\n}\nconst operators = {\n is: (val, target) => target.some((t) => val.includes(t)),\n isAny: () => true,\n isNot: (val, target) => !target.some((t) => val.includes(t)),\n contains: (val, target) => target.some((t) => val.includes(t)),\n notContains: (val, target) => !target.some((t) => val.includes(t)),\n startsWith: (val, target) => target.some((t) => val.startsWith(t)),\n endsWith: (val, target) => target.some((t) => val.endsWith(t)),\n greaterThan: (val, target) => val > target,\n greaterOrEqual: (val, target) => val >= target,\n lessOrEqual: (val, target) => val <= target,\n lessThan: (val, target) => val < target,\n};\nconst mapCondition = (condition) => {\n const opMap = {\n on: 'is',\n notOn: 'isNot',\n '\\u003e': 'greaterThan',\n '\\u003c': 'lessThan',\n '\\u003d': 'is',\n '\\u003c=': 'lessOrEqual',\n '\\u003e=': 'greaterOrEqual',\n };\n const mapOperator = (operator) => {\n const keys = Object.keys(opMap);\n // @ts-ignore\n if (keys.includes(operator))\n return opMap[operator];\n };\n let con = {\n type: '',\n operator: '',\n value: condition.value,\n key: '',\n };\n switch (condition.type) {\n case 'click':\n con = {\n type: 'click',\n operator: mapOperator(condition.operator),\n value: condition.value,\n key: '',\n };\n break;\n case 'location':\n con = {\n type: 'visited_url',\n // @ts-ignore\n operator: condition.operator,\n value: condition.value,\n key: '',\n };\n break;\n case 'custom':\n con = {\n type: 'custom_event',\n // @ts-ignore\n operator: condition.operator,\n value: condition.value,\n key: '',\n };\n break;\n case 'metadata':\n con = {\n // @ts-ignore\n type: condition.source === 'featureFlag' ? 'feature_flag' : condition.type,\n // @ts-ignore\n operator: condition.operator,\n value: condition.value,\n key: '',\n };\n break;\n case 'error':\n con = {\n type: 'exception',\n // @ts-ignore\n operator: condition.operator,\n value: condition.value,\n key: '',\n };\n break;\n case 'duration':\n con = {\n type: 'session_duration',\n // @ts-ignore\n value: condition.value[0],\n key: '',\n };\n break;\n case 'fetchUrl':\n con = {\n type: 'network_request',\n key: 'url',\n operator: condition.operator,\n value: condition.value,\n };\n break;\n case 'fetchStatusCode':\n con = {\n type: 'network_request',\n key: 'status',\n operator: mapOperator(condition.operator),\n value: condition.value,\n };\n break;\n case 'fetchMethod':\n con = {\n type: 'network_request',\n key: 'method',\n operator: mapOperator(condition.operator),\n value: condition.value,\n };\n break;\n case 'fetchDuration':\n con = {\n type: 'network_request',\n key: 'duration',\n operator: mapOperator(condition.operator),\n value: condition.value,\n };\n break;\n }\n // @ts-ignore\n return con;\n};\n","export default class FeatureFlags {\n constructor(app) {\n this.app = app;\n this.flags = [];\n this.storageKey = '__openreplay_flags';\n const persistFlags = this.app.sessionStorage.getItem(this.storageKey);\n if (persistFlags) {\n const persistFlagsStrArr = persistFlags.split(';').filter(Boolean);\n this.flags = persistFlagsStrArr.map((flag) => JSON.parse(flag));\n }\n }\n getFeatureFlag(flagName) {\n return this.flags.find((flag) => flag.key === flagName);\n }\n isFlagEnabled(flagName) {\n return this.flags.findIndex((flag) => flag.key === flagName) !== -1;\n }\n onFlagsLoad(cb) {\n this.onFlagsCb = cb;\n }\n async reloadFlags(token) {\n const persistFlagsStr = this.app.sessionStorage.getItem(this.storageKey);\n const persistFlags = {};\n if (persistFlagsStr) {\n const persistArray = persistFlagsStr.split(';').filter(Boolean);\n persistArray.forEach((flag) => {\n const flagObj = JSON.parse(flag);\n persistFlags[flagObj.key] = { key: flagObj.key, value: flagObj.value };\n });\n }\n const sessionInfo = this.app.session.getInfo();\n const userInfo = this.app.session.userInfo;\n const requestObject = {\n projectID: sessionInfo.projectID,\n userID: sessionInfo.userID,\n metadata: sessionInfo.metadata,\n referrer: document.referrer,\n os: userInfo.userOS,\n device: userInfo.userDevice,\n country: userInfo.userCountry,\n state: userInfo.userState,\n city: userInfo.userCity,\n browser: userInfo.userBrowser,\n persistFlags: persistFlags,\n };\n const authToken = token !== null && token !== void 0 ? token : this.app.session.getSessionToken();\n const resp = await fetch(this.app.options.ingestPoint + '/v1/web/feature-flags', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${authToken}`,\n },\n body: JSON.stringify(requestObject),\n });\n if (resp.status === 200) {\n const data = await resp.json();\n return this.handleFlags(data.flags);\n }\n }\n handleFlags(flags) {\n var _a;\n const persistFlags = [];\n flags.forEach((flag) => {\n if (flag.is_persist)\n persistFlags.push(flag);\n });\n let str = '';\n const uniquePersistFlags = this.diffPersist(persistFlags);\n uniquePersistFlags.forEach((flag) => {\n str += `${JSON.stringify(flag)};`;\n });\n this.app.sessionStorage.setItem(this.storageKey, str);\n this.flags = flags;\n return (_a = this.onFlagsCb) === null || _a === void 0 ? void 0 : _a.call(this, flags);\n }\n clearPersistFlags() {\n this.app.sessionStorage.removeItem(this.storageKey);\n }\n diffPersist(flags) {\n const persistFlags = this.app.sessionStorage.getItem(this.storageKey);\n if (!persistFlags)\n return flags;\n const persistFlagsStrArr = persistFlags.split(';').filter(Boolean);\n const persistFlagsArr = persistFlagsStrArr.map((flag) => JSON.parse(flag));\n return flags.filter((flag) => persistFlagsArr.findIndex((pf) => pf.key === flag.key) === -1);\n }\n}\n","// Auto-generated, do not edit\n/* eslint-disable */\nexport function Timestamp(timestamp) {\n return [\n 0 /* Messages.Type.Timestamp */,\n timestamp,\n ];\n}\nexport function SetPageLocation(url, referrer, navigationStart) {\n return [\n 4 /* Messages.Type.SetPageLocation */,\n url,\n referrer,\n navigationStart,\n ];\n}\nexport function SetViewportSize(width, height) {\n return [\n 5 /* Messages.Type.SetViewportSize */,\n width,\n height,\n ];\n}\nexport function SetViewportScroll(x, y) {\n return [\n 6 /* Messages.Type.SetViewportScroll */,\n x,\n y,\n ];\n}\nexport function CreateDocument() {\n return [\n 7 /* Messages.Type.CreateDocument */,\n ];\n}\nexport function CreateElementNode(id, parentID, index, tag, svg) {\n return [\n 8 /* Messages.Type.CreateElementNode */,\n id,\n parentID,\n index,\n tag,\n svg,\n ];\n}\nexport function CreateTextNode(id, parentID, index) {\n return [\n 9 /* Messages.Type.CreateTextNode */,\n id,\n parentID,\n index,\n ];\n}\nexport function MoveNode(id, parentID, index) {\n return [\n 10 /* Messages.Type.MoveNode */,\n id,\n parentID,\n index,\n ];\n}\nexport function RemoveNode(id) {\n return [\n 11 /* Messages.Type.RemoveNode */,\n id,\n ];\n}\nexport function SetNodeAttribute(id, name, value) {\n return [\n 12 /* Messages.Type.SetNodeAttribute */,\n id,\n name,\n value,\n ];\n}\nexport function RemoveNodeAttribute(id, name) {\n return [\n 13 /* Messages.Type.RemoveNodeAttribute */,\n id,\n name,\n ];\n}\nexport function SetNodeData(id, data) {\n return [\n 14 /* Messages.Type.SetNodeData */,\n id,\n data,\n ];\n}\nexport function SetNodeScroll(id, x, y) {\n return [\n 16 /* Messages.Type.SetNodeScroll */,\n id,\n x,\n y,\n ];\n}\nexport function SetInputTarget(id, label) {\n return [\n 17 /* Messages.Type.SetInputTarget */,\n id,\n label,\n ];\n}\nexport function SetInputValue(id, value, mask) {\n return [\n 18 /* Messages.Type.SetInputValue */,\n id,\n value,\n mask,\n ];\n}\nexport function SetInputChecked(id, checked) {\n return [\n 19 /* Messages.Type.SetInputChecked */,\n id,\n checked,\n ];\n}\nexport function MouseMove(x, y) {\n return [\n 20 /* Messages.Type.MouseMove */,\n x,\n y,\n ];\n}\nexport function NetworkRequestDeprecated(type, method, url, request, response, status, timestamp, duration) {\n return [\n 21 /* Messages.Type.NetworkRequestDeprecated */,\n type,\n method,\n url,\n request,\n response,\n status,\n timestamp,\n duration,\n ];\n}\nexport function ConsoleLog(level, value) {\n return [\n 22 /* Messages.Type.ConsoleLog */,\n level,\n value,\n ];\n}\nexport function PageLoadTiming(requestStart, responseStart, responseEnd, domContentLoadedEventStart, domContentLoadedEventEnd, loadEventStart, loadEventEnd, firstPaint, firstContentfulPaint) {\n return [\n 23 /* Messages.Type.PageLoadTiming */,\n requestStart,\n responseStart,\n responseEnd,\n domContentLoadedEventStart,\n domContentLoadedEventEnd,\n loadEventStart,\n loadEventEnd,\n firstPaint,\n firstContentfulPaint,\n ];\n}\nexport function PageRenderTiming(speedIndex, visuallyComplete, timeToInteractive) {\n return [\n 24 /* Messages.Type.PageRenderTiming */,\n speedIndex,\n visuallyComplete,\n timeToInteractive,\n ];\n}\nexport function CustomEvent(name, payload) {\n return [\n 27 /* Messages.Type.CustomEvent */,\n name,\n payload,\n ];\n}\nexport function UserID(id) {\n return [\n 28 /* Messages.Type.UserID */,\n id,\n ];\n}\nexport function UserAnonymousID(id) {\n return [\n 29 /* Messages.Type.UserAnonymousID */,\n id,\n ];\n}\nexport function Metadata(key, value) {\n return [\n 30 /* Messages.Type.Metadata */,\n key,\n value,\n ];\n}\nexport function CSSInsertRule(id, rule, index) {\n return [\n 37 /* Messages.Type.CSSInsertRule */,\n id,\n rule,\n index,\n ];\n}\nexport function CSSDeleteRule(id, index) {\n return [\n 38 /* Messages.Type.CSSDeleteRule */,\n id,\n index,\n ];\n}\nexport function Fetch(method, url, request, response, status, timestamp, duration) {\n return [\n 39 /* Messages.Type.Fetch */,\n method,\n url,\n request,\n response,\n status,\n timestamp,\n duration,\n ];\n}\nexport function Profiler(name, duration, args, result) {\n return [\n 40 /* Messages.Type.Profiler */,\n name,\n duration,\n args,\n result,\n ];\n}\nexport function OTable(key, value) {\n return [\n 41 /* Messages.Type.OTable */,\n key,\n value,\n ];\n}\nexport function StateAction(type) {\n return [\n 42 /* Messages.Type.StateAction */,\n type,\n ];\n}\nexport function Redux(action, state, duration) {\n return [\n 44 /* Messages.Type.Redux */,\n action,\n state,\n duration,\n ];\n}\nexport function Vuex(mutation, state) {\n return [\n 45 /* Messages.Type.Vuex */,\n mutation,\n state,\n ];\n}\nexport function MobX(type, payload) {\n return [\n 46 /* Messages.Type.MobX */,\n type,\n payload,\n ];\n}\nexport function NgRx(action, state, duration) {\n return [\n 47 /* Messages.Type.NgRx */,\n action,\n state,\n duration,\n ];\n}\nexport function GraphQL(operationKind, operationName, variables, response) {\n return [\n 48 /* Messages.Type.GraphQL */,\n operationKind,\n operationName,\n variables,\n response,\n ];\n}\nexport function PerformanceTrack(frames, ticks, totalJSHeapSize, usedJSHeapSize) {\n return [\n 49 /* Messages.Type.PerformanceTrack */,\n frames,\n ticks,\n totalJSHeapSize,\n usedJSHeapSize,\n ];\n}\nexport function StringDict(key, value) {\n return [\n 50 /* Messages.Type.StringDict */,\n key,\n value,\n ];\n}\nexport function SetNodeAttributeDict(id, nameKey, valueKey) {\n return [\n 51 /* Messages.Type.SetNodeAttributeDict */,\n id,\n nameKey,\n valueKey,\n ];\n}\nexport function ResourceTimingDeprecated(timestamp, duration, ttfb, headerSize, encodedBodySize, decodedBodySize, url, initiator) {\n return [\n 53 /* Messages.Type.ResourceTimingDeprecated */,\n timestamp,\n duration,\n ttfb,\n headerSize,\n encodedBodySize,\n decodedBodySize,\n url,\n initiator,\n ];\n}\nexport function ConnectionInformation(downlink, type) {\n return [\n 54 /* Messages.Type.ConnectionInformation */,\n downlink,\n type,\n ];\n}\nexport function SetPageVisibility(hidden) {\n return [\n 55 /* Messages.Type.SetPageVisibility */,\n hidden,\n ];\n}\nexport function LoadFontFace(parentID, family, source, descriptors) {\n return [\n 57 /* Messages.Type.LoadFontFace */,\n parentID,\n family,\n source,\n descriptors,\n ];\n}\nexport function SetNodeFocus(id) {\n return [\n 58 /* Messages.Type.SetNodeFocus */,\n id,\n ];\n}\nexport function LongTask(timestamp, duration, context, containerType, containerSrc, containerId, containerName) {\n return [\n 59 /* Messages.Type.LongTask */,\n timestamp,\n duration,\n context,\n containerType,\n containerSrc,\n containerId,\n containerName,\n ];\n}\nexport function SetNodeAttributeURLBased(id, name, value, baseURL) {\n return [\n 60 /* Messages.Type.SetNodeAttributeURLBased */,\n id,\n name,\n value,\n baseURL,\n ];\n}\nexport function SetCSSDataURLBased(id, data, baseURL) {\n return [\n 61 /* Messages.Type.SetCSSDataURLBased */,\n id,\n data,\n baseURL,\n ];\n}\nexport function TechnicalInfo(type, value) {\n return [\n 63 /* Messages.Type.TechnicalInfo */,\n type,\n value,\n ];\n}\nexport function CustomIssue(name, payload) {\n return [\n 64 /* Messages.Type.CustomIssue */,\n name,\n payload,\n ];\n}\nexport function CSSInsertRuleURLBased(id, rule, index, baseURL) {\n return [\n 67 /* Messages.Type.CSSInsertRuleURLBased */,\n id,\n rule,\n index,\n baseURL,\n ];\n}\nexport function MouseClick(id, hesitationTime, label, selector) {\n return [\n 69 /* Messages.Type.MouseClick */,\n id,\n hesitationTime,\n label,\n selector,\n ];\n}\nexport function CreateIFrameDocument(frameID, id) {\n return [\n 70 /* Messages.Type.CreateIFrameDocument */,\n frameID,\n id,\n ];\n}\nexport function AdoptedSSReplaceURLBased(sheetID, text, baseURL) {\n return [\n 71 /* Messages.Type.AdoptedSSReplaceURLBased */,\n sheetID,\n text,\n baseURL,\n ];\n}\nexport function AdoptedSSInsertRuleURLBased(sheetID, rule, index, baseURL) {\n return [\n 73 /* Messages.Type.AdoptedSSInsertRuleURLBased */,\n sheetID,\n rule,\n index,\n baseURL,\n ];\n}\nexport function AdoptedSSDeleteRule(sheetID, index) {\n return [\n 75 /* Messages.Type.AdoptedSSDeleteRule */,\n sheetID,\n index,\n ];\n}\nexport function AdoptedSSAddOwner(sheetID, id) {\n return [\n 76 /* Messages.Type.AdoptedSSAddOwner */,\n sheetID,\n id,\n ];\n}\nexport function AdoptedSSRemoveOwner(sheetID, id) {\n return [\n 77 /* Messages.Type.AdoptedSSRemoveOwner */,\n sheetID,\n id,\n ];\n}\nexport function JSException(name, message, payload, metadata) {\n return [\n 78 /* Messages.Type.JSException */,\n name,\n message,\n payload,\n metadata,\n ];\n}\nexport function Zustand(mutation, state) {\n return [\n 79 /* Messages.Type.Zustand */,\n mutation,\n state,\n ];\n}\nexport function BatchMetadata(version, pageNo, firstIndex, timestamp, location) {\n return [\n 81 /* Messages.Type.BatchMetadata */,\n version,\n pageNo,\n firstIndex,\n timestamp,\n location,\n ];\n}\nexport function PartitionedMessage(partNo, partTotal) {\n return [\n 82 /* Messages.Type.PartitionedMessage */,\n partNo,\n partTotal,\n ];\n}\nexport function NetworkRequest(type, method, url, request, response, status, timestamp, duration, transferredBodySize) {\n return [\n 83 /* Messages.Type.NetworkRequest */,\n type,\n method,\n url,\n request,\n response,\n status,\n timestamp,\n duration,\n transferredBodySize,\n ];\n}\nexport function WSChannel(chType, channelName, data, timestamp, dir, messageType) {\n return [\n 84 /* Messages.Type.WSChannel */,\n chType,\n channelName,\n data,\n timestamp,\n dir,\n messageType,\n ];\n}\nexport function InputChange(id, value, valueMasked, label, hesitationTime, inputDuration) {\n return [\n 112 /* Messages.Type.InputChange */,\n id,\n value,\n valueMasked,\n label,\n hesitationTime,\n inputDuration,\n ];\n}\nexport function SelectionChange(selectionStart, selectionEnd, selection) {\n return [\n 113 /* Messages.Type.SelectionChange */,\n selectionStart,\n selectionEnd,\n selection,\n ];\n}\nexport function MouseThrashing(timestamp) {\n return [\n 114 /* Messages.Type.MouseThrashing */,\n timestamp,\n ];\n}\nexport function UnbindNodes(totalRemovedPercent) {\n return [\n 115 /* Messages.Type.UnbindNodes */,\n totalRemovedPercent,\n ];\n}\nexport function ResourceTiming(timestamp, duration, ttfb, headerSize, encodedBodySize, decodedBodySize, url, initiator, transferredSize, cached) {\n return [\n 116 /* Messages.Type.ResourceTiming */,\n timestamp,\n duration,\n ttfb,\n headerSize,\n encodedBodySize,\n decodedBodySize,\n url,\n initiator,\n transferredSize,\n cached,\n ];\n}\nexport function TabChange(tabId) {\n return [\n 117 /* Messages.Type.TabChange */,\n tabId,\n ];\n}\nexport function TabData(tabId) {\n return [\n 118 /* Messages.Type.TabData */,\n tabId,\n ];\n}\nexport function CanvasNode(nodeId, timestamp) {\n return [\n 119 /* Messages.Type.CanvasNode */,\n nodeId,\n timestamp,\n ];\n}\nexport function TagTrigger(tagId) {\n return [\n 120 /* Messages.Type.TagTrigger */,\n tagId,\n ];\n}\n","const DEPRECATED_ATTRS = { htmlmasked: 'hidden', masked: 'obscured' };\nexport const IN_BROWSER = !(typeof window === 'undefined');\nexport const IS_FIREFOX = IN_BROWSER && navigator.userAgent.match(/firefox|fxios/i);\nexport const MAX_STR_LEN = 1e5;\n// Buggy to use `performance.timeOrigin || performance.timing.navigationStart`\n// https://github.com/mdn/content/issues/4713\n// Maybe move to timer/ticker\nlet timeOrigin = IN_BROWSER ? Date.now() - performance.now() : 0;\nexport function adjustTimeOrigin() {\n timeOrigin = Date.now() - performance.now();\n}\nexport function getTimeOrigin() {\n return timeOrigin;\n}\nexport const now = IN_BROWSER && !!performance.now\n ? () => Math.round(performance.now() + timeOrigin)\n : () => Date.now();\nexport const stars = 'repeat' in String.prototype\n ? (str) => '*'.repeat(str.length)\n : (str) => str.replace(/./g, '*');\nexport function normSpaces(str) {\n return str.trim().replace(/\\s+/g, ' ');\n}\n// isAbsoluteUrl regexp: /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url)\nexport function isURL(s) {\n return s.startsWith('https://') || s.startsWith('http://');\n}\n// TODO: JOIN IT WITH LOGGER somehow (use logging decorators?); Don't forget about index.js loggin when there is no logger instance.\nexport const DOCS_HOST = 'https://docs.openreplay.com';\nconst warnedFeatures = {};\nexport function deprecationWarn(nameOfFeature, useInstead, docsPath = '/') {\n if (warnedFeatures[nameOfFeature]) {\n return;\n }\n console.warn(`OpenReplay: ${nameOfFeature} is deprecated. ${useInstead ? `Please, use ${useInstead} instead.` : ''} Visit ${DOCS_HOST}${docsPath} for more information.`);\n warnedFeatures[nameOfFeature] = true;\n}\nexport function getLabelAttribute(e) {\n let value = e.getAttribute('data-openreplay-label');\n if (value !== null) {\n return value;\n }\n value = e.getAttribute('data-asayer-label');\n if (value !== null) {\n deprecationWarn('\"data-asayer-label\" attribute', '\"data-openreplay-label\" attribute', '/');\n }\n return value;\n}\nexport function hasOpenreplayAttribute(e, attr) {\n const newName = `data-openreplay-${attr}`;\n if (e.hasAttribute(newName)) {\n // @ts-ignore\n if (DEPRECATED_ATTRS[attr]) {\n deprecationWarn(`\"${newName}\" attribute`, \n // @ts-ignore\n `\"${DEPRECATED_ATTRS[attr]}\" attribute`, '/installation/sanitize-data');\n }\n return true;\n }\n return false;\n}\n/**\n * checks if iframe is accessible\n **/\nexport function canAccessIframe(iframe) {\n try {\n return Boolean(iframe.contentDocument);\n }\n catch (e) {\n return false;\n }\n}\nfunction dec2hex(dec) {\n return dec.toString(16).padStart(2, '0');\n}\nexport function generateRandomId(len) {\n const arr = new Uint8Array((len || 40) / 2);\n // msCrypto = IE11\n // @ts-ignore\n const safeCrypto = window.crypto || window.msCrypto;\n safeCrypto.getRandomValues(arr);\n return Array.from(arr, dec2hex).join('');\n}\nexport function inIframe() {\n try {\n return window.self !== window.top;\n }\n catch (e) {\n return true;\n }\n}\n/**\n * Because angular devs decided that its a good idea to override a browser apis\n * we need to use this to achieve safe behavior\n * */\nexport function ngSafeBrowserMethod(method) {\n // @ts-ignore\n return window.Zone && '__symbol__' in window.Zone\n ? // @ts-ignore\n window['Zone']['__symbol__'](method)\n : method;\n}\nexport function createMutationObserver(cb) {\n const mObserver = ngSafeBrowserMethod('MutationObserver');\n return new window[mObserver](cb);\n}\nexport function createEventListener(target, event, cb, capture) {\n const safeAddEventListener = ngSafeBrowserMethod('addEventListener');\n try {\n target[safeAddEventListener](event, cb, capture);\n }\n catch (e) {\n console.debug(\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `Openreplay: ${e.messages}; if this error is caused by an IframeObserver, ignore it`);\n }\n}\nexport function deleteEventListener(target, event, cb, capture) {\n const safeRemoveEventListener = ngSafeBrowserMethod('removeEventListener');\n try {\n target[safeRemoveEventListener](event, cb, capture);\n }\n catch (e) {\n console.debug(\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `Openreplay: ${e.messages}; if this error is caused by an IframeObserver, ignore it`);\n }\n}\n/**\n * This is a brief polyfill that suits our needs\n * I took inspiration from Microsoft Clarity polyfill on this one\n * then adapted it a little bit\n *\n * I'm very grateful for their bright idea\n * */\nexport function requestIdleCb(callback) {\n const taskTimeout = 3000;\n if (window.requestIdleCallback) {\n return window.requestIdleCallback(callback, { timeout: taskTimeout });\n }\n else {\n const channel = new MessageChannel();\n const incoming = channel.port1;\n const outgoing = channel.port2;\n incoming.onmessage = () => {\n callback();\n };\n requestAnimationFrame(() => {\n outgoing.postMessage(1);\n });\n }\n}\n","import { createEventListener, deleteEventListener } from '../utils.js';\nexport default class Nodes {\n constructor(node_id) {\n this.node_id = node_id;\n this.nodes = [];\n this.totalNodeAmount = 0;\n this.nodeCallbacks = [];\n this.elementListeners = new Map();\n this.scanTree = (cb) => {\n this.nodes.forEach((node) => cb(node));\n };\n }\n // Attached once per Tracker instance\n attachNodeCallback(nodeCallback) {\n this.nodeCallbacks.push(nodeCallback);\n }\n attachNodeListener(node, type, listener, useCapture = true) {\n const id = this.getID(node);\n if (id === undefined) {\n return;\n }\n createEventListener(node, type, listener, useCapture);\n let listeners = this.elementListeners.get(id);\n if (listeners === undefined) {\n listeners = [];\n this.elementListeners.set(id, listeners);\n }\n listeners.push([type, listener, useCapture]);\n }\n registerNode(node) {\n let id = node[this.node_id];\n const isNew = id === undefined;\n if (isNew) {\n this.totalNodeAmount++;\n id = this.nodes.length;\n this.nodes[id] = node;\n node[this.node_id] = id;\n }\n return [id, isNew];\n }\n unregisterNode(node) {\n const id = node[this.node_id];\n if (id !== undefined) {\n delete node[this.node_id];\n delete this.nodes[id];\n const listeners = this.elementListeners.get(id);\n if (listeners !== undefined) {\n this.elementListeners.delete(id);\n listeners.forEach((listener) => deleteEventListener(node, listener[0], listener[1], listener[2]));\n }\n this.totalNodeAmount--;\n }\n return id;\n }\n cleanTree() {\n // sadly we keep empty items in array here resulting in some memory still being used\n // but its still better than keeping dead nodes or undef elements\n // plus we keep our index positions for new/alive nodes\n // performance test: 3ms for 30k nodes with 17k dead ones\n for (let i = 0; i < this.nodes.length; i++) {\n const node = this.nodes[i];\n if (node && !document.contains(node)) {\n this.unregisterNode(node);\n }\n }\n }\n callNodeCallbacks(node, isStart) {\n this.nodeCallbacks.forEach((cb) => cb(node, isStart));\n }\n getID(node) {\n if (!node)\n return undefined;\n return node[this.node_id];\n }\n getNode(id) {\n return this.nodes[id];\n }\n getNodeCount() {\n return this.totalNodeAmount;\n }\n clear() {\n for (let id = 0; id < this.nodes.length; id++) {\n const node = this.nodes[id];\n if (!node) {\n continue;\n }\n this.unregisterNode(node);\n }\n this.nodes.length = 0;\n }\n}\n","//@ts-ignore\nexport function isNode(sth) {\n return !!sth && sth.nodeType != null;\n}\nexport function isSVGElement(node) {\n return node.namespaceURI === 'http://www.w3.org/2000/svg';\n}\nexport function isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n}\nexport function isCommentNode(node) {\n return node.nodeType === Node.COMMENT_NODE;\n}\nexport function isTextNode(node) {\n return node.nodeType === Node.TEXT_NODE;\n}\nexport function isDocument(node) {\n return node.nodeType === Node.DOCUMENT_NODE;\n}\nexport function isRootNode(node) {\n return node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE;\n}\nexport function hasTag(el, tagName) {\n // @ts-ignore\n return el.localName === tagName;\n}\n","import { createMutationObserver } from '../../utils.js';\nimport { RemoveNodeAttribute, SetNodeAttributeURLBased, SetCSSDataURLBased, SetNodeData, CreateTextNode, CreateElementNode, MoveNode, RemoveNode, UnbindNodes, } from '../messages.gen.js';\nimport { isRootNode, isTextNode, isElementNode, isSVGElement, hasTag, isCommentNode, } from '../guards.js';\nfunction isIgnored(node) {\n if (isCommentNode(node)) {\n return true;\n }\n if (isTextNode(node)) {\n return false;\n }\n if (!isElementNode(node)) {\n return true;\n }\n const tag = node.tagName.toUpperCase();\n if (tag === 'LINK') {\n const rel = node.getAttribute('rel');\n const as = node.getAttribute('as');\n return !((rel === null || rel === void 0 ? void 0 : rel.includes('stylesheet')) || as === 'style' || as === 'font');\n }\n return (tag === 'SCRIPT' || tag === 'NOSCRIPT' || tag === 'META' || tag === 'TITLE' || tag === 'BASE');\n}\nfunction isObservable(node) {\n if (isRootNode(node)) {\n return true;\n }\n return !isIgnored(node);\n}\n/*\n TODO:\n - fix unbinding logic + send all removals first (ensure sequence is correct)\n - use document as a 0-node in the upper context (should be updated in player at first)\n*/\nvar RecentsType;\n(function (RecentsType) {\n RecentsType[RecentsType[\"New\"] = 0] = \"New\";\n RecentsType[RecentsType[\"Removed\"] = 1] = \"Removed\";\n RecentsType[RecentsType[\"Changed\"] = 2] = \"Changed\";\n})(RecentsType || (RecentsType = {}));\nexport default class Observer {\n constructor(app, isTopContext = false) {\n this.app = app;\n this.isTopContext = isTopContext;\n this.commited = [];\n this.recents = new Map();\n this.indexes = [];\n this.attributesMap = new Map();\n this.textSet = new Set();\n this.observer = createMutationObserver(this.app.safe((mutations) => {\n for (const mutation of mutations) {\n // mutations order is sequential\n const target = mutation.target;\n const type = mutation.type;\n if (!isObservable(target)) {\n continue;\n }\n if (type === 'childList') {\n for (let i = 0; i < mutation.removedNodes.length; i++) {\n // Should be the same as bindTree(mutation.removedNodes[i]), but logic needs to be be untied\n if (isObservable(mutation.removedNodes[i])) {\n this.bindNode(mutation.removedNodes[i]);\n }\n }\n for (let i = 0; i < mutation.addedNodes.length; i++) {\n this.bindTree(mutation.addedNodes[i]);\n }\n continue;\n }\n const id = this.app.nodes.getID(target);\n if (id === undefined) {\n continue;\n }\n if (!this.recents.has(id)) {\n this.recents.set(id, RecentsType.Changed); // TODO only when altered\n }\n if (type === 'attributes') {\n const name = mutation.attributeName;\n if (name === null) {\n continue;\n }\n let attr = this.attributesMap.get(id);\n if (attr === undefined) {\n this.attributesMap.set(id, (attr = new Set()));\n }\n attr.add(name);\n continue;\n }\n if (type === 'characterData') {\n this.textSet.add(id);\n continue;\n }\n }\n this.commitNodes();\n }));\n }\n clear() {\n this.commited.length = 0;\n this.recents.clear();\n this.indexes.length = 1;\n this.attributesMap.clear();\n this.textSet.clear();\n }\n sendNodeAttribute(id, node, name, value) {\n if (isSVGElement(node)) {\n if (name.substr(0, 6) === 'xlink:') {\n name = name.substr(6);\n }\n if (value === null) {\n this.app.send(RemoveNodeAttribute(id, name));\n }\n else if (name === 'href') {\n if (value.length > 1e5) {\n value = '';\n }\n this.app.send(SetNodeAttributeURLBased(id, name, value, this.app.getBaseHref()));\n }\n else {\n this.app.attributeSender.sendSetAttribute(id, name, value);\n }\n return;\n }\n if (name === 'src' ||\n name === 'srcset' ||\n name === 'integrity' ||\n name === 'crossorigin' ||\n name === 'autocomplete' ||\n name.substr(0, 2) === 'on') {\n return;\n }\n if (name === 'value' &&\n hasTag(node, 'input') &&\n node.type !== 'button' &&\n node.type !== 'reset' &&\n node.type !== 'submit') {\n return;\n }\n if (value === null) {\n this.app.send(RemoveNodeAttribute(id, name));\n return;\n }\n if (name === 'style' || (name === 'href' && hasTag(node, 'link'))) {\n this.app.send(SetNodeAttributeURLBased(id, name, value, this.app.getBaseHref()));\n return;\n }\n if (name === 'href' || value.length > 1e5) {\n value = '';\n }\n this.app.attributeSender.sendSetAttribute(id, name, value);\n }\n sendNodeData(id, parentElement, data) {\n if (hasTag(parentElement, 'style')) {\n this.app.send(SetCSSDataURLBased(id, data, this.app.getBaseHref()));\n return;\n }\n data = this.app.sanitizer.sanitize(id, data);\n this.app.send(SetNodeData(id, data));\n }\n bindNode(node) {\n const [id, isNew] = this.app.nodes.registerNode(node);\n if (isNew) {\n this.recents.set(id, RecentsType.New);\n }\n else if (this.recents.get(id) !== RecentsType.New) {\n this.recents.set(id, RecentsType.Removed);\n }\n }\n bindTree(node) {\n if (!isObservable(node)) {\n return;\n }\n this.bindNode(node);\n const walker = document.createTreeWalker(node, NodeFilter.SHOW_ELEMENT + NodeFilter.SHOW_TEXT, {\n acceptNode: (node) => isIgnored(node) || this.app.nodes.getID(node) !== undefined\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT,\n }, \n // @ts-ignore\n false);\n while (walker.nextNode()) {\n this.bindNode(walker.currentNode);\n }\n }\n unbindTree(node) {\n const id = this.app.nodes.unregisterNode(node);\n if (id !== undefined && this.recents.get(id) === RecentsType.Removed) {\n // Sending RemoveNode only for parent to maintain\n this.app.send(RemoveNode(id));\n // Unregistering all the children in order to clear the memory\n const walker = document.createTreeWalker(node, NodeFilter.SHOW_ELEMENT + NodeFilter.SHOW_TEXT, {\n acceptNode: (node) => isIgnored(node) || this.app.nodes.getID(node) === undefined\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT,\n }, \n // @ts-ignore\n false);\n let removed = 0;\n const totalBeforeRemove = this.app.nodes.getNodeCount();\n while (walker.nextNode()) {\n removed += 1;\n this.app.nodes.unregisterNode(walker.currentNode);\n }\n const removedPercent = Math.floor((removed / totalBeforeRemove) * 100);\n if (removedPercent > 30) {\n this.app.send(UnbindNodes(removedPercent));\n }\n }\n }\n // A top-consumption function on the infinite lists test. (~1% of performance resources)\n _commitNode(id, node) {\n if (isRootNode(node)) {\n return true;\n }\n const parent = node.parentNode;\n let parentID;\n // Disable parent check for the upper context HTMLHtmlElement, because it is root there... (before)\n // TODO: get rid of \"special\" cases (there is an issue with CreateDocument altered behaviour though)\n // TODO: Clean the logic (though now it workd fine)\n if (!hasTag(node, 'html') || !this.isTopContext) {\n if (parent === null) {\n // Sometimes one observation contains attribute mutations for the removimg node, which gets ignored here.\n // That shouldn't affect the visual rendering ( should it? maybe when transition applied? )\n this.unbindTree(node);\n return false;\n }\n parentID = this.app.nodes.getID(parent);\n if (parentID === undefined) {\n this.unbindTree(node);\n return false;\n }\n if (!this.commitNode(parentID)) {\n this.unbindTree(node);\n return false;\n }\n this.app.sanitizer.handleNode(id, parentID, node);\n if (this.app.sanitizer.isHidden(parentID)) {\n return false;\n }\n }\n // From here parentID === undefined if node is top context HTML node\n let sibling = node.previousSibling;\n while (sibling !== null) {\n const siblingID = this.app.nodes.getID(sibling);\n if (siblingID !== undefined) {\n this.commitNode(siblingID);\n this.indexes[id] = this.indexes[siblingID] + 1;\n break;\n }\n sibling = sibling.previousSibling;\n }\n if (sibling === null) {\n this.indexes[id] = 0;\n }\n const recentsType = this.recents.get(id);\n const isNew = recentsType === RecentsType.New;\n const index = this.indexes[id];\n if (index === undefined) {\n throw 'commitNode: missing node index';\n }\n if (isNew) {\n if (isElementNode(node)) {\n let el = node;\n if (parentID !== undefined) {\n if (this.app.sanitizer.isHidden(id)) {\n const width = el.clientWidth;\n const height = el.clientHeight;\n el = node.cloneNode();\n el.style.width = `${width}px`;\n el.style.height = `${height}px`;\n }\n this.app.send(CreateElementNode(id, parentID, index, el.tagName, isSVGElement(node)));\n }\n for (let i = 0; i < el.attributes.length; i++) {\n const attr = el.attributes[i];\n this.sendNodeAttribute(id, el, attr.nodeName, attr.value);\n }\n }\n else if (isTextNode(node)) {\n // for text node id != 0, hence parentID !== undefined and parent is Element\n this.app.send(CreateTextNode(id, parentID, index));\n this.sendNodeData(id, parent, node.data);\n }\n return true;\n }\n if (recentsType === RecentsType.Removed && parentID !== undefined) {\n this.app.send(MoveNode(id, parentID, index));\n }\n const attr = this.attributesMap.get(id);\n if (attr !== undefined) {\n if (!isElementNode(node)) {\n throw 'commitNode: node is not an element';\n }\n for (const name of attr) {\n this.sendNodeAttribute(id, node, name, node.getAttribute(name));\n }\n }\n if (this.textSet.has(id)) {\n if (!isTextNode(node)) {\n throw 'commitNode: node is not a text';\n }\n // for text node id != 0, hence parent is Element\n this.sendNodeData(id, parent, node.data);\n }\n return true;\n }\n commitNode(id) {\n const node = this.app.nodes.getNode(id);\n if (node === undefined) {\n return false;\n }\n const cmt = this.commited[id];\n if (cmt !== undefined) {\n return cmt;\n }\n return (this.commited[id] = this._commitNode(id, node));\n }\n commitNodes(isStart = false) {\n let node;\n this.recents.forEach((type, id) => {\n this.commitNode(id);\n if (type === RecentsType.New && (node = this.app.nodes.getNode(id))) {\n this.app.nodes.callNodeCallbacks(node, isStart);\n }\n });\n this.clear();\n }\n // ISSSUE (nodeToBinde should be the same as node in all cases. Look at the comment about 0-node at the beginning of the file.)\n // TODO: use one observer instance for all iframes/shadowRoots (composition instiad of inheritance)\n observeRoot(node, beforeCommit, nodeToBind = node) {\n this.observer.observe(node, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true,\n attributeOldValue: false,\n characterDataOldValue: false,\n });\n this.bindTree(nodeToBind);\n beforeCommit(this.app.nodes.getID(node));\n this.commitNodes(true);\n }\n disconnect() {\n this.observer.disconnect();\n this.clear();\n }\n}\n","import Observer from './observer.js';\nimport { CreateIFrameDocument } from '../messages.gen.js';\nexport default class IFrameObserver extends Observer {\n observe(iframe) {\n const doc = iframe.contentDocument;\n const hostID = this.app.nodes.getID(iframe);\n if (!doc || hostID === undefined) {\n return;\n } //log TODO common app.logger\n // Have to observe document, because the inner might be changed\n this.observeRoot(doc, (docID) => {\n //MBTODO: do not send if empty (send on load? it might be in-place iframe, like our replayer, which does not get loaded)\n if (docID === undefined) {\n this.app.debug.log('OpenReplay: Iframe document not bound');\n return;\n }\n this.app.send(CreateIFrameDocument(hostID, docID));\n });\n }\n}\n","import Observer from './observer.js';\nimport { CreateIFrameDocument } from '../messages.gen.js';\nexport default class ShadowRootObserver extends Observer {\n observe(el) {\n const shRoot = el.shadowRoot;\n const hostID = this.app.nodes.getID(el);\n if (!shRoot || hostID === undefined) {\n return;\n } // log\n this.observeRoot(shRoot, (rootID) => {\n if (rootID === undefined) {\n this.app.debug.error('OpenReplay: Shadow Root was not bound');\n return;\n }\n this.app.send(CreateIFrameDocument(hostID, rootID));\n });\n }\n}\n","// Le truc - for defining an absolute offset for (nested) iframe documents. (To track mouse movments)\nexport default class IFrameOffsets {\n constructor() {\n this.states = new Map();\n }\n calcOffset(state) {\n let parLeft = 0, parTop = 0;\n if (state.parent) {\n ;\n [parLeft, parTop] = this.calcOffset(state.parent);\n }\n if (!state.offset) {\n const { left, top } = state.iFrame.getBoundingClientRect();\n state.offset = [left, top];\n }\n const [left, top] = state.offset;\n return [parLeft + left, parTop + top]; // TODO: store absolute sum, invalidate whole subtree. Otherwise it is summated on each mousemove\n }\n getDocumentOffset(doc) {\n const state = this.states.get(doc);\n if (!state) {\n return [0, 0];\n } // topmost doc\n return this.calcOffset(state);\n }\n observe(iFrame) {\n var _a;\n const doc = iFrame.contentDocument;\n if (!doc) {\n return;\n }\n const parentDoc = iFrame.ownerDocument;\n const parentState = this.states.get(parentDoc);\n const state = {\n offset: null,\n iFrame,\n parent: parentState || null,\n clear: () => {\n var _a;\n parentDoc.removeEventListener('scroll', invalidateOffset);\n (_a = parentDoc.defaultView) === null || _a === void 0 ? void 0 : _a.removeEventListener('resize', invalidateOffset);\n },\n };\n const invalidateOffset = () => {\n state.offset = null;\n };\n // anything more reliable? This does not cover all cases (layout changes are ignored, for ex.)\n parentDoc.addEventListener('scroll', invalidateOffset);\n (_a = parentDoc.defaultView) === null || _a === void 0 ? void 0 : _a.addEventListener('resize', invalidateOffset);\n this.states.set(doc, state);\n }\n clear() {\n this.states.forEach((s) => s.clear());\n this.states.clear();\n }\n}\n","import Observer from './observer.js';\nimport { isElementNode, hasTag } from '../guards.js';\nimport IFrameObserver from './iframe_observer.js';\nimport ShadowRootObserver from './shadow_root_observer.js';\nimport IFrameOffsets from './iframe_offsets.js';\nimport { CreateDocument } from '../messages.gen.js';\nimport { IN_BROWSER, hasOpenreplayAttribute, canAccessIframe } from '../../utils.js';\nconst attachShadowNativeFn = IN_BROWSER ? Element.prototype.attachShadow : () => new ShadowRoot();\nexport default class TopObserver extends Observer {\n constructor(app, options) {\n super(app, true);\n this.iframeOffsets = new IFrameOffsets();\n this.contextCallbacks = [];\n // Attached once per Tracker instance\n this.contextsSet = new Set();\n this.iframeObservers = [];\n this.shadowRootObservers = [];\n this.options = Object.assign({\n captureIFrames: true,\n }, options);\n // IFrames\n this.app.nodes.attachNodeCallback((node) => {\n if (hasTag(node, 'iframe') &&\n ((this.options.captureIFrames && !hasOpenreplayAttribute(node, 'obscured')) ||\n hasOpenreplayAttribute(node, 'capture'))) {\n this.handleIframe(node);\n }\n });\n // ShadowDOM\n this.app.nodes.attachNodeCallback((node) => {\n if (isElementNode(node) && node.shadowRoot !== null) {\n this.handleShadowRoot(node.shadowRoot);\n }\n });\n }\n attachContextCallback(cb) {\n this.contextCallbacks.push(cb);\n }\n getDocumentOffset(doc) {\n return this.iframeOffsets.getDocumentOffset(doc);\n }\n handleIframe(iframe) {\n let doc = null;\n // setTimeout is required. Otherwise some event listeners (scroll, mousemove) applied in modules\n // do not work on the iframe document when it 've been loaded dynamically ((why?))\n const handle = this.app.safe(() => setTimeout(() => {\n const id = this.app.nodes.getID(iframe);\n if (id === undefined) {\n //log\n return;\n }\n if (!canAccessIframe(iframe))\n return;\n const currentWin = iframe.contentWindow;\n const currentDoc = iframe.contentDocument;\n if (currentDoc && currentDoc !== doc) {\n const observer = new IFrameObserver(this.app);\n this.iframeObservers.push(observer);\n observer.observe(iframe); // TODO: call unregisterNode for the previous doc if present (incapsulate: one iframe - one observer)\n doc = currentDoc;\n this.iframeOffsets.observe(iframe);\n }\n if (currentWin &&\n // Sometimes currentWin.window is null (not in specification). Such window object is not functional\n currentWin === currentWin.window &&\n !this.contextsSet.has(currentWin) // for each context callbacks called once per Tracker (TopObserver) instance\n //TODO: more explicit logic\n ) {\n this.contextsSet.add(currentWin);\n //@ts-ignore https://github.com/microsoft/TypeScript/issues/41684\n this.contextCallbacks.forEach((cb) => cb(currentWin));\n }\n // we need this delay because few iframes stacked one in another with rapid updates will break the player (or browser engine rather?)\n }, 100));\n iframe.addEventListener('load', handle); // why app.attachEventListener not working?\n handle();\n }\n handleShadowRoot(shRoot) {\n const observer = new ShadowRootObserver(this.app);\n this.shadowRootObservers.push(observer);\n observer.observe(shRoot.host);\n }\n observe() {\n // Protection from several subsequent calls?\n const observer = this;\n Element.prototype.attachShadow = function () {\n // eslint-disable-next-line\n const shadow = attachShadowNativeFn.apply(this, arguments);\n observer.handleShadowRoot(shadow);\n return shadow;\n };\n // Can observe documentElement () here, because it is not supposed to be changing.\n // However, it is possible in some exotic cases and may cause an ignorance of the newly created \n // In this case context.document have to be observed, but this will cause\n // the change in the re-player behaviour caused by CreateDocument message:\n // the 0-node (\"fRoot\") will become #document rather than documentElement as it is now.\n // Alternatively - observe(#document) then bindNode(documentElement)\n this.observeRoot(window.document, () => {\n this.app.send(CreateDocument());\n // it has no node_id here\n this.app.nodes.callNodeCallbacks(document, true);\n }, window.document.documentElement);\n }\n disconnect() {\n this.iframeOffsets.clear();\n Element.prototype.attachShadow = attachShadowNativeFn;\n this.iframeObservers.forEach((o) => o.disconnect());\n this.iframeObservers = [];\n this.shadowRootObservers.forEach((o) => o.disconnect());\n this.shadowRootObservers = [];\n super.disconnect();\n }\n}\n","import { stars, hasOpenreplayAttribute } from '../utils.js';\nimport { isElementNode } from './guards.js';\nexport var SanitizeLevel;\n(function (SanitizeLevel) {\n SanitizeLevel[SanitizeLevel[\"Plain\"] = 0] = \"Plain\";\n SanitizeLevel[SanitizeLevel[\"Obscured\"] = 1] = \"Obscured\";\n SanitizeLevel[SanitizeLevel[\"Hidden\"] = 2] = \"Hidden\";\n})(SanitizeLevel || (SanitizeLevel = {}));\nexport const stringWiper = (input) => input\n .trim()\n .replace(/[^\\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]/g, '█');\nexport default class Sanitizer {\n constructor(app, options) {\n this.app = app;\n this.obscured = new Set();\n this.hidden = new Set();\n this.options = Object.assign({\n obscureTextEmails: true,\n obscureTextNumbers: false,\n }, options);\n }\n handleNode(id, parentID, node) {\n if (this.obscured.has(parentID) ||\n (isElementNode(node) &&\n (hasOpenreplayAttribute(node, 'masked') || hasOpenreplayAttribute(node, 'obscured')))) {\n this.obscured.add(id);\n }\n if (this.hidden.has(parentID) ||\n (isElementNode(node) &&\n (hasOpenreplayAttribute(node, 'htmlmasked') || hasOpenreplayAttribute(node, 'hidden')))) {\n this.hidden.add(id);\n }\n if (this.options.domSanitizer !== undefined && isElementNode(node)) {\n const sanitizeLevel = this.options.domSanitizer(node);\n if (sanitizeLevel === SanitizeLevel.Obscured) {\n this.obscured.add(id);\n }\n if (sanitizeLevel === SanitizeLevel.Hidden) {\n this.hidden.add(id);\n }\n }\n }\n sanitize(id, data) {\n if (this.obscured.has(id)) {\n // TODO: is it the best place to put trim() ? Might trimmed spaces be considered in layout in certain cases?\n return stringWiper(data);\n }\n if (this.options.obscureTextNumbers) {\n data = data.replace(/\\d/g, '0');\n }\n if (this.options.obscureTextEmails) {\n data = data.replace(/^\\w+([.-]\\w+)*@\\w+([.-]\\w+)*\\.\\w{2,3}$/g, (email) => {\n const [name, domain] = email.split('@');\n const [domainName, host] = domain.split('.');\n return `${stars(name)}@${stars(domainName)}.${stars(host)}`;\n });\n }\n return data;\n }\n isObscured(id) {\n return this.obscured.has(id);\n }\n isHidden(id) {\n return this.hidden.has(id);\n }\n getInnerTextSecure(el) {\n const id = this.app.nodes.getID(el);\n if (!id) {\n return '';\n }\n return this.sanitize(id, el.innerText);\n }\n clear() {\n this.obscured.clear();\n this.hidden.clear();\n }\n}\n","function wrap(callback, n) {\n let t = 0;\n return () => {\n if (t++ >= n) {\n t = 0;\n callback();\n }\n };\n}\nexport default class Ticker {\n constructor(app) {\n this.app = app;\n this.timer = null;\n this.callbacks = [];\n }\n /**\n * @param {Callback} callback - repeated cb\n * @param {number} n - number of turn skips; ticker have a 30 ms cycle\n * @param {boolean} useSafe - using safe wrapper to check if app is active\n * @param {object} thisArg - link to \n * */\n attach(callback, n = 0, useSafe = true, thisArg) {\n if (thisArg) {\n callback = callback.bind(thisArg);\n }\n if (useSafe) {\n callback = this.app.safe(callback);\n }\n this.callbacks.unshift(n ? wrap(callback, n) : callback) - 1;\n }\n start() {\n if (this.timer === null) {\n this.timer = setInterval(() => this.callbacks.forEach((cb) => {\n if (cb)\n cb();\n }), 30);\n }\n }\n stop() {\n if (this.timer !== null) {\n clearInterval(this.timer);\n this.timer = null;\n }\n }\n}\n","export const LogLevel = {\n Verbose: 5,\n Log: 4,\n Warnings: 3,\n Errors: 2,\n Silent: 0,\n};\nexport default class Logger {\n constructor(debugLevel = LogLevel.Silent) {\n this.level = debugLevel;\n }\n shouldLog(level) {\n return this.level >= level;\n }\n log(...args) {\n if (this.shouldLog(LogLevel.Log)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n console.log(...args);\n }\n }\n warn(...args) {\n if (this.shouldLog(LogLevel.Warnings)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n console.warn(...args);\n }\n }\n error(...args) {\n if (this.shouldLog(LogLevel.Errors)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n console.error(...args);\n }\n }\n}\n","import { generateRandomId } from '../utils.js';\nexport default class Session {\n constructor(app, options) {\n this.app = app;\n this.options = options;\n this.metadata = {};\n this.userID = null;\n this.callbacks = [];\n this.timestamp = 0;\n this.createTabId();\n }\n attachUpdateCallback(cb) {\n this.callbacks.push(cb);\n }\n handleUpdate(newInfo) {\n if (newInfo.userID == null) {\n delete newInfo.userID;\n }\n if (newInfo.sessionID == null) {\n delete newInfo.sessionID;\n }\n this.callbacks.forEach((cb) => cb(newInfo));\n }\n assign(newInfo) {\n if (newInfo.userID !== undefined) {\n // TODO clear nullable/undefinable types\n this.userID = newInfo.userID;\n }\n if (newInfo.metadata !== undefined) {\n Object.entries(newInfo.metadata).forEach(([k, v]) => (this.metadata[k] = v));\n }\n if (newInfo.sessionID !== undefined) {\n this.sessionID = newInfo.sessionID;\n }\n if (newInfo.timestamp !== undefined) {\n this.timestamp = newInfo.timestamp;\n }\n if (newInfo.projectID !== undefined) {\n this.projectID = newInfo.projectID;\n }\n this.handleUpdate(newInfo);\n }\n setMetadata(key, value) {\n this.metadata[key] = value;\n this.handleUpdate({ metadata: { [key]: value } });\n }\n setUserID(userID) {\n this.userID = userID;\n this.handleUpdate({ userID });\n }\n setUserInfo(userInfo) {\n this.userInfo = userInfo;\n }\n getPageNumber() {\n const pageNoStr = this.app.sessionStorage.getItem(this.options.session_pageno_key);\n if (pageNoStr == null) {\n return undefined;\n }\n return parseInt(pageNoStr);\n }\n incPageNo() {\n let pageNo = this.getPageNumber();\n if (pageNo === undefined) {\n pageNo = 0;\n }\n else {\n pageNo++;\n }\n this.app.sessionStorage.setItem(this.options.session_pageno_key, pageNo.toString());\n return pageNo;\n }\n getSessionToken() {\n return this.app.sessionStorage.getItem(this.options.session_token_key) || undefined;\n }\n setSessionToken(token) {\n this.app.sessionStorage.setItem(this.options.session_token_key, token);\n }\n applySessionHash(hash) {\n const hashParts = decodeURI(hash).split('&');\n let token = hash;\n let pageNoStr = '100500'; // back-compat for sessionToken\n if (hashParts.length == 2) {\n ;\n [pageNoStr, token] = hashParts;\n }\n if (!pageNoStr || !token) {\n return;\n }\n this.app.sessionStorage.setItem(this.options.session_token_key, token);\n this.app.sessionStorage.setItem(this.options.session_pageno_key, pageNoStr);\n }\n getSessionHash() {\n const pageNo = this.getPageNumber();\n const token = this.getSessionToken();\n if (pageNo === undefined || token === undefined) {\n return;\n }\n return encodeURI(String(pageNo) + '&' + token);\n }\n getTabId() {\n if (!this.tabId)\n this.createTabId();\n return this.tabId;\n }\n regenerateTabId() {\n const randomId = generateRandomId(12);\n this.app.sessionStorage.setItem(this.options.session_tabid_key, randomId);\n this.tabId = randomId;\n }\n createTabId() {\n const localId = this.app.sessionStorage.getItem(this.options.session_tabid_key);\n if (localId) {\n this.tabId = localId;\n }\n else {\n this.regenerateTabId();\n }\n }\n getInfo() {\n return {\n sessionID: this.sessionID,\n metadata: this.metadata,\n userID: this.userID,\n timestamp: this.timestamp,\n projectID: this.projectID,\n };\n }\n reset() {\n this.app.sessionStorage.removeItem(this.options.session_token_key);\n this.metadata = {};\n this.userID = null;\n this.sessionID = undefined;\n this.timestamp = 0;\n }\n}\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","import { IN_BROWSER } from '../utils.js';\nimport { PerformanceTrack } from '../app/messages.gen.js';\nconst perf = IN_BROWSER && 'performance' in window && 'memory' in performance // works in Chrome only\n ? performance\n : { memory: {} };\nexport const deviceMemory = IN_BROWSER ? (navigator.deviceMemory || 0) * 1024 : 0;\nexport const jsHeapSizeLimit = perf.memory.jsHeapSizeLimit || 0;\nexport default function (app, opts) {\n const options = Object.assign({\n capturePerformance: true,\n }, opts);\n if (!options.capturePerformance) {\n return;\n }\n let frames;\n let ticks;\n const nextFrame = () => {\n if (frames === undefined || frames === -1) {\n return;\n }\n frames++;\n requestAnimationFrame(nextFrame);\n };\n app.ticker.attach(() => {\n if (ticks === undefined || ticks === -1) {\n return;\n }\n ticks++;\n }, 0, false);\n const sendPerformanceTrack = () => {\n if (frames === undefined || ticks === undefined) {\n return;\n }\n app.send(PerformanceTrack(frames, ticks, perf.memory.totalJSHeapSize || 0, perf.memory.usedJSHeapSize || 0));\n ticks = frames = document.hidden ? -1 : 0;\n };\n app.attachStartCallback(() => {\n ticks = frames = -1;\n sendPerformanceTrack();\n nextFrame();\n });\n app.attachStopCallback(() => {\n ticks = frames = undefined;\n });\n app.ticker.attach(sendPerformanceTrack, 40, false);\n if (document.hidden !== undefined) {\n app.attachEventListener(document, 'visibilitychange', sendPerformanceTrack, false, false);\n }\n}\n","export class StringDictionary {\n constructor() {\n this.idx = 1;\n this.backDict = {};\n }\n getKey(str) {\n let isNew = false;\n if (!this.backDict[str]) {\n isNew = true;\n this.backDict[str] = this.idx++;\n }\n return [this.backDict[str], isNew];\n }\n}\nexport default class AttributeSender {\n constructor(app, isDictDisabled) {\n this.app = app;\n this.isDictDisabled = isDictDisabled;\n this.dict = new StringDictionary();\n }\n sendSetAttribute(id, name, value) {\n if (this.isDictDisabled) {\n const msg = [12 /* Type.SetNodeAttribute */, id, name, value];\n return this.app.send(msg);\n }\n else {\n const message = [\n 51 /* Type.SetNodeAttributeDict */,\n id,\n this.applyDict(name),\n this.applyDict(value),\n ];\n return this.app.send(message);\n }\n }\n applyDict(str) {\n const [key, isNew] = this.dict.getKey(str);\n if (isNew) {\n this.app.send([50 /* Type.StringDict */, key, str]);\n }\n return key;\n }\n clear() {\n this.dict = new StringDictionary();\n }\n}\n","import { hasTag } from './guards.js';\nimport { CanvasNode } from './messages.gen.js';\nclass CanvasRecorder {\n constructor(app, options) {\n this.app = app;\n this.options = options;\n this.snapshots = {};\n this.intervals = [];\n this.restartTracking = () => {\n this.clear();\n this.app.nodes.scanTree(this.captureCanvas);\n };\n this.captureCanvas = (node) => {\n const id = this.app.nodes.getID(node);\n if (!id || !hasTag(node, 'canvas')) {\n return;\n }\n const isIgnored = this.app.sanitizer.isObscured(id) || this.app.sanitizer.isHidden(id);\n if (isIgnored || !hasTag(node, 'canvas') || this.snapshots[id]) {\n return;\n }\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (entry.target) {\n if (this.snapshots[id] && this.snapshots[id].createdAt) {\n this.snapshots[id].paused = false;\n }\n else {\n this.recordCanvas(entry.target, id);\n }\n /**\n * We can switch this to start observing when element is in the view\n * but otherwise right now we're just pausing when it's not\n * just to save some bandwidth and space on backend\n * */\n // observer.unobserve(entry.target)\n }\n else {\n if (this.snapshots[id]) {\n this.snapshots[id].paused = true;\n }\n }\n }\n });\n });\n observer.observe(node);\n };\n this.recordCanvas = (node, id) => {\n const ts = this.app.timestamp();\n this.snapshots[id] = {\n images: [],\n createdAt: ts,\n paused: false,\n dummy: document.createElement('canvas'),\n };\n const canvasMsg = CanvasNode(id.toString(), ts);\n this.app.send(canvasMsg);\n const int = setInterval(() => {\n const cid = this.app.nodes.getID(node);\n const canvas = cid ? this.app.nodes.getNode(cid) : undefined;\n if (!canvas || !hasTag(canvas, 'canvas') || canvas !== node) {\n this.app.debug.log('Canvas element not in sync');\n clearInterval(int);\n }\n else {\n if (!this.snapshots[id].paused) {\n const snapshot = captureSnapshot(canvas, this.options.quality, this.snapshots[id].dummy, this.options.fixedScaling);\n this.snapshots[id].images.push({ id: this.app.timestamp(), data: snapshot });\n if (this.snapshots[id].images.length > 9) {\n this.sendSnaps(this.snapshots[id].images, id, this.snapshots[id].createdAt);\n this.snapshots[id].images = [];\n }\n }\n }\n }, this.interval);\n this.intervals.push(int);\n };\n this.interval = 1000 / options.fps;\n }\n startTracking() {\n setTimeout(() => {\n this.app.nodes.scanTree(this.captureCanvas);\n this.app.nodes.attachNodeCallback((node) => {\n this.captureCanvas(node);\n });\n }, 500);\n }\n sendSnaps(images, canvasId, createdAt) {\n var _a;\n if (Object.keys(this.snapshots).length === 0) {\n return;\n }\n const formData = new FormData();\n images.forEach((snapshot) => {\n const blob = dataUrlToBlob(snapshot.data);\n if (!blob)\n return;\n formData.append('snapshot', blob[0], `${createdAt}_${canvasId}_${snapshot.id}.jpeg`);\n if (this.options.isDebug) {\n saveImageData(snapshot.data, `${createdAt}_${canvasId}_${snapshot.id}.jpeg`);\n }\n });\n fetch(this.app.options.ingestPoint + '/v1/web/images', {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${(_a = this.app.session.getSessionToken()) !== null && _a !== void 0 ? _a : ''}`,\n },\n body: formData,\n })\n .then(() => {\n return true;\n })\n .catch((e) => {\n this.app.debug.error('error saving canvas', e);\n });\n }\n clear() {\n this.intervals.forEach((int) => clearInterval(int));\n this.snapshots = {};\n }\n}\nconst qualityInt = {\n low: 0.35,\n medium: 0.55,\n high: 0.8,\n};\nfunction captureSnapshot(canvas, quality = 'medium', dummy, fixedScaling = false) {\n const imageFormat = 'image/jpeg'; // or /png'\n if (fixedScaling) {\n const canvasScaleRatio = window.devicePixelRatio || 1;\n dummy.width = canvas.width / canvasScaleRatio;\n dummy.height = canvas.height / canvasScaleRatio;\n const ctx = dummy.getContext('2d');\n if (!ctx) {\n return '';\n }\n ctx.drawImage(canvas, 0, 0, dummy.width, dummy.height);\n return dummy.toDataURL(imageFormat, qualityInt[quality]);\n }\n else {\n return canvas.toDataURL(imageFormat, qualityInt[quality]);\n }\n}\nfunction dataUrlToBlob(dataUrl) {\n const [header, base64] = dataUrl.split(',');\n if (!header || !base64)\n return null;\n const encParts = header.match(/:(.*?);/);\n if (!encParts)\n return null;\n const mime = encParts[1];\n const blobStr = atob(base64);\n let n = blobStr.length;\n const u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = blobStr.charCodeAt(n);\n }\n return [new Blob([u8arr], { type: mime }), u8arr];\n}\nfunction saveImageData(imageDataUrl, name) {\n const link = document.createElement('a');\n link.href = imageDataUrl;\n link.download = name;\n link.style.display = 'none';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n}\nexport default CanvasRecorder;\n","export const bgStyle = {\n position: 'fixed',\n top: 0,\n left: 0,\n width: '100vw',\n height: '100vh',\n background: 'rgba(0, 0, 0, 0.40)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 999999,\n fontFamily: `-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`,\n};\nexport const containerStyle = {\n display: 'flex',\n flexDirection: 'column',\n gap: '2rem',\n alignItems: 'center',\n padding: '1.5rem',\n borderRadius: '2px',\n border: '1px solid #D9D9D9',\n background: '#FFF',\n width: '22rem',\n};\nexport const containerWidgetStyle = {\n display: 'flex',\n 'flex-direction': 'column',\n gap: 'unset',\n 'align-items': 'center',\n padding: 'unset',\n fontFamily: `-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`,\n 'border-radius': '2px',\n border: '1px solid #D9D9D9',\n background: 'rgba(255, 255, 255, 0.75)',\n width: '22rem',\n};\nexport const titleStyle = {\n fontFamily: 'Verdana, sans-serif',\n fontSize: '1.25rem',\n fontStyle: 'normal',\n fontWeight: '500',\n lineHeight: '1.75rem',\n color: 'rgba(0, 0, 0, 0.85)',\n};\nexport const descriptionStyle = {\n borderTop: '1px solid rgba(0, 0, 0, 0.06)',\n borderBottom: '1px solid rgba(0, 0, 0, 0.06)',\n padding: '1.25rem 0rem',\n color: 'rgba(0, 0, 0, 0.85)',\n fontFamily: 'Verdana, sans-serif',\n fontSize: '13px',\n fontStyle: 'normal',\n fontWeight: '400',\n lineHeight: 'auto',\n whiteSpace: 'pre-wrap',\n};\nexport const noticeStyle = {\n color: 'rgba(0, 0, 0, 0.85)',\n fontFamily: 'Verdana, sans-serif',\n fontSize: '0.875rem',\n fontStyle: 'normal',\n fontWeight: '400',\n lineHeight: '1.375rem',\n};\nexport const buttonStyle = {\n display: 'flex',\n padding: '0.4rem 0.9375rem',\n justifyContent: 'center',\n alignItems: 'center',\n gap: '0.625rem',\n borderRadius: '0.25rem',\n border: '1px solid #394EFF',\n background: '#394EFF',\n boxShadow: '0px 2px 0px 0px rgba(0, 0, 0, 0.04)',\n color: '#FFF',\n textAlign: 'center',\n fontFamily: 'Verdana, sans-serif',\n fontSize: '1rem',\n fontStyle: 'normal',\n fontWeight: '500',\n lineHeight: '1.5rem',\n cursor: 'pointer',\n};\nexport const sectionTitleStyle = {\n fontFamily: 'Verdana, sans-serif',\n fontSize: '13px',\n fontWeight: '500',\n lineHeight: 'auto',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n cursor: 'pointer',\n};\nexport const contentStyle = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: '0.625rem',\n fontSize: '13px',\n lineHeight: 'auto',\n};\n// New widget styles\nexport const titleWidgetStyle = {\n padding: '0.5rem',\n gap: '0.5rem',\n fontFamily: 'Verdana, sans-serif',\n fontSize: '16px',\n fontStyle: 'normal',\n fontWeight: '500',\n lineHeight: 'auto',\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n borderRadius: '2px',\n background: 'rgba(0, 0, 0, 0.75)',\n boxSizing: 'border-box',\n};\nexport const descriptionWidgetStyle = {\n boxSizing: 'border-box',\n display: 'block',\n width: '100%',\n borderBottom: '1px solid #D9D9D9',\n background: '#FFF',\n padding: '0.65rem',\n alignSelf: 'stretch',\n color: '#000',\n fontFamily: 'Verdana, sans-serif',\n // fontSize: '0.875rem',\n fontStyle: 'normal',\n fontWeight: '400',\n // lineHeight: '1.375rem',\n};\nexport const endSectionStyle = Object.assign(Object.assign({}, descriptionWidgetStyle), { display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '0.625rem' });\nexport const symbolIcon = {\n fontSize: '1.25rem',\n fontWeight: '500',\n cursor: 'pointer',\n color: '#394EFF',\n};\nexport const buttonWidgetStyle = {\n display: 'flex',\n padding: '0.4rem 0.9375rem',\n justifyContent: 'center',\n alignItems: 'center',\n gap: '0.625rem',\n borderRadius: '0.25rem',\n border: '1px solid #394EFF',\n background: '#394EFF',\n boxShadow: '0px 2px 0px 0px rgba(0, 0, 0, 0.04)',\n color: '#FFF',\n textAlign: 'center',\n fontFamily: 'Verdana, sans-serif',\n fontSize: '1rem',\n fontStyle: 'normal',\n fontWeight: '500',\n lineHeight: '1.5rem',\n width: '100%',\n boxSizing: 'border-box',\n cursor: 'pointer',\n};\nexport const stopWidgetStyle = {\n marginTop: '1rem',\n marginBottom: '1rem',\n cursor: 'pointer',\n display: 'block',\n fontWeight: '500',\n fontSize: '13px!important',\n lineHeight: 'auto',\n};\nexport const paginationStyle = {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: '1rem',\n padding: '0.5rem',\n width: '100%',\n boxSizing: 'border-box',\n};\nexport const taskNumberActive = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '6.25em',\n outline: '1px solid #394EFF',\n fontSize: '13px',\n height: '24px',\n width: '24px',\n};\nexport const taskNumberDone = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '6.25em',\n outline: '1px solid #D2DFFF',\n boxShadow: '0px 2px 0px 0px rgba(0, 0, 0, 0.04)',\n background: '#D2DFFF',\n fontSize: '13px',\n height: '24px',\n width: '24px',\n};\nexport const taskDescriptionCard = {\n borderRadius: '0.375rem',\n border: '1px solid rgba(0, 0, 0, 0.06)',\n background: '#F5F7FF',\n boxShadow: '0px 2px 0px 0px rgba(0, 0, 0, 0.04)',\n display: 'flex',\n flexDirection: 'column',\n padding: '0.625rem 0.9375rem',\n gap: '0.5rem',\n alignSelf: 'stretch',\n};\nexport const taskTextStyle = {\n fontWeight: 'bold',\n};\nexport const taskDescriptionStyle = {\n fontSize: '13px',\n lineHeight: 'auto',\n};\nexport const taskButtonStyle = {\n marginRight: '0.5rem',\n cursor: 'pointer',\n color: '#394EFF',\n textAlign: 'center',\n fontFamily: 'Verdana, sans-serif',\n fontSize: '13px',\n fontStyle: 'normal',\n fontWeight: '500',\n lineHeight: 'auto',\n};\nexport const taskButtonBorderedStyle = Object.assign(Object.assign({}, taskButtonStyle), { display: 'flex', padding: '0.25rem 0.9375rem', justifyContent: 'center', alignItems: 'center', gap: '0.5rem', borderRadius: '0.25rem', border: '1px solid #394EFF' });\nexport const taskButtonsRow = {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n boxSizing: 'border-box',\n};\nexport const spinnerStyles = {\n border: '4px solid rgba(255, 255, 255, 0.4)',\n width: '16px',\n height: '16px',\n borderRadius: '50%',\n borderLeftColor: '#fff',\n animation: 'spin 0.5s linear infinite',\n};\n","export const Quality = {\n Standard: { width: 1280, height: 720 },\n High: { width: 1920, height: 1080 },\n};\nexport default class Recorder {\n constructor(app) {\n this.app = app;\n this.mediaRecorder = null;\n this.recordedChunks = [];\n this.stream = null;\n this.recStartTs = null;\n }\n async startRecording(fps, quality, micReq, camReq) {\n this.recStartTs = this.app.timestamp();\n const videoConstraints = quality;\n try {\n this.stream = await navigator.mediaDevices.getUserMedia({\n video: camReq ? Object.assign(Object.assign({}, videoConstraints), { frameRate: { ideal: fps } }) : false,\n audio: micReq,\n });\n this.mediaRecorder = new MediaRecorder(this.stream, {\n mimeType: 'video/webm;codecs=vp9',\n });\n this.recordedChunks = [];\n this.mediaRecorder.ondataavailable = (event) => {\n if (event.data.size > 0) {\n this.recordedChunks.push(event.data);\n }\n };\n this.mediaRecorder.start();\n }\n catch (error) {\n console.error(error);\n }\n }\n async stopRecording() {\n return new Promise((resolve) => {\n if (!this.mediaRecorder)\n return;\n this.mediaRecorder.onstop = () => {\n const blob = new Blob(this.recordedChunks, {\n type: 'video/webm',\n });\n resolve(blob);\n };\n this.mediaRecorder.stop();\n });\n }\n async sendToAPI() {\n const blob = await this.stopRecording();\n // const formData = new FormData()\n // formData.append('file', blob, 'record.webm')\n // formData.append('start', this.recStartTs?.toString() ?? '')\n return fetch(`${this.app.options.ingestPoint}/v1/web/uxt/upload-url`, {\n headers: {\n Authorization: `Bearer ${this.app.session.getSessionToken()}`,\n },\n })\n .then((r) => {\n if (r.ok) {\n return r.json();\n }\n else {\n throw new Error('Failed to get upload url');\n }\n })\n .then(({ url }) => {\n return fetch(url, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'video/webm',\n },\n body: blob,\n });\n })\n .catch(console.error)\n .finally(() => {\n this.discard();\n });\n }\n async saveToFile(fileName = 'recorded-video.webm') {\n const blob = await this.stopRecording();\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.style.display = 'none';\n a.href = url;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n document.body.removeChild(a);\n }\n discard() {\n var _a, _b;\n (_a = this.mediaRecorder) === null || _a === void 0 ? void 0 : _a.stop();\n (_b = this.stream) === null || _b === void 0 ? void 0 : _b.getTracks().forEach((track) => track.stop());\n }\n}\n","import { spinnerStyles } from './styles.js';\nexport function generateGrid() {\n const grid = document.createElement('div');\n grid.className = 'grid';\n for (let i = 0; i < 16; i++) {\n const cell = document.createElement('div');\n Object.assign(cell.style, {\n width: '2px',\n height: '2px',\n borderRadius: '10px',\n background: 'white',\n });\n cell.className = 'cell';\n grid.appendChild(cell);\n }\n Object.assign(grid.style, {\n display: 'grid',\n gridTemplateColumns: 'repeat(4, 1fr)',\n gridTemplateRows: 'repeat(4, 1fr)',\n gap: '2px',\n cursor: 'grab',\n });\n return grid;\n}\nexport function generateChevron() {\n const triangle = document.createElement('div');\n Object.assign(triangle.style, {\n width: '0',\n height: '0',\n borderLeft: '7px solid transparent',\n borderRight: '7px solid transparent',\n borderBottom: '7px solid white',\n });\n const container = document.createElement('div');\n container.appendChild(triangle);\n Object.assign(container.style, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '16px',\n height: '16px',\n cursor: 'pointer',\n marginLeft: 'auto',\n transform: 'rotate(180deg)',\n });\n return container;\n}\nexport function addKeyframes() {\n const styleSheet = document.createElement('style');\n styleSheet.type = 'text/css';\n styleSheet.innerText = `@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }`;\n document.head.appendChild(styleSheet);\n}\nexport function createSpinner() {\n addKeyframes();\n const spinner = document.createElement('div');\n spinner.classList.add('spinner');\n Object.assign(spinner.style, spinnerStyles);\n return spinner;\n}\nexport function createElement(tag, className, styles, textContent, id) {\n const element = document.createElement(tag);\n element.className = className;\n Object.assign(element.style, styles);\n if (textContent) {\n element.textContent = textContent;\n }\n if (id) {\n element.id = id;\n }\n return element;\n}\nexport const TEST_START = 'or_uxt_test_start';\nexport const TASK_IND = 'or_uxt_task_index';\nexport const SESSION_ID = 'or_uxt_session_id';\nexport const TEST_ID = 'or_uxt_test_id';\n","import { TEST_START, TASK_IND, SESSION_ID } from './utils.js';\nexport default class SignalManager {\n constructor(ingestPoint, getTimestamp, token, testId, storageKey, setStorageKey, removeStorageKey, getStorageKey, getSessionId) {\n this.ingestPoint = ingestPoint;\n this.getTimestamp = getTimestamp;\n this.token = token;\n this.testId = testId;\n this.storageKey = storageKey;\n this.setStorageKey = setStorageKey;\n this.removeStorageKey = removeStorageKey;\n this.getStorageKey = getStorageKey;\n this.getSessionId = getSessionId;\n this.durations = {\n testStart: 0,\n tasks: [],\n };\n this.getDurations = () => {\n return this.durations;\n };\n this.setDurations = (durations) => {\n this.durations.testStart = durations.testStart;\n this.durations.tasks = durations.tasks;\n };\n this.signalTask = (taskId, status, taskAnswer) => {\n if (!taskId)\n return console.error('User Testing: No Task ID Given');\n const taskStart = this.durations.tasks.find((t) => t.taskId === taskId);\n const timestamp = this.getTimestamp();\n const duration = taskStart ? timestamp - taskStart.started : 0;\n return fetch(`${this.ingestPoint}/v1/web/uxt/signals/task`, {\n method: 'POST',\n headers: {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n Authorization: `Bearer ${this.token}`,\n },\n body: JSON.stringify({\n testId: this.testId,\n taskId,\n status,\n duration,\n timestamp,\n taskAnswer,\n }),\n });\n };\n this.signalTest = (status) => {\n const timestamp = this.getTimestamp();\n if (status === 'begin' && this.testId) {\n const sessionId = this.getSessionId();\n this.setStorageKey(SESSION_ID, sessionId);\n this.setStorageKey(this.storageKey, this.testId.toString());\n this.setStorageKey(TEST_START, timestamp.toString());\n }\n else {\n this.removeStorageKey(this.storageKey);\n this.removeStorageKey(TASK_IND);\n this.removeStorageKey(TEST_START);\n }\n const start = this.durations.testStart || timestamp;\n const duration = timestamp - start;\n return fetch(`${this.ingestPoint}/v1/web/uxt/signals/test`, {\n method: 'POST',\n headers: {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n Authorization: `Bearer ${this.token}`,\n },\n body: JSON.stringify({\n testId: this.testId,\n status,\n duration,\n timestamp,\n }),\n });\n };\n const possibleStart = this.getStorageKey(TEST_START);\n if (possibleStart) {\n this.durations.testStart = parseInt(possibleStart, 10);\n }\n }\n}\n","import * as styles from './styles.js';\nimport Recorder, { Quality } from './recorder.js';\nimport attachDND from './dnd.js';\nimport { generateGrid, generateChevron, createSpinner, createElement, TEST_START, TASK_IND, SESSION_ID, TEST_ID, } from './utils.js';\nimport SignalManager from './SignalManager.js';\nexport default class UserTestManager {\n constructor(app, storageKey) {\n this.app = app;\n this.storageKey = storageKey;\n this.bg = createElement('div', 'bg', styles.bgStyle, undefined, '__or_ut_bg');\n this.container = createElement('div', 'container', styles.containerStyle, undefined, '__or_ut_ct');\n this.widgetGuidelinesVisible = true;\n this.widgetTasksVisible = false;\n this.widgetVisible = true;\n this.isActive = false;\n this.descriptionSection = null;\n this.taskSection = null;\n this.endSection = null;\n this.stopButton = null;\n this.stopButtonContainer = null;\n this.test = null;\n this.testId = null;\n this.signalManager = null;\n this.getTest = (id, token, inProgress) => {\n this.testId = id;\n const ingest = this.app.options.ingestPoint;\n return fetch(`${ingest}/v1/web/uxt/test/${id}`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })\n .then((res) => res.json())\n .then(({ test }) => {\n this.isActive = true;\n this.test = test;\n this.signalManager = new SignalManager(this.app.options.ingestPoint, () => this.app.timestamp(), token, id, this.storageKey, (k, v) => this.app.localStorage.setItem(k, v), (k) => this.app.localStorage.removeItem(k), (k) => this.app.localStorage.getItem(k), () => this.app.getSessionID());\n this.createGreeting(test.title, test.reqMic, test.reqCamera);\n if (inProgress) {\n if (test.reqMic || test.reqCamera) {\n void this.userRecorder.startRecording(30, Quality.Standard, test.reqMic, test.reqCamera);\n }\n this.showWidget(test.description, test.tasks, true);\n this.showTaskSection();\n }\n })\n .then(() => id)\n .catch((err) => {\n console.log('OR: Error fetching test', err);\n });\n };\n this.hideTaskSection = () => false;\n this.showTaskSection = () => true;\n this.collapseWidget = () => false;\n this.removeGreeting = () => false;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n this.toggleDescriptionVisibility = () => { };\n this.currentTaskIndex = 0;\n this.userRecorder = new Recorder(app);\n const sessionId = this.app.getSessionID();\n const savedSessionId = this.app.localStorage.getItem(SESSION_ID);\n if (sessionId !== savedSessionId) {\n this.app.localStorage.removeItem(this.storageKey);\n this.app.localStorage.removeItem(SESSION_ID);\n this.app.localStorage.removeItem(TEST_ID);\n this.app.localStorage.removeItem(TASK_IND);\n this.app.localStorage.removeItem(TEST_START);\n }\n const taskIndex = this.app.localStorage.getItem(TASK_IND);\n if (taskIndex) {\n this.currentTaskIndex = parseInt(taskIndex, 10);\n }\n }\n getTestId() {\n return this.testId;\n }\n createGreeting(title, micRequired, cameraRequired) {\n const titleElement = createElement('div', 'title', styles.titleStyle, title);\n const descriptionElement = createElement('div', 'description', styles.descriptionStyle, `Welcome, you're here to help us improve, not to be judged. Your insights matter!\\n\n📹 We're recording this browser tab to learn from your experience.\n🎤 Please enable mic and camera if asked, to give us a complete picture.`);\n const buttonElement = createElement('div', 'button', styles.buttonStyle, 'Read guidelines to begin');\n this.removeGreeting = () => {\n // this.container.innerHTML = ''\n if (micRequired || cameraRequired) {\n void this.userRecorder.startRecording(30, Quality.Standard, micRequired, cameraRequired);\n }\n this.container.removeChild(buttonElement);\n this.container.removeChild(descriptionElement);\n this.container.removeChild(titleElement);\n return false;\n };\n buttonElement.onclick = () => {\n var _a, _b, _c, _d;\n this.removeGreeting();\n const durations = (_a = this.signalManager) === null || _a === void 0 ? void 0 : _a.getDurations();\n if (durations && this.signalManager) {\n durations.testStart = this.app.timestamp();\n this.signalManager.setDurations(durations);\n }\n void ((_b = this.signalManager) === null || _b === void 0 ? void 0 : _b.signalTest('begin'));\n this.container.style.fontFamily = `-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\n Object.assign(this.container.style, styles.containerWidgetStyle);\n this.showWidget(((_c = this.test) === null || _c === void 0 ? void 0 : _c.guidelines) || '', ((_d = this.test) === null || _d === void 0 ? void 0 : _d.tasks) || []);\n };\n this.container.append(titleElement, descriptionElement, buttonElement);\n this.bg.appendChild(this.container);\n document.body.appendChild(this.bg);\n }\n showWidget(guidelines, tasks, inProgress) {\n this.container.innerHTML = '';\n Object.assign(this.bg.style, {\n position: 'fixed',\n zIndex: 99999999999999,\n right: '8px',\n left: 'unset',\n width: 'fit-content',\n top: '8px',\n height: 'fit-content',\n background: 'unset',\n display: 'unset',\n alignItems: 'unset',\n justifyContent: 'unset',\n });\n // Create title section\n const titleSection = this.createTitleSection();\n this.container.style.fontFamily = `-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\n Object.assign(this.container.style, styles.containerWidgetStyle);\n const descriptionSection = this.createDescriptionSection(guidelines);\n const tasksSection = this.createTasksSection(tasks);\n const stopButton = createElement('div', 'stop_bn_or', styles.stopWidgetStyle, 'Abort Session');\n const stopContainer = createElement('div', 'stop_ct_or', { fontSize: '13px!important' });\n stopContainer.style.fontSize = '13px';\n stopContainer.append(stopButton);\n this.container.append(titleSection, descriptionSection, tasksSection, stopContainer);\n this.taskSection = tasksSection;\n this.descriptionSection = descriptionSection;\n this.stopButton = stopButton;\n this.stopButtonContainer = stopContainer;\n stopButton.onclick = () => {\n var _a;\n this.userRecorder.discard();\n void ((_a = this.signalManager) === null || _a === void 0 ? void 0 : _a.signalTest('skipped'));\n document.body.removeChild(this.bg);\n window.close();\n };\n if (!inProgress) {\n this.hideTaskSection();\n }\n else {\n this.toggleDescriptionVisibility();\n }\n }\n createTitleSection() {\n var _a;\n const title = createElement('div', 'title', styles.titleWidgetStyle);\n const leftIcon = generateGrid();\n const titleText = createElement('div', 'title_text', {\n maxWidth: '19rem',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: '100%',\n fontSize: 16,\n lineHeight: 'auto',\n cursor: 'pointer',\n }, (_a = this.test) === null || _a === void 0 ? void 0 : _a.title);\n const rightIcon = generateChevron();\n title.append(leftIcon, titleText, rightIcon);\n const toggleWidget = (isVisible) => {\n this.widgetVisible = isVisible;\n this.container.style.fontFamily = `-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\n Object.assign(this.container.style, this.widgetVisible\n ? styles.containerWidgetStyle\n : { border: 'none', background: 'none', padding: 0 });\n if (this.taskSection) {\n Object.assign(this.taskSection.style, this.widgetVisible ? styles.descriptionWidgetStyle : { display: 'none' });\n }\n if (this.descriptionSection) {\n Object.assign(this.descriptionSection.style, this.widgetVisible ? styles.descriptionWidgetStyle : { display: 'none' });\n }\n if (this.endSection) {\n Object.assign(this.endSection.style, this.widgetVisible ? styles.descriptionWidgetStyle : { display: 'none' });\n }\n if (this.stopButton) {\n Object.assign(this.stopButton.style, this.widgetVisible ? styles.stopWidgetStyle : { display: 'none' });\n }\n return isVisible;\n };\n const collapseWidget = () => {\n Object.assign(rightIcon.style, {\n transform: this.widgetVisible ? 'rotate(0deg)' : 'rotate(180deg)',\n });\n toggleWidget(!this.widgetVisible);\n };\n titleText.onclick = collapseWidget;\n rightIcon.onclick = collapseWidget;\n attachDND(this.bg, leftIcon);\n this.collapseWidget = () => toggleWidget(false);\n return title;\n }\n createDescriptionSection(guidelines) {\n const section = createElement('div', 'description_section_or', styles.descriptionWidgetStyle);\n const titleContainer = createElement('div', 'description_s_title_or', styles.sectionTitleStyle);\n const title = createElement('div', 'title', {\n fontSize: 13,\n fontWeight: 500,\n lineHeight: 'auto',\n }, 'Introduction & Guidelines');\n const icon = createElement('div', 'icon', styles.symbolIcon, '-');\n const content = createElement('div', 'content', styles.contentStyle);\n const descriptionC = createElement('div', 'text_description', {\n maxHeight: '250px',\n overflowY: 'auto',\n whiteSpace: 'pre-wrap',\n fontSize: 13,\n color: '#454545',\n lineHeight: 'auto',\n });\n descriptionC.innerHTML = guidelines;\n const button = createElement('div', 'button_begin_or', styles.buttonWidgetStyle, 'Begin Test');\n titleContainer.append(title, icon);\n content.append(descriptionC, button);\n section.append(titleContainer, content);\n const toggleDescriptionVisibility = () => {\n this.widgetGuidelinesVisible = !this.widgetGuidelinesVisible;\n icon.textContent = this.widgetGuidelinesVisible ? '-' : '+';\n Object.assign(content.style, this.widgetGuidelinesVisible ? styles.contentStyle : { display: 'none' });\n };\n titleContainer.onclick = toggleDescriptionVisibility;\n this.toggleDescriptionVisibility = () => {\n this.widgetGuidelinesVisible = false;\n icon.textContent = this.widgetGuidelinesVisible ? '-' : '+';\n Object.assign(content.style, this.widgetGuidelinesVisible ? styles.contentStyle : { display: 'none' });\n content.removeChild(button);\n };\n button.onclick = () => {\n var _a, _b, _c;\n toggleDescriptionVisibility();\n if (this.test) {\n const durations = (_a = this.signalManager) === null || _a === void 0 ? void 0 : _a.getDurations();\n const taskDurationInd = durations\n ? durations.tasks.findIndex((t) => this.test && t.taskId === this.test.tasks[0].task_id)\n : null;\n if (durations && taskDurationInd === -1) {\n durations.tasks.push({\n taskId: this.test.tasks[0].task_id,\n started: this.app.timestamp(),\n });\n (_b = this.signalManager) === null || _b === void 0 ? void 0 : _b.setDurations(durations);\n }\n void ((_c = this.signalManager) === null || _c === void 0 ? void 0 : _c.signalTask(this.test.tasks[0].task_id, 'begin'));\n }\n this.showTaskSection();\n content.removeChild(button);\n };\n return section;\n }\n createTasksSection(tasks) {\n this.container.style.fontFamily = `-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\n Object.assign(this.container.style, styles.containerWidgetStyle);\n const section = createElement('div', 'task_section_or', styles.descriptionWidgetStyle);\n const titleContainer = createElement('div', 'description_t_title_or', styles.sectionTitleStyle);\n const title = createElement('div', 'title', {\n fontSize: '13px',\n fontWeight: '500',\n lineHeight: 'auto',\n }, 'Tasks');\n const icon = createElement('div', 'icon', styles.symbolIcon, '-');\n const content = createElement('div', 'content', styles.contentStyle);\n const pagination = createElement('div', 'pagination', styles.paginationStyle);\n // const leftArrow = createElement('span', 'leftArrow', {}, '<')\n // const rightArrow = createElement('span', 'rightArrow', {}, '>')\n const taskCard = createElement('div', 'taskCard', styles.taskDescriptionCard);\n const taskText = createElement('div', 'taskText', styles.taskTextStyle);\n const taskDescription = createElement('div', 'taskDescription', styles.taskDescriptionStyle);\n const taskButtons = createElement('div', 'taskButtons', styles.taskButtonsRow);\n const inputTitle = createElement('div', 'taskText', styles.taskTextStyle);\n inputTitle.textContent = 'Your answer';\n const inputArea = createElement('textarea', 'taskDescription', {\n resize: 'vertical',\n });\n const inputContainer = createElement('div', 'inputArea', styles.taskDescriptionCard);\n inputContainer.append(inputTitle, inputArea);\n const closePanelButton = createElement('div', 'closePanelButton', styles.taskButtonStyle, 'Collapse Panel');\n const nextButton = createElement('div', 'nextButton', styles.taskButtonBorderedStyle, 'Done, Next');\n titleContainer.append(title, icon);\n taskCard.append(taskText, taskDescription);\n taskButtons.append(closePanelButton, nextButton);\n content.append(pagination, taskCard, inputContainer, taskButtons);\n section.append(titleContainer, content);\n const updateTaskContent = () => {\n const task = tasks[this.currentTaskIndex];\n taskText.textContent = task.title;\n taskDescription.textContent = task.description;\n if (task.allow_typing) {\n inputContainer.style.display = 'flex';\n }\n else {\n inputContainer.style.display = 'none';\n }\n };\n // pagination.appendChild(leftArrow)\n tasks.forEach((_, index) => {\n const pageNumber = createElement('span', `or_task_${index}`, {\n outline: '1px solid #efefef',\n fontSize: '13px',\n height: '24px',\n width: '24px',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '6.25em',\n }, (index + 1).toString());\n pageNumber.id = `or_task_${index}`;\n pagination.append(pageNumber);\n });\n // pagination.appendChild(rightArrow)\n const toggleTasksVisibility = () => {\n this.widgetTasksVisible = !this.widgetTasksVisible;\n icon.textContent = this.widgetTasksVisible ? '-' : '+';\n Object.assign(content.style, this.widgetTasksVisible ? styles.contentStyle : { display: 'none' });\n };\n this.hideTaskSection = () => {\n icon.textContent = '+';\n Object.assign(content.style, {\n display: 'none',\n });\n this.widgetTasksVisible = false;\n return false;\n };\n this.showTaskSection = () => {\n icon.textContent = '-';\n Object.assign(content.style, styles.contentStyle);\n this.widgetTasksVisible = true;\n return true;\n };\n const highlightActive = () => {\n const activeTaskEl = document.getElementById(`or_task_${this.currentTaskIndex}`);\n if (activeTaskEl) {\n Object.assign(activeTaskEl.style, styles.taskNumberActive);\n }\n for (let i = 0; i < this.currentTaskIndex; i++) {\n const taskEl = document.getElementById(`or_task_${i}`);\n if (taskEl) {\n Object.assign(taskEl.style, styles.taskNumberDone);\n }\n }\n };\n titleContainer.onclick = toggleTasksVisibility;\n closePanelButton.onclick = this.collapseWidget;\n nextButton.onclick = () => {\n var _a, _b, _c, _d;\n const textAnswer = tasks[this.currentTaskIndex].allow_typing ? inputArea.value : undefined;\n inputArea.value = '';\n void ((_a = this.signalManager) === null || _a === void 0 ? void 0 : _a.signalTask(tasks[this.currentTaskIndex].task_id, 'done', textAnswer));\n if (this.currentTaskIndex < tasks.length - 1) {\n this.currentTaskIndex++;\n updateTaskContent();\n const durations = (_b = this.signalManager) === null || _b === void 0 ? void 0 : _b.getDurations();\n if (durations &&\n durations.tasks.findIndex((t) => t.taskId === tasks[this.currentTaskIndex].task_id) === -1) {\n durations.tasks.push({\n taskId: tasks[this.currentTaskIndex].task_id,\n started: this.app.timestamp(),\n });\n (_c = this.signalManager) === null || _c === void 0 ? void 0 : _c.setDurations(durations);\n }\n void ((_d = this.signalManager) === null || _d === void 0 ? void 0 : _d.signalTask(tasks[this.currentTaskIndex].task_id, 'begin'));\n highlightActive();\n }\n else {\n this.showEndSection();\n }\n this.app.localStorage.setItem('or_uxt_task_index', this.currentTaskIndex.toString());\n };\n setTimeout(() => {\n const firstTaskEl = document.getElementById('or_task_0');\n if (firstTaskEl) {\n Object.assign(firstTaskEl.style, styles.taskNumberActive);\n }\n updateTaskContent();\n highlightActive();\n }, 1);\n return section;\n }\n showEndSection() {\n var _a, _b, _c, _d, _e;\n let isLoading = true;\n void ((_a = this.signalManager) === null || _a === void 0 ? void 0 : _a.signalTest('done'));\n const section = createElement('div', 'end_section_or', styles.endSectionStyle);\n const title = createElement('div', 'end_title_or', {\n fontSize: '1.25rem',\n fontWeight: '500',\n }, 'Thank you! 👍');\n const description = createElement('div', 'end_description_or', {}, (_c = (_b = this.test) === null || _b === void 0 ? void 0 : _b.conclusion) !== null && _c !== void 0 ? _c : 'Thank you for participating in our usability test. Your feedback has been captured and will be used to enhance our website. \\n' +\n '\\n' +\n 'We appreciate your time and valuable input.');\n const button = createElement('div', 'end_button_or', styles.buttonWidgetStyle, 'Submitting Feedback');\n const spinner = createSpinner();\n button.appendChild(spinner);\n if (((_d = this.test) === null || _d === void 0 ? void 0 : _d.reqMic) || ((_e = this.test) === null || _e === void 0 ? void 0 : _e.reqCamera)) {\n void this.userRecorder\n .sendToAPI()\n .then(() => {\n button.removeChild(spinner);\n button.textContent = 'End Session';\n isLoading = false;\n })\n .catch((err) => {\n console.error(err);\n button.removeChild(spinner);\n button.textContent = 'End Session';\n isLoading = false;\n });\n }\n else {\n button.removeChild(spinner);\n button.textContent = 'End Session';\n isLoading = false;\n }\n if (this.taskSection) {\n this.container.removeChild(this.taskSection);\n }\n if (this.descriptionSection) {\n this.container.removeChild(this.descriptionSection);\n }\n if (this.stopButton && this.stopButtonContainer) {\n this.container.removeChild(this.stopButtonContainer);\n }\n button.onclick = () => {\n if (isLoading)\n return;\n window.close();\n document.body.removeChild(this.bg);\n };\n section.append(title, description, button);\n this.endSection = section;\n this.container.append(section);\n }\n}\n","// @ts-nocheck\nexport default function attachDND(element, dragTarget) {\n dragTarget.onmousedown = function (event) {\n const clientRect = element.getBoundingClientRect();\n const shiftX = event.clientX - clientRect.left;\n const shiftY = event.clientY - clientRect.top;\n element.style.position = 'fixed';\n element.style.zIndex = 99999999999999;\n moveAt(event.pageX, event.pageY);\n function moveAt(pageX, pageY) {\n let leftC = pageX - shiftX;\n let topC = pageY - shiftY;\n if (leftC <= 5)\n leftC = 5;\n if (topC <= 5)\n topC = 5;\n if (leftC >= window.innerWidth - clientRect.width)\n leftC = window.innerWidth - clientRect.width;\n if (topC >= window.innerHeight - clientRect.height)\n topC = window.innerHeight - clientRect.height;\n element.style.left = `${leftC}px`;\n element.style.top = `${topC}px`;\n }\n function onMouseMove(event) {\n moveAt(event.pageX, event.pageY);\n }\n document.addEventListener('mousemove', onMouseMove);\n const clearAll = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', clearAll);\n };\n document.addEventListener('mouseup', clearAll);\n };\n dragTarget.ondragstart = function () {\n return false;\n };\n}\n","export const WATCHED_TAGS_KEY = '__or__watched_tags__';\nclass TagWatcher {\n constructor(sessionStorage, errLog, onTag) {\n var _a;\n this.sessionStorage = sessionStorage;\n this.errLog = errLog;\n this.onTag = onTag;\n this.intervals = {};\n this.tags = [];\n const tags = JSON.parse((_a = sessionStorage.getItem(WATCHED_TAGS_KEY)) !== null && _a !== void 0 ? _a : '[]');\n this.setTags(tags);\n this.observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (entry.target) {\n // @ts-ignore\n const tag = entry.target.__or_watcher_tagname;\n if (tag) {\n this.onTagRendered(tag);\n }\n this.observer.unobserve(entry.target);\n }\n }\n });\n });\n }\n async fetchTags(ingest, token) {\n return fetch(`${ingest}/v1/web/tags`, {\n method: 'GET',\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })\n .then((r) => r.json())\n .then(({ tags }) => {\n if (tags && tags.length) {\n this.setTags(tags);\n const tagString = JSON.stringify(tags);\n this.sessionStorage.setItem(WATCHED_TAGS_KEY, tagString || '');\n }\n })\n .catch((e) => this.errLog(e));\n }\n setTags(tags) {\n this.tags = tags;\n this.intervals = {};\n tags.forEach((tag) => {\n this.intervals[tag.id] = setInterval(() => {\n const possibleEls = document.querySelectorAll(tag.selector);\n if (possibleEls.length > 0) {\n const el = possibleEls[0];\n // @ts-ignore\n el.__or_watcher_tagname = tag.id;\n this.observer.observe(el);\n }\n }, 500);\n });\n }\n onTagRendered(tagId) {\n if (this.intervals[tagId]) {\n clearInterval(this.intervals[tagId]);\n }\n this.onTag(tagId);\n }\n clear() {\n this.tags.forEach((tag) => {\n clearInterval(this.intervals[tag.id]);\n });\n this.tags = [];\n this.intervals = {};\n this.observer.disconnect();\n }\n}\nexport default TagWatcher;\n","import ConditionsManager from '../modules/conditionsManager.js';\nimport FeatureFlags from '../modules/featureFlags.js';\nimport { TagTrigger } from './messages.gen.js';\nimport { Timestamp, Metadata, UserID, TabChange, TabData, WSChannel, } from './messages.gen.js';\nimport { now, adjustTimeOrigin, deprecationWarn, inIframe, createEventListener, deleteEventListener, requestIdleCb, } from '../utils.js';\nimport Nodes from './nodes.js';\nimport Observer from './observer/top_observer.js';\nimport Sanitizer from './sanitizer.js';\nimport Ticker from './ticker.js';\nimport Logger, { LogLevel } from './logger.js';\nimport Session from './session.js';\nimport { gzip } from 'fflate';\nimport { deviceMemory, jsHeapSizeLimit } from '../modules/performance.js';\nimport AttributeSender from '../modules/attributeSender.js';\nimport CanvasRecorder from './canvas.js';\nimport UserTestManager from '../modules/userTesting/index.js';\nimport TagWatcher from '../modules/tagWatcher.js';\nconst CANCELED = 'canceled';\nconst uxtStorageKey = 'or_uxt_active';\nconst bufferStorageKey = 'or_buffer_1';\nconst START_ERROR = ':(';\nconst UnsuccessfulStart = (reason) => ({ reason, success: false });\nconst SuccessfulStart = (body) => (Object.assign(Object.assign({}, body), { success: true }));\nvar ActivityState;\n(function (ActivityState) {\n ActivityState[ActivityState[\"NotActive\"] = 0] = \"NotActive\";\n ActivityState[ActivityState[\"Starting\"] = 1] = \"Starting\";\n ActivityState[ActivityState[\"Active\"] = 2] = \"Active\";\n ActivityState[ActivityState[\"ColdStart\"] = 3] = \"ColdStart\";\n})(ActivityState || (ActivityState = {}));\n// TODO: use backendHost only\nexport const DEFAULT_INGEST_POINT = 'https://api.openreplay.com/ingest';\nfunction getTimezone() {\n const offset = new Date().getTimezoneOffset() * -1;\n const sign = offset >= 0 ? '+' : '-';\n const hours = Math.floor(Math.abs(offset) / 60);\n const minutes = Math.abs(offset) % 60;\n return `UTC${sign}${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}`;\n}\nexport default class App {\n constructor(projectKey, sessionToken, options, signalError) {\n var _a, _b;\n this.signalError = signalError;\n this.messages = [];\n /**\n * we need 2 buffers, so we don't lose anything\n * @read coldStart implementation\n * */\n this.bufferedMessages1 = [];\n this.bufferedMessages2 = [];\n this.startCallbacks = [];\n this.stopCallbacks = [];\n this.commitCallbacks = [];\n this.activityState = ActivityState.NotActive;\n this.version = '12.0.3'; // TODO: version compatability check inside each plugin.\n this.compressionThreshold = 24 * 1000;\n this.restartAttempts = 0;\n this.bc = null;\n this.canvasRecorder = null;\n this.conditionsManager = null;\n this._usingOldFetchPlugin = false;\n this.coldStartCommitN = 0;\n this.delay = 0;\n this.coldInterval = null;\n this.orderNumber = 0;\n this.coldStartTs = 0;\n this.singleBuffer = false;\n this.onSessionSent = () => {\n return;\n };\n this.restartCanvasTracking = () => {\n var _a;\n (_a = this.canvasRecorder) === null || _a === void 0 ? void 0 : _a.restartTracking();\n };\n this.flushBuffer = async (buffer) => {\n return new Promise((res) => {\n let ended = false;\n const messagesBatch = [buffer.shift()];\n while (!ended) {\n const nextMsg = buffer[0];\n if (!nextMsg || nextMsg[0] === 0 /* MType.Timestamp */) {\n ended = true;\n }\n else {\n messagesBatch.push(buffer.shift());\n }\n }\n this.postToWorker(messagesBatch);\n res(null);\n });\n };\n this.onUxtCb = [];\n this.contextId = Math.random().toString(36).slice(2);\n this.projectKey = projectKey;\n this.networkOptions = options.network;\n this.options = Object.assign({\n revID: '',\n node_id: '__openreplay_id',\n session_token_key: '__openreplay_token',\n session_pageno_key: '__openreplay_pageno',\n session_reset_key: '__openreplay_reset',\n session_tabid_key: '__openreplay_tabid',\n local_uuid_key: '__openreplay_uuid',\n ingestPoint: DEFAULT_INGEST_POINT,\n resourceBaseHref: null,\n __is_snippet: false,\n __debug_report_edp: null,\n __debug__: LogLevel.Silent,\n __save_canvas_locally: false,\n localStorage: null,\n sessionStorage: null,\n disableStringDict: false,\n forceSingleTab: false,\n assistSocketHost: '',\n fixedCanvasScaling: false,\n }, options);\n if (!this.options.forceSingleTab && globalThis && 'BroadcastChannel' in globalThis) {\n const host = location.hostname.split('.').slice(-2).join('_');\n this.bc = inIframe() ? null : new BroadcastChannel(`rick_${host}`);\n }\n this.revID = this.options.revID;\n this.localStorage = (_a = this.options.localStorage) !== null && _a !== void 0 ? _a : window.localStorage;\n this.sessionStorage = (_b = this.options.sessionStorage) !== null && _b !== void 0 ? _b : window.sessionStorage;\n this.sanitizer = new Sanitizer(this, options);\n this.nodes = new Nodes(this.options.node_id);\n this.observer = new Observer(this, options);\n this.ticker = new Ticker(this);\n this.ticker.attach(() => this.commit());\n this.debug = new Logger(this.options.__debug__);\n this.session = new Session(this, this.options);\n this.attributeSender = new AttributeSender(this, Boolean(this.options.disableStringDict));\n this.featureFlags = new FeatureFlags(this);\n this.tagWatcher = new TagWatcher(this.sessionStorage, this.debug.error, (tag) => {\n this.send(TagTrigger(tag));\n });\n this.session.attachUpdateCallback(({ userID, metadata }) => {\n if (userID != null) {\n // TODO: nullable userID\n this.send(UserID(userID));\n }\n if (metadata != null) {\n Object.entries(metadata).forEach(([key, value]) => this.send(Metadata(key, value)));\n }\n });\n // @deprecated (use sessionHash on start instead)\n if (sessionToken != null) {\n this.session.applySessionHash(sessionToken);\n }\n try {\n this.worker = new Worker(URL.createObjectURL(new Blob(['\"use strict\";class t{constructor(t,s,i,e=10,n=1e3,h){this.onUnauthorised=s,this.onFailure=i,this.MAX_ATTEMPTS_COUNT=e,this.ATTEMPT_TIMEOUT=n,this.onCompress=h,this.attemptsCount=0,this.busy=!1,this.queue=[],this.token=null,this.ingestURL=t+\"/v1/web/i\",this.isCompressing=void 0!==h}getQueueStatus(){return 0===this.queue.length&&!this.busy}authorise(t){this.token=t,this.busy||this.sendNext()}push(t){this.busy||!this.token?this.queue.push(t):(this.busy=!0,this.isCompressing&&this.onCompress?this.onCompress(t):this.sendBatch(t))}sendNext(){const t=this.queue.shift();t?(this.busy=!0,this.isCompressing&&this.onCompress?this.onCompress(t):this.sendBatch(t)):this.busy=!1}retry(t,s){this.attemptsCount>=this.MAX_ATTEMPTS_COUNT?this.onFailure(`Failed to send batch after ${this.attemptsCount} attempts.`):(this.attemptsCount++,setTimeout((()=>this.sendBatch(t,s)),this.ATTEMPT_TIMEOUT*this.attemptsCount))}sendBatch(t,s){this.busy=!0;const i={Authorization:`Bearer ${this.token}`};s&&(i[\"Content-Encoding\"]=\"gzip\"),null!==this.token?fetch(this.ingestURL,{body:t,method:\"POST\",headers:i,keepalive:t.length<65536}).then((i=>{if(401===i.status)return this.busy=!1,void this.onUnauthorised();i.status>=400?this.retry(t,s):(this.attemptsCount=0,this.sendNext())})).catch((i=>{console.warn(\"OpenReplay:\",i),this.retry(t,s)})):setTimeout((()=>{this.sendBatch(t,s)}),500)}sendCompressed(t){this.sendBatch(t,!0)}sendUncompressed(t){this.sendBatch(t,!1)}clean(){this.sendNext(),setTimeout((()=>{this.token=null,this.queue.length=0}),10)}}const s=\"function\"==typeof TextEncoder?new TextEncoder:{encode(t){const s=t.length,i=new Uint8Array(3*s);let e=-1;for(let n=0,h=0,r=0;r!==s;){if(n=t.charCodeAt(r),r+=1,n>=55296&&n<=56319){if(r===s){i[e+=1]=239,i[e+=1]=191,i[e+=1]=189;break}if(h=t.charCodeAt(r),!(h>=56320&&h<=57343)){i[e+=1]=239,i[e+=1]=191,i[e+=1]=189;continue}if(n=1024*(n-55296)+h-56320+65536,r+=1,n>65535){i[e+=1]=240|n>>>18,i[e+=1]=128|n>>>12&63,i[e+=1]=128|n>>>6&63,i[e+=1]=128|63&n;continue}}n<=127?i[e+=1]=0|n:n<=2047?(i[e+=1]=192|n>>>6,i[e+=1]=128|63&n):(i[e+=1]=224|n>>>12,i[e+=1]=128|n>>>6&63,i[e+=1]=128|63&n)}return i.subarray(0,e+1)}};class i{constructor(t){this.size=t,this.offset=0,this.checkpointOffset=0,this.data=new Uint8Array(t)}getCurrentOffset(){return this.offset}checkpoint(){this.checkpointOffset=this.offset}get isEmpty(){return 0===this.offset}skip(t){return this.offset+=t,this.offset<=this.size}set(t,s){this.data.set(t,s)}boolean(t){return this.data[this.offset++]=+t,this.offset<=this.size}uint(t){for((t<0||t>Number.MAX_SAFE_INTEGER)&&(t=0);t>=128;)this.data[this.offset++]=t%256|128,t=Math.floor(t/128);return this.data[this.offset++]=t,this.offset<=this.size}int(t){return t=Math.round(t),this.uint(t>=0?2*t:-2*t-1)}string(t){const i=s.encode(t),e=i.byteLength;return!(!this.uint(e)||this.offset+e>this.size)&&(this.data.set(i,this.offset),this.offset+=e,!0)}reset(){this.offset=0,this.checkpointOffset=0}flush(){const t=this.data.slice(0,this.checkpointOffset);return this.reset(),t}}class e extends i{encode(t){switch(t[0]){case 0:case 11:case 114:case 115:return this.uint(t[1]);case 4:case 44:case 47:return this.string(t[1])&&this.string(t[2])&&this.uint(t[3]);case 5:case 20:case 38:case 70:case 75:case 76:case 77:case 82:return this.uint(t[1])&&this.uint(t[2]);case 6:return this.int(t[1])&&this.int(t[2]);case 7:return!0;case 8:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.string(t[4])&&this.boolean(t[5]);case 9:case 10:case 24:case 51:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3]);case 12:case 61:case 71:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3]);case 13:case 14:case 17:case 50:case 54:return this.uint(t[1])&&this.string(t[2]);case 16:return this.uint(t[1])&&this.int(t[2])&&this.int(t[3]);case 18:return this.uint(t[1])&&this.string(t[2])&&this.int(t[3]);case 19:return this.uint(t[1])&&this.boolean(t[2]);case 21:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.string(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8]);case 22:case 27:case 30:case 41:case 45:case 46:case 63:case 64:case 79:return this.string(t[1])&&this.string(t[2]);case 23:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8])&&this.uint(t[9]);case 28:case 29:case 42:case 117:case 118:return this.string(t[1]);case 37:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3]);case 39:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.uint(t[7]);case 40:return this.string(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 48:case 78:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 49:return this.int(t[1])&&this.int(t[2])&&this.uint(t[3])&&this.uint(t[4]);case 53:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8]);case 55:return this.boolean(t[1]);case 57:case 60:return this.uint(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4]);case 58:case 120:return this.int(t[1]);case 59:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.string(t[5])&&this.string(t[6])&&this.string(t[7]);case 67:case 73:return this.uint(t[1])&&this.string(t[2])&&this.uint(t[3])&&this.string(t[4]);case 69:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3])&&this.string(t[4]);case 81:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.int(t[4])&&this.string(t[5]);case 83:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.string(t[4])&&this.string(t[5])&&this.uint(t[6])&&this.uint(t[7])&&this.uint(t[8])&&this.uint(t[9]);case 84:return this.string(t[1])&&this.string(t[2])&&this.string(t[3])&&this.uint(t[4])&&this.string(t[5])&&this.string(t[6]);case 112:return this.uint(t[1])&&this.string(t[2])&&this.boolean(t[3])&&this.string(t[4])&&this.int(t[5])&&this.int(t[6]);case 113:return this.uint(t[1])&&this.uint(t[2])&&this.string(t[3]);case 116:return this.uint(t[1])&&this.uint(t[2])&&this.uint(t[3])&&this.uint(t[4])&&this.uint(t[5])&&this.uint(t[6])&&this.string(t[7])&&this.string(t[8])&&this.uint(t[9])&&this.boolean(t[10]);case 119:return this.string(t[1])&&this.uint(t[2])}}}class n{constructor(t,s,i,n,h,r){this.pageNo=t,this.timestamp=s,this.url=i,this.onBatch=n,this.tabId=h,this.onOfflineEnd=r,this.nextIndex=0,this.beaconSize=2e5,this.encoder=new e(this.beaconSize),this.sizeBuffer=new Uint8Array(3),this.isEmpty=!0,this.beaconSizeLimit=1e6,this.prepare()}writeType(t){return this.encoder.uint(t[0])}writeFields(t){return this.encoder.encode(t)}writeSizeAt(t,s){for(let s=0;s<3;s++)this.sizeBuffer[s]=t>>8*s;this.encoder.set(this.sizeBuffer,s)}prepare(){if(!this.encoder.isEmpty)return;const t=[81,1,this.pageNo,this.nextIndex,this.timestamp,this.url],s=[118,this.tabId];this.writeType(t),this.writeFields(t),this.writeWithSize(s),this.isEmpty=!0}writeWithSize(t){const s=this.encoder;if(!this.writeType(t)||!s.skip(3))return!1;const i=s.getCurrentOffset(),e=this.writeFields(t);if(e){const e=s.getCurrentOffset()-i;if(e>16777215)return console.warn(\"OpenReplay: max message size overflow.\"),!1;this.writeSizeAt(e,i-3),s.checkpoint(),this.isEmpty=this.isEmpty&&0===t[0],this.nextIndex++}return e}setBeaconSizeLimit(t){this.beaconSizeLimit=t}writeMessage(t){if(\"q_end\"===t[0])return this.finaliseBatch(),this.onOfflineEnd();0===t[0]&&(this.timestamp=t[1]),4===t[0]&&(this.url=t[1]),this.writeWithSize(t)||(this.finaliseBatch(),this.writeWithSize(t)||(this.encoder=new e(this.beaconSizeLimit),this.prepare(),this.writeWithSize(t)?this.finaliseBatch():console.warn(\"OpenReplay: beacon size overflow. Skipping large message.\",t,this),this.encoder=new e(this.beaconSize),this.prepare()))}finaliseBatch(){if(this.isEmpty)return;const t=this.encoder.flush();this.onBatch(t),this.prepare()}clean(){this.encoder.reset()}}var h;!function(t){t[t.NotActive=0]=\"NotActive\",t[t.Starting=1]=\"Starting\",t[t.Stopping=2]=\"Stopping\",t[t.Active=3]=\"Active\",t[t.Stopped=4]=\"Stopped\"}(h||(h={}));let r=null,u=null,a=h.NotActive;function o(){u&&u.finaliseBatch()}function c(){a=h.Stopping,null!==g&&(clearInterval(g),g=null),u&&(u.clean(),u=null),r&&(r.clean(),setTimeout((()=>{r=null}),20)),setTimeout((()=>{a=h.NotActive}),100)}function p(){a!==h.Stopped&&(postMessage(\"restart\"),c())}let f,g=null;self.onmessage=({data:s})=>{if(null!=s){if(\"stop\"===s)return o(),c(),a=h.Stopped;if(\"forceFlushBatch\"!==s){if(!Array.isArray(s)){if(\"compressed\"===s.type){if(!r)return console.debug(\"OR WebWorker: sender not initialised. Compressed batch.\"),void p();s.batch&&r.sendCompressed(s.batch)}if(\"uncompressed\"===s.type){if(!r)return console.debug(\"OR WebWorker: sender not initialised. Uncompressed batch.\"),void p();s.batch&&r.sendUncompressed(s.batch)}return\"start\"===s.type?(a=h.Starting,r=new t(s.ingestPoint,(()=>{p()}),(t=>{!function(t){postMessage({type:\"failure\",reason:t}),c()}(t)}),s.connAttemptCount,s.connAttemptGap,(t=>{postMessage({type:\"compress\",batch:t},[t.buffer])})),u=new n(s.pageNo,s.timestamp,s.url,(t=>{r&&r.push(t)}),s.tabId,(()=>postMessage({type:\"queue_empty\"}))),null===g&&(g=setInterval(o,1e4)),a=h.Active):\"auth\"===s.type?r?u?(r.authorise(s.token),void(s.beaconSizeLimit&&u.setBeaconSizeLimit(s.beaconSizeLimit))):(console.debug(\"OR WebWorker: writer not initialised. Received auth.\"),void p()):(console.debug(\"OR WebWorker: sender not initialised. Received auth.\"),void p()):void 0}if(u){const t=u;s.forEach((s=>{55===s[0]&&(s[1]?f=setTimeout((()=>p()),18e5):clearTimeout(f)),t.writeMessage(s)}))}else postMessage(\"not_init\"),p()}else o()}else o()};'], { type: 'text/javascript' })));\n this.worker.onerror = (e) => {\n this._debug('webworker_error', e);\n };\n this.worker.onmessage = ({ data }) => {\n var _a;\n if (data === 'restart') {\n this.stop(false);\n void this.start({}, true);\n }\n else if (data === 'not_init') {\n this.debug.warn('OR WebWorker: writer not initialised. Restarting tracker');\n }\n else if (data.type === 'failure') {\n this.stop(false);\n this.debug.error('worker_failed', data.reason);\n this._debug('worker_failed', data.reason);\n }\n else if (data.type === 'compress') {\n const batch = data.batch;\n const batchSize = batch.byteLength;\n if (batchSize > this.compressionThreshold) {\n gzip(data.batch, { mtime: 0 }, (err, result) => {\n var _a;\n if (err) {\n this.debug.error('Openreplay compression error:', err);\n this.stop(false);\n if (this.restartAttempts < 3) {\n this.restartAttempts += 1;\n void this.start({}, true);\n }\n }\n else {\n (_a = this.worker) === null || _a === void 0 ? void 0 : _a.postMessage({ type: 'compressed', batch: result });\n }\n });\n }\n else {\n (_a = this.worker) === null || _a === void 0 ? void 0 : _a.postMessage({ type: 'uncompressed', batch: batch });\n }\n }\n else if (data.type === 'queue_empty') {\n this.onSessionSent();\n }\n };\n const alertWorker = () => {\n if (this.worker) {\n this.worker.postMessage(null);\n }\n };\n // keep better tactics, discard others?\n this.attachEventListener(window, 'beforeunload', alertWorker, false);\n this.attachEventListener(document.body, 'mouseleave', alertWorker, false, false);\n // TODO: stop session after inactivity timeout (make configurable)\n this.attachEventListener(document, 'visibilitychange', alertWorker, false);\n }\n catch (e) {\n this._debug('worker_start', e);\n }\n const thisTab = this.session.getTabId();\n const proto = {\n // ask if there are any tabs alive\n ask: 'never-gonna-give-you-up',\n // yes, there are someone out there\n resp: 'never-gonna-let-you-down',\n // you stole someone's identity\n reg: 'never-gonna-run-around-and-desert-you',\n };\n if (this.bc) {\n this.bc.postMessage({\n line: proto.ask,\n source: thisTab,\n context: this.contextId,\n });\n }\n if (this.bc !== null) {\n this.bc.onmessage = (ev) => {\n if (ev.data.context === this.contextId) {\n return;\n }\n if (ev.data.line === proto.resp) {\n const sessionToken = ev.data.token;\n this.session.setSessionToken(sessionToken);\n }\n if (ev.data.line === proto.reg) {\n const sessionToken = ev.data.token;\n this.session.regenerateTabId();\n this.session.setSessionToken(sessionToken);\n }\n if (ev.data.line === proto.ask) {\n const token = this.session.getSessionToken();\n if (token && this.bc) {\n this.bc.postMessage({\n line: ev.data.source === thisTab ? proto.reg : proto.resp,\n token,\n source: thisTab,\n context: this.contextId,\n });\n }\n }\n };\n }\n }\n _debug(context, e) {\n if (this.options.__debug_report_edp !== null) {\n void fetch(this.options.__debug_report_edp, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n context,\n // @ts-ignore\n error: `${e}`,\n }),\n });\n }\n this.debug.error('OpenReplay error: ', context, e);\n }\n send(message, urgent = false) {\n var _a;\n if (this.activityState === ActivityState.NotActive) {\n return;\n }\n // === Back compatibility with Fetch/Axios plugins ===\n if (message[0] === 39 /* MType.Fetch */) {\n this._usingOldFetchPlugin = true;\n deprecationWarn('Fetch plugin', \"'network' init option\", '/installation/network-options');\n deprecationWarn('Axios plugin', \"'network' init option\", '/installation/network-options');\n }\n if (this._usingOldFetchPlugin && message[0] === 83 /* MType.NetworkRequest */) {\n return;\n }\n // ====================================================\n if (this.activityState === ActivityState.ColdStart) {\n this.bufferedMessages1.push(message);\n if (!this.singleBuffer) {\n this.bufferedMessages2.push(message);\n }\n (_a = this.conditionsManager) === null || _a === void 0 ? void 0 : _a.processMessage(message);\n }\n else {\n this.messages.push(message);\n }\n // TODO: commit on start if there were `urgent` sends;\n // Clarify where urgent can be used for;\n // Clarify workflow for each type of message in case it was sent before start\n // (like Fetch before start; maybe add an option \"preCapture: boolean\" or sth alike)\n // Careful: `this.delay` is equal to zero before start so all Timestamp-s will have to be updated on start\n if (this.activityState === ActivityState.Active && urgent) {\n this.commit();\n }\n }\n /**\n * Normal workflow: add timestamp and tab data to batch, then commit it\n * every ~30ms\n * */\n _nCommit() {\n if (this.worker !== undefined && this.messages.length) {\n requestIdleCb(() => {\n var _a;\n this.messages.unshift(TabData(this.session.getTabId()));\n this.messages.unshift(Timestamp(this.timestamp()));\n // why I need to add opt chaining?\n (_a = this.worker) === null || _a === void 0 ? void 0 : _a.postMessage(this.messages);\n this.commitCallbacks.forEach((cb) => cb(this.messages));\n this.messages.length = 0;\n });\n }\n }\n /**\n * Cold start: add timestamp and tab data to both batches\n * every 2nd tick, ~60ms\n * this will make batches a bit larger and replay will work with bigger jumps every frame\n * but in turn we don't overload batch writer on session start with 1000 batches\n * */\n _cStartCommit() {\n this.coldStartCommitN += 1;\n if (this.coldStartCommitN === 2) {\n this.bufferedMessages1.push(Timestamp(this.timestamp()));\n this.bufferedMessages1.push(TabData(this.session.getTabId()));\n this.bufferedMessages2.push(Timestamp(this.timestamp()));\n this.bufferedMessages2.push(TabData(this.session.getTabId()));\n this.coldStartCommitN = 0;\n }\n }\n commit() {\n if (this.activityState === ActivityState.ColdStart) {\n this._cStartCommit();\n }\n else {\n this._nCommit();\n }\n }\n postToWorker(messages) {\n var _a;\n (_a = this.worker) === null || _a === void 0 ? void 0 : _a.postMessage(messages);\n this.commitCallbacks.forEach((cb) => cb(messages));\n messages.length = 0;\n }\n timestamp() {\n return now() + this.delay;\n }\n safe(fn) {\n const app = this;\n return function (...args) {\n try {\n fn.apply(this, args);\n }\n catch (e) {\n app._debug('safe_fn_call', e);\n // time: this.timestamp(),\n // name: e.name,\n // message: e.message,\n // stack: e.stack\n }\n }; // TODO: correct typing\n }\n attachCommitCallback(cb) {\n this.commitCallbacks.push(cb);\n }\n attachStartCallback(cb, useSafe = false) {\n if (useSafe) {\n cb = this.safe(cb);\n }\n this.startCallbacks.push(cb);\n }\n attachStopCallback(cb, useSafe = false) {\n if (useSafe) {\n cb = this.safe(cb);\n }\n this.stopCallbacks.push(cb);\n }\n // Use app.nodes.attachNodeListener for registered nodes instead\n attachEventListener(target, type, listener, useSafe = true, useCapture = true) {\n if (useSafe) {\n listener = this.safe(listener);\n }\n this.attachStartCallback(() => (target ? createEventListener(target, type, listener, useCapture) : null), useSafe);\n this.attachStopCallback(() => (target ? deleteEventListener(target, type, listener, useCapture) : null), useSafe);\n }\n // TODO: full correct semantic\n checkRequiredVersion(version) {\n const reqVer = version.split(/[.-]/);\n const ver = this.version.split(/[.-]/);\n for (let i = 0; i < 3; i++) {\n if (isNaN(Number(ver[i])) || isNaN(Number(reqVer[i]))) {\n return false;\n }\n if (Number(ver[i]) > Number(reqVer[i])) {\n return true;\n }\n if (Number(ver[i]) < Number(reqVer[i])) {\n return false;\n }\n }\n return true;\n }\n getTrackerInfo() {\n return {\n userUUID: this.localStorage.getItem(this.options.local_uuid_key),\n projectKey: this.projectKey,\n revID: this.revID,\n trackerVersion: this.version,\n isSnippet: this.options.__is_snippet,\n };\n }\n getSessionInfo() {\n return Object.assign(Object.assign({}, this.session.getInfo()), this.getTrackerInfo());\n }\n getSessionToken() {\n return this.session.getSessionToken();\n }\n getSessionID() {\n return this.session.getInfo().sessionID || undefined;\n }\n getSessionURL(options) {\n const { projectID, sessionID, timestamp } = this.session.getInfo();\n if (!projectID || !sessionID) {\n this.debug.error('OpenReplay error: Unable to build session URL');\n return undefined;\n }\n const ingest = this.options.ingestPoint;\n const isSaas = /api\\.openreplay\\.com/.test(ingest);\n const projectPath = isSaas ? 'https://app.openreplay.com/ingest' : ingest;\n const url = projectPath.replace(/ingest$/, `${projectID}/session/${sessionID}`);\n if (options === null || options === void 0 ? void 0 : options.withCurrentTime) {\n const jumpTo = now() - timestamp;\n return `${url}?jumpto=${jumpTo}`;\n }\n return url;\n }\n getHost() {\n return new URL(this.options.ingestPoint).host;\n }\n getProjectKey() {\n return this.projectKey;\n }\n getBaseHref() {\n var _a, _b;\n if (typeof this.options.resourceBaseHref === 'string') {\n return this.options.resourceBaseHref;\n }\n else if (typeof this.options.resourceBaseHref === 'object') {\n //TODO: switch between types\n }\n if (document.baseURI) {\n return document.baseURI;\n }\n // IE only\n return (((_b = (_a = document.head) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('base')[0]) === null || _b === void 0 ? void 0 : _b.getAttribute('href')) ||\n location.origin + location.pathname);\n }\n resolveResourceURL(resourceURL) {\n const base = new URL(this.getBaseHref());\n base.pathname += '/' + new URL(resourceURL).pathname;\n base.pathname.replace(/\\/+/g, '/');\n return base.toString();\n }\n isServiceURL(url) {\n return url.startsWith(this.options.ingestPoint);\n }\n active() {\n return this.activityState === ActivityState.Active;\n }\n resetNextPageSession(flag) {\n if (flag) {\n this.sessionStorage.setItem(this.options.session_reset_key, 't');\n }\n else {\n this.sessionStorage.removeItem(this.options.session_reset_key);\n }\n }\n checkSessionToken(forceNew) {\n const lsReset = this.sessionStorage.getItem(this.options.session_reset_key) !== null;\n const needNewSessionID = forceNew || lsReset;\n const sessionToken = this.session.getSessionToken();\n return needNewSessionID || !sessionToken;\n }\n /**\n * start buffering messages without starting the actual session, which gives\n * user 30 seconds to \"activate\" and record session by calling `start()` on conditional trigger\n * and we will then send buffered batch, so it won't get lost\n * */\n async coldStart(startOpts = {}, conditional) {\n var _a, _b;\n this.singleBuffer = false;\n const second = 1000;\n if (conditional) {\n this.conditionsManager = new ConditionsManager(this, startOpts);\n }\n const isNewSession = this.checkSessionToken(startOpts.forceNew);\n if (conditional) {\n const r = await fetch(this.options.ingestPoint + '/v1/web/start', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(Object.assign(Object.assign({}, this.getTrackerInfo()), { timestamp: now(), doNotRecord: true, bufferDiff: 0, userID: this.session.getInfo().userID, token: undefined, deviceMemory,\n jsHeapSizeLimit, timezone: getTimezone() })),\n });\n const { \n // this token is needed to fetch conditions and flags,\n // but it can't be used to record a session\n token, userBrowser, userCity, userCountry, userDevice, userOS, userState, projectID, } = await r.json();\n this.session.assign({ projectID });\n this.session.setUserInfo({\n userBrowser,\n userCity,\n userCountry,\n userDevice,\n userOS,\n userState,\n });\n const onStartInfo = { sessionToken: token, userUUID: '', sessionID: '' };\n this.startCallbacks.forEach((cb) => cb(onStartInfo));\n await ((_a = this.conditionsManager) === null || _a === void 0 ? void 0 : _a.fetchConditions(projectID, token));\n await this.featureFlags.reloadFlags(token);\n await this.tagWatcher.fetchTags(this.options.ingestPoint, token);\n (_b = this.conditionsManager) === null || _b === void 0 ? void 0 : _b.processFlags(this.featureFlags.flags);\n }\n const cycle = () => {\n this.orderNumber += 1;\n adjustTimeOrigin();\n this.coldStartTs = now();\n if (this.orderNumber % 2 === 0) {\n this.bufferedMessages1.length = 0;\n this.bufferedMessages1.push(Timestamp(this.timestamp()));\n this.bufferedMessages1.push(TabData(this.session.getTabId()));\n }\n else {\n this.bufferedMessages2.length = 0;\n this.bufferedMessages2.push(Timestamp(this.timestamp()));\n this.bufferedMessages2.push(TabData(this.session.getTabId()));\n }\n this.stop(false);\n this.activityState = ActivityState.ColdStart;\n if (startOpts.sessionHash) {\n this.session.applySessionHash(startOpts.sessionHash);\n }\n if (startOpts.forceNew) {\n this.session.reset();\n }\n this.session.assign({\n userID: startOpts.userID,\n metadata: startOpts.metadata,\n });\n if (!isNewSession) {\n this.debug.log('continuing session on new tab', this.session.getTabId());\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n this.send(TabChange(this.session.getTabId()));\n }\n this.observer.observe();\n this.ticker.start();\n };\n this.coldInterval = setInterval(() => {\n cycle();\n }, 30 * second);\n cycle();\n }\n /**\n * Starts offline session recording\n * @param {Object} startOpts - options for session start, same as .start()\n * @param {Function} onSessionSent - callback that will be called once session is fully sent\n * */\n offlineRecording(startOpts = {}, onSessionSent) {\n this.onSessionSent = onSessionSent;\n this.singleBuffer = true;\n const isNewSession = this.checkSessionToken(startOpts.forceNew);\n adjustTimeOrigin();\n this.coldStartTs = now();\n const saverBuffer = this.localStorage.getItem(bufferStorageKey);\n if (saverBuffer) {\n const data = JSON.parse(saverBuffer);\n this.bufferedMessages1 = Array.isArray(data) ? data : this.bufferedMessages1;\n this.localStorage.removeItem(bufferStorageKey);\n }\n this.bufferedMessages1.push(Timestamp(this.timestamp()));\n this.bufferedMessages1.push(TabData(this.session.getTabId()));\n this.activityState = ActivityState.ColdStart;\n if (startOpts.sessionHash) {\n this.session.applySessionHash(startOpts.sessionHash);\n }\n if (startOpts.forceNew) {\n this.session.reset();\n }\n this.session.assign({\n userID: startOpts.userID,\n metadata: startOpts.metadata,\n });\n const onStartInfo = { sessionToken: '', userUUID: '', sessionID: '' };\n this.startCallbacks.forEach((cb) => cb(onStartInfo));\n if (!isNewSession) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n this.send(TabChange(this.session.getTabId()));\n }\n this.observer.observe();\n this.ticker.start();\n return {\n saveBuffer: this.saveBuffer,\n getBuffer: this.getBuffer,\n setBuffer: this.setBuffer,\n };\n }\n /**\n * Saves the captured messages in localStorage (or whatever is used in its place)\n *\n * Then when this.offlineRecording is called, it will preload this messages and clear the storage item\n *\n * Keeping the size of local storage reasonable is up to the end users of this library\n * */\n saveBuffer() {\n this.localStorage.setItem(bufferStorageKey, JSON.stringify(this.bufferedMessages1));\n }\n /**\n * @returns buffer with stored messages for offline recording\n * */\n getBuffer() {\n return this.bufferedMessages1;\n }\n /**\n * Used to set a buffer with messages array\n * */\n setBuffer(buffer) {\n this.bufferedMessages1 = buffer;\n }\n /**\n * Uploads the stored session buffer to backend\n * @returns promise that resolves once messages are loaded, it has to be awaited\n * so the session can be uploaded properly\n * @resolve - if messages were loaded in service worker successfully\n * @reject {string} - error message\n * */\n async uploadOfflineRecording() {\n var _a, _b;\n this.stop(false);\n const timestamp = now();\n (_a = this.worker) === null || _a === void 0 ? void 0 : _a.postMessage({\n type: 'start',\n pageNo: this.session.incPageNo(),\n ingestPoint: this.options.ingestPoint,\n timestamp: this.coldStartTs,\n url: document.URL,\n connAttemptCount: this.options.connAttemptCount,\n connAttemptGap: this.options.connAttemptGap,\n tabId: this.session.getTabId(),\n });\n const r = await fetch(this.options.ingestPoint + '/v1/web/start', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(Object.assign(Object.assign({}, this.getTrackerInfo()), { timestamp: timestamp, doNotRecord: false, bufferDiff: timestamp - this.coldStartTs, userID: this.session.getInfo().userID, token: undefined, deviceMemory,\n jsHeapSizeLimit, timezone: getTimezone() })),\n });\n const { token, userBrowser, userCity, userCountry, userDevice, userOS, userState, beaconSizeLimit, projectID, } = await r.json();\n (_b = this.worker) === null || _b === void 0 ? void 0 : _b.postMessage({\n type: 'auth',\n token,\n beaconSizeLimit,\n });\n this.session.assign({ projectID });\n this.session.setUserInfo({\n userBrowser,\n userCity,\n userCountry,\n userDevice,\n userOS,\n userState,\n });\n while (this.bufferedMessages1.length > 0) {\n await this.flushBuffer(this.bufferedMessages1);\n }\n this.postToWorker([['q_end']]);\n this.clearBuffers();\n }\n _start(startOpts = {}, resetByWorker = false, conditionName) {\n const isColdStart = this.activityState === ActivityState.ColdStart;\n if (isColdStart && this.coldInterval) {\n clearInterval(this.coldInterval);\n }\n if (!this.worker) {\n const reason = 'No worker found: perhaps, CSP is not set.';\n this.signalError(reason, []);\n return Promise.resolve(UnsuccessfulStart(reason));\n }\n if (this.activityState === ActivityState.Active ||\n this.activityState === ActivityState.Starting) {\n const reason = 'OpenReplay: trying to call `start()` on the instance that has been started already.';\n return Promise.resolve(UnsuccessfulStart(reason));\n }\n this.activityState = ActivityState.Starting;\n if (!isColdStart) {\n adjustTimeOrigin();\n }\n if (startOpts.sessionHash) {\n this.session.applySessionHash(startOpts.sessionHash);\n }\n if (startOpts.forceNew) {\n // Reset session metadata only if requested directly\n this.session.reset();\n }\n this.session.assign({\n // MBTODO: maybe it would make sense to `forceNew` if the `userID` was changed\n userID: startOpts.userID,\n metadata: startOpts.metadata,\n });\n const timestamp = now();\n this.worker.postMessage({\n type: 'start',\n pageNo: this.session.incPageNo(),\n ingestPoint: this.options.ingestPoint,\n timestamp: isColdStart ? this.coldStartTs : timestamp,\n url: document.URL,\n connAttemptCount: this.options.connAttemptCount,\n connAttemptGap: this.options.connAttemptGap,\n tabId: this.session.getTabId(),\n });\n const sessionToken = this.session.getSessionToken();\n const isNewSession = this.checkSessionToken(startOpts.forceNew);\n this.sessionStorage.removeItem(this.options.session_reset_key);\n this.debug.log('OpenReplay: starting session; need new session id?', isNewSession, 'session token: ', sessionToken);\n return window\n .fetch(this.options.ingestPoint + '/v1/web/start', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(Object.assign(Object.assign({}, this.getTrackerInfo()), { timestamp, doNotRecord: false, bufferDiff: timestamp - this.coldStartTs, userID: this.session.getInfo().userID, token: isNewSession ? undefined : sessionToken, deviceMemory,\n jsHeapSizeLimit, timezone: getTimezone(), condition: conditionName })),\n })\n .then((r) => {\n if (r.status === 200) {\n return r.json();\n }\n else {\n return r\n .text()\n .then((text) => text === CANCELED\n ? Promise.reject(CANCELED)\n : Promise.reject(`Server error: ${r.status}. ${text}`));\n }\n })\n .then(async (r) => {\n var _a;\n if (!this.worker) {\n const reason = 'no worker found after start request (this might not happen)';\n this.signalError(reason, []);\n return Promise.reject(reason);\n }\n if (this.activityState === ActivityState.NotActive) {\n const reason = 'Tracker stopped during authorization';\n this.signalError(reason, []);\n return Promise.reject(reason);\n }\n const { token, userUUID, projectID, beaconSizeLimit, compressionThreshold, // how big the batch should be before we decide to compress it\n delay, // derived from token\n sessionID, // derived from token\n startTimestamp, // real startTS (server time), derived from sessionID\n userBrowser, userCity, userCountry, userDevice, userOS, userState, canvasEnabled, canvasQuality, canvasFPS, } = r;\n if (typeof token !== 'string' ||\n typeof userUUID !== 'string' ||\n (typeof startTimestamp !== 'number' && typeof startTimestamp !== 'undefined') ||\n typeof sessionID !== 'string' ||\n typeof delay !== 'number' ||\n (typeof beaconSizeLimit !== 'number' && typeof beaconSizeLimit !== 'undefined')) {\n const reason = `Incorrect server response: ${JSON.stringify(r)}`;\n this.signalError(reason, []);\n return Promise.reject(reason);\n }\n this.delay = delay;\n this.session.setSessionToken(token);\n this.session.setUserInfo({\n userBrowser,\n userCity,\n userCountry,\n userDevice,\n userOS,\n userState,\n });\n this.session.assign({\n sessionID,\n timestamp: startTimestamp || timestamp,\n projectID,\n });\n this.worker.postMessage({\n type: 'auth',\n token,\n beaconSizeLimit,\n });\n if (!isNewSession && token === sessionToken) {\n this.debug.log('continuing session on new tab', this.session.getTabId());\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n this.send(TabChange(this.session.getTabId()));\n }\n // (Re)send Metadata for the case of a new session\n Object.entries(this.session.getInfo().metadata).forEach(([key, value]) => this.send(Metadata(key, value)));\n this.localStorage.setItem(this.options.local_uuid_key, userUUID);\n this.compressionThreshold = compressionThreshold;\n const onStartInfo = { sessionToken: token, userUUID, sessionID };\n // TODO: start as early as possible (before receiving the token)\n /** after start */\n this.startCallbacks.forEach((cb) => cb(onStartInfo)); // MBTODO: callbacks after DOM \"mounted\" (observed)\n void this.featureFlags.reloadFlags();\n await this.tagWatcher.fetchTags(this.options.ingestPoint, token);\n this.activityState = ActivityState.Active;\n if (canvasEnabled) {\n this.canvasRecorder =\n (_a = this.canvasRecorder) !== null && _a !== void 0 ? _a : new CanvasRecorder(this, {\n fps: canvasFPS,\n quality: canvasQuality,\n isDebug: this.options.__save_canvas_locally,\n fixedScaling: this.options.fixedCanvasScaling,\n });\n this.canvasRecorder.startTracking();\n }\n /** --------------- COLD START BUFFER ------------------*/\n if (isColdStart) {\n const biggestBuffer = this.bufferedMessages1.length > this.bufferedMessages2.length\n ? this.bufferedMessages1\n : this.bufferedMessages2;\n while (biggestBuffer.length > 0) {\n await this.flushBuffer(biggestBuffer);\n }\n this.clearBuffers();\n this.commit();\n /** --------------- COLD START BUFFER ------------------*/\n }\n else {\n this.observer.observe();\n this.ticker.start();\n }\n // get rid of onStart ?\n if (typeof this.options.onStart === 'function') {\n this.options.onStart(onStartInfo);\n }\n this.restartAttempts = 0;\n this.uxtManager = this.uxtManager\n ? this.uxtManager\n : new UserTestManager(this, uxtStorageKey);\n let uxtId;\n const savedUxtTag = this.localStorage.getItem(uxtStorageKey);\n if (savedUxtTag) {\n uxtId = parseInt(savedUxtTag, 10);\n }\n if (location === null || location === void 0 ? void 0 : location.search) {\n const query = new URLSearchParams(location.search);\n if (query.has('oruxt')) {\n const qId = query.get('oruxt');\n uxtId = qId ? parseInt(qId, 10) : undefined;\n }\n }\n if (uxtId) {\n if (!this.uxtManager.isActive) {\n // eslint-disable-next-line\n this.uxtManager.getTest(uxtId, token, Boolean(savedUxtTag)).then((id) => {\n if (id) {\n this.onUxtCb.forEach((cb) => cb(id));\n }\n });\n }\n else {\n // @ts-ignore\n this.onUxtCb.forEach((cb) => cb(uxtId));\n }\n }\n return SuccessfulStart(onStartInfo);\n })\n .catch((reason) => {\n this.stop();\n this.session.reset();\n if (reason === CANCELED) {\n this.signalError(CANCELED, []);\n return UnsuccessfulStart(CANCELED);\n }\n this._debug('session_start', reason);\n this.signalError(START_ERROR, []);\n return UnsuccessfulStart(START_ERROR);\n });\n }\n addOnUxtCb(cb) {\n // @ts-ignore\n this.onUxtCb.push(cb);\n }\n getUxtId() {\n var _a;\n return (_a = this.uxtManager) === null || _a === void 0 ? void 0 : _a.getTestId();\n }\n /**\n * basically we ask other tabs during constructor\n * and here we just apply 10ms delay just in case\n * */\n start(...args) {\n if (!document.hidden) {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(this._start(...args));\n }, 25);\n });\n }\n else {\n return new Promise((resolve) => {\n const onVisibilityChange = () => {\n if (!document.hidden) {\n document.removeEventListener('visibilitychange', onVisibilityChange);\n setTimeout(() => {\n resolve(this._start(...args));\n }, 25);\n }\n };\n document.addEventListener('visibilitychange', onVisibilityChange);\n });\n }\n }\n forceFlushBatch() {\n var _a;\n (_a = this.worker) === null || _a === void 0 ? void 0 : _a.postMessage('forceFlushBatch');\n }\n getTabId() {\n return this.session.getTabId();\n }\n clearBuffers() {\n this.bufferedMessages1.length = 0;\n this.bufferedMessages2.length = 0;\n }\n /**\n * Creates a named hook that expects event name, data string and msg direction (up/down),\n * it will skip any message bigger than 5 mb or event name bigger than 255 symbols\n * @returns {(msgType: string, data: string, dir: \"up\" | \"down\") => void}\n * */\n trackWs(channelName) {\n const channel = channelName;\n return (msgType, data, dir = 'down') => {\n if (typeof msgType !== 'string' ||\n typeof data !== 'string' ||\n data.length > 5 * 1024 * 1024 ||\n msgType.length > 255) {\n return;\n }\n this.send(WSChannel('websocket', channel, data, this.timestamp(), dir, msgType));\n };\n }\n stop(stopWorker = true) {\n var _a;\n if (this.activityState !== ActivityState.NotActive) {\n try {\n this.attributeSender.clear();\n this.sanitizer.clear();\n this.observer.disconnect();\n this.nodes.clear();\n this.ticker.stop();\n this.stopCallbacks.forEach((cb) => cb());\n this.debug.log('OpenReplay tracking stopped.');\n this.tagWatcher.clear();\n if (this.worker && stopWorker) {\n this.worker.postMessage('stop');\n }\n (_a = this.canvasRecorder) === null || _a === void 0 ? void 0 : _a.clear();\n }\n finally {\n this.activityState = ActivityState.NotActive;\n }\n }\n }\n}\n","import { IN_BROWSER } from '../utils.js';\nimport { ConsoleLog } from '../app/messages.gen.js';\nconst printError = IN_BROWSER && 'InstallTrigger' in window // detect Firefox\n ? (e) => e.message + '\\n' + e.stack\n : (e) => e.stack || e.message;\nfunction printString(arg) {\n if (arg === undefined) {\n return 'undefined';\n }\n if (arg === null) {\n return 'null';\n }\n if (arg instanceof Error) {\n return printError(arg);\n }\n if (Array.isArray(arg)) {\n return `Array(${arg.length})`;\n }\n return String(arg);\n}\nfunction printFloat(arg) {\n if (typeof arg !== 'number')\n return 'NaN';\n return arg.toString();\n}\nfunction printInt(arg) {\n if (typeof arg !== 'number')\n return 'NaN';\n return Math.floor(arg).toString();\n}\nfunction printObject(arg) {\n if (arg === undefined) {\n return 'undefined';\n }\n if (arg === null) {\n return 'null';\n }\n if (arg instanceof Error) {\n return printError(arg);\n }\n if (Array.isArray(arg)) {\n const length = arg.length;\n const values = arg.slice(0, 10).map(printString).join(', ');\n return `Array(${length})[${values}]`;\n }\n if (typeof arg === 'object') {\n const res = [];\n let i = 0;\n for (const k in arg) {\n if (++i === 10) {\n break;\n }\n const v = arg[k];\n res.push(k + ': ' + printString(v));\n }\n return '{' + res.join(', ') + '}';\n }\n return arg.toString();\n}\nfunction printf(args) {\n if (typeof args[0] === 'string') {\n args.unshift(args.shift().replace(/%(o|s|f|d|i)/g, (s, t) => {\n const arg = args.shift();\n if (arg === undefined)\n return s;\n switch (t) {\n case 'o':\n return printObject(arg);\n case 's':\n return printString(arg);\n case 'f':\n return printFloat(arg);\n case 'd':\n case 'i':\n return printInt(arg);\n default:\n return s;\n }\n }));\n }\n return args.map(printObject).join(' ');\n}\nconst consoleMethods = ['log', 'info', 'warn', 'error', 'debug', 'assert'];\nexport default function (app, opts) {\n const options = Object.assign({\n consoleMethods,\n consoleThrottling: 30,\n }, opts);\n if (!Array.isArray(options.consoleMethods) || options.consoleMethods.length === 0) {\n return;\n }\n const sendConsoleLog = app.safe((level, args) => app.send(ConsoleLog(level, printf(args))));\n let n = 0;\n const reset = () => {\n n = 0;\n };\n app.attachStartCallback(reset);\n app.ticker.attach(reset, 33, false);\n const patchConsole = (console, ctx) => {\n const handler = {\n apply: function (target, thisArg, argumentsList) {\n Reflect.apply(target, ctx, argumentsList);\n n = n + 1;\n if (n > options.consoleThrottling) {\n return;\n }\n else {\n sendConsoleLog(target.name, argumentsList);\n }\n },\n };\n options.consoleMethods.forEach((method) => {\n if (consoleMethods.indexOf(method) === -1) {\n app.debug.error(`OpenReplay: unsupported console method \"${method}\"`);\n return;\n }\n const fn = ctx.console[method];\n console[method] = new Proxy(fn, handler);\n });\n };\n const patchContext = app.safe((context) => patchConsole(context.console, context));\n patchContext(window);\n app.observer.attachContextCallback(patchContext);\n}\n","import { JSException } from '../app/messages.gen.js';\nimport ErrorStackParser from 'error-stack-parser';\nfunction getDefaultStack(e) {\n return [\n {\n columnNumber: e.colno,\n lineNumber: e.lineno,\n fileName: e.filename,\n functionName: '',\n source: '',\n },\n ];\n}\nexport function getExceptionMessage(error, fallbackStack, metadata = {}) {\n let stack = fallbackStack;\n try {\n stack = ErrorStackParser.parse(error);\n }\n catch (e) { }\n return JSException(error.name, error.message, JSON.stringify(stack), JSON.stringify(metadata));\n}\nexport function getExceptionMessageFromEvent(e, context = window, metadata = {}) {\n if (e instanceof ErrorEvent) {\n if (e.error instanceof Error) {\n return getExceptionMessage(e.error, getDefaultStack(e), metadata);\n }\n else {\n let [name, message] = e.message.split(':');\n if (!message) {\n name = 'Error';\n message = e.message;\n }\n return JSException(name, message, JSON.stringify(getDefaultStack(e)), JSON.stringify(metadata));\n }\n }\n else if ('PromiseRejectionEvent' in context && e instanceof context.PromiseRejectionEvent) {\n if (e.reason instanceof Error) {\n return getExceptionMessage(e.reason, [], metadata);\n }\n else {\n let message;\n try {\n message = JSON.stringify(e.reason);\n }\n catch (_) {\n message = String(e.reason);\n }\n return JSException('Unhandled Promise Rejection', message, '[]', JSON.stringify(metadata));\n }\n }\n return null;\n}\nexport default function (app, opts) {\n const options = Object.assign({\n captureExceptions: true,\n }, opts);\n function patchContext(context) {\n function handler(e) {\n const msg = getExceptionMessageFromEvent(e, context);\n if (msg != null) {\n app.send(msg);\n }\n }\n app.attachEventListener(context, 'unhandledrejection', handler);\n app.attachEventListener(context, 'error', handler);\n }\n if (options.captureExceptions) {\n app.observer.attachContextCallback(patchContext); // TODO: attach once-per-iframe (?)\n patchContext(window);\n }\n}\n","import { isURL, IS_FIREFOX, MAX_STR_LEN, createMutationObserver } from '../utils.js';\nimport { ResourceTiming, SetNodeAttributeURLBased } from '../app/messages.gen.js';\nimport { hasTag } from '../app/guards.js';\nfunction resolveURL(url, location = document.location) {\n url = url.trim();\n if (url.startsWith('//') ||\n url.startsWith('http://') ||\n url.startsWith('https://') ||\n url.startsWith('data:') // any other possible value here? https://bugzilla.mozilla.org/show_bug.cgi?id=1758035\n ) {\n return url;\n }\n else if (url.startsWith('/')) {\n return location.origin + url;\n }\n else {\n return location.origin + location.pathname + url;\n }\n}\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1607081\nfunction isSVGInFireFox(url) {\n return IS_FIREFOX && (url.startsWith('data:image/svg+xml') || url.match(/.svg$|/i));\n}\nconst PLACEHOLDER_SRC = 'https://static.openreplay.com/tracker/placeholder.jpeg';\nexport default function (app) {\n function sendPlaceholder(id, node) {\n app.attributeSender.sendSetAttribute(id, 'src', PLACEHOLDER_SRC);\n const { width, height } = node.getBoundingClientRect();\n if (!node.hasAttribute('width')) {\n app.attributeSender.sendSetAttribute(id, 'width', String(width));\n }\n if (!node.hasAttribute('height')) {\n app.attributeSender.sendSetAttribute(id, 'height', String(height));\n }\n }\n const sendSrcset = function (id, img) {\n const { srcset } = img;\n if (!srcset) {\n return;\n }\n const resolvedSrcset = srcset\n .split(',')\n .map((str) => resolveURL(str))\n .join(',');\n app.attributeSender.sendSetAttribute(id, 'srcset', resolvedSrcset);\n };\n const sendSrc = function (id, img) {\n if (img.src.length > MAX_STR_LEN) {\n sendPlaceholder(id, img);\n }\n app.send(SetNodeAttributeURLBased(id, 'src', img.src, app.getBaseHref()));\n };\n const sendImgError = app.safe(function (img) {\n const resolvedSrc = resolveURL(img.src || ''); // Src type is null sometimes. - is it true?\n if (isURL(resolvedSrc)) {\n app.send(ResourceTiming(app.timestamp(), 0, 0, 0, 0, 0, resolvedSrc, 'img', 0, false));\n }\n });\n const sendImgAttrs = app.safe(function (img) {\n const id = app.nodes.getID(img);\n if (id === undefined) {\n return;\n }\n if (!img.complete) {\n return;\n }\n if (img.naturalHeight === 0 && img.naturalWidth === 0 && !isSVGInFireFox(img.src)) {\n sendImgError(img);\n }\n else if (app.sanitizer.isHidden(id) || app.sanitizer.isObscured(id)) {\n sendPlaceholder(id, img);\n }\n else {\n sendSrc(id, img);\n sendSrcset(id, img);\n }\n });\n const observer = createMutationObserver(app.safe((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type === 'attributes') {\n const target = mutation.target;\n const id = app.nodes.getID(target);\n if (id === undefined) {\n return;\n }\n if (mutation.attributeName === 'src') {\n sendSrc(id, target);\n }\n if (mutation.attributeName === 'srcset') {\n sendSrcset(id, target);\n }\n }\n }\n }));\n app.attachStopCallback(() => {\n observer.disconnect();\n });\n app.nodes.attachNodeCallback((node) => {\n if (!hasTag(node, 'img')) {\n return;\n }\n app.nodes.attachNodeListener(node, 'error', () => sendImgError(node));\n app.nodes.attachNodeListener(node, 'load', () => sendImgAttrs(node));\n sendImgAttrs(node);\n observer.observe(node, { attributes: true, attributeFilter: ['src', 'srcset'] });\n });\n}\n","import { normSpaces, IN_BROWSER, getLabelAttribute, now } from '../utils.js';\nimport { hasTag } from '../app/guards.js';\nimport { InputChange, SetInputValue, SetInputChecked } from '../app/messages.gen.js';\nconst INPUT_TYPES = [\n 'text',\n 'password',\n 'email',\n 'search',\n 'number',\n 'range',\n 'date',\n 'tel',\n 'time',\n];\nfunction isTextFieldElement(node) {\n if (hasTag(node, 'textarea')) {\n return true;\n }\n if (!hasTag(node, 'input')) {\n return false;\n }\n return INPUT_TYPES.includes(node.type);\n}\nfunction isCheckbox(node) {\n if (!hasTag(node, 'input')) {\n return false;\n }\n const type = node.type;\n return type === 'checkbox' || type === 'radio';\n}\nconst labelElementFor = IN_BROWSER && 'labels' in HTMLInputElement.prototype\n ? (node) => {\n let p = node;\n while ((p = p.parentNode) !== null) {\n if (hasTag(p, 'label')) {\n return p;\n }\n }\n const labels = node.labels;\n if (labels !== null && labels.length === 1) {\n return labels[0];\n }\n }\n : (node) => {\n let p = node;\n while ((p = p.parentNode) !== null) {\n if (hasTag(p, 'label')) {\n return p;\n }\n }\n const id = node.id;\n if (id) {\n const labels = node.ownerDocument.querySelectorAll('label[for=\"' + id + '\"]');\n if (labels !== null && labels.length === 1) {\n return labels[0];\n }\n }\n };\nexport function getInputLabel(node) {\n let label = getLabelAttribute(node);\n if (label === null) {\n const labelElement = labelElementFor(node);\n label =\n (labelElement && labelElement.innerText) ||\n node.placeholder ||\n node.name ||\n node.id ||\n node.className ||\n node.type;\n }\n return normSpaces(label).slice(0, 100);\n}\nexport const InputMode = {\n Plain: 0,\n Obscured: 1,\n Hidden: 2,\n};\nexport default function (app, opts) {\n const options = Object.assign({\n obscureInputNumbers: true,\n obscureInputEmails: true,\n defaultInputMode: InputMode.Obscured,\n obscureInputDates: false,\n }, opts);\n function getInputValue(id, node) {\n let value = node.value;\n let inputMode = options.defaultInputMode;\n if (node.type === 'password' || app.sanitizer.isHidden(id)) {\n inputMode = InputMode.Hidden;\n }\n else if (app.sanitizer.isObscured(id) ||\n (inputMode === InputMode.Plain &&\n ((options.obscureInputNumbers && node.type !== 'date' && /\\d\\d\\d\\d/.test(value)) ||\n (options.obscureInputDates && node.type === 'date') ||\n (options.obscureInputEmails && (node.type === 'email' || !!~value.indexOf('@')))))) {\n inputMode = InputMode.Obscured;\n }\n let mask = 0;\n switch (inputMode) {\n case InputMode.Hidden:\n mask = -1;\n value = '';\n break;\n case InputMode.Obscured:\n mask = value.length;\n value = '';\n break;\n }\n return { value, mask };\n }\n function sendInputValue(id, node) {\n const { value, mask } = getInputValue(id, node);\n app.send(SetInputValue(id, value, mask));\n }\n const inputValues = new Map();\n const checkboxValues = new Map();\n app.attachStopCallback(() => {\n inputValues.clear();\n checkboxValues.clear();\n });\n function trackInputValue(id, node) {\n if (inputValues.get(id) === node.value) {\n return;\n }\n inputValues.set(id, node.value);\n sendInputValue(id, node);\n }\n function trackCheckboxValue(id, value) {\n if (checkboxValues.get(id) === value) {\n return;\n }\n checkboxValues.set(id, value);\n app.send(SetInputChecked(id, value));\n }\n // The only way (to our knowledge) to track all kinds of input changes, including those made by JS\n app.ticker.attach(() => {\n inputValues.forEach((value, id) => {\n const node = app.nodes.getNode(id);\n if (!node)\n return inputValues.delete(id);\n trackInputValue(id, node);\n });\n checkboxValues.forEach((checked, id) => {\n const node = app.nodes.getNode(id);\n if (!node)\n return checkboxValues.delete(id);\n trackCheckboxValue(id, node.checked);\n });\n }, 3);\n function sendInputChange(id, node, hesitationTime, inputTime) {\n const { value, mask } = getInputValue(id, node);\n const label = getInputLabel(node);\n app.send(InputChange(id, value, mask !== 0, label, hesitationTime, inputTime));\n }\n app.nodes.attachNodeCallback(app.safe((node) => {\n const id = app.nodes.getID(node);\n if (id === undefined) {\n return;\n }\n // TODO: support multiple select (?): use selectedOptions;\n if (hasTag(node, 'select')) {\n sendInputValue(id, node);\n app.nodes.attachNodeListener(node, 'change', () => sendInputValue(id, node));\n }\n if (isTextFieldElement(node)) {\n trackInputValue(id, node);\n let nodeFocusTime = 0;\n let nodeHesitationTime = 0;\n let inputTime = 0;\n const onFocus = () => {\n nodeFocusTime = now();\n };\n const onInput = () => {\n if (nodeHesitationTime === 0 && nodeFocusTime !== 0) {\n nodeHesitationTime = now() - nodeFocusTime;\n }\n };\n const onChange = () => {\n if (nodeFocusTime !== 0) {\n inputTime = now() - nodeFocusTime;\n }\n sendInputChange(id, node, nodeHesitationTime, inputTime);\n nodeHesitationTime = 0;\n inputTime = 0;\n nodeFocusTime = 0;\n };\n app.nodes.attachNodeListener(node, 'focus', onFocus);\n app.nodes.attachNodeListener(node, 'input', onInput);\n app.nodes.attachNodeListener(node, 'change', onChange);\n return;\n }\n if (isCheckbox(node)) {\n trackCheckboxValue(id, node.checked);\n app.nodes.attachNodeListener(node, 'change', () => trackCheckboxValue(id, node.checked));\n return;\n }\n }));\n}\n","// License: MIT\n// Author: Anton Medvedev \n// Source: https://github.com/antonmedv/finder\nlet config;\nlet rootDocument;\nexport function finder(input, options) {\n if (input.nodeType !== Node.ELEMENT_NODE) {\n throw new Error(`Can't generate CSS selector for non-element node type.`);\n }\n if ('html' === input.tagName.toLowerCase()) {\n return 'html';\n }\n const defaults = {\n root: document.body,\n idName: (name) => true,\n className: (name) => true,\n tagName: (name) => true,\n attr: (name, value) => false,\n seedMinLength: 1,\n optimizedMinLength: 2,\n threshold: 1000,\n maxNumberOfTries: 10000,\n };\n config = { ...defaults, ...options };\n rootDocument = findRootDocument(config.root, defaults);\n let path = bottomUpSearch(input, 'all', () => bottomUpSearch(input, 'two', () => bottomUpSearch(input, 'one', () => bottomUpSearch(input, 'none'))));\n if (path) {\n const optimized = sort(optimize(path, input));\n if (optimized.length > 0) {\n path = optimized[0];\n }\n return selector(path);\n }\n else {\n throw new Error(`Selector was not found.`);\n }\n}\nfunction findRootDocument(rootNode, defaults) {\n if (rootNode.nodeType === Node.DOCUMENT_NODE) {\n return rootNode;\n }\n if (rootNode === defaults.root) {\n return rootNode.ownerDocument;\n }\n return rootNode;\n}\nfunction bottomUpSearch(input, limit, fallback) {\n let path = null;\n let stack = [];\n let current = input;\n let i = 0;\n while (current) {\n let level = maybe(id(current)) ||\n maybe(...attr(current)) ||\n maybe(...classNames(current)) ||\n maybe(tagName(current)) || [any()];\n const nth = index(current);\n if (limit == 'all') {\n if (nth) {\n level = level.concat(level.filter(dispensableNth).map((node) => nthChild(node, nth)));\n }\n }\n else if (limit == 'two') {\n level = level.slice(0, 1);\n if (nth) {\n level = level.concat(level.filter(dispensableNth).map((node) => nthChild(node, nth)));\n }\n }\n else if (limit == 'one') {\n const [node] = (level = level.slice(0, 1));\n if (nth && dispensableNth(node)) {\n level = [nthChild(node, nth)];\n }\n }\n else if (limit == 'none') {\n level = [any()];\n if (nth) {\n level = [nthChild(level[0], nth)];\n }\n }\n for (let node of level) {\n node.level = i;\n }\n stack.push(level);\n if (stack.length >= config.seedMinLength) {\n path = findUniquePath(stack, fallback);\n if (path) {\n break;\n }\n }\n current = current.parentElement;\n i++;\n }\n if (!path) {\n path = findUniquePath(stack, fallback);\n }\n if (!path && fallback) {\n return fallback();\n }\n return path;\n}\nfunction findUniquePath(stack, fallback) {\n const paths = sort(combinations(stack));\n if (paths.length > config.threshold) {\n return fallback ? fallback() : null;\n }\n for (let candidate of paths) {\n if (unique(candidate)) {\n return candidate;\n }\n }\n return null;\n}\nfunction selector(path) {\n let node = path[0];\n let query = node.name;\n for (let i = 1; i < path.length; i++) {\n const level = path[i].level || 0;\n if (node.level === level - 1) {\n query = `${path[i].name} > ${query}`;\n }\n else {\n query = `${path[i].name} ${query}`;\n }\n node = path[i];\n }\n return query;\n}\nfunction penalty(path) {\n return path.map((node) => node.penalty).reduce((acc, i) => acc + i, 0);\n}\nfunction unique(path) {\n const css = selector(path);\n switch (rootDocument.querySelectorAll(css).length) {\n case 0:\n throw new Error(`Can't select any node with this selector: ${css}`);\n case 1:\n return true;\n default:\n return false;\n }\n}\nfunction id(input) {\n const elementId = input.getAttribute('id');\n if (elementId && config.idName(elementId)) {\n return {\n name: '#' + CSS.escape(elementId),\n penalty: 0,\n };\n }\n return null;\n}\nfunction attr(input) {\n const attrs = Array.from(input.attributes).filter((attr) => config.attr(attr.name, attr.value));\n return attrs.map((attr) => ({\n name: `[${CSS.escape(attr.name)}=\"${CSS.escape(attr.value)}\"]`,\n penalty: 0.5,\n }));\n}\nfunction classNames(input) {\n const names = Array.from(input.classList).filter(config.className);\n return names.map((name) => ({\n name: '.' + CSS.escape(name),\n penalty: 1,\n }));\n}\nfunction tagName(input) {\n const name = input.tagName.toLowerCase();\n if (config.tagName(name)) {\n return {\n name,\n penalty: 2,\n };\n }\n return null;\n}\nfunction any() {\n return {\n name: '*',\n penalty: 3,\n };\n}\nfunction index(input) {\n const parent = input.parentNode;\n if (!parent) {\n return null;\n }\n let child = parent.firstChild;\n if (!child) {\n return null;\n }\n let i = 0;\n while (child) {\n if (child.nodeType === Node.ELEMENT_NODE) {\n i++;\n }\n if (child === input) {\n break;\n }\n child = child.nextSibling;\n }\n return i;\n}\nfunction nthChild(node, i) {\n return {\n name: node.name + `:nth-child(${i})`,\n penalty: node.penalty + 1,\n };\n}\nfunction dispensableNth(node) {\n return node.name !== 'html' && !node.name.startsWith('#');\n}\nfunction maybe(...level) {\n const list = level.filter(notEmpty);\n if (list.length > 0) {\n return list;\n }\n return null;\n}\nfunction notEmpty(value) {\n return value !== null && value !== undefined;\n}\nfunction* combinations(stack, path = []) {\n if (stack.length > 0) {\n for (let node of stack[0]) {\n yield* combinations(stack.slice(1, stack.length), path.concat(node));\n }\n }\n else {\n yield path;\n }\n}\nfunction sort(paths) {\n return [...paths].sort((a, b) => penalty(a) - penalty(b));\n}\nfunction* optimize(path, input, scope = {\n counter: 0,\n visited: new Map(),\n}) {\n if (path.length > 2 && path.length > config.optimizedMinLength) {\n for (let i = 1; i < path.length - 1; i++) {\n if (scope.counter > config.maxNumberOfTries) {\n return; // Okay At least I tried!\n }\n scope.counter += 1;\n const newPath = [...path];\n newPath.splice(i, 1);\n const newPathKey = selector(newPath);\n if (scope.visited.has(newPathKey)) {\n return;\n }\n if (unique(newPath) && same(newPath, input)) {\n yield newPath;\n scope.visited.set(newPathKey, true);\n yield* optimize(newPath, input, scope);\n }\n }\n }\n}\nfunction same(path, input) {\n return rootDocument.querySelector(selector(path)) === input;\n}\n","import { hasTag, isSVGElement, isDocument } from '../app/guards.js';\nimport { normSpaces, hasOpenreplayAttribute, getLabelAttribute, now } from '../utils.js';\nimport { MouseMove, MouseClick, MouseThrashing } from '../app/messages.gen.js';\nimport { getInputLabel } from './input.js';\nimport { finder } from '@medv/finder';\nfunction _getSelector(target, document, options) {\n const selector = finder(target, {\n root: document.body,\n seedMinLength: 3,\n optimizedMinLength: (options === null || options === void 0 ? void 0 : options.minSelectorDepth) || 2,\n threshold: (options === null || options === void 0 ? void 0 : options.nthThreshold) || 1000,\n maxNumberOfTries: (options === null || options === void 0 ? void 0 : options.maxOptimiseTries) || 10000,\n });\n return selector;\n}\nfunction isClickable(element) {\n const tag = element.tagName.toUpperCase();\n return (tag === 'BUTTON' ||\n tag === 'A' ||\n tag === 'LI' ||\n tag === 'SELECT' ||\n tag === 'TR' ||\n tag === 'TH' ||\n element.onclick != null ||\n element.getAttribute('role') === 'button');\n //|| element.className.includes(\"btn\")\n // MBTODO: intercept addEventListener\n}\n//TODO: fix (typescript is not sure about target variable after assignation of svg)\nfunction getTarget(target, document) {\n if (target instanceof Element) {\n return _getTarget(target, document);\n }\n return null;\n}\nfunction _getTarget(target, document) {\n let element = target;\n while (element !== null && element !== document.documentElement) {\n if (hasOpenreplayAttribute(element, 'masked')) {\n return null;\n }\n element = element.parentElement;\n }\n if (isSVGElement(target)) {\n let owner = target.ownerSVGElement;\n while (owner !== null) {\n target = owner;\n owner = owner.ownerSVGElement;\n }\n }\n element = target;\n while (element !== null && element !== document.documentElement) {\n const tag = element.tagName.toUpperCase();\n if (tag === 'LABEL') {\n return null;\n }\n if (tag === 'INPUT') {\n return element;\n }\n if (isClickable(element) || getLabelAttribute(element) !== null) {\n return element;\n }\n element = element.parentElement;\n }\n return target === document.documentElement ? null : target;\n}\nexport default function (app, options) {\n const { disableClickmaps = false } = options || {};\n function getTargetLabel(target) {\n const dl = getLabelAttribute(target);\n if (dl !== null) {\n return dl;\n }\n if (hasTag(target, 'input')) {\n return getInputLabel(target);\n }\n if (isClickable(target)) {\n let label = '';\n if (target instanceof HTMLElement) {\n label = app.sanitizer.getInnerTextSecure(target);\n }\n label = label || target.id || target.className;\n return normSpaces(label).slice(0, 100);\n }\n return '';\n }\n let mousePositionX = -1;\n let mousePositionY = -1;\n let mousePositionChanged = false;\n let mouseTarget = null;\n let mouseTargetTime = 0;\n let selectorMap = {};\n let velocity = 0;\n let direction = 0;\n let directionChangeCount = 0;\n let distance = 0;\n let checkIntervalId;\n const shakeThreshold = 0.008;\n const shakeCheckInterval = 225;\n function checkMouseShaking() {\n const nextVelocity = distance / shakeCheckInterval;\n if (!velocity) {\n velocity = nextVelocity;\n return;\n }\n const acceleration = (nextVelocity - velocity) / shakeCheckInterval;\n if (directionChangeCount > 4 && acceleration > shakeThreshold) {\n app.send(MouseThrashing(now()));\n }\n distance = 0;\n directionChangeCount = 0;\n velocity = nextVelocity;\n }\n app.attachStartCallback(() => {\n checkIntervalId = setInterval(() => checkMouseShaking(), shakeCheckInterval);\n });\n app.attachStopCallback(() => {\n mousePositionX = -1;\n mousePositionY = -1;\n mousePositionChanged = false;\n mouseTarget = null;\n selectorMap = {};\n if (checkIntervalId) {\n clearInterval(checkIntervalId);\n }\n });\n const sendMouseMove = () => {\n if (mousePositionChanged) {\n app.send(MouseMove(mousePositionX, mousePositionY));\n mousePositionChanged = false;\n }\n };\n const patchDocument = (document, topframe = false) => {\n function getSelector(id, target, options) {\n return (selectorMap[id] = selectorMap[id] || _getSelector(target, document, options));\n }\n const attachListener = topframe\n ? app.attachEventListener.bind(app) // attached/removed on start/stop\n : app.nodes.attachNodeListener.bind(app.nodes); // attached/removed on node register/unregister\n attachListener(document.documentElement, 'mouseover', (e) => {\n const target = getTarget(e.target, document);\n if (target !== mouseTarget) {\n mouseTarget = target;\n mouseTargetTime = performance.now();\n }\n });\n attachListener(document, 'mousemove', (e) => {\n const [left, top] = app.observer.getDocumentOffset(document); // MBTODO?: document-id related message\n mousePositionX = e.clientX + left;\n mousePositionY = e.clientY + top;\n mousePositionChanged = true;\n const nextDirection = Math.sign(e.movementX);\n distance += Math.abs(e.movementX) + Math.abs(e.movementY);\n if (nextDirection !== direction) {\n direction = nextDirection;\n directionChangeCount++;\n }\n }, false);\n attachListener(document, 'click', (e) => {\n const target = getTarget(e.target, document);\n if ((!e.clientX && !e.clientY) || target === null) {\n return;\n }\n const id = app.nodes.getID(target);\n if (id !== undefined) {\n sendMouseMove();\n app.send(MouseClick(id, mouseTarget === target ? Math.round(performance.now() - mouseTargetTime) : 0, getTargetLabel(target), isClickable(target) && !disableClickmaps ? getSelector(id, target, options) : ''), true);\n }\n mouseTarget = null;\n });\n };\n app.nodes.attachNodeCallback((node) => {\n if (isDocument(node)) {\n patchDocument(node);\n }\n });\n patchDocument(document, true);\n app.ticker.attach(sendMouseMove, (options === null || options === void 0 ? void 0 : options.trackingOffset) || 7);\n}\n","import { hasTag } from '../app/guards.js';\nimport { isURL, getTimeOrigin } from '../utils.js';\nimport { ResourceTiming, PageLoadTiming, PageRenderTiming } from '../app/messages.gen.js';\nfunction getPaintBlocks(resources) {\n const paintBlocks = [];\n const elements = document.getElementsByTagName('*');\n const styleURL = /url\\((\"[^\"]*\"|'[^']*'|[^)]*)\\)/i;\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n let src = '';\n if (hasTag(element, 'img')) {\n src = element.currentSrc || element.src;\n }\n if (!src) {\n const backgroundImage = getComputedStyle(element).getPropertyValue('background-image');\n if (backgroundImage) {\n const matches = styleURL.exec(backgroundImage);\n if (matches !== null) {\n src = matches[1];\n if (src.startsWith('\"') || src.startsWith(\"'\")) {\n src = src.substr(1, src.length - 2);\n }\n }\n }\n }\n if (!src)\n continue;\n const time = src.substr(0, 10) === 'data:image' ? 0 : resources[src];\n if (time === undefined)\n continue;\n const rect = element.getBoundingClientRect();\n const top = Math.max(rect.top, 0);\n const left = Math.max(rect.left, 0);\n const bottom = Math.min(rect.bottom, window.innerHeight ||\n (document.documentElement && document.documentElement.clientHeight) ||\n 0);\n const right = Math.min(rect.right, window.innerWidth || (document.documentElement && document.documentElement.clientWidth) || 0);\n if (bottom <= top || right <= left)\n continue;\n const area = (bottom - top) * (right - left);\n paintBlocks.push({ time, area });\n }\n return paintBlocks;\n}\nfunction calculateSpeedIndex(firstContentfulPaint, paintBlocks) {\n let a = (Math.max((document.documentElement && document.documentElement.clientWidth) || 0, window.innerWidth || 0) *\n Math.max((document.documentElement && document.documentElement.clientHeight) || 0, window.innerHeight || 0)) /\n 10;\n let s = a * firstContentfulPaint;\n for (let i = 0; i < paintBlocks.length; i++) {\n const { time, area } = paintBlocks[i];\n a += area;\n s += area * (time > firstContentfulPaint ? time : firstContentfulPaint);\n }\n return a === 0 ? 0 : s / a;\n}\nexport default function (app, opts) {\n const options = Object.assign({\n captureResourceTimings: true,\n capturePageLoadTimings: true,\n capturePageRenderTimings: true,\n excludedResourceUrls: [],\n }, opts);\n if (!('PerformanceObserver' in window)) {\n options.captureResourceTimings = false;\n }\n if (!options.captureResourceTimings) {\n return;\n } // Resources are necessary for all timings\n let resources = {};\n function resourceTiming(entry) {\n var _a;\n if (entry.duration < 0 || !isURL(entry.name) || app.isServiceURL(entry.name))\n return;\n if (resources !== null) {\n resources[entry.name] = entry.startTime + entry.duration;\n }\n let shouldSkip = false;\n (_a = options.excludedResourceUrls) === null || _a === void 0 ? void 0 : _a.forEach((url) => {\n if (entry.name.startsWith(url)) {\n shouldSkip = true;\n return;\n }\n });\n if (shouldSkip) {\n return;\n }\n app.send(ResourceTiming(entry.startTime + getTimeOrigin(), entry.duration, entry.responseStart && entry.startTime ? entry.responseStart - entry.startTime : 0, entry.transferSize > entry.encodedBodySize ? entry.transferSize - entry.encodedBodySize : 0, entry.encodedBodySize || 0, entry.decodedBodySize || 0, entry.name, entry.initiatorType, entry.transferSize, \n // @ts-ignore\n (entry.responseStatus && entry.responseStatus === 304) || entry.transferSize === 0));\n }\n const observer = new PerformanceObserver((list) => list.getEntries().forEach(resourceTiming));\n let prevSessionID;\n app.attachStartCallback(function ({ sessionID }) {\n if (sessionID !== prevSessionID) {\n // Send past page resources on a newly started session\n performance.getEntriesByType('resource').forEach(resourceTiming);\n prevSessionID = sessionID;\n }\n observer.observe({ entryTypes: ['resource'] });\n });\n app.attachStopCallback(function () {\n observer.disconnect();\n });\n let firstPaint = 0, firstContentfulPaint = 0;\n if (options.capturePageLoadTimings) {\n let pageLoadTimingSent = false;\n app.ticker.attach(() => {\n if (pageLoadTimingSent) {\n return;\n }\n if (firstPaint === 0 || firstContentfulPaint === 0) {\n performance.getEntriesByType('paint').forEach((entry) => {\n const { name, startTime } = entry;\n switch (name) {\n case 'first-paint':\n firstPaint = startTime;\n break;\n case 'first-contentful-paint':\n firstContentfulPaint = startTime;\n break;\n }\n });\n }\n if (performance.timing.loadEventEnd || performance.now() > 30000) {\n pageLoadTimingSent = true;\n const { \n // should be ok to use here, (https://github.com/mdn/content/issues/4713)\n // since it is compared with the values obtained on the page load (before any possible sleep state)\n // deprecated though\n navigationStart, requestStart, responseStart, responseEnd, domContentLoadedEventStart, domContentLoadedEventEnd, loadEventStart, loadEventEnd, } = performance.timing;\n app.send(PageLoadTiming(requestStart - navigationStart || 0, responseStart - navigationStart || 0, responseEnd - navigationStart || 0, domContentLoadedEventStart - navigationStart || 0, domContentLoadedEventEnd - navigationStart || 0, loadEventStart - navigationStart || 0, loadEventEnd - navigationStart || 0, firstPaint, firstContentfulPaint));\n }\n }, 30);\n }\n if (options.capturePageRenderTimings) {\n let visuallyComplete = 0, interactiveWindowStartTime = 0, interactiveWindowTickTime = 0, paintBlocks = null;\n let pageRenderTimingSent = false;\n app.ticker.attach(() => {\n if (pageRenderTimingSent) {\n return;\n }\n const time = performance.now();\n if (resources !== null) {\n visuallyComplete = Math.max.apply(null, Object.keys(resources).map((k) => resources[k]));\n if (time - visuallyComplete > 1000) {\n paintBlocks = getPaintBlocks(resources);\n resources = null;\n }\n }\n if (interactiveWindowTickTime !== null) {\n if (time - interactiveWindowTickTime > 50) {\n interactiveWindowStartTime = time;\n }\n interactiveWindowTickTime = time - interactiveWindowStartTime > 5000 ? null : time;\n }\n if ((paintBlocks !== null && interactiveWindowTickTime === null) || time > 30000) {\n pageRenderTimingSent = true;\n resources = null;\n const speedIndex = paintBlocks === null\n ? 0\n : calculateSpeedIndex(firstContentfulPaint || firstPaint, paintBlocks);\n const { domContentLoadedEventEnd, navigationStart } = performance.timing;\n const timeToInteractive = interactiveWindowTickTime === null\n ? Math.max(interactiveWindowStartTime, firstContentfulPaint, domContentLoadedEventEnd - navigationStart || 0)\n : 0;\n app.send(PageRenderTiming(speedIndex, firstContentfulPaint > visuallyComplete ? firstContentfulPaint : visuallyComplete, timeToInteractive));\n }\n });\n }\n}\n","import { SetViewportScroll, SetNodeScroll } from '../app/messages.gen.js';\nimport { isNode, isElementNode, isRootNode, isDocument } from '../app/guards.js';\nfunction getDocumentScroll(doc) {\n const win = doc.defaultView;\n return [\n (win && win.pageXOffset) ||\n (doc.documentElement && doc.documentElement.scrollLeft) ||\n (doc.body && doc.body.scrollLeft) ||\n 0,\n (win && win.pageYOffset) ||\n (doc.documentElement && doc.documentElement.scrollTop) ||\n (doc.body && doc.body.scrollTop) ||\n 0,\n ];\n}\nexport default function (app) {\n let documentScroll = false;\n const nodeScroll = new Map();\n function setNodeScroll(target) {\n if (!isNode(target)) {\n return;\n }\n if (isElementNode(target)) {\n nodeScroll.set(target, [target.scrollLeft, target.scrollTop]);\n }\n if (isDocument(target)) {\n nodeScroll.set(target, getDocumentScroll(target));\n }\n }\n const sendSetViewportScroll = app.safe(() => app.send(SetViewportScroll(...getDocumentScroll(document))));\n const sendSetNodeScroll = app.safe((s, node) => {\n const id = app.nodes.getID(node);\n if (id !== undefined) {\n app.send(SetNodeScroll(id, s[0], s[1]));\n }\n });\n app.attachStartCallback(sendSetViewportScroll);\n app.attachStopCallback(() => {\n documentScroll = false;\n nodeScroll.clear();\n });\n app.nodes.attachNodeCallback((node, isStart) => {\n // MBTODO: iterate over all the nodes on start instead of using isStart hack\n if (isStart) {\n if (isElementNode(node) && node.scrollLeft + node.scrollTop > 0) {\n nodeScroll.set(node, [node.scrollLeft, node.scrollTop]);\n }\n else if (isDocument(node)) {\n // DRY somehow?\n nodeScroll.set(node, getDocumentScroll(node));\n }\n }\n if (isRootNode(node)) {\n // scroll is not-composed event (https://javascript.info/shadow-dom-events)\n app.nodes.attachNodeListener(node, 'scroll', (e) => {\n setNodeScroll(e.target);\n });\n }\n });\n app.attachEventListener(document, 'scroll', (e) => {\n const target = e.target;\n if (target === document) {\n documentScroll = true;\n return;\n }\n setNodeScroll(target);\n });\n app.ticker.attach(() => {\n if (documentScroll) {\n sendSetViewportScroll();\n documentScroll = false;\n }\n nodeScroll.forEach(sendSetNodeScroll);\n nodeScroll.clear();\n }, 5, false);\n}\n","import { AdoptedSSReplaceURLBased, AdoptedSSInsertRuleURLBased, AdoptedSSAddOwner, AdoptedSSRemoveOwner, } from '../app/messages.gen.js';\nimport { isRootNode } from '../app/guards.js';\nfunction hasAdoptedSS(node) {\n return (isRootNode(node) &&\n // @ts-ignore\n !!node.adoptedStyleSheets);\n}\n// TODO: encapsulate to be init-ed on-start and join with cssrules.ts under one folder\nlet _id = 0xf;\nexport function nextID() {\n return _id++;\n}\nexport const styleSheetIDMap = new Map();\nexport default function (app) {\n if (app === null) {\n return;\n }\n if (!hasAdoptedSS(document)) {\n return;\n }\n const styleSheetIDMap = new Map();\n const adoptedStyleSheetsOwnings = new Map();\n const sendAdoptedStyleSheetsUpdate = (root) => setTimeout(() => {\n let nodeID = app.nodes.getID(root);\n if (root === document) {\n nodeID = 0; // main document doesn't have nodeID. ID count starts from the documentElement\n }\n if (nodeID === undefined) {\n return;\n }\n let pastOwning = adoptedStyleSheetsOwnings.get(nodeID);\n if (!pastOwning) {\n pastOwning = [];\n }\n const nowOwning = [];\n const styleSheets = root.adoptedStyleSheets;\n if (Symbol.iterator in styleSheets) {\n for (const s of styleSheets) {\n let sheetID = styleSheetIDMap.get(s);\n const init = !sheetID;\n if (!sheetID) {\n sheetID = nextID();\n styleSheetIDMap.set(s, sheetID);\n }\n if (!pastOwning.includes(sheetID)) {\n app.send(AdoptedSSAddOwner(sheetID, nodeID));\n }\n if (init) {\n const rules = s.cssRules;\n for (let i = 0; i < rules.length; i++) {\n app.send(AdoptedSSInsertRuleURLBased(sheetID, rules[i].cssText, i, app.getBaseHref()));\n }\n }\n nowOwning.push(sheetID);\n }\n }\n if (Symbol.iterator in pastOwning) {\n for (const sheetID of pastOwning) {\n if (!nowOwning.includes(sheetID)) {\n app.send(AdoptedSSRemoveOwner(sheetID, nodeID));\n }\n }\n }\n adoptedStyleSheetsOwnings.set(nodeID, nowOwning);\n }, 20); // Mysterious bug:\n /* On the page https://explore.fast.design/components/fast-accordion\n the only rule inside the only adoptedStyleSheet of the iframe-s document\n gets changed during first milliseconds after the load.\n However, none of the documented methods (replace, insertRule) is triggered.\n The rule is not substituted (remains the same object), however the text gets changed.\n */\n function patchAdoptedStyleSheets(prototype) {\n const nativeAdoptedStyleSheetsDescriptor = Object.getOwnPropertyDescriptor(prototype, 'adoptedStyleSheets');\n if (nativeAdoptedStyleSheetsDescriptor) {\n Object.defineProperty(prototype, 'adoptedStyleSheets', Object.assign(Object.assign({}, nativeAdoptedStyleSheetsDescriptor), { set: function (value) {\n // @ts-ignore\n const retVal = nativeAdoptedStyleSheetsDescriptor.set.call(this, value);\n sendAdoptedStyleSheetsUpdate(this);\n return retVal;\n } }));\n }\n }\n const patchContext = (context) => {\n // @ts-ignore\n if (context.__openreplay_adpss_patched__) {\n return;\n }\n else {\n // @ts-ignore\n context.__openreplay_adpss_patched__ = true;\n }\n patchAdoptedStyleSheets(context.Document.prototype);\n patchAdoptedStyleSheets(context.ShadowRoot.prototype);\n //@ts-ignore TODO: upgrade ts to 4.8+\n const { replace, replaceSync } = context.CSSStyleSheet.prototype;\n //@ts-ignore\n context.CSSStyleSheet.prototype.replace = function (text) {\n return replace.call(this, text).then((sheet) => {\n const sheetID = styleSheetIDMap.get(this);\n if (sheetID) {\n app.send(AdoptedSSReplaceURLBased(sheetID, text, app.getBaseHref()));\n }\n return sheet;\n });\n };\n //@ts-ignore\n context.CSSStyleSheet.prototype.replaceSync = function (text) {\n const sheetID = styleSheetIDMap.get(this);\n if (sheetID) {\n app.send(AdoptedSSReplaceURLBased(sheetID, text, app.getBaseHref()));\n }\n return replaceSync.call(this, text);\n };\n };\n patchContext(window);\n app.observer.attachContextCallback(app.safe(patchContext));\n app.attachStopCallback(() => {\n styleSheetIDMap.clear();\n adoptedStyleSheetsOwnings.clear();\n });\n // So far main Document is not triggered with nodeCallbacks\n app.attachStartCallback(() => {\n sendAdoptedStyleSheetsUpdate(document);\n });\n app.nodes.attachNodeCallback((node) => {\n if (hasAdoptedSS(node)) {\n sendAdoptedStyleSheetsUpdate(node);\n }\n });\n}\n","import { NetworkRequest } from '../app/messages.gen.js';\nimport { getTimeOrigin } from '../utils.js';\nimport { getExceptionMessage } from './exception.js';\nexport default function (app, instance, opts, sanitize, stringify) {\n app.debug.log('Openreplay: attaching axios spy to instance', instance);\n function captureResponseData(axiosResponseObj) {\n app.debug.log('Openreplay: capturing axios response data', axiosResponseObj);\n const { headers: reqHs, data: reqData, method, url, baseURL } = axiosResponseObj.config;\n const { data: rData, headers: rHs, status: globStatus, response } = axiosResponseObj;\n const { data: resData, headers: resHs, status: resStatus } = response || {};\n const ihOpt = opts.ignoreHeaders;\n const isHIgnoring = Array.isArray(ihOpt) ? (name) => ihOpt.includes(name) : () => ihOpt;\n function writeHeader(hsObj, header) {\n if (!isHIgnoring(header[0])) {\n hsObj[header[0]] = header[1];\n }\n }\n let requestHs = {};\n let responseHs = {};\n if (reqHs.toJSON) {\n requestHs = reqHs.toJSON();\n }\n else if (reqHs instanceof Headers) {\n reqHs.forEach((v, n) => writeHeader(requestHs, [n, v]));\n }\n else if (Array.isArray(reqHs)) {\n reqHs.forEach((h) => writeHeader(requestHs, h));\n }\n else if (typeof reqHs === 'object') {\n Object.entries(reqHs).forEach((h) => writeHeader(requestHs, h));\n }\n const usedResHeader = resHs ? resHs : rHs;\n if (usedResHeader.toJSON) {\n responseHs = usedResHeader.toJSON();\n }\n else if (usedResHeader instanceof Headers) {\n usedResHeader.forEach((v, n) => writeHeader(responseHs, [n, v]));\n }\n else if (Array.isArray(usedResHeader)) {\n usedResHeader.forEach((h) => writeHeader(responseHs, h));\n }\n else if (typeof usedResHeader === 'object') {\n Object.entries(usedResHeader).forEach(([n, v]) => {\n if (!isHIgnoring(n))\n responseHs[n] = v;\n });\n }\n const reqResInfo = sanitize({\n url,\n method: method || '',\n status: globStatus || resStatus || 0,\n request: {\n headers: requestHs,\n body: reqData,\n },\n response: {\n headers: responseHs,\n body: resData || rData,\n },\n });\n if (!reqResInfo) {\n app.debug.log('Openreplay: empty request/response info, skipping');\n return;\n }\n const requestStart = axiosResponseObj.config.__openreplay_timing;\n const duration = performance.now() - requestStart;\n app.debug.log('Openreplay: final req object', reqResInfo);\n app.send(NetworkRequest('xhr', String(method), String(reqResInfo.url), stringify(reqResInfo.request), stringify(reqResInfo.response), reqResInfo.status, requestStart + getTimeOrigin(), duration, 0));\n }\n function getStartTime(config) {\n app.debug.log('Openreplay: capturing API request', config);\n config.__openreplay_timing = performance.now();\n if (opts.sessionTokenHeader) {\n const header = typeof opts.sessionTokenHeader === 'string'\n ? opts.sessionTokenHeader\n : 'X-OpenReplay-Session-Token';\n const headerValue = app.getSessionToken();\n if (headerValue) {\n config.headers.set(header, headerValue);\n }\n }\n return config;\n }\n function captureNetworkRequest(response) {\n if (opts.failuresOnly)\n return response;\n captureResponseData(response);\n return response;\n }\n function captureNetworkError(error) {\n app.debug.log('Openreplay: capturing API request error', error);\n if (isAxiosError(error) && Boolean(error.response)) {\n captureResponseData(error.response);\n }\n else if (error instanceof Error) {\n app.send(getExceptionMessage(error, []));\n }\n return Promise.reject(error);\n }\n function logRequestError(ev) {\n app.debug.log('Openreplay: failed API request, skipping', ev);\n }\n const reqInt = instance.interceptors.request.use(getStartTime, logRequestError, {\n synchronous: true,\n });\n const resInt = instance.interceptors.response.use(captureNetworkRequest, captureNetworkError, {\n synchronous: true,\n });\n app.attachStopCallback(() => {\n var _a, _b, _c, _d;\n (_b = (_a = instance.interceptors.request).eject) === null || _b === void 0 ? void 0 : _b.call(_a, reqInt);\n (_d = (_c = instance.interceptors.response).eject) === null || _d === void 0 ? void 0 : _d.call(_c, resInt);\n });\n}\nfunction isAxiosError(payload) {\n return isObject(payload) && payload.isAxiosError === true;\n}\nfunction isObject(thing) {\n return thing !== null && typeof thing === 'object';\n}\n","import { NetworkRequest } from '../../app/messages.gen.js';\nimport { getTimeOrigin } from '../../utils.js';\nexport var RequestState;\n(function (RequestState) {\n RequestState[RequestState[\"UNSENT\"] = 0] = \"UNSENT\";\n RequestState[RequestState[\"OPENED\"] = 1] = \"OPENED\";\n RequestState[RequestState[\"HEADERS_RECEIVED\"] = 2] = \"HEADERS_RECEIVED\";\n RequestState[RequestState[\"LOADING\"] = 3] = \"LOADING\";\n RequestState[RequestState[\"DONE\"] = 4] = \"DONE\";\n})(RequestState || (RequestState = {}));\n/**\n * I know we're not using most of the information from this class\n * but it can be useful in the future if we will decide to display more stuff in our ui\n * */\nexport default class NetworkMessage {\n constructor(ignoredHeaders = [], setSessionTokenHeader, sanitize) {\n this.ignoredHeaders = ignoredHeaders;\n this.setSessionTokenHeader = setSessionTokenHeader;\n this.sanitize = sanitize;\n this.id = '';\n this.name = '';\n this.method = '';\n this.url = '';\n this.status = 0;\n this.statusText = '';\n this.cancelState = 0;\n this.readyState = 0;\n this.header = {};\n this.responseType = '';\n this.requestHeader = {};\n this.responseSize = 0; // bytes\n this.responseSizeText = '';\n this.startTime = 0;\n this.endTime = 0;\n this.duration = 0;\n this.getData = {};\n this.requestData = null;\n }\n getMessage() {\n const { reqHs, resHs } = this.writeHeaders();\n const request = {\n headers: reqHs,\n body: this.method === 'GET' ? JSON.stringify(this.getData) : this.requestData,\n };\n const response = { headers: resHs, body: this.response };\n const messageInfo = this.sanitize({\n url: this.url,\n method: this.method,\n status: this.status,\n request,\n response,\n });\n return NetworkRequest(this.requestType, messageInfo.method, messageInfo.url, JSON.stringify(messageInfo.request), JSON.stringify(messageInfo.response), messageInfo.status, this.startTime + getTimeOrigin(), this.duration, this.responseSize);\n }\n writeHeaders() {\n const reqHs = {};\n Object.entries(this.requestHeader).forEach(([key, value]) => {\n if (this.isHeaderIgnored(key))\n return;\n reqHs[key] = value;\n });\n this.setSessionTokenHeader((name, value) => {\n reqHs[name] = value;\n });\n const resHs = {};\n Object.entries(this.header).forEach(([key, value]) => {\n if (this.isHeaderIgnored(key))\n return;\n resHs[key] = value;\n });\n return { reqHs, resHs };\n }\n isHeaderIgnored(key) {\n if (Array.isArray(this.ignoredHeaders)) {\n return this.ignoredHeaders.map((k) => k.toLowerCase()).includes(key.toLowerCase());\n }\n else {\n return this.ignoredHeaders;\n }\n }\n}\n","export const genResponseByType = (responseType, response) => {\n let result = '';\n switch (responseType) {\n case '':\n case 'text':\n case 'json':\n if (typeof response == 'string') {\n try {\n result = JSON.parse(response);\n }\n catch (e) {\n // not a JSON string\n result = response.slice(0, 10000);\n }\n }\n else if (isPureObject(response) || Array.isArray(response)) {\n result = JSON.stringify(response);\n }\n else if (typeof response !== 'undefined') {\n result = Object.prototype.toString.call(response);\n }\n break;\n case 'blob':\n case 'document':\n case 'arraybuffer':\n default:\n if (typeof response !== 'undefined') {\n result = Object.prototype.toString.call(response);\n }\n break;\n }\n return result;\n};\nexport const getStringResponseByType = (responseType, response) => {\n let result = '';\n switch (responseType) {\n case '':\n case 'text':\n case 'json':\n if (typeof response == 'string') {\n result = response;\n }\n else if (isPureObject(response) || Array.isArray(response)) {\n result = JSON.stringify(response);\n }\n else if (typeof response !== 'undefined') {\n result = Object.prototype.toString.call(response);\n }\n break;\n case 'blob':\n case 'document':\n case 'arraybuffer':\n default:\n if (typeof response !== 'undefined') {\n result = Object.prototype.toString.call(response);\n }\n break;\n }\n return result;\n};\nexport const genStringBody = (body) => {\n if (!body) {\n return null;\n }\n let result;\n if (typeof body === 'string') {\n if (body[0] === '{' || body[0] === '[') {\n result = body;\n }\n // 'a=1&b=2' => try to parse as query\n const arr = body.split('&');\n if (arr.length === 1) {\n // not a query, parse as original string\n result = body;\n }\n else {\n // 'a=1&b=2&c' => parse as query\n result = arr.join(',');\n }\n }\n else if (isIterable(body)) {\n // FormData or URLSearchParams or Array\n const arr = [];\n for (const [key, value] of body) {\n arr.push(`${key}=${typeof value === 'string' ? value : '[object Object]'}`);\n }\n result = arr.join(',');\n }\n else if (body instanceof Blob ||\n body instanceof ReadableStream ||\n body instanceof ArrayBuffer) {\n result = 'byte data';\n }\n else if (isPureObject(body)) {\n // overriding ArrayBufferView which is not convertable to string\n result = body;\n }\n else {\n result = `can't parse body ${typeof body}`;\n }\n return result;\n};\nexport const genGetDataByUrl = (url, getData = {}) => {\n if (!isPureObject(getData)) {\n getData = {};\n }\n let query = url ? url.split('?') : []; // a.php?b=c&d=?e => ['a.php', 'b=c&d=', 'e']\n query.shift(); // => ['b=c&d=', 'e']\n if (query.length > 0) {\n query = query.join('?').split('&'); // => 'b=c&d=?e' => ['b=c', 'd=?e']\n for (const q of query) {\n const kv = q.split('=');\n try {\n getData[kv[0]] = decodeURIComponent(kv[1]);\n }\n catch (e) {\n // \"URIError: URI malformed\" will be thrown when `kv[1]` contains \"%\", so just use raw data\n // @issue #470\n // @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Malformed_URI\n getData[kv[0]] = kv[1];\n }\n }\n }\n return getData;\n};\nexport const genFormattedBody = (body) => {\n if (!body) {\n return null;\n }\n let result;\n if (typeof body === 'string') {\n try {\n // '{a:1}' =>\n result = JSON.parse(body);\n }\n catch (e) {\n // 'a=1&b=2' => try to parse as query\n const arr = body.split('&');\n result = {};\n // eslint-disable-next-line\n for (let q of arr) {\n const kv = q.split('=');\n result[kv[0]] = kv[1] === undefined ? 'undefined' : kv[1];\n }\n }\n }\n else if (isIterable(body)) {\n // FormData or URLSearchParams or Array\n result = {};\n for (const [key, value] of body) {\n result[key] = typeof value === 'string' ? value : '[object Object]';\n }\n }\n else if (body instanceof Blob ||\n body instanceof ReadableStream ||\n body instanceof ArrayBuffer) {\n result = 'byte data';\n }\n else if (isPureObject(body)) {\n // overriding ArrayBufferView which is not convertable to string\n result = body;\n }\n else {\n result = `can't parse body ${typeof body}`;\n }\n return result;\n};\nexport function isPureObject(input) {\n return null !== input && typeof input === 'object';\n}\nexport function isIterable(value) {\n if (value === null || value === undefined) {\n return false;\n }\n return typeof Symbol !== 'undefined' && typeof value[Symbol.iterator] === 'function';\n}\nexport function formatByteSize(bytes) {\n if (bytes <= 0) {\n // shouldn't happen?\n return '';\n }\n if (bytes >= 1000 * 1000) {\n return (bytes / 1000 / 1000).toFixed(1) + ' MB';\n }\n if (bytes >= 1000) {\n return (bytes / 1000).toFixed(1) + ' KB';\n }\n return `${bytes}B`;\n}\nexport const getURL = (urlString) => {\n if (urlString.startsWith('//')) {\n const baseUrl = new URL(window.location.href);\n urlString = `${baseUrl.protocol}${urlString}`;\n }\n if (urlString.startsWith('http')) {\n return new URL(urlString);\n }\n else {\n return new URL(urlString, window.location.href);\n }\n};\n","/**\n * I took inspiration in few stack exchange posts\n * and Tencent vConsole library (MIT)\n * by wrapping the XMLHttpRequest object in a Proxy\n * we can intercept the network requests\n * in not-so-hacky way\n * */\nimport NetworkMessage, { RequestState } from './networkMessage.js';\nimport { formatByteSize, genStringBody, getStringResponseByType, getURL } from './utils.js';\nexport class ResponseProxyHandler {\n constructor(resp, item) {\n this.resp = resp;\n this.item = item;\n this.mockReader();\n }\n set(target, key, value) {\n return Reflect.set(target, key, value);\n }\n get(target, key) {\n const value = Reflect.get(target, key);\n switch (key) {\n case 'arrayBuffer':\n case 'blob':\n case 'formData':\n case 'json':\n case 'text':\n return () => {\n this.item.responseType = key.toLowerCase();\n // @ts-ignore\n return value.apply(target).then((resp) => {\n this.item.response = getStringResponseByType(this.item.responseType, resp);\n return resp;\n });\n };\n }\n if (typeof value === 'function') {\n return value.bind(target);\n }\n else {\n return value;\n }\n }\n mockReader() {\n let readerReceivedValue;\n if (!this.resp.body) {\n // some browsers do not return `body` in some cases, like `OPTIONS` method\n return;\n }\n if (typeof this.resp.body.getReader !== 'function') {\n return;\n }\n const _getReader = this.resp.body.getReader;\n // @ts-ignore\n this.resp.body.getReader = () => {\n const reader = _getReader.apply(this.resp.body);\n // when readyState is already 4,\n // it's not a chunked stream, or it had already been read.\n // so should not update status.\n if (this.item.readyState === RequestState.DONE) {\n return reader;\n }\n const _read = reader.read;\n const _cancel = reader.cancel;\n this.item.responseType = 'arraybuffer';\n // @ts-ignore\n reader.read = () => {\n return _read.apply(reader).then((result) => {\n if (!readerReceivedValue) {\n // @ts-ignore\n readerReceivedValue = new Uint8Array(result.value);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const newValue = new Uint8Array(readerReceivedValue.length + result.value.length);\n newValue.set(readerReceivedValue);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n newValue.set(result.value, readerReceivedValue.length);\n readerReceivedValue = newValue;\n }\n this.item.endTime = performance.now();\n this.item.duration = this.item.endTime - (this.item.startTime || this.item.endTime);\n this.item.readyState = result.done ? 4 : 3;\n this.item.statusText = result.done ? String(this.item.status) : 'Loading';\n this.item.responseSize = readerReceivedValue.length;\n this.item.responseSizeText = formatByteSize(this.item.responseSize);\n if (result.done) {\n this.item.response = getStringResponseByType(this.item.responseType, readerReceivedValue);\n }\n return result;\n });\n };\n reader.cancel = (...args) => {\n this.item.cancelState = 2;\n this.item.statusText = 'Cancel';\n this.item.endTime = performance.now();\n this.item.duration = this.item.endTime - (this.item.startTime || this.item.endTime);\n this.item.response = getStringResponseByType(this.item.responseType, readerReceivedValue);\n return _cancel.apply(reader, args);\n };\n return reader;\n };\n }\n}\nexport class FetchProxyHandler {\n constructor(ignoredHeaders, setSessionTokenHeader, sanitize, sendMessage, isServiceUrl, tokenUrlMatcher) {\n this.ignoredHeaders = ignoredHeaders;\n this.setSessionTokenHeader = setSessionTokenHeader;\n this.sanitize = sanitize;\n this.sendMessage = sendMessage;\n this.isServiceUrl = isServiceUrl;\n this.tokenUrlMatcher = tokenUrlMatcher;\n }\n apply(target, _, argsList) {\n const input = argsList[0];\n const init = argsList[1];\n if (!input ||\n // @ts-ignore\n (typeof input !== 'string' && !(input === null || input === void 0 ? void 0 : input.url))) {\n return target.apply(window, argsList);\n }\n const isORUrl = input instanceof URL || typeof input === 'string'\n ? this.isServiceUrl(String(input))\n : this.isServiceUrl(String(input.url));\n if (isORUrl) {\n return target.apply(window, argsList);\n }\n const item = new NetworkMessage(this.ignoredHeaders, this.setSessionTokenHeader, this.sanitize);\n this.beforeFetch(item, input, init);\n this.setSessionTokenHeader((name, value) => {\n if (this.tokenUrlMatcher !== undefined) {\n if (!this.tokenUrlMatcher(item.url)) {\n return;\n }\n }\n if (argsList[1] === undefined && argsList[0] instanceof Request) {\n return argsList[0].headers.append(name, value);\n }\n else {\n if (!argsList[1])\n argsList[1] = {};\n if (argsList[1].headers === undefined) {\n argsList[1] = Object.assign(Object.assign({}, argsList[1]), { headers: {} });\n }\n if (argsList[1].headers instanceof Headers) {\n argsList[1].headers.append(name, value);\n }\n else if (Array.isArray(argsList[1].headers)) {\n argsList[1].headers.push([name, value]);\n }\n else {\n // @ts-ignore\n argsList[1].headers[name] = value;\n }\n }\n });\n return target.apply(window, argsList)\n .then(this.afterFetch(item))\n .catch((e) => {\n // mock finally\n item.endTime = performance.now();\n item.duration = item.endTime - (item.startTime || item.endTime);\n throw e;\n });\n }\n beforeFetch(item, input, init) {\n let url, method = 'GET', requestHeader = {};\n // handle `input` content\n if (typeof input === 'string') {\n // when `input` is a string\n method = (init === null || init === void 0 ? void 0 : init.method) || 'GET';\n url = getURL(input);\n requestHeader = (init === null || init === void 0 ? void 0 : init.headers) || {};\n }\n else {\n // when `input` is a `Request` object\n method = input.method || 'GET';\n url = getURL(input.url);\n requestHeader = input.headers;\n }\n item.method = method;\n item.requestType = 'fetch';\n item.requestHeader = requestHeader;\n item.url = url.toString();\n item.name = (url.pathname.split('/').pop() || '') + url.search;\n item.status = 0;\n item.statusText = 'Pending';\n item.readyState = 1;\n if (!item.startTime) {\n // UNSENT\n item.startTime = performance.now();\n }\n if (Object.prototype.toString.call(requestHeader) === '[object Headers]') {\n item.requestHeader = {};\n for (const [key, value] of requestHeader) {\n item.requestHeader[key] = value;\n }\n }\n else {\n item.requestHeader = requestHeader;\n }\n // save GET data\n if (url.search && url.searchParams) {\n item.getData = {};\n for (const [key, value] of url.searchParams) {\n item.getData[key] = value;\n }\n }\n // save POST data\n if (init === null || init === void 0 ? void 0 : init.body) {\n item.requestData = genStringBody(init.body);\n }\n }\n afterFetch(item) {\n return (resp) => {\n item.endTime = performance.now();\n item.duration = item.endTime - (item.startTime || item.endTime);\n item.status = resp.status;\n item.statusText = String(resp.status);\n let isChunked = false;\n item.header = {};\n for (const [key, value] of resp.headers) {\n item.header[key] = value;\n isChunked = value.toLowerCase().indexOf('chunked') > -1 ? true : isChunked;\n }\n if (isChunked) {\n // when `transfer-encoding` is chunked, the response is a stream which is under loading,\n // so the `readyState` should be 3 (Loading),\n // and the response should NOT be `clone()` which will affect stream reading.\n item.readyState = 3;\n }\n else {\n // Otherwise, not chunked, the response is not a stream,\n // so it's completed and can be cloned for `text()` calling.\n item.readyState = 4;\n void this.handleResponseBody(resp.clone(), item).then((responseValue) => {\n item.responseSize =\n typeof responseValue === 'string' ? responseValue.length : responseValue.byteLength;\n item.responseSizeText = formatByteSize(item.responseSize);\n item.response = getStringResponseByType(item.responseType, responseValue);\n this.sendMessage(item.getMessage());\n });\n }\n return new Proxy(resp, new ResponseProxyHandler(resp, item));\n };\n }\n handleResponseBody(resp, item) {\n // parse response body by Content-Type\n const contentType = resp.headers.get('content-type');\n if (contentType && contentType.includes('application/json')) {\n item.responseType = 'json';\n return resp.text();\n }\n else if (contentType &&\n (contentType.includes('text/html') || contentType.includes('text/plain'))) {\n item.responseType = 'text';\n return resp.text();\n }\n else {\n item.responseType = 'arraybuffer';\n return resp.arrayBuffer();\n }\n }\n}\nexport default class FetchProxy {\n static create(ignoredHeaders, setSessionTokenHeader, sanitize, sendMessage, isServiceUrl, tokenUrlMatcher) {\n return new Proxy(fetch, new FetchProxyHandler(ignoredHeaders, setSessionTokenHeader, sanitize, sendMessage, isServiceUrl, tokenUrlMatcher));\n }\n}\n","/**\n * I took inspiration in few stack exchange posts\n * and Tencent vConsole library (MIT)\n * by wrapping the XMLHttpRequest object in a Proxy\n * we can intercept the network requests\n * in not-so-hacky way\n * */\nimport NetworkMessage, { RequestState } from './networkMessage.js';\nimport { genGetDataByUrl, formatByteSize, genStringBody, getStringResponseByType } from './utils.js';\nexport class XHRProxyHandler {\n constructor(XMLReq, ignoredHeaders, setSessionTokenHeader, sanitize, sendMessage, isServiceUrl, tokenUrlMatcher) {\n this.ignoredHeaders = ignoredHeaders;\n this.setSessionTokenHeader = setSessionTokenHeader;\n this.sanitize = sanitize;\n this.sendMessage = sendMessage;\n this.isServiceUrl = isServiceUrl;\n this.tokenUrlMatcher = tokenUrlMatcher;\n this.XMLReq = XMLReq;\n this.XMLReq.onreadystatechange = () => {\n this.onReadyStateChange();\n };\n this.XMLReq.onabort = () => {\n this.onAbort();\n };\n this.XMLReq.ontimeout = () => {\n this.onTimeout();\n };\n this.item = new NetworkMessage(ignoredHeaders, setSessionTokenHeader, sanitize);\n this.item.requestType = 'xhr';\n }\n get(target, key) {\n switch (key) {\n case 'open':\n return this.getOpen(target);\n case 'send':\n this.setSessionTokenHeader((name, value) => {\n if (this.tokenUrlMatcher !== undefined) {\n if (!this.tokenUrlMatcher(this.item.url)) {\n return;\n }\n }\n target.setRequestHeader(name, value);\n });\n return this.getSend(target);\n case 'setRequestHeader':\n return this.getSetRequestHeader(target);\n default:\n // eslint-disable-next-line no-case-declarations\n const value = Reflect.get(target, key);\n if (typeof value === 'function') {\n return value.bind(target);\n }\n else {\n return value;\n }\n }\n }\n set(target, key, value) {\n switch (key) {\n case 'onreadystatechange':\n return this.setOnReadyStateChange(target, key, value);\n case 'onabort':\n return this.setOnAbort(target, key, value);\n case 'ontimeout':\n return this.setOnTimeout(target, key, value);\n default:\n // not tracked methods\n }\n return Reflect.set(target, key, value);\n }\n onReadyStateChange() {\n if (this.item.url && this.isServiceUrl(this.item.url))\n return;\n this.item.readyState = this.XMLReq.readyState;\n this.item.responseType = this.XMLReq.responseType;\n this.item.endTime = performance.now();\n this.item.duration = this.item.endTime - this.item.startTime;\n this.updateItemByReadyState();\n setTimeout(() => {\n this.item.response = getStringResponseByType(this.item.responseType, this.item.response);\n }, 0);\n if (this.XMLReq.readyState === RequestState.DONE) {\n this.sendMessage(this.item.getMessage());\n }\n }\n onAbort() {\n this.item.cancelState = 1;\n this.item.statusText = 'Abort';\n this.sendMessage(this.item.getMessage());\n }\n onTimeout() {\n this.item.cancelState = 3;\n this.item.statusText = 'Timeout';\n this.sendMessage(this.item.getMessage());\n }\n getOpen(target) {\n const targetFunction = Reflect.get(target, 'open');\n return (...args) => {\n const method = args[0];\n const url = args[1];\n this.item.method = method ? method.toUpperCase() : 'GET';\n this.item.url = url || '';\n this.item.name = this.item.url.replace(new RegExp('/*$'), '').split('/').pop() || '';\n this.item.getData = genGetDataByUrl(this.item.url, {});\n return targetFunction.apply(target, args);\n };\n }\n getSend(target) {\n const targetFunction = Reflect.get(target, 'send');\n return (...args) => {\n const data = args[0];\n this.item.requestData = genStringBody(data);\n return targetFunction.apply(target, args);\n };\n }\n getSetRequestHeader(target) {\n const targetFunction = Reflect.get(target, 'setRequestHeader');\n return (...args) => {\n if (!this.item.requestHeader) {\n this.item.requestHeader = {};\n }\n // @ts-ignore\n this.item.requestHeader[args[0]] = args[1];\n return targetFunction.apply(target, args);\n };\n }\n setOnReadyStateChange(target, key, orscFunction) {\n return Reflect.set(target, key, (...args) => {\n this.onReadyStateChange();\n orscFunction === null || orscFunction === void 0 ? void 0 : orscFunction.apply(target, args);\n });\n }\n setOnAbort(target, key, oaFunction) {\n return Reflect.set(target, key, (...args) => {\n this.onAbort();\n oaFunction.apply(target, args);\n });\n }\n setOnTimeout(target, key, otFunction) {\n return Reflect.set(target, key, (...args) => {\n this.onTimeout();\n otFunction.apply(target, args);\n });\n }\n /**\n * Update item's properties according to readyState.\n */\n updateItemByReadyState() {\n switch (this.XMLReq.readyState) {\n case RequestState.UNSENT:\n case RequestState.OPENED:\n this.item.status = RequestState.UNSENT;\n this.item.statusText = 'Pending';\n if (!this.item.startTime) {\n this.item.startTime = performance.now();\n }\n break;\n case RequestState.HEADERS_RECEIVED:\n this.item.status = this.XMLReq.status;\n this.item.statusText = 'Loading';\n this.item.header = {};\n // eslint-disable-next-line no-case-declarations\n const header = this.XMLReq.getAllResponseHeaders() || '', headerArr = header.split('\\n');\n // extract plain text to key-value format\n for (let i = 0; i < headerArr.length; i++) {\n const line = headerArr[i];\n if (!line) {\n continue;\n }\n const arr = line.split(': ');\n const key = arr[0];\n this.item.header[key] = arr.slice(1).join(': ');\n }\n break;\n case RequestState.LOADING:\n this.item.status = this.XMLReq.status;\n this.item.statusText = 'Loading';\n if (!!this.XMLReq.response && this.XMLReq.response.length) {\n this.item.responseSize = this.XMLReq.response.length;\n this.item.responseSizeText = formatByteSize(this.item.responseSize);\n }\n break;\n case RequestState.DONE:\n // `XMLReq.abort()` will change `status` from 200 to 0, so use previous value in this case\n this.item.status = this.XMLReq.status || this.item.status || 0;\n // show status code when request completed\n this.item.statusText = String(this.item.status);\n this.item.endTime = performance.now();\n this.item.duration = this.item.endTime - (this.item.startTime || this.item.endTime);\n this.item.response = this.XMLReq.response;\n if (!!this.XMLReq.response && this.XMLReq.response.length) {\n this.item.responseSize = this.XMLReq.response.length;\n this.item.responseSizeText = formatByteSize(this.item.responseSize);\n }\n break;\n default:\n this.item.status = this.XMLReq.status;\n this.item.statusText = 'Unknown';\n break;\n }\n }\n}\nexport default class XHRProxy {\n static create(ignoredHeaders, setSessionTokenHeader, sanitize, sendMessage, isServiceUrl, tokenUrlMatcher) {\n return new Proxy(XMLHttpRequest, {\n construct(original) {\n const XMLReq = new original();\n return new Proxy(XMLReq, new XHRProxyHandler(XMLReq, ignoredHeaders, setSessionTokenHeader, sanitize, sendMessage, isServiceUrl, tokenUrlMatcher));\n },\n });\n }\n}\n","var _a;\nimport NetworkMessage from './networkMessage.js';\nimport { genStringBody, getURL } from './utils.js';\n// https://fetch.spec.whatwg.org/#concept-bodyinit-extract\nconst getContentType = (data) => {\n if (data instanceof Blob) {\n return data.type;\n }\n if (data instanceof FormData) {\n return 'multipart/form-data';\n }\n if (data instanceof URLSearchParams) {\n return 'application/x-www-form-urlencoded;charset=UTF-8';\n }\n return 'text/plain;charset=UTF-8';\n};\nexport class BeaconProxyHandler {\n constructor(ignoredHeaders, setSessionTokenHeader, sanitize, sendMessage, isServiceUrl) {\n this.ignoredHeaders = ignoredHeaders;\n this.setSessionTokenHeader = setSessionTokenHeader;\n this.sanitize = sanitize;\n this.sendMessage = sendMessage;\n this.isServiceUrl = isServiceUrl;\n }\n apply(target, thisArg, argsList) {\n const urlString = argsList[0];\n const data = argsList[1];\n const item = new NetworkMessage(this.ignoredHeaders, this.setSessionTokenHeader, this.sanitize);\n if (this.isServiceUrl(urlString)) {\n return target.apply(thisArg, argsList);\n }\n const url = getURL(urlString);\n item.method = 'POST';\n item.url = urlString;\n item.name = (url.pathname.split('/').pop() || '') + url.search;\n item.requestType = 'beacon';\n item.requestHeader = { 'Content-Type': getContentType(data) };\n item.status = 0;\n item.statusText = 'Pending';\n if (url.search && url.searchParams) {\n item.getData = {};\n for (const [key, value] of url.searchParams) {\n item.getData[key] = value;\n }\n }\n item.requestData = genStringBody(data);\n if (!item.startTime) {\n item.startTime = performance.now();\n }\n const isSuccess = target.apply(thisArg, argsList);\n if (isSuccess) {\n item.endTime = performance.now();\n item.duration = item.endTime - (item.startTime || item.endTime);\n item.status = 0;\n item.statusText = 'Sent';\n item.readyState = 4;\n }\n else {\n item.status = 500;\n item.statusText = 'Unknown';\n }\n this.sendMessage(item.getMessage());\n return isSuccess;\n }\n}\nexport default class BeaconProxy {\n static hasSendBeacon() {\n return !!BeaconProxy.origSendBeacon;\n }\n static create(ignoredHeaders, setSessionTokenHeader, sanitize, sendMessage, isServiceUrl) {\n if (!BeaconProxy.hasSendBeacon()) {\n return undefined;\n }\n return new Proxy(BeaconProxy.origSendBeacon, new BeaconProxyHandler(ignoredHeaders, setSessionTokenHeader, sanitize, sendMessage, isServiceUrl));\n }\n}\nBeaconProxy.origSendBeacon = (_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.sendBeacon;\n","import FetchProxy from './fetchProxy.js';\nimport XHRProxy from './xhrProxy.js';\nimport BeaconProxy from './beaconProxy.js';\nconst getWarning = (api) => console.warn(`Openreplay: Can't find ${api} in global context. \nIf you're using serverside rendering in your app, make sure that tracker is loaded dynamically, otherwise ${api} won't be tracked.`);\nexport default function setProxy(context, ignoredHeaders, setSessionTokenHeader, sanitize, sendMessage, isServiceUrl, tokenUrlMatcher) {\n var _a;\n if (context.XMLHttpRequest) {\n context.XMLHttpRequest = XHRProxy.create(ignoredHeaders, setSessionTokenHeader, sanitize, sendMessage, isServiceUrl, tokenUrlMatcher);\n }\n else {\n getWarning('XMLHttpRequest');\n }\n if (context.fetch) {\n context.fetch = FetchProxy.create(ignoredHeaders, setSessionTokenHeader, sanitize, sendMessage, isServiceUrl, tokenUrlMatcher);\n }\n else {\n getWarning('fetch');\n }\n if ((_a = context === null || context === void 0 ? void 0 : context.navigator) === null || _a === void 0 ? void 0 : _a.sendBeacon) {\n context.navigator.sendBeacon = BeaconProxy.create(ignoredHeaders, setSessionTokenHeader, sanitize, sendMessage, isServiceUrl);\n }\n}\n","import { NetworkRequest } from '../app/messages.gen.js';\nimport { getTimeOrigin } from '../utils.js';\nimport axiosSpy from './axiosSpy.js';\nimport setProxy from './Network/index.js';\nfunction getXHRRequestDataObject(xhr) {\n // @ts-ignore this is 3x faster than using Map\n if (!xhr.__or_req_data__) {\n // @ts-ignore\n xhr.__or_req_data__ = { body: undefined, headers: {} };\n }\n // @ts-ignore\n return xhr.__or_req_data__;\n}\nfunction strMethod(method) {\n return typeof method === 'string' ? method.toUpperCase() : 'GET';\n}\nexport default function (app, opts = {}) {\n const options = Object.assign({\n failuresOnly: false,\n ignoreHeaders: ['cookie', 'set-cookie', 'authorization'],\n capturePayload: false,\n sessionTokenHeader: false,\n captureInIframes: true,\n axiosInstances: undefined,\n useProxy: true,\n }, opts);\n if (options.useProxy === false) {\n app.debug.warn('Network module is migrating to proxy api, to gradually migrate and test it set useProxy to true');\n }\n const ignoreHeaders = options.ignoreHeaders;\n const isHIgnored = Array.isArray(ignoreHeaders)\n ? (name) => ignoreHeaders.includes(name)\n : () => ignoreHeaders;\n const stHeader = options.sessionTokenHeader === true ? 'X-OpenReplay-SessionToken' : options.sessionTokenHeader;\n function setSessionTokenHeader(setRequestHeader) {\n if (stHeader) {\n const sessionToken = app.getSessionToken();\n if (sessionToken) {\n app.safe(setRequestHeader)(stHeader, sessionToken);\n }\n }\n }\n function sanitize(reqResInfo) {\n if (!options.capturePayload) {\n // @ts-ignore\n delete reqResInfo.request.body;\n delete reqResInfo.response.body;\n }\n if (options.sanitizer) {\n const resBody = reqResInfo.response.body;\n if (typeof resBody === 'string') {\n // Parse response in order to have handy view in sanitization function\n try {\n reqResInfo.response.body = JSON.parse(resBody);\n }\n catch (_a) { }\n }\n return options.sanitizer(reqResInfo);\n }\n return reqResInfo;\n }\n function stringify(r) {\n if (r && typeof r.body !== 'string') {\n try {\n r.body = JSON.stringify(r.body);\n }\n catch (_a) {\n r.body = '';\n app.notify.warn(\"Openreplay fetch couldn't stringify body:\", r.body);\n }\n }\n return JSON.stringify(r);\n }\n const patchWindow = (context) => {\n /* ====== modern way ====== */\n if (options.useProxy) {\n return setProxy(context, options.ignoreHeaders, setSessionTokenHeader, sanitize, (message) => app.send(message), (url) => app.isServiceURL(url), options.tokenUrlMatcher);\n }\n /* ====== Fetch ====== */\n const origFetch = context.fetch.bind(context);\n const trackFetch = (input, init = {}) => {\n if (!(typeof input === 'string' || input instanceof URL) || app.isServiceURL(String(input))) {\n return origFetch(input, init);\n }\n setSessionTokenHeader(function (name, value) {\n if (init.headers === undefined) {\n init.headers = {};\n }\n if (init.headers instanceof Headers) {\n init.headers.append(name, value);\n }\n else if (Array.isArray(init.headers)) {\n init.headers.push([name, value]);\n }\n else {\n init.headers[name] = value;\n }\n });\n const startTime = performance.now();\n return origFetch(input, init).then((response) => {\n const duration = performance.now() - startTime;\n if (options.failuresOnly && response.status < 400) {\n return response;\n }\n const r = response.clone();\n r.text()\n .then((text) => {\n const reqHs = {};\n const resHs = {};\n if (ignoreHeaders !== true) {\n // request headers\n const writeReqHeader = ([n, v]) => {\n if (!isHIgnored(n)) {\n reqHs[n] = v;\n }\n };\n if (init.headers instanceof Headers) {\n init.headers.forEach((v, n) => writeReqHeader([n, v]));\n }\n else if (Array.isArray(init.headers)) {\n init.headers.forEach(writeReqHeader);\n }\n else if (typeof init.headers === 'object') {\n Object.entries(init.headers).forEach(writeReqHeader);\n }\n // response headers\n r.headers.forEach((v, n) => {\n if (!isHIgnored(n))\n resHs[n] = v;\n });\n }\n const method = strMethod(init.method);\n const reqResInfo = sanitize({\n url: String(input),\n method,\n status: r.status,\n request: {\n headers: reqHs,\n // @ts-ignore\n body: init.body || null,\n },\n response: {\n headers: resHs,\n body: text,\n },\n });\n if (!reqResInfo) {\n return;\n }\n app.send(NetworkRequest('fetch', method, String(reqResInfo.url), stringify(reqResInfo.request), stringify(reqResInfo.response), r.status, startTime + getTimeOrigin(), duration, 0));\n })\n .catch((e) => app.debug.error('Could not process Fetch response:', e));\n return response;\n });\n };\n // @ts-ignore\n context.fetch = trackFetch;\n /* ====== <> ====== */\n /* ====== XHR ====== */\n const nativeOpen = context.XMLHttpRequest.prototype.open;\n const nativeSetRequestHeader = context.XMLHttpRequest.prototype.setRequestHeader;\n const nativeSend = context.XMLHttpRequest.prototype.send;\n function trackXMLHttpReqOpen(initMethod, url) {\n const xhr = this;\n setSessionTokenHeader((name, value) => xhr.setRequestHeader(name, value));\n let startTime = 0;\n xhr.addEventListener('loadstart', (e) => {\n startTime = e.timeStamp;\n });\n xhr.addEventListener('load', app.safe((e) => {\n const { headers: reqHs, body: reqBody } = getXHRRequestDataObject(xhr);\n const duration = startTime > 0 ? e.timeStamp - startTime : 0;\n const hString = xhr.getAllResponseHeaders() || ''; // might be null (only if no response received though)\n const headersArr = hString.trim().split(/[\\r\\n]+/);\n const headerMap = {};\n headersArr.forEach(function (line) {\n const parts = line.split(': ');\n const header = parts.shift();\n if (!isHIgnored(header)) {\n headerMap[header] = parts.join(': ');\n }\n });\n const method = strMethod(initMethod);\n const reqResInfo = sanitize({\n url: String(url),\n method,\n status: xhr.status,\n request: {\n headers: reqHs,\n // @ts-ignore\n body: reqBody || null,\n },\n response: {\n headers: headerMap,\n body: xhr.response,\n },\n });\n if (!reqResInfo) {\n return;\n }\n app.send(NetworkRequest('xhr', method, String(reqResInfo.url), stringify(reqResInfo.request), stringify(reqResInfo.response), xhr.status, startTime + getTimeOrigin(), duration, 0));\n }));\n //TODO: handle error (though it has no Error API nor any useful information)\n //xhr.addEventListener('error', (e) => {})\n return nativeOpen.apply(this, arguments);\n }\n function trackXHRSend(body) {\n const rdo = getXHRRequestDataObject(this);\n rdo.body = body;\n // @ts-ignore ??? this -> XMLHttpRequest\n return nativeSend.apply(this, arguments);\n }\n function trackSetReqHeader(name, value) {\n if (!isHIgnored(name)) {\n const rdo = getXHRRequestDataObject(this);\n rdo.headers[name] = value;\n }\n return nativeSetRequestHeader.apply(this, arguments);\n }\n if (!options.axiosInstances) {\n context.XMLHttpRequest.prototype.open = trackXMLHttpReqOpen;\n context.XMLHttpRequest.prototype.send = trackXHRSend;\n context.XMLHttpRequest.prototype.setRequestHeader = trackSetReqHeader;\n }\n /* ====== <> ====== */\n };\n patchWindow(window);\n if (options.axiosInstances) {\n options.axiosInstances.forEach((axiosInstance) => {\n axiosSpy(app, axiosInstance, options, sanitize, stringify);\n });\n }\n if (options.captureInIframes) {\n app.observer.attachContextCallback(app.safe(patchWindow));\n }\n}\n","import { SelectionChange } from '../app/messages.gen.js';\nfunction selection(app) {\n app.attachEventListener(document, 'selectionchange', () => {\n const selection = document.getSelection();\n if (selection !== null && !selection.isCollapsed) {\n const selectionStart = app.nodes.getID(selection.anchorNode);\n const selectionEnd = app.nodes.getID(selection.focusNode);\n const selectedText = selection.toString().replace(/\\s+/g, ' ');\n if (selectionStart && selectionEnd) {\n app.send(SelectionChange(selectionStart, selectionEnd, selectedText));\n }\n }\n else {\n app.send(SelectionChange(-1, -1, ''));\n }\n });\n}\nexport default selection;\n/** TODO: research how to get all in-between nodes inside selection range\n * including nodes between anchor and focus nodes and their children\n * without recursively searching the dom tree\n */\n// if (selection.rangeCount) {\n// const nodes = [];\n// for (let i = 0; i < selection.rangeCount; i++) {\n// const range = selection.getRangeAt(i);\n// let node: Node | null = range.startContainer;\n// while (node) {\n// nodes.push(node);\n// if (node === range.endContainer) break;\n// node = node.nextSibling;\n// }\n// }\n// // send selected nodes\n// }\n","import App, { DEFAULT_INGEST_POINT } from './app/index.js';\nexport { default as App } from './app/index.js';\nimport { UserAnonymousID, CustomEvent, CustomIssue } from './app/messages.gen.js';\nimport * as _Messages from './app/messages.gen.js';\nexport const Messages = _Messages;\nexport { SanitizeLevel } from './app/sanitizer.js';\nimport Connection from './modules/connection.js';\nimport Console from './modules/console.js';\nimport Exception, { getExceptionMessageFromEvent, getExceptionMessage, } from './modules/exception.js';\nimport Img from './modules/img.js';\nimport Input from './modules/input.js';\nimport Mouse from './modules/mouse.js';\nimport Timing from './modules/timing.js';\nimport Performance from './modules/performance.js';\nimport Scroll from './modules/scroll.js';\nimport Viewport from './modules/viewport.js';\nimport CSSRules from './modules/cssrules.js';\nimport Focus from './modules/focus.js';\nimport Fonts from './modules/fonts.js';\nimport Network from './modules/network.js';\nimport ConstructedStyleSheets from './modules/constructedStyleSheets.js';\nimport Selection from './modules/selection.js';\nimport Tabs from './modules/tabs.js';\nimport { IN_BROWSER, deprecationWarn, DOCS_HOST } from './utils.js';\nconst DOCS_SETUP = '/installation/javascript-sdk';\nfunction processOptions(obj) {\n if (obj == null) {\n console.error(`OpenReplay: invalid options argument type. Please, check documentation on ${DOCS_HOST}${DOCS_SETUP}`);\n return false;\n }\n if (typeof obj.projectKey !== 'string') {\n if (typeof obj.projectKey !== 'number') {\n if (typeof obj.projectID !== 'number') {\n // Back compatability\n console.error(`OpenReplay: projectKey is missing or wrong type (string is expected). Please, check ${DOCS_HOST}${DOCS_SETUP} for more information.`);\n return false;\n }\n else {\n obj.projectKey = obj.projectID.toString();\n deprecationWarn('`projectID` option', '`projectKey` option', DOCS_SETUP);\n }\n }\n else {\n console.warn('OpenReplay: projectKey is expected to have a string type.');\n obj.projectKey = obj.projectKey.toString();\n }\n }\n if (obj.sessionToken != null) {\n deprecationWarn('`sessionToken` option', '`sessionHash` start() option', '/');\n }\n return true;\n}\nexport default class API {\n constructor(options) {\n var _a;\n this.options = options;\n this.app = null;\n this.checkDoNotTrack = () => {\n return (this.options.respectDoNotTrack &&\n (navigator.doNotTrack == '1' ||\n // @ts-ignore\n window.doNotTrack == '1'));\n };\n this.signalStartIssue = (reason, missingApi) => {\n const doNotTrack = this.checkDoNotTrack();\n const req = new XMLHttpRequest();\n const orig = this.options.ingestPoint || DEFAULT_INGEST_POINT;\n req.open('POST', orig + '/v1/web/not-started');\n req.send(JSON.stringify({\n trackerVersion: '12.0.3',\n projectKey: this.options.projectKey,\n doNotTrack,\n reason,\n missingApi,\n }));\n };\n this.restartCanvasTracking = () => {\n if (this.app === null) {\n return;\n }\n this.app.restartCanvasTracking();\n };\n this.handleError = (e, metadata = {}) => {\n if (this.app === null) {\n return;\n }\n if (e instanceof Error) {\n const msg = getExceptionMessage(e, [], metadata);\n this.app.send(msg);\n }\n else if (e instanceof ErrorEvent ||\n ('PromiseRejectionEvent' in window && e instanceof PromiseRejectionEvent)) {\n const msg = getExceptionMessageFromEvent(e, undefined, metadata);\n if (msg != null) {\n this.app.send(msg);\n }\n }\n };\n if (!IN_BROWSER || !processOptions(options)) {\n return;\n }\n if (window.__OPENREPLAY__) {\n console.error('OpenReplay: one tracker instance has been initialised already');\n return;\n }\n if (!options.__DISABLE_SECURE_MODE && location.protocol !== 'https:') {\n console.error('OpenReplay: Your website must be publicly accessible and running on SSL in order for OpenReplay to properly capture and replay the user session. You can disable this check by setting `__DISABLE_SECURE_MODE` option to `true` if you are testing in localhost. Keep in mind, that asset files on a local machine are not available to the outside world. This might affect tracking if you use css files.');\n return;\n }\n const doNotTrack = this.checkDoNotTrack();\n const failReason = [];\n const conditions = [\n 'Map',\n 'Set',\n 'MutationObserver',\n 'performance',\n 'timing',\n 'startsWith',\n 'Blob',\n 'Worker',\n ];\n if (doNotTrack) {\n failReason.push('doNotTrack');\n }\n else {\n for (const condition of conditions) {\n if (condition === 'timing') {\n if ('performance' in window && !(condition in performance)) {\n failReason.push(condition);\n break;\n }\n }\n else if (condition === 'startsWith') {\n if (!(condition in String.prototype)) {\n failReason.push(condition);\n break;\n }\n }\n else {\n if (!(condition in window)) {\n failReason.push(condition);\n break;\n }\n }\n }\n }\n if (failReason.length > 0) {\n const missingApi = failReason.join(',');\n console.error(`OpenReplay: browser doesn't support API required for tracking or doNotTrack is set to 1. Reason: ${missingApi}`);\n this.signalStartIssue('missing_api', failReason);\n return;\n }\n const app = new App(options.projectKey, options.sessionToken, options, this.signalStartIssue);\n this.app = app;\n Viewport(app);\n CSSRules(app);\n ConstructedStyleSheets(app);\n Connection(app);\n Console(app, options);\n Exception(app, options);\n Img(app);\n Input(app, options);\n Mouse(app, options.mouse);\n Timing(app, options);\n Performance(app, options);\n Scroll(app);\n Focus(app);\n Fonts(app);\n Network(app, options.network);\n Selection(app);\n Tabs(app);\n window.__OPENREPLAY__ = this;\n if ((_a = options.flags) === null || _a === void 0 ? void 0 : _a.onFlagsLoad) {\n this.onFlagsLoad(options.flags.onFlagsLoad);\n }\n const wOpen = window.open;\n if (options.autoResetOnWindowOpen || options.resetTabOnWindowOpen) {\n app.attachStartCallback(() => {\n var _a;\n const tabId = app.getTabId();\n const sessStorage = (_a = app.sessionStorage) !== null && _a !== void 0 ? _a : window.sessionStorage;\n // @ts-ignore ?\n window.open = function (...args) {\n if (options.autoResetOnWindowOpen) {\n app.resetNextPageSession(true);\n }\n if (options.resetTabOnWindowOpen) {\n sessStorage.removeItem(options.session_tabid_key || '__openreplay_tabid');\n }\n wOpen.call(window, ...args);\n app.resetNextPageSession(false);\n sessStorage.setItem(options.session_tabid_key || '__openreplay_tabid', tabId);\n };\n });\n app.attachStopCallback(() => {\n window.open = wOpen;\n });\n }\n }\n isFlagEnabled(flagName) {\n return this.featureFlags.isFlagEnabled(flagName);\n }\n onFlagsLoad(callback) {\n var _a;\n (_a = this.app) === null || _a === void 0 ? void 0 : _a.featureFlags.onFlagsLoad(callback);\n }\n clearPersistFlags() {\n var _a;\n (_a = this.app) === null || _a === void 0 ? void 0 : _a.featureFlags.clearPersistFlags();\n }\n reloadFlags() {\n var _a;\n return (_a = this.app) === null || _a === void 0 ? void 0 : _a.featureFlags.reloadFlags();\n }\n getFeatureFlag(flagName) {\n var _a;\n return (_a = this.app) === null || _a === void 0 ? void 0 : _a.featureFlags.getFeatureFlag(flagName);\n }\n getAllFeatureFlags() {\n var _a;\n return (_a = this.app) === null || _a === void 0 ? void 0 : _a.featureFlags.flags;\n }\n use(fn) {\n return fn(this.app, this.options);\n }\n isActive() {\n if (this.app === null) {\n return false;\n }\n return this.app.active();\n }\n /**\n * Creates a named hook that expects event name, data string and msg direction (up/down),\n * it will skip any message bigger than 5 mb or event name bigger than 255 symbols\n * msg direction is \"down\" (incoming) by default\n *\n * @returns {(msgType: string, data: string, dir: 'up' | 'down') => void}\n * */\n trackWs(channelName) {\n if (this.app === null) {\n return;\n }\n return this.app.trackWs(channelName);\n }\n start(startOpts) {\n if (this.browserEnvCheck()) {\n if (this.app === null) {\n return Promise.reject(\"Browser doesn't support required api, or doNotTrack is active.\");\n }\n return this.app.start(startOpts);\n }\n else {\n return Promise.reject('Trying to start not in browser.');\n }\n }\n browserEnvCheck() {\n if (!IN_BROWSER) {\n console.error(`OpenReplay: you are trying to start Tracker on a node.js environment. If you want to use OpenReplay with SSR, please, use componentDidMount or useEffect API for placing the \\`tracker.start()\\` line. Check documentation on ${DOCS_HOST}${DOCS_SETUP}`);\n return false;\n }\n return true;\n }\n /**\n * start buffering messages without starting the actual session, which gives user 30 seconds to \"activate\" and record\n * session by calling start() on conditional trigger and we will then send buffered batch, so it won't get lost\n * */\n coldStart(startOpts, conditional) {\n if (this.browserEnvCheck()) {\n if (this.app === null) {\n return Promise.reject('Tracker not initialized');\n }\n void this.app.coldStart(startOpts, conditional);\n }\n else {\n return Promise.reject('Trying to start not in browser.');\n }\n }\n /**\n * Starts offline session recording. Keep in mind that only user device time will be used for timestamps.\n * (no backend delay sync)\n *\n * @param {Object} startOpts - options for session start, same as .start()\n * @param {Function} onSessionSent - callback that will be called once session is fully sent\n * @returns methods to manipulate buffer:\n *\n * saveBuffer - to save it in localStorage\n *\n * getBuffer - returns current buffer\n *\n * setBuffer - replaces current buffer with given\n * */\n startOfflineRecording(startOpts, onSessionSent) {\n if (this.browserEnvCheck()) {\n if (this.app === null) {\n return Promise.reject('Tracker not initialized');\n }\n return this.app.offlineRecording(startOpts, onSessionSent);\n }\n else {\n return Promise.reject('Trying to start not in browser.');\n }\n }\n /**\n * Uploads the stored session buffer to backend\n * @returns promise that resolves once messages are loaded, it has to be awaited\n * so the session can be uploaded properly\n * @resolve - if messages were loaded into service worker successfully\n * @reject {string} - error message\n * */\n uploadOfflineRecording() {\n if (this.app === null) {\n return;\n }\n return this.app.uploadOfflineRecording();\n }\n stop() {\n if (this.app === null) {\n return;\n }\n this.app.stop();\n return this.app.session.getSessionHash();\n }\n forceFlushBatch() {\n if (this.app === null) {\n return;\n }\n this.app.forceFlushBatch();\n }\n getSessionToken() {\n if (this.app === null) {\n return null;\n }\n return this.app.getSessionToken();\n }\n getSessionID() {\n if (this.app === null) {\n return null;\n }\n return this.app.getSessionID();\n }\n getTabId() {\n if (this.app === null) {\n return null;\n }\n return this.app.getTabId();\n }\n getUxId() {\n if (this.app === null) {\n return null;\n }\n return this.app.getUxtId();\n }\n sessionID() {\n deprecationWarn(\"'sessionID' method\", \"'getSessionID' method\", '/');\n return this.getSessionID();\n }\n getSessionURL(options) {\n if (this.app === null) {\n return undefined;\n }\n return this.app.getSessionURL(options);\n }\n setUserID(id) {\n if (typeof id === 'string' && this.app !== null) {\n this.app.session.setUserID(id);\n }\n }\n userID(id) {\n deprecationWarn(\"'userID' method\", \"'setUserID' method\", '/');\n this.setUserID(id);\n }\n setUserAnonymousID(id) {\n if (typeof id === 'string' && this.app !== null) {\n this.app.send(UserAnonymousID(id));\n }\n }\n userAnonymousID(id) {\n deprecationWarn(\"'userAnonymousID' method\", \"'setUserAnonymousID' method\", '/');\n this.setUserAnonymousID(id);\n }\n setMetadata(key, value) {\n if (typeof key === 'string' && typeof value === 'string' && this.app !== null) {\n this.app.session.setMetadata(key, value);\n }\n }\n metadata(key, value) {\n deprecationWarn(\"'metadata' method\", \"'setMetadata' method\", '/');\n this.setMetadata(key, value);\n }\n event(key, payload = null, issue = false) {\n if (typeof key === 'string' && this.app !== null) {\n if (issue) {\n return this.issue(key, payload);\n }\n else {\n try {\n payload = JSON.stringify(payload);\n }\n catch (e) {\n return;\n }\n this.app.send(CustomEvent(key, payload));\n }\n }\n }\n issue(key, payload = null) {\n if (typeof key === 'string' && this.app !== null) {\n try {\n payload = JSON.stringify(payload);\n }\n catch (e) {\n return;\n }\n this.app.send(CustomIssue(key, payload));\n }\n }\n}\n","import { getTimeOrigin } from '../utils.js';\nimport { SetPageLocation, SetViewportSize, SetPageVisibility } from '../app/messages.gen.js';\nexport default function (app) {\n let url, width, height;\n let navigationStart;\n let referrer = document.referrer;\n const sendSetPageLocation = app.safe(() => {\n const { URL } = document;\n if (URL !== url) {\n url = URL;\n app.send(SetPageLocation(url, referrer, navigationStart));\n navigationStart = 0;\n referrer = url;\n }\n });\n const sendSetViewportSize = app.safe(() => {\n const { innerWidth, innerHeight } = window;\n if (innerWidth !== width || innerHeight !== height) {\n width = innerWidth;\n height = innerHeight;\n app.send(SetViewportSize(width, height));\n }\n });\n const sendSetPageVisibility = document.hidden === undefined\n ? Function.prototype\n : app.safe(() => app.send(SetPageVisibility(document.hidden)));\n app.attachStartCallback(() => {\n url = '';\n navigationStart = getTimeOrigin();\n width = height = -1;\n sendSetPageLocation();\n sendSetViewportSize();\n sendSetPageVisibility();\n });\n if (document.hidden !== undefined) {\n app.attachEventListener(document, 'visibilitychange', sendSetPageVisibility, false, false);\n }\n app.ticker.attach(sendSetPageLocation, 1, false);\n app.ticker.attach(sendSetViewportSize, 5, false);\n}\n","import { AdoptedSSInsertRuleURLBased, // TODO: rename to common StyleSheet names\nAdoptedSSDeleteRule, AdoptedSSAddOwner, TechnicalInfo, } from '../app/messages.gen.js';\nimport { hasTag } from '../app/guards.js';\nimport { nextID, styleSheetIDMap } from './constructedStyleSheets.js';\nexport default function (app) {\n if (app === null) {\n return;\n }\n if (!window.CSSStyleSheet) {\n app.send(TechnicalInfo('no_stylesheet_prototype_in_window', ''));\n return;\n }\n const sendInsertDeleteRule = app.safe((sheet, index, rule) => {\n const sheetID = styleSheetIDMap.get(sheet);\n if (!sheetID) {\n // OK-case. Sheet haven't been registered yet. Rules will be sent on registration.\n return;\n }\n if (typeof rule === 'string') {\n app.send(AdoptedSSInsertRuleURLBased(sheetID, rule, index, app.getBaseHref()));\n }\n else {\n app.send(AdoptedSSDeleteRule(sheetID, index));\n }\n });\n // TODO: proper rule insertion/removal (how?)\n const sendReplaceGroupingRule = app.safe((rule) => {\n let topmostRule = rule;\n while (topmostRule.parentRule) {\n topmostRule = topmostRule.parentRule;\n }\n const sheet = topmostRule.parentStyleSheet;\n if (!sheet) {\n app.debug.warn('No parent StyleSheet found for', topmostRule, rule);\n return;\n }\n const sheetID = styleSheetIDMap.get(sheet);\n if (!sheetID) {\n app.debug.warn('No sheedID found for', sheet, styleSheetIDMap);\n return;\n }\n const cssText = topmostRule.cssText;\n const ruleList = sheet.cssRules;\n const idx = Array.from(ruleList).indexOf(topmostRule);\n if (idx >= 0) {\n app.send(AdoptedSSInsertRuleURLBased(sheetID, cssText, idx, app.getBaseHref()));\n app.send(AdoptedSSDeleteRule(sheetID, idx + 1)); // Remove previous clone\n }\n else {\n app.debug.warn('Rule index not found in', sheet, topmostRule);\n }\n });\n const patchContext = app.safe((context) => {\n const { insertRule, deleteRule } = context.CSSStyleSheet.prototype;\n const { insertRule: groupInsertRule, deleteRule: groupDeleteRule } = context.CSSGroupingRule.prototype;\n context.CSSStyleSheet.prototype.insertRule = function (rule, index = 0) {\n sendInsertDeleteRule(this, index, rule);\n return insertRule.call(this, rule, index);\n };\n context.CSSStyleSheet.prototype.deleteRule = function (index) {\n sendInsertDeleteRule(this, index);\n return deleteRule.call(this, index);\n };\n context.CSSGroupingRule.prototype.insertRule = function (rule, index = 0) {\n const result = groupInsertRule.call(this, rule, index);\n sendReplaceGroupingRule(this);\n return result;\n };\n context.CSSGroupingRule.prototype.deleteRule = function (index = 0) {\n const result = groupDeleteRule.call(this, index);\n sendReplaceGroupingRule(this);\n return result;\n };\n });\n patchContext(window);\n app.observer.attachContextCallback(patchContext);\n app.nodes.attachNodeCallback((node) => {\n if (!hasTag(node, 'style') || !node.sheet) {\n return;\n }\n if (node.textContent !== null && node.textContent.trim().length > 0) {\n return; // Non-virtual styles captured by the observer as a text\n }\n const nodeID = app.nodes.getID(node);\n if (!nodeID) {\n return;\n }\n const sheet = node.sheet;\n const sheetID = nextID();\n styleSheetIDMap.set(sheet, sheetID);\n app.send(AdoptedSSAddOwner(sheetID, nodeID));\n const rules = sheet.cssRules;\n for (let i = 0; i < rules.length; i++) {\n sendInsertDeleteRule(sheet, i, rules[i].cssText);\n }\n });\n}\n","import { ConnectionInformation } from '../app/messages.gen.js';\nexport default function (app) {\n const connection = navigator.connection ||\n navigator.mozConnection ||\n navigator.webkitConnection;\n if (connection === undefined) {\n return;\n }\n const sendConnectionInformation = () => app.send(ConnectionInformation(Math.round(connection.downlink * 1000), connection.type || 'unknown'));\n sendConnectionInformation();\n connection.addEventListener('change', sendConnectionInformation);\n}\n","import { isNode, hasTag } from '../app/guards.js';\nimport { SetNodeFocus } from '../app/messages.gen.js';\nexport default function (app) {\n function sendSetNodeFocus(n) {\n const id = app.nodes.getID(n);\n if (id !== undefined) {\n app.send(SetNodeFocus(id));\n }\n }\n let blurred = false;\n app.nodes.attachNodeCallback((node) => {\n if (!hasTag(node, 'body')) {\n return;\n }\n app.nodes.attachNodeListener(node, 'focus', (e) => {\n if (!isNode(e.target)) {\n return;\n }\n sendSetNodeFocus(e.target);\n blurred = false;\n });\n app.nodes.attachNodeListener(node, 'blur', (e) => {\n if (e.relatedTarget === null) {\n blurred = true;\n setTimeout(() => {\n if (blurred) {\n app.send(SetNodeFocus(-1));\n }\n }, 0);\n }\n });\n });\n app.attachStartCallback(() => {\n let elem = document.activeElement;\n while (elem && hasTag(elem, 'iframe') && elem.contentDocument) {\n elem = elem.contentDocument.activeElement;\n }\n if (elem && elem !== elem.ownerDocument.body) {\n sendSetNodeFocus(elem);\n }\n }, true);\n}\n","import { isDocument } from '../app/guards.js';\nimport { LoadFontFace } from '../app/messages.gen.js';\nexport default function (app) {\n if (!window.FontFace) {\n return;\n }\n const docFonts = new Map();\n const patchWindow = (wnd) => {\n class FontFaceInterceptor extends wnd.FontFace {\n constructor(...args) {\n //maybe do this on load(). In this case check if the document.fonts.load(...) function calls the font's load()\n if (typeof args[1] === 'string') {\n let desc = '';\n if (args[2]) {\n app.safe(() => {\n desc = JSON.stringify(args[2]);\n });\n }\n const ffData = [args[0], args[1], desc];\n const ffDataArr = docFonts.get(wnd.document) || [];\n ffDataArr.push(ffData);\n docFonts.set(wnd.document, ffDataArr);\n const parentID = wnd === window ? 0 : app.nodes.getID(wnd.document);\n if (parentID === undefined) {\n return;\n }\n if (app.active()) {\n app.send(LoadFontFace(parentID, ...ffData));\n }\n }\n super(...args);\n }\n }\n wnd.FontFace = FontFaceInterceptor;\n };\n app.observer.attachContextCallback(patchWindow);\n patchWindow(window);\n app.nodes.attachNodeCallback(app.safe((node) => {\n if (!isDocument(node)) {\n return;\n }\n const ffDataArr = docFonts.get(node);\n if (!ffDataArr) {\n return;\n }\n const parentID = node.defaultView === window ? 0 : app.nodes.getID(node);\n if (parentID === undefined) {\n return;\n }\n ffDataArr.forEach((ffData) => {\n app.send(LoadFontFace(parentID, ...ffData));\n });\n }));\n}\n","import { TabChange } from '../app/messages.gen.js';\nexport default function (app) {\n function changeTab() {\n if (!document.hidden) {\n app.debug.log('Openreplay: tab change to' + app.session.getTabId());\n app.send(TabChange(app.session.getTabId()));\n }\n }\n app.attachEventListener(window, 'focus', changeTab, false, false);\n}\n","import React from 'react'\r\n\r\nconst LoaderContext = React.createContext({\r\n loading: true,\r\n hideLoader: () => {},\r\n showLoader: () => {},\r\n});\r\n\r\nexport default LoaderContext;","import React, { useState, useEffect } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nimport MenuImage from '../images/menu-icon.png';\r\n\r\ntype Props = {\r\n user: any;\r\n};\r\n\r\nconst MenuBar: React.FC = (props) => {\r\n const [active, setActive] = useState(true);\r\n\r\n const menuToggle = async () => {\r\n setActive(!active);\r\n };\r\n\r\n useEffect(() => {\r\n if (window.innerWidth < 767) {\r\n setActive(false);\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n
  • \r\n Home\r\n
  • \r\n
  • \r\n My Page\r\n
  • \r\n
  • \r\n HOW IT WORKS\r\n
  • \r\n
  • \r\n Restaurant Search\r\n
  • \r\n {/*
  • */}\r\n {/* Referral Program*/}\r\n {/*
  • */}\r\n
  • \r\n About\r\n
  • \r\n {props.user.isLogged ? (\r\n
  • \r\n Logout\r\n
  • \r\n ) : (\r\n
  • \r\n Login\r\n
  • \r\n )}\r\n \r\n
    menuToggle()}>\r\n \"Toggle\"\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MenuBar;\r\n","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n}, \"\\r\\n\\t.st0{fill:#007FFF;}\\r\\n\");\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", {\n id: \"map_x5F_pin_x5F_fill\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M23.1,2.9C19.2-1,12.8-1,8.9,2.9C5,6.8,5,13.2,8.9,17.1c0,0,7.1,6.9,7.1,14.9c0-8,7.1-14.9,7.1-14.9 C27,13.2,27,6.8,23.1,2.9z M16,14c-2.2,0-4-1.8-4-4s1.8-4,4-4c2.2,0,4,1.8,4,4S18.2,14,16,14z\"\n})))));\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Layer_2\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 16,\n cy: 10.1,\n r: 4.1\n}));\nfunction SvgLocationPointer(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 32 32\",\n style: {\n enableBackground: \"new 0 0 32 32\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgLocationPointer);\nexport default __webpack_public_path__ + \"static/media/location-pointer.e021beb7dd93e28e7e9e9bc7eb029bc2.svg\";\nexport { ForwardRef as ReactComponent };","import { useEffect, useState } from 'react';\r\nimport LocationPointer from '../images/location-pointer.svg';\r\n\r\ntype Props = {\r\n location: any;\r\n handlePlaceChanged(place): void;\r\n handleClose(): void;\r\n};\r\n\r\nconst FindLocationHome: React.FC = (props) => {\r\n const [error, setError] = useState('');\r\n const [location, setLocation] = useState({ lat: 0, lng: 0, name: '' });\r\n const [showLocation, setShowLocation] = useState(true);\r\n\r\n const newLocation = async (place, name) => {\r\n var obj = {\r\n name: name,\r\n lat: place.geometry.location.lat(),\r\n lng: place.geometry.location.lng(),\r\n };\r\n setLocation(obj);\r\n setError('');\r\n //console.log(obj);\r\n setShowLocation(false);\r\n props.handlePlaceChanged(obj);\r\n };\r\n\r\n const handlePlaceChange = (place) =>{\r\n if (place.geometry && place.address_components) {\r\n\r\n const addressComponents = place.address_components;\r\n let fullName : String = '';\r\n\r\n const country = addressComponents.filter(component =>\r\n component['types'].includes('country')\r\n ).map(component => {\r\n return component;\r\n });\r\n\r\n const state = addressComponents.filter(component =>\r\n component['types'].includes('administrative_area_level_1')\r\n ).map(component => {\r\n return component;\r\n });\r\n\r\n const locality = addressComponents.filter(component =>\r\n component['types'].includes('locality')\r\n ).map(component => {\r\n return component;\r\n });\r\n\r\n if (locality.length > 0){\r\n fullName = `${locality[0].long_name}, ${state[0].short_name}, ${country[0].short_name}`\r\n newLocation(place, fullName);\r\n return;\r\n }\r\n\r\n const administrativeArea = addressComponents.filter(component =>\r\n component['types'].includes('administrative_area_level_2')\r\n ).map(component => {\r\n return component;\r\n });\r\n\r\n if (administrativeArea.length > 0) {\r\n fullName = `${administrativeArea[0].long_name}, ${state[0].short_name}, ${country[0].short_name}`\r\n newLocation(place, fullName);\r\n return;\r\n }\r\n }\r\n setLocation({ lat: 0, lng: 0, name: '' });\r\n setError('Not Found!');\r\n }\r\n\r\n useEffect(() => {\r\n const center = { lat: props.location.lat, lng: props.location.lng };\r\n \r\n const defaultBounds = {\r\n north: center.lat + 0.1,\r\n south: center.lat - 0.1,\r\n east: center.lng + 0.1,\r\n west: center.lng - 0.1,\r\n };\r\n \r\n const input = document.getElementById('restaurant-name') as HTMLInputElement;\r\n \r\n const options = {\r\n bounds: defaultBounds,\r\n fields: ['address_components', 'geometry'],\r\n origin: center,\r\n strictBounds: false,\r\n types: ['geocode'],\r\n };\r\n \r\n const autocomplete = new google.maps.places.Autocomplete(input, options);\r\n \r\n autocomplete.addListener('place_changed', function () {\r\n var place = autocomplete.getPlace();\r\n handlePlaceChange(place);\r\n });\r\n }, []);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \"Location\r\n
    \r\n
    \r\n {error !== '' &&

    {error}

    }\r\n {location.name !== '' && showLocation &&

    {location.name}

    }\r\n
    \r\n
    \r\n );\r\n}\r\nexport default FindLocationHome;","import React, { useState } from 'react';\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport MenuBar from './../components/Menubar';\r\nimport FindLocationHome from '../components/FindLocationHome';\r\nimport FoodImage1 from '../images/food-1.jpg';\r\nimport FoodImage2 from '../images/food-2.jpg';\r\nimport FoodImage3 from '../images/food-3.jpg';\r\nimport FoodImage4 from '../images/food-4.jpg';\r\nimport FoodImage5 from '../images/food-5.jpg';\r\nimport FacebookIconIMG from '../images/fb-logo.png';\r\nimport InstagramIconIMG from '../images/insta-logo.png';\r\n\r\ntype Props = { \r\n\tuser: any,\r\n location: any,\r\n handleLocationChange(obj): void, \r\n};\r\n\r\nconst HomePage: React.FC = (props) => {\r\n\tconst [showLocation, setShowLocation] = useState(false);\r\n\r\n const handlePlaceChanged = async (place) => {\r\n setShowLocation(false);\r\n props.handleLocationChange(place);\r\n };\r\n\r\n\tconst handleHideLocation = async () => {\r\n setShowLocation(false)\r\n };\r\n \r\n const customStyles = {\r\n content: {\r\n left: 0,\r\n top: 0,\r\n width: '100%',\r\n height: '100%',\r\n margin: 0,\r\n padding: 0,\r\n border: 0,\r\n background: '#f9c5b4'\r\n },\r\n };\r\n\r\n return (\r\n
    \r\n\r\n \r\n\r\n {/* \r\n \r\n */}\r\n
    \r\n );\r\n}\r\n\r\nexport default HomePage;\r\n","import React from 'react';\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nimport MenuBar from './../components/Menubar';\r\n\r\ntype Props = { \r\n\tuser: any\r\n};\r\n\r\nconst AboutPage: React.FC = (props) => {\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\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\tYolomeal tells you where to get the tastiest food in town in just 2 clicks. \r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\tSimple.\r\n\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\tDelicious.\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t
    Terms of use
    \r\n\t\t\t\t\t\t\t
    Privacy policy
    \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
    \r\n\t);\r\n}\r\n\r\nexport default AboutPage;","import React, { useContext, useState } from 'react';\r\nimport Modal from 'react-modal';\r\nimport LoaderContext from '../components/LoaderContext';\r\n\r\nconst customStyles = {\r\n content: {\r\n left: 0,\r\n top: 0,\r\n width: '100%',\r\n height: '100%',\r\n margin: 0,\r\n padding: 0,\r\n border: 0,\r\n background: '#f9c5b4'\r\n },\r\n};\r\n\r\ntype Props = {\r\n isOpen: boolean;\r\n handleModalClose(): void;\r\n user: any\r\n yoloId: number\r\n onDelete(): void\r\n};\r\n\r\nconst DeleteModal: React.FC = (props) => {\r\n\r\n const onDelete = async () => {\r\n props.onDelete();\r\n }\r\n\r\n const closeModel = ()=>{\r\n props.handleModalClose();\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    DELETE YOLO

    \r\n
    \r\n


    Are you sure?


    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default DeleteModal;\r\n","import React, { useState } from 'react';\r\nimport Modal from 'react-modal';\r\n\r\ntype Props = {\r\n isOpen: boolean;\r\n handleModalClose(): void;\r\n user: any\r\n yoloId: number\r\n leftCounter: any;\r\n description: any;\r\n userName: any;\r\n onUserNameChange(event) : any;\r\n onDescriptionChange(event): any;\r\n onEdit(): void\r\n};\r\n\r\nconst customStyles = {\r\n content: {\r\n left: 0,\r\n top: 0,\r\n width: '100%',\r\n height: '100%',\r\n margin: 0,\r\n padding: 0,\r\n border: 0,\r\n background: '#f9c5b4'\r\n },\r\n};\r\n\r\nconst EditYoloDescriptionModal: React.FC = (props) => {\r\n const [error, setError] = useState('');\r\n\r\n const closeModel = ()=>{\r\n props.handleModalClose();\r\n }\r\n\r\n const onDescriptionChange = (event) => {\r\n props.onDescriptionChange(event);\r\n }\r\n\r\n const log = async (message: any) => {\r\n if (process.env.REACT_APP_LOG === 'true') {\r\n console.log(message);\r\n }\r\n }\r\n\r\n const onEdit = async () => {\r\n props.onEdit();\r\n }\r\n\r\n const onUserNameChange = (event) => {\r\n props.onUserNameChange(event);\r\n }\r\n\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    ADD YOLO TEXT

    \r\n
      \r\n
    • \r\n \r\n {props.leftCounter}\r\n
    • \r\n
    \r\n {props.user.isLogged && props.user.id === 20 &&\r\n \r\n }\r\n
    \r\n {error !== '' &&\r\n

    {error}

    \r\n }\r\n
    \r\n

    \r\n \r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default EditYoloDescriptionModal;","import React, { useEffect, useState } from 'react';\r\nimport Modal from 'react-modal';\r\nimport { Simulate } from 'react-dom/test-utils';\r\n\r\ntype Props = {\r\n isOpen: boolean;\r\n oldImage: any;\r\n handleModalClose(): void;\r\n user: any\r\n yoloId: number\r\n files: any\r\n onUpload(): void\r\n error: any\r\n getRootProps(obj): any\r\n getInputProps(): any\r\n acceptedFiles: any\r\n};\r\n\r\nconst customStyles = {\r\n content: {\r\n left: 0,\r\n top: 0,\r\n width: '100%',\r\n height: '100%',\r\n margin: 0,\r\n padding: 0,\r\n border: 0,\r\n background: '#f9c5b4'\r\n },\r\n};\r\n\r\nconst UploadPhotoModal: React.FC = (props) => {\r\n const [preview, setPreview] = useState(null);\r\n const [rotate, setRotate] = useState(0);\r\n const [rotateOld, setRotateOld] = useState(0);\r\n\r\n useEffect(() => {\r\n if (props.acceptedFiles.length > 0) {\r\n const file = props.acceptedFiles[0];\r\n const reader = new FileReader();\r\n reader.onloadend = () => {\r\n setPreview(reader.result as string);\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }, [props.acceptedFiles]);\r\n\r\n const closeModel = ()=>{\r\n props.handleModalClose();\r\n }\r\n\r\n const onUpload = async () => {\r\n if (!preview) {\r\n fetch(process.env.REACT_APP_SERVER_URL+\"/yolo-image/\"+ props.oldImage)\r\n .then(res=> res.blob())\r\n .then(blob => {\r\n var file = new File([blob], \"image.jpg\", {\r\n type: blob.type\r\n });\r\n const reader = new FileReader();\r\n reader.onloadend = () =>{\r\n getRotatedImageBlob(reader.result as string, rotateOld)\r\n .then(rotatedBlob =>{\r\n file = new File([rotatedBlob], \"image.jpg\",{\r\n type: rotatedBlob.type\r\n })\r\n props.acceptedFiles[0] = file;\r\n props.onUpload()\r\n }).catch(err => console.log(err));\r\n }\r\n reader.readAsDataURL(file);\r\n })\r\n .catch(error => console.log(error))\r\n }\r\n else {\r\n var rotatedBlob = await getRotatedImageBlob(preview, rotate);\r\n var file = new File([rotatedBlob], props.acceptedFiles[0].name, {\r\n type: props.acceptedFiles[0].type,\r\n });\r\n props.acceptedFiles[0] = file;\r\n props.onUpload()\r\n setPreview(null)\r\n }\r\n }\r\n\r\n const rotateLeft = () => {\r\n setRotate(rotate + 90);\r\n }\r\n\r\n const rotateRight = () => {\r\n setRotate(rotate - 90);\r\n }\r\n\r\n const rotateLeftOld = () => {\r\n setRotateOld(rotateOld + 90);\r\n }\r\n\r\n const rotateRightOld = () => {\r\n setRotateOld(rotateOld - 90);\r\n }\r\n\r\n const getRotatedImageBlob = (imageSrc: string, rotation: number): Promise => {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n img.src = imageSrc;\r\n\r\n img.onload = () => {\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n\r\n if (!ctx) {\r\n reject(new Error('Failed to get canvas context'));\r\n return;\r\n }\r\n\r\n // Adjust canvas size and rotation\r\n if (rotation % 180 === 0) {\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n } else {\r\n canvas.width = img.height;\r\n canvas.height = img.width;\r\n }\r\n\r\n ctx.translate(canvas.width / 2, canvas.height / 2);\r\n ctx.rotate((rotation * Math.PI) / 180);\r\n ctx.drawImage(img, -img.width / 2, -img.height / 2);\r\n\r\n canvas.toBlob((blob) => {\r\n if (blob) {\r\n resolve(blob);\r\n } else {\r\n reject(new Error('Failed to create Blob'));\r\n }\r\n }, 'image/jpeg');\r\n };\r\n\r\n img.onerror = (error) => {\r\n reject(error);\r\n };\r\n });\r\n };\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n {props.oldImage && (\r\n
    \r\n

    EDIT OLD PHOTO

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n

    OR UPLOAD A NEW ONE

    \r\n
    \r\n {preview ? (\r\n
    \r\n \"Preview\"\r\n \r\n \r\n \r\n \r\n
    \r\n ) :\r\n \r\n
    \r\n \r\n

    Drag photo here, or click to access photo files

    \r\n
    \r\n
    \r\n }\r\n
    \r\n

    {props.files}

    \r\n {props.error !== '' &&\r\n

    {props.error}

    \r\n }\r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n)\r\n}\r\n\r\nexport default UploadPhotoModal;","import React, { useContext, useEffect, useState } from 'react';\r\nimport Modal from 'react-modal';\r\nimport LoaderContext from '../components/LoaderContext';\r\n\r\ntype Props = {\r\n isOpen: boolean;\r\n handleModalClose(): void;\r\n user: any\r\n yoloId: number\r\n handleSave(): void;\r\n updateSelectedCategory(categoryId): void;\r\n isChecked(categoryId): boolean\r\n};\r\n\r\nconst customStyles = {\r\n content: {\r\n left: 0,\r\n top: 0,\r\n width: '100%',\r\n height: '100%',\r\n margin: 0,\r\n padding: 0,\r\n border: 0,\r\n background: '#f9c5b4'\r\n },\r\n};\r\n\r\nconst ChangeCategoryModal: React.FC = (props) => {\r\n const [categories, setCategories] = useState([]);\r\n const { showLoader, hideLoader } = useContext(LoaderContext);\r\n\r\n useEffect(() => {\r\n if(props.isOpen && categories.length < 1) {\r\n showCategory();\r\n }\r\n }, );\r\n\r\n const showCategory = async () => {\r\n const stored = localStorage.getItem('YoloMeal');\r\n if (stored) {\r\n showLoader()\r\n const userData = JSON.parse(stored);\r\n fetch(\r\n process.env.REACT_APP_SERVER_URL +\r\n '/user-categories?user=' +\r\n userData.id +\r\n '&v=' +\r\n Date.now(),\r\n {\r\n method: 'GET',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n Authorization: 'Bearer ' + userData.token,\r\n }),\r\n }\r\n )\r\n .then((res) => res.json())\r\n .then(\r\n (result) => {\r\n hideLoader()\r\n setCategories(result);\r\n },\r\n (error) => {\r\n hideLoader()\r\n console.log(error)\r\n }\r\n );\r\n }\r\n };\r\n\r\n const closeModel = ()=>{\r\n props.handleModalClose();\r\n }\r\n\r\n const updateSelectedCategory = (categoryId) => {\r\n props.updateSelectedCategory(categoryId);\r\n }\r\n\r\n const isChecked = (categoryId) => {\r\n return props.isChecked(categoryId);\r\n };\r\n\r\n const handleSave = () => {\r\n props.handleSave();\r\n };\r\n\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n

    Change category

    \r\n
    \r\n\r\n {categories.map((category) => (\r\n
      \r\n
    • \r\n updateSelectedCategory(category.id)}\r\n checked={isChecked(category.id)}\r\n disabled={category.counter >= 3}\r\n id={'category' + category.id}\r\n\r\n />\r\n \r\n\r\n
    • \r\n
      \r\n {category.counter === 3 && Quota of 3 filled}\r\n
      \r\n
    \r\n ))}\r\n\r\n
    \r\n

    \r\n \r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default ChangeCategoryModal;","import React, { useContext, useEffect, useState } from 'react';\r\nimport Modal from 'react-modal';\r\nimport { tagArray } from '../utils/helpers';\r\n\r\ntype Props = {\r\n isOpen: boolean;\r\n handleModalClose(): void;\r\n user: any;\r\n yoloId: number;\r\n handleTagSave(): void;\r\n items: any;\r\n selectedItemCategory: any;\r\n selectedItemId: any;\r\n selectedTags: any;\r\n tags: any\r\n onTagClick(id):void\r\n};\r\n\r\nconst customStyles = {\r\n content: {\r\n left: 0,\r\n top: 0,\r\n width: '100%',\r\n height: '100%',\r\n margin: 0,\r\n padding: 0,\r\n border: 0,\r\n background: '#f9c5b4'\r\n },\r\n};\r\n\r\nconst AddMoreTagsModal: React.FC = (props) => {\r\n\r\n const closeModel = ()=>{\r\n console.log(\"close clicked\")\r\n props.handleModalClose();\r\n }\r\n\r\n const hideTags = () => {\r\n closeModel();\r\n }\r\n\r\n const onTagClick = (id) => {\r\n props.onTagClick(id);\r\n };\r\n\r\n const handleTagSave = () => {\r\n props.handleTagSave();\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n

    Add Tags

    \r\n

    CHECK ANY THAT APPLY

    \r\n
    \r\n
      \r\n {props.tags.map((tag) => (\r\n
    • \r\n onTagClick(tag.id)}\r\n checked={props.selectedTags.includes(tag.id)}\r\n />\r\n \r\n
    • \r\n ))}\r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default AddMoreTagsModal;","import React from 'react';\r\nimport Modal from 'react-modal';\r\n\r\ntype Props = {\r\n isOpen: boolean;\r\n handleModalClose(): void;\r\n handleConfirmYes(): void;\r\n handleConfirmNo(): void\r\n};\r\n\r\nconst confirmBoxStyle = {\r\n content: {\r\n top: '50%',\r\n left: '50%',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: '30%',\r\n height: '30%',\r\n margin: 0,\r\n padding: 0,\r\n border: 0,\r\n background: '#f9c5b4'\r\n }\r\n};\r\n\r\n\r\nconst ConfirmationModal: React.FC = (props) => {\r\n\r\n const closeModel = ()=>{\r\n props.handleModalClose();\r\n }\r\n\r\n const handleConfirmYes = () =>{\r\n props.handleConfirmYes();\r\n }\r\n\r\n const handleConfirmNo = () =>{\r\n props.handleConfirmNo();\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n

    Are you sure you want to save?

    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default ConfirmationModal;","import React from 'react';\r\nimport Modal from 'react-modal';\r\n\r\ntype Props = {\r\n isOpen: boolean;\r\n handleModalClose(): void;\r\n handleTagsConfirmYes(): void;\r\n handleTagsConfirmNo(): void\r\n};\r\n\r\nconst confirmBoxStyle = {\r\n content: {\r\n top: '50%',\r\n left: '50%',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: '30%',\r\n height: '30%',\r\n margin: 0,\r\n padding: 0,\r\n border: 0,\r\n background: '#f9c5b4'\r\n }\r\n};\r\n\r\nconst TagsConfirmationModal: React.FC = (props) => {\r\n\r\n const closeModel = ()=>{\r\n props.handleModalClose();\r\n }\r\n\r\n const handleTagsConfirmYes = () => {\r\n props.handleTagsConfirmYes();\r\n }\r\n\r\n const handleTagsConfirmNo = () => {\r\n props.handleTagsConfirmNo();\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n

    Are you sure you want to save?

    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default TagsConfirmationModal;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export const COMMON_MIME_TYPES = new Map([\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n ['aac', 'audio/aac'],\n ['abw', 'application/x-abiword'],\n ['arc', 'application/x-freearc'],\n ['avif', 'image/avif'],\n ['avi', 'video/x-msvideo'],\n ['azw', 'application/vnd.amazon.ebook'],\n ['bin', 'application/octet-stream'],\n ['bmp', 'image/bmp'],\n ['bz', 'application/x-bzip'],\n ['bz2', 'application/x-bzip2'],\n ['cda', 'application/x-cdf'],\n ['csh', 'application/x-csh'],\n ['css', 'text/css'],\n ['csv', 'text/csv'],\n ['doc', 'application/msword'],\n ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\n ['eot', 'application/vnd.ms-fontobject'],\n ['epub', 'application/epub+zip'],\n ['gz', 'application/gzip'],\n ['gif', 'image/gif'],\n ['htm', 'text/html'],\n ['html', 'text/html'],\n ['ico', 'image/vnd.microsoft.icon'],\n ['ics', 'text/calendar'],\n ['jar', 'application/java-archive'],\n ['jpeg', 'image/jpeg'],\n ['jpg', 'image/jpeg'],\n ['js', 'text/javascript'],\n ['json', 'application/json'],\n ['jsonld', 'application/ld+json'],\n ['mid', 'audio/midi'],\n ['midi', 'audio/midi'],\n ['mjs', 'text/javascript'],\n ['mp3', 'audio/mpeg'],\n ['mp4', 'video/mp4'],\n ['mpeg', 'video/mpeg'],\n ['mpkg', 'application/vnd.apple.installer+xml'],\n ['odp', 'application/vnd.oasis.opendocument.presentation'],\n ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],\n ['odt', 'application/vnd.oasis.opendocument.text'],\n ['oga', 'audio/ogg'],\n ['ogv', 'video/ogg'],\n ['ogx', 'application/ogg'],\n ['opus', 'audio/opus'],\n ['otf', 'font/otf'],\n ['png', 'image/png'],\n ['pdf', 'application/pdf'],\n ['php', 'application/x-httpd-php'],\n ['ppt', 'application/vnd.ms-powerpoint'],\n ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],\n ['rar', 'application/vnd.rar'],\n ['rtf', 'application/rtf'],\n ['sh', 'application/x-sh'],\n ['svg', 'image/svg+xml'],\n ['swf', 'application/x-shockwave-flash'],\n ['tar', 'application/x-tar'],\n ['tif', 'image/tiff'],\n ['tiff', 'image/tiff'],\n ['ts', 'video/mp2t'],\n ['ttf', 'font/ttf'],\n ['txt', 'text/plain'],\n ['vsd', 'application/vnd.visio'],\n ['wav', 'audio/wav'],\n ['weba', 'audio/webm'],\n ['webm', 'video/webm'],\n ['webp', 'image/webp'],\n ['woff', 'font/woff'],\n ['woff2', 'font/woff2'],\n ['xhtml', 'application/xhtml+xml'],\n ['xls', 'application/vnd.ms-excel'],\n ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n ['xml', 'application/xml'],\n ['xul', 'application/vnd.mozilla.xul+xml'],\n ['zip', 'application/zip'],\n ['7z', 'application/x-7z-compressed'],\n\n // Others\n ['mkv', 'video/x-matroska'],\n ['mov', 'video/quicktime'],\n ['msg', 'application/vnd.ms-outlook']\n]);\n\n\nexport function toFileWithPath(file: FileWithPath, path?: string): FileWithPath {\n const f = withMimeType(file);\n if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path\n const {webkitRelativePath} = file as FileWithWebkitPath;\n Object.defineProperty(f, 'path', {\n value: typeof path === 'string'\n ? path\n // If is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : file.name,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n\n return f;\n}\n\ninterface DOMFile extends Blob {\n readonly lastModified: number;\n readonly name: string;\n}\n\nexport interface FileWithPath extends DOMFile {\n readonly path?: string;\n}\n\ninterface FileWithWebkitPath extends File {\n readonly webkitRelativePath?: string;\n}\n\nfunction withMimeType(file: FileWithPath) {\n const {name} = file;\n const hasExtension = name && name.lastIndexOf('.') !== -1;\n\n if (hasExtension && !file.type) {\n const ext = name.split('.')\n .pop()!.toLowerCase();\n const type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n\n return file;\n}\n","import {FileWithPath, toFileWithPath} from './file';\n\n\nconst FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store', // macOs\n 'Thumbs.db' // Windows\n];\n\n\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n *\n * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg\n * and a list of File objects will be returned.\n *\n * @param evt\n */\nexport async function fromEvent(evt: Event | any): Promise<(FileWithPath | DataTransferItem)[]> {\n if (isObject(evt) && isDataTransfer(evt)) {\n return getDataTransferFiles(evt.dataTransfer, evt.type);\n } else if (isChangeEvt(evt)) {\n return getInputFiles(evt);\n } else if (Array.isArray(evt) && evt.every(item => 'getFile' in item && typeof item.getFile === 'function')) {\n return getFsHandleFiles(evt)\n }\n return [];\n}\n\nfunction isDataTransfer(value: any): value is DataTransfer {\n return isObject(value.dataTransfer);\n}\n\nfunction isChangeEvt(value: any): value is Event {\n return isObject(value) && isObject(value.target);\n}\n\nfunction isObject(v: any): v is T {\n return typeof v === 'object' && v !== null\n}\n\nfunction getInputFiles(evt: Event) {\n return fromList((evt.target as HTMLInputElement).files).map(file => toFileWithPath(file));\n}\n\n// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle\nasync function getFsHandleFiles(handles: any[]) {\n const files = await Promise.all(handles.map(h => h.getFile()));\n return files.map(file => toFileWithPath(file));\n}\n\n\nasync function getDataTransferFiles(dt: DataTransfer | null, type: string) {\n if (dt === null) {\n return [];\n }\n\n // IE11 does not support dataTransfer.items\n // See https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n if (dt.items) {\n const items = fromList(dt.items)\n .filter(item => item.kind === 'file');\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return items;\n }\n const files = await Promise.all(items.map(toFilePromises));\n return noIgnoredFiles(flatten(files));\n }\n\n return noIgnoredFiles(fromList(dt.files)\n .map(file => toFileWithPath(file)));\n}\n\nfunction noIgnoredFiles(files: FileWithPath[]) {\n return files.filter(file => FILES_TO_IGNORE.indexOf(file.name) === -1);\n}\n\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items: DataTransferItemList | FileList | null): T[] {\n if (items === null) {\n return [];\n }\n\n const files = [];\n\n // tslint:disable: prefer-for-of\n for (let i = 0; i < items.length; i++) {\n const file = items[i];\n files.push(file);\n }\n\n return files as any;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item: DataTransferItem) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n\n const entry = item.webkitGetAsEntry();\n\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry) as any;\n }\n\n return fromDataTransferItem(item);\n}\n\nfunction flatten(items: any[]): T[] {\n return items.reduce((acc, files) => [\n ...acc,\n ...(Array.isArray(files) ? flatten(files) : [files])\n ], []);\n}\n\nfunction fromDataTransferItem(item: DataTransferItem) {\n const file = item.getAsFile();\n if (!file) {\n return Promise.reject(`${item} is not a File`);\n }\n const fwp = toFileWithPath(file);\n return Promise.resolve(fwp);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nasync function fromEntry(entry: any) {\n return entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry: any) {\n const reader = entry.createReader();\n\n return new Promise((resolve, reject) => {\n const entries: Promise[] = [];\n\n function readEntries() {\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries(async (batch: any[]) => {\n if (!batch.length) {\n // Done reading directory\n try {\n const files = await Promise.all(entries);\n resolve(files);\n } catch (err) {\n reject(err);\n }\n } else {\n const items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n\n // Continue reading\n readEntries();\n }\n }, (err: any) => {\n reject(err);\n });\n }\n\n readEntries();\n });\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nasync function fromFileEntry(entry: any) {\n return new Promise((resolve, reject) => {\n entry.file((file: FileWithPath) => {\n const fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, (err: any) => {\n reject(err);\n });\n });\n}\n\n// Infinite type recursion\n// https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-128553540\ninterface FileArray extends Array {}\ntype FileValue = FileWithPath\n | FileArray[];\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport accepts from 'attr-accept'; // Error codes\n\nexport var FILE_INVALID_TYPE = 'file-invalid-type';\nexport var FILE_TOO_LARGE = 'file-too-large';\nexport var FILE_TOO_SMALL = 'file-too-small';\nexport var TOO_MANY_FILES = 'too-many-files';\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n}; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(', ')) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? 'byte' : 'bytes')\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? 'byte' : 'bytes')\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: 'Too many files'\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === 'application/x-moz-file' || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n return accepted && sizeMatch;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === 'function') {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== 'undefined') {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === 'Files' || type === 'application/x-moz-file';\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === 'object' && item !== null && item.kind === 'file';\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf('MSIE') !== -1 || userAgent.indexOf('Trident/') !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf('Edge/') !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return 'showOpenFilePicker' in window;\n}\n/**\n * filePickerOptionsTypes returns the {types} option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n * based on the accept attr (see https://github.com/react-dropzone/attr-accept)\n * E.g: converts ['image/*', 'text/*'] to {'image/*': [], 'text/*': []}\n * @param {string|string[]} accept\n */\n\nexport function filePickerOptionsTypes(accept) {\n accept = typeof accept === 'string' ? accept.split(',') : accept;\n return [{\n description: 'everything',\n // TODO: Need to handle filtering more elegantly than this!\n accept: Array.isArray(accept) // Accept just MIME types as per spec\n // NOTE: accept can be https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers\n ? accept.filter(function (item) {\n return item === 'audio/*' || item === 'video/*' || item === 'image/*' || item === 'text/*' || /\\w+\\/[-+.\\w]+/g.test(item);\n }).reduce(function (a, b) {\n return _objectSpread(_objectSpread({}, a), {}, _defineProperty({}, b, []));\n }, {}) : {}\n }];\n}","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromEvent } from 'file-selector';\nimport { allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, filePickerOptionsTypes, canUseFileSystemAccessAPI, isEvtWithFiles, isIeOrEdge, isPropagationStopped, onDocumentDragOver, TOO_MANY_FILES_REJECTION } from './utils/index';\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
    \n * \n *

    Drag 'n' drop some files here, or click to select files

    \n *
    \n * )}\n *
    \n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = 'Dropzone'; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.draggedFiles Files in active drag\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n */\n accept: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Custom validation function\n * @param {File} file\n * @returns {FileError|FileError[]}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state and some helper functions.\n *\n * @typedef {object} DropzoneState\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} draggedFiles Files in active drag\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
    \n * \n *

    Drag and drop some files here, or click to select files

    \n *
    \n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {string|string[]} [props.accept] Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n *\n * @returns {DropzoneState}\n */\n\nexport function useDropzone() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$options = _objectSpread(_objectSpread({}, defaultProps), options),\n accept = _defaultProps$options.accept,\n disabled = _defaultProps$options.disabled,\n getFilesFromEvent = _defaultProps$options.getFilesFromEvent,\n maxSize = _defaultProps$options.maxSize,\n minSize = _defaultProps$options.minSize,\n multiple = _defaultProps$options.multiple,\n maxFiles = _defaultProps$options.maxFiles,\n onDragEnter = _defaultProps$options.onDragEnter,\n onDragLeave = _defaultProps$options.onDragLeave,\n onDragOver = _defaultProps$options.onDragOver,\n onDrop = _defaultProps$options.onDrop,\n onDropAccepted = _defaultProps$options.onDropAccepted,\n onDropRejected = _defaultProps$options.onDropRejected,\n onFileDialogCancel = _defaultProps$options.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$options.onFileDialogOpen,\n useFsAccessApi = _defaultProps$options.useFsAccessApi,\n preventDropOnDocument = _defaultProps$options.preventDropOnDocument,\n noClick = _defaultProps$options.noClick,\n noKeyboard = _defaultProps$options.noKeyboard,\n noDrag = _defaultProps$options.noDrag,\n noDragEventsBubbling = _defaultProps$options.noDragEventsBubbling,\n validator = _defaultProps$options.validator;\n\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === 'function' ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === 'function' ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive,\n draggedFiles = state.draggedFiles; // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: 'closeDialog'\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n if (useFsAccessApi && canUseFileSystemAccessAPI()) {\n return function () {};\n }\n\n window.addEventListener('focus', onWindowFocus, false);\n return function () {\n window.removeEventListener('focus', onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, useFsAccessApi]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener('dragover', onDocumentDragOver, false);\n document.addEventListener('drop', onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener('dragover', onDocumentDragOver);\n document.removeEventListener('drop', onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (draggedFiles) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n dispatch({\n draggedFiles: draggedFiles,\n isDragActive: true,\n type: 'setDraggedFiles'\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n });\n }\n }, [getFilesFromEvent, onDragEnter, noDragEventsBubbling]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = 'copy';\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n isDragActive: false,\n type: 'setDraggedFiles',\n draggedFiles: []\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: 'setFiles'\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, accept, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n });\n }\n\n dispatch({\n type: 'reset'\n });\n }, [getFilesFromEvent, setFiles, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n if (useFsAccessApi && canUseFileSystemAccessAPI()) {\n dispatch({\n type: 'openDialog'\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: filePickerOptionsTypes(accept)\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n return setFiles(files, null);\n }).catch(function (e) {\n return onFileDialogCancelCb(e);\n }).finally(function () {\n return dispatch({\n type: 'closeDialog'\n });\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: 'openDialog'\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, accept, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, inputRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: 'focus'\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: 'blur'\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [inputRef, noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === 'string' && role !== '' ? role : 'button'\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: accept,\n multiple: multiple,\n type: 'file',\n style: {\n display: 'none'\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n autoComplete: 'off',\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n var fileCount = draggedFiles.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: draggedFiles,\n accept: accept,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case 'focus':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case 'blur':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case 'openDialog':\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case 'closeDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case 'setDraggedFiles':\n /* eslint no-case-declarations: 0 */\n var isDragActive = action.isDragActive,\n draggedFiles = action.draggedFiles;\n return _objectSpread(_objectSpread({}, state), {}, {\n draggedFiles: draggedFiles,\n isDragActive: isDragActive\n });\n\n case 'setFiles':\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case 'reset':\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from './utils';","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","export const tagArray = [\r\n {id: 1, category: 1, name: 'BBQ'},\r\n {id: 2, category: 1, name: 'African'},\r\n {id: 3, category: 1, name: 'Beef'},\r\n {id: 4, category: 1, name: 'Chinese'},\r\n {id: 5, category: 1, name: 'Chicken'},\r\n {id: 6, category: 1, name: 'French'},\r\n {id: 7, category: 1, name: 'Fish'},\r\n {id: 8, category: 1, name: 'Indian'},\r\n {id: 9, category: 1, name: 'Gluten free'},\r\n {id: 10, category: 1, name: 'Italian'},\r\n {id: 11, category: 1, name: 'Lamb'},\r\n {id: 12, category: 1, name: 'Japanese'},\r\n {id: 13, category: 3, name: 'Deep Dish'},\r\n {id: 14, category: 3, name: 'Detroit Style'},\r\n {id: 15, category: 3, name: 'Margherita'},\r\n {id: 16, category: 3, name: 'Gluten Free'},\r\n {id: 17, category: 3, name: 'Vegan'},\r\n {id: 18, category: 7, name: 'Eggs'},\r\n {id: 19, category: 7, name: 'Pancakes'},\r\n {id: 20, category: 7, name: 'Meat'},\r\n {id: 21, category: 7, name: 'Bread'},\r\n {id: 22, category: 7, name: 'Gluten Free'},\r\n {id: 23, category: 7, name: 'Vegan'},\r\n {id: 24, category: 6, name: 'Cakes'},\r\n {id: 25, category: 6, name: 'Pies'},\r\n {id: 26, category: 6, name: 'Pastries'},\r\n {id: 27, category: 6, name: 'Creamy Things'},\r\n {id: 28, category: 6, name: 'Gluten Free'},\r\n {id: 29, category: 6, name: 'Vegan'},\r\n {id: 30, category: 2, name: 'Cook Medium Rare'},\r\n {id: 31, category: 2, name: 'Plant Based'},\r\n {id: 32, category: 2, name: 'Gluten Free'},\r\n {id: 33, category: 2, name: 'Vegan'},\r\n {id: 34, category: 4, name: 'Meat'},\r\n {id: 35, category: 4, name: 'Seafood'},\r\n {id: 36, category: 4, name: 'Vegetable'},\r\n {id: 37, category: 4, name: 'Gluten Free'},\r\n {id: 38, category: 4, name: 'Vegan'},\r\n {id: 39, category: 5, name: 'Soup'},\r\n {id: 40, category: 5, name: 'Vegetable'},\r\n {id: 41, category: 5, name: 'Salad'},\r\n {id: 42, category: 5, name: 'Gluten Free'},\r\n {id: 43, category: 5, name: 'Vegan'},\r\n {id: 44, category: 13, name: 'Meat'},\r\n {id: 45, category: 13, name: 'Vegetable'},\r\n {id: 47, category: 13, name: 'BBQ'},\r\n {id: 48, category: 13, name: 'Gluten Free'},\r\n {id: 49, category: 13, name: 'Vegan'},\r\n {id: 50, category: 1, name: 'Pasta'},\r\n {id: 51, category: 1, name: 'korean'},\r\n {id: 52, category: 1, name: 'Pork'},\r\n {id: 53, category: 1, name: 'Mexican'},\r\n {id: 54, category: 1, name: 'Shellfish'},\r\n {id: 55, category: 1, name: 'portuguese'},\r\n {id: 56, category: 1, name: 'veal'},\r\n {id: 57, category: 1, name: 'Russian'},\r\n {id: 58, category: 1, name: 'vegetarian'},\r\n {id: 59, category: 1, name: 'south american'},\r\n {id: 60, category: 1, name: 'vegan'},\r\n {id: 61, category: 1, name: 'spanish'},\r\n {id: 62, category: 1, name: 'Thai'},\r\n {id: 63, category: 1, name: 'Vietnamese'},\r\n {id: 66, category: 13, name: 'AREPA'},\r\n {id: 67, category: 13, name: 'BURRITO'},\r\n {id: 68, category: 13, name: 'EMPENADA'},\r\n {id: 69, category: 13, name: 'GRILLED'},\r\n {id: 70, category: 13, name: 'HAND PIE'},\r\n {id: 71, category: 13, name: 'ON-A-STICK'},\r\n {id: 72, category: 13, name: 'PANINI'},\r\n {id: 73, category: 13, name: 'PAPUSA'},\r\n {id: 74, category: 13, name: 'PRETZEL'},\r\n {id: 75, category: 13, name: 'SANDWICH'},\r\n {id: 76, category: 13, name: 'SUB/HOAGIE'},\r\n {id: 77, category: 13, name: 'TACO'},\r\n {id: 78, category: 13, name: 'TOAST'},\r\n {id: 79, category: 13, name: 'WRAPS'},\r\n {id: 80, category: 6, name: 'Doughnut'}\r\n];\r\n\r\nexport const categoriesArray = [\r\n { id: 1, name: 'ENTREES' },\r\n { id: 2, name: 'BURGERS' },\r\n { id: 3, name: 'PIZZA' },\r\n { id: 4, name: 'APPETIZERS' },\r\n { id: 5, name: 'SIDES' },\r\n { id: 6, name: 'DESSERT' },\r\n { id: 7, name: 'BREAKFAST' },\r\n { id: 13, name: 'HANDHELD' },\r\n { id: 8, name: 'WINE' },\r\n { id: 9, name: 'MIXED DRINKS' },\r\n { id: 10, name: 'BEER' },\r\n { id: 11, name: 'COFFEE' },\r\n { id: 12, name: 'OTHER DRINKS' }\r\n];","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.531 20.7584C27.5191 18.5734 28.5073 16.9243 30.5077 15.7098C29.3884 14.1083 27.6977 13.2272 25.4651 13.0546C23.3516 12.8879 21.0417 14.2869 20.1963 14.2869C19.3033 14.2869 17.2553 13.1141 15.6478 13.1141C12.3258 13.1677 8.79541 15.7634 8.79541 21.0441C8.79541 22.6039 9.08118 24.2153 9.65271 25.8783C10.4148 28.0633 13.1653 33.4214 16.0348 33.3321C17.5351 33.2963 18.5948 32.2664 20.5475 32.2664C22.4407 32.2664 23.4231 33.3321 25.096 33.3321C27.9894 33.2904 30.4779 28.4205 31.2042 26.2296C27.3226 24.4019 27.531 20.8715 27.531 20.7584ZM24.1613 10.9828C25.7866 9.05384 25.6378 7.29757 25.5901 6.6665C24.1553 6.74985 22.4943 7.64287 21.5477 8.74426C20.5059 9.92305 19.8927 11.3816 20.0236 13.0248C21.5775 13.1439 22.9944 12.3461 24.1613 10.9828Z\",\n fill: \"#fff\"\n});\nfunction SvgAppleLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 40,\n height: 40,\n viewBox: \"0 0 40 26\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAppleLogo);\nexport default __webpack_public_path__ + \"static/media/AppleLogo.0e9dda96113ea1483d81bc7ffd09a8ac.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from 'react';\nimport { Link, Redirect } from 'react-router-dom';\nimport FacebookLogin from 'react-facebook-login';\nimport AmazonImage from '../images/amazon-icon.png';\nimport AppleSignin from 'react-apple-signin-auth';\nimport AppleIcon from '../images/AppleLogo.svg';\nimport MenuBar from '../components/Menubar';\n\ntype Props = {\n user: any;\n showHome: boolean;\n showBack: boolean;\n handleLogin(user: any): void;\n handleBack(): void;\n backgroundImage: boolean\n};\n\nconst defaultProps: Props = {\n user: null,\n showHome: true,\n showBack: false,\n handleLogin: () => {},\n handleBack: () => {},\n backgroundImage: true\n};\n\nconst LoginPage: React.FC = (props) => {\n const [error, setError] = useState(\"\");\n const [appleInfo, setappleInfo] = useState();\n const [fbInfo, setfbInfo] = useState();\n const [appleSignIn, setappleSignIn] = useState(true);\n const [showFbSignIn, setFbSignIn] = useState(true);\n const loginButtonClass = 'd-flex justify-content-space-between facebook-button';\n const appId: string = process.env.REACT_APP_FACEBOOK_APP_ID || '';\n const appleRedirectURL: string = process.env.REACT_APP_APPLE_REDIRECT_URL || 'https://3c46-119-155-28-245.ngrok-free.app';\n const appleClientId: string = process.env.REACT_APP_APPLE_CLIENT_ID || 'com.yolo.meal';\n const [name, setName] = useState('');\n const [email, setEmail] = useState('');\n const [isErrorCleared, setIsErrorCleared] = useState(false);\n\n const authOptions = {\n clientId: appleClientId,\n scope: 'name email',\n redirectURI: appleRedirectURL,\n state: 'state',\n nonce: 'nonce',\n usePopup: true,\n }\n useEffect(() => {\n let loginInfoStr = localStorage.getItem(\"loginInfo\");\n if (loginInfoStr) {\n let loginInfo = JSON.parse(loginInfoStr);\n console.log(loginInfo);\n setappleInfo(loginInfo.facebookLogin);\n setappleSignIn(false);\n setFbSignIn(false);\n setfbInfo(loginInfo.appleLogin);\n \n }\n }, [])\n\n const renderAppleAuthButton = (props: JSX.IntrinsicAttributes & React.ButtonHTMLAttributes) => (\n \n );\n\n const handleFacebookClick = async () => {\n //showLoader();\n };\n\n const getReferrer = () => {\n var path = window.location.href;\n const arr = path.split('?');\n if (arr.length === 2) {\n const params = arr[1];\n const paramsArr = params.split('=');\n if (paramsArr.length === 2 && paramsArr[0] === 'referrer') {\n return paramsArr[1];\n }\n }\n return '';\n };\n\n const responseFacebook = (response: { hasOwnProperty: (arg0: string) => any; accessToken: any; status: string }) => {\n // let loginInfoStr = localStorage.getItem(\"loginInfo\");\n // if (loginInfoStr) {\n // let loginInfo = JSON.parse(loginInfoStr);\n // console.log(loginInfo);\n // if (loginInfo.appleLogin === true) {\n // return\n // }\n // }\n if (response.hasOwnProperty('id')) {\n const data = { accessToken: response.accessToken, referrer: '' };\n if (getReferrer() !== '') {\n data.referrer = getReferrer();\n }\n fetch(process.env.REACT_APP_SERVER_URL + '/login', {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n }),\n body: JSON.stringify(data),\n })\n .then((res) => res.json())\n .then(\n (result) => {\n if (result.hasOwnProperty('error')) {\n if (result.hasOwnProperty('message')) {\n setError(result.message);\n } else {\n setError(result.error);\n }\n } else {\n setError('');\n props.handleLogin(result);\n let obj = {\n facebookLogin: true,\n appleLogin: false,\n simpleLogin: false\n }\n localStorage.setItem('loginInfo', JSON.stringify(obj));\n }\n },\n (error) => {\n setError(error.message);\n console.log(error);\n }\n );\n } else {\n var error = 'Login error';\n if (response.hasOwnProperty('status')) {\n error = response.status;\n }\n setError(error);\n }\n };\n\n const handleAppleResponse = (response) => {\n\n\n const authorizationInfo = response.authorization;\n\n let userInfo = response?.user;\n\n let data = {};\n\n if (authorizationInfo) {\n if (userInfo) {\n data = { authorization: authorizationInfo, user: userInfo, referrer: 6 };\n } else {\n data = { authorization: authorizationInfo, referrer: 6 };\n }\n fetch(process.env.REACT_APP_SERVER_URL + '/login', {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n }),\n\n body: JSON.stringify(data),\n })\n .then((res) => res.json())\n .then(\n (result) => {\n console.log('after successful login ===> ', result);\n props.handleLogin(result);\n let obj = {\n facebookLogin: false,\n appleLogin: true,\n simpleLogin: false\n }\n localStorage.setItem('loginInfo', JSON.stringify(obj));\n },\n (error) => {\n setError(error.message);\n console.log(error);\n }\n );\n } else {\n var error = 'Apple Login error';\n if (response.hasOwnProperty('status')) {\n error = response.status;\n }\n setError(error);\n }\n };\n\n const handleInputChange = (setter) => (e) => {\n setter(e.target.value);\n setIsErrorCleared(true);\n };\n\n\n const handleJoinClick = () => {\n console.log(\"request gone\");\n let data = {\n \"userName\":name,\n \"email\":email,\n \"referer\": getReferrer()\n };\n\n fetch(process.env.REACT_APP_SERVER_URL + '/login', {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n }),\n body: JSON.stringify(data),\n })\n .then((res) =>\n res.ok ? res.json() : Promise.reject(res.json())\n )\n .then(\n (result) => {\n setIsErrorCleared(false);\n console.log('after successful login ===> ', result);\n props.handleLogin(result);\n let obj = {\n facebookLogin: false,\n appleLogin: false,\n simpleLogin: true\n }\n localStorage.setItem('loginInfo', JSON.stringify(obj));\n },\n (error) => {\n error.then((body)=>{\n setError(body.message);\n setIsErrorCleared(false);\n });\n }\n );\n };\n\n if (props.user.isLogged) {\n return ;\n } else {\n return (\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {false &&

    Welcome

    }\n {getReferrer() !== '' && (\n <>\n

    \n Welcome to the Yolomeal Referral Program, where you will be helping everyone instantly find\n the best food and drink in your city.\n

    \n

    \n Saving your 3 favorite menu items from local restaurants will earn you 2 shares in our\n company. For each person that you refer who also saves their 3 favs you will receive an\n additional share. 2 Million shares are up for grabs.\n

    \n {/*

    */}\n {/* Login with Facebook and Apple below to start earning shares. We use only Facebook and Apple*/}\n {/* login because we need to be sure that only real people can become members. Thank you for your*/}\n {/* consideration.*/}\n {/*

    */}\n \n )}\n {getReferrer() === '' && (\n <>\n

    \n Welcome! Yolomeal is the place to save your favorite food finds from local restaurants and to\n instantly find the best tasting food in your city.\n

    \n {/*

    */}\n {/* We use only Log in with Facebook and Apple because we need to be sure that only real people*/}\n {/* become members. Thank you for your consideration.*/}\n {/*

    */}\n \n )}\n
    \n
    \n
    \n\n {error && (\n \n {error}\n
    \n )}\n\n \n setEmail(e.target.value)}\n />\n \n\n

    OR

    \n\n
    \n
      \n
    • \n
      \n \n {(fbInfo == false || showFbSignIn) && (\n \n )}\n \"Amazon\"\n \n
      \n {(appleInfo == false || appleSignIn) && (\n handleAppleResponse(response)}\n onError={(error: any) => console.error(error)}\n skipScript={false}\n render={renderAppleAuthButton}\n />\n )}\n
      \n
      \n
    • \n {/* {getReferrer() === '' && props.showBack && (\n
    • \n \n
    • \n )} */}\n {false && getReferrer() === '' && props.showHome && (\n
    • \n \n HOME\n \n
    • \n )}\n
    \n
    \n {false && getReferrer() === '' && (\n
    \n Don't worry, this is only to confirm\n
    \n that you are a real person.\n
    \n )}\n
    \n
    \n \n
    \n );\n }\n};\n\nLoginPage.defaultProps = defaultProps;\n\nexport default LoginPage;\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Link, useParams } from 'react-router-dom';\r\nimport axios from 'axios';\r\n\r\nimport MenuBar from './../components/Menubar';\r\nimport ItemNew from './../components/ItemNew';\r\nimport LoaderContext from './../components/LoaderContext';\r\nimport LoginPage from './LoginPage';\r\n\r\nimport MapImage from '../images/map-icon.jpg';\r\n\r\ntype Props = {\r\n user: any;\r\n restaurantPage : Boolean;\r\n handleLogin(user): void;\r\n};\r\n\r\n\r\nexport const generateDollarSigns = (count: number): string => {\r\n return '$'.repeat(count);\r\n};\r\n\r\nconst handleMainFilter = (value: boolean) => {\r\n}\r\n\r\nconst RestaurantPage: React.FC = (props) => {\r\n const [error, setError] = useState('');\r\n const [items, setItems] = useState([]);\r\n const [restaurant, setRestaurant] = useState({});\r\n const [showLogin, setShowLogin] = useState(false);\r\n const [isExpired, setIsexpired] = useState(false);\r\n const { id }: any = useParams();\r\n const { showLoader, hideLoader } = useContext(LoaderContext);\r\n const [clickCount, setClickCount] = useState(0);\r\n let didCancel = false;\r\n\r\n const log = async (message: any) => {\r\n if (process.env.REACT_APP_LOG === 'true') {\r\n console.log(message);\r\n }\r\n };\r\n\r\n const loadData = async () => {\r\n showLoader();\r\n\r\n var headers = {\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n };\r\n if (props.user.isLogged) {\r\n headers['Authorization'] = 'Bearer ' + props.user.token;\r\n }\r\n\r\n axios\r\n .get(process.env.REACT_APP_SERVER_URL + '/restaurants/' + id + '?v=' + Date.now(), {\r\n headers: headers,\r\n })\r\n .then((result) => {\r\n console.log(result);\r\n if (!didCancel) {\r\n hideLoader();\r\n setItems(result.data.items);\r\n setRestaurant(result.data.restaurant);\r\n setError('');\r\n }\r\n })\r\n .catch((err) => {\r\n log(err);\r\n if (!didCancel) {\r\n hideLoader();\r\n setError('Network error!');\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n loadData();\r\n return () => {\r\n didCancel = true;\r\n };\r\n }, [props.user.isLogged]);\r\n\r\n const handleUpvote = async (id) => {\r\n showLoader();\r\n const data = { userId: props.user.id };\r\n fetch(process.env.REACT_APP_SERVER_URL + '/items/' + id + '/upvote', {\r\n method: 'POST',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n Authorization: 'Bearer ' + props.user.token,\r\n }),\r\n body: JSON.stringify(data),\r\n })\r\n .then((res) => res.json())\r\n .then(\r\n (result) => {\r\n log(result);\r\n setItems(\r\n items.map((item) => (item.id === id ? { ...item, upvoted: true, upvoteCount: item.upvoteCount + 1 } : item))\r\n );\r\n setError('');\r\n hideLoader();\r\n },\r\n (error) => {\r\n log(error);\r\n setError(error.message);\r\n hideLoader();\r\n }\r\n );\r\n };\r\n\r\n const onLoginClick = async () => {\r\n setShowLogin(true);\r\n };\r\n\r\n const onLoginBackClick = async () => {\r\n setShowLogin(false);\r\n };\r\n\r\n const handleRemoveUpvote = async (id) => {\r\n\r\n };\r\n\r\n const handleRestaurantClick = async (id) => {\r\n sendRestaurantNotification(id);\r\n }\r\n\r\n const sendRestaurantNotification = (id) => {\r\n try {\r\n const stored = localStorage.getItem('YoloMeal');\r\n console.log(stored);\r\n if (stored) {\r\n showLoader();\r\n const userData = JSON.parse(stored);\r\n fetch(\r\n process.env.REACT_APP_SERVER_URL +\r\n `/restaurant/markClosed?restaurantId=${id}&userId=${userData.id}`,\r\n {\r\n method: 'GET',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n Authorization: 'Bearer ' + userData.token,\r\n }),\r\n },\r\n )\r\n .then(\r\n (result) => {\r\n setRestaurant( (restaurant: any) => ({ ...restaurant, restaurantClosed: true}));\r\n console.log(restaurant);\r\n hideLoader();\r\n },\r\n (error) => {\r\n hideLoader();\r\n console.log(error);\r\n },\r\n );\r\n\r\n }\r\n } catch (error) {\r\n console.error('Error fetching categories:', error);\r\n }\r\n };\r\n\r\n const handleNotificationClick= async(id)=>{\r\n sendNotification(id); \r\n }\r\n\r\n const sendNotification = (id) => {\r\n try {\r\n\t\t\tconst stored = localStorage.getItem('YoloMeal');\r\n console.log(stored);\r\n\t\t\tif (stored) {\r\n\t\t\t\tshowLoader();\r\n\t\t\t\tconst userData = JSON.parse(stored);\r\n\t\t\t\tfetch(\r\n\t\t\t\t\tprocess.env.REACT_APP_SERVER_URL +\r\n\t\t\t\t\t`/itemExpired?itemId=${id}&userId=${userData.id}` ,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmethod: 'GET',\r\n\t\t\t\t\t\theaders: new Headers({\r\n\t\t\t\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\t\t\tAccept: 'application/json',\r\n\t\t\t\t\t\t\tAuthorization: 'Bearer ' + userData.token,\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\t\t.then(\r\n\t\t\t\t\t\t(result) => {\r\n \r\n setItems(\r\n items.map((item) => (item.id === id ? { ...item, expired: true} : item))\r\n )\r\n\r\n \r\n // console.log(updatedItems);\r\n console.log(items);\r\n \r\n\t\t\t\t\t\t\thideLoader();\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t(error) => {\r\n\t\t\t\t\t\t\thideLoader();\r\n\t\t\t\t\t\t\tconsole.log(error)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('Error fetching categories:', error);\r\n\t\t}\r\n };\r\n\r\n //const url = \"https://www.google.com/maps/place/?q=place_id:\" + restaurant.placeId;\r\n const url =\r\n 'https://www.google.com/maps/search/?api=1&query=' +\r\n encodeURI(restaurant.name) +\r\n '&query_place_id=' +\r\n restaurant.placeId;\r\n\r\n if (showLogin && !props.user.isLogged) {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {items.length > 0 && (\r\n
    \r\n
    \r\n \r\n

    {restaurant.name} {generateDollarSigns(restaurant.priceLevel)}

    \r\n

    {restaurant.address}

    \r\n \"map-icon\"\r\n
    \r\n
    \r\n {props.user.isLogged && props.restaurantPage && !restaurant.restaurantClosed && (\r\n handleRestaurantClick(restaurant.id)}>\r\n Restaurant Permanently Closed?\r\n \r\n )}\r\n {props.user.isLogged && props.restaurantPage && restaurant.restaurantClosed && (\r\n Thanks for reporting\r\n )}\r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {items.map((item) => (\r\n\r\n \r\n ))}\r\n\r\n {error !== '' &&

    {error}

    }\r\n
    \r\n
    \r\n

    \r\n Home\r\n

    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n};\r\n\r\nexport default RestaurantPage;\r\n","import React, { useState } from 'react';\r\nimport Modal from 'react-modal';\r\n\r\ntype Props = {\r\n isOpen: boolean;\r\n user: any;\r\n yoloName: any;\r\n onEditYoloName() : void;\r\n handleModalClose(): void;\r\n onYoloNameChange(event: React.ChangeEvent) : any;\r\n};\r\n\r\nconst customStyles = {\r\n content: {\r\n left: 0,\r\n top: 0,\r\n width: '100%',\r\n height: '100%',\r\n margin: 0,\r\n padding: 0,\r\n border: 0,\r\n background: '#f9c5b4'\r\n },\r\n};\r\n\r\nconst EditYoloDescriptionModal: React.FC = (props) => {\r\n const [error, setError] = useState('');\r\n\r\n const onEditYoloName = ()=> {\r\n props.onEditYoloName();\r\n }\r\n\r\n const closeModel = ()=>{\r\n props.handleModalClose();\r\n }\r\n\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    ADD YOLO TEXT

    \r\n
      \r\n
    • \r\n \r\n
    • \r\n
    \r\n
    \r\n {error !== '' &&\r\n

    {error}

    \r\n }\r\n
    \r\n

    \r\n \r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\n\r\nexport default EditYoloDescriptionModal;","import React, { useState } from 'react';\nimport Modal from 'react-modal';\n\ntype Props = {\n isOpen: boolean;\n user: any;\n yoloId: any;\n onEditUpvoteCount(count) : void;\n handleModalClose(): void;\n onUpvoteYoloChange(event: React.ChangeEvent) : any;\n};\n\nconst customStyles = {\n content: {\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n border: 0,\n background: '#f9c5b4'\n },\n};\n\nconst EditUpvoteYoloModal: React.FC = (props) => {\n const [error, setError] = useState('');\n\n const onEditUpvoteCount = (count)=> {\n props.onEditUpvoteCount(count);\n }\n\n const closeModel = ()=>{\n props.handleModalClose();\n }\n\n\n return (\n \n
    \n
    \n
    \n
    \n

    ENTER NUMBER OF UPVOTE YOU WANT TO ADD FOR THIS ITEM

    \n
      \n
    • \n \n
    • \n
    \n
    \n {error !== '' &&\n

    {error}

    \n }\n
    \n

    \n \n

    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    \n )\n}\n\n\nexport default EditUpvoteYoloModal;","import React, { useState, useEffect, useContext } from 'react';\nimport { Link } from 'react-router-dom';\nimport TextTruncate from 'react-text-truncate';\n\nimport LocationPointer from '../images/location-pointer.svg';\nimport MissingPhoto from '../images/missing-photo.png';\nimport DeleteModal from '../modals/DeleteModal';\nimport EditYoloDescriptionModal from '../modals/EditYoloDescriptionModal';\nimport UploadPhotoModal from '../modals/UploadPhotoModal';\nimport ChangeCategoryModal from '../modals/ChangeCategoryModal';\nimport AddMoreTagsModal from '../modals/AddMoreTagsModal';\nimport ConfirmationModal from '../modals/ConfirmationModal';\nimport TagsConfirmationModal from '../modals/TagsConfirmationModal';\nimport LoaderContext from './LoaderContext';\nimport { useDropzone } from 'react-dropzone';\nimport axios from 'axios';\nimport { tagArray } from '../utils/helpers';\nimport { generateDollarSigns } from '../pages/RestaurantPage';\nimport EditYoloNameModal from '../modals/EditYoloNameModal';\nimport EditUpvoteYoloModal from '../modals/EditUpvoteYoloModal';\n\ntype Props = {\n item: any;\n editable: Boolean;\n isLogged: Boolean;\n showRestaurant: Boolean;\n restaurentPage: Boolean;\n user: any;\n handleUpvote(id): void;\n handleLogin(): void;\n handleRemoveUpvote(id): void;\n handleNotificationClick(id): void;\n loadData(): void;\n handleMainFilter: (value: boolean) => void;\n};\n\nconst ItemNew: React.FC = (props) => {\n const [selectedItemCategory, setSelectedItemCategory] = useState(null);\n const [showModal, setShowModal] = useState(false);\n const [readMore, setReadMore] = useState(true);\n const [YoloSetting, setYoloSetting] = useState(false);\n const [showDelete, setShowDelete] = useState(false);\n const [showEdit, setShowEdit] = useState(false);\n const [showEditYoloName, setShowEditYoloName] = useState(false);\n const [showUpload, setShowUpload] = useState(false);\n const [yoloId, setYoloId] = useState(-1);\n const [leftCounter, setLeftCounter] = useState(300);\n const [description, setDescription] = useState('');\n const [yoloName, setYoloName] = useState('');\n const [userName, setUserName] = useState('');\n const [modalIsOpen, setModalIsOpen] = useState(false);\n const [showtagsModal, setShowtagsModal] = useState(false);\n const [tags, setTags] = useState([]);\n const [selectedItemId, setSelectedItemId] = useState(null);\n const [selectedTags, setSelectedTags] = useState([]);\n const [showTags, setShowTags] = useState(false);\n const [categories, setCategories] = useState([]);\n const [oldImage, setOldImage] = useState(null);\n const { acceptedFiles, getRootProps, getInputProps } = useDropzone({\n accept: ['.jpeg', '.jpg', '.png'],\n });\n const [error, setError] = useState('');\n const { showLoader, hideLoader } = useContext(LoaderContext);\n\n const [upvoteCount, setUpvoteCount] = useState(0);\n const [showEditUpvote, setShowEditUpvote] = useState(false);\n\n const files = acceptedFiles.map((file) => (\n
  • \n {file.name} - {file.size} bytes\n
  • \n ));\n\n let didCancel = false;\n\n useEffect(() => {\n if (modalIsOpen) {\n showCategory();\n }\n }, [modalIsOpen]);\n\n useEffect(() => {\n getTagList();\n }, [selectedItemId, selectedItemCategory]);\n\n useEffect(() => {}, [selectedTags]);\n useEffect(() => {}, [upvoteCount]);\n\n const getTagList = async () => {\n const yolos = props.item.yolos;\n let selectedYoloTags: Number[] = [];\n\n if (yolos && selectedItemId) {\n // Find the yolo and check if it exists before accessing its properties\n const yolo = yolos.find((yolo) => yolo.id === selectedItemId);\n\n if (yolo && yolo.yoloTags) {\n selectedYoloTags = yolo.yoloTags.map((tag) => tag.tagId);\n }\n }\n\n setSelectedTags(selectedYoloTags);\n\n const getTags = tagArray.filter((el) => el.category === selectedItemCategory).map((tag) => tag);\n\n setTags(getTags);\n };\n\n // const getTagList = async () => {\n // const yolos = props.item.yolos;\n // var selectedYoloTags: Number[] = [];\n //\n // if (yolos && selectedItemId) {\n // const yolo = yolos.find(yolo => yolo.id === selectedItemId);\n // if(yolo.yoloTags) {\n // selectedYoloTags = yolo.yoloTags.map(tag => tag.tagId);\n // }\n // }\n //\n // setSelectedTags(selectedYoloTags)\n // const tags = tagArray\n // .filter((el) => el.category === selectedItemCategory)\n // .map(tag => tag);\n //\n // setTags(tags);\n // };\n\n const handleDelete = async (id) => {\n setYoloId(id);\n setShowDelete(true);\n };\n\n const handleEdit = async (id) => {\n setLeftCounter(300 - props.item.yolos[0].description.length);\n setDescription(props.item.yolos[0].description);\n setUserName(props.item.yolos[0].userName);\n setYoloId(id);\n setShowEdit(true);\n };\n\n const handleEditYoloName = async (id) => {\n setYoloName(props.item.name);\n setYoloId(id);\n setShowEditYoloName(true);\n };\n\n const onReadMoreClicked = async () => {\n setReadMore(!readMore);\n };\n\n const fetchImage = async (yoloId) => {\n showLoader();\n fetch(process.env.REACT_APP_SERVER_URL + '/getImage?yoloId=' + yoloId)\n .then((res) => res.json())\n .then((body) => {\n setOldImage(body.image);\n hideLoader();\n })\n .catch((error) => {\n throw new Error('Network response was not ok');\n });\n };\n\n const handlePhoto = async (id) => {\n setYoloId(id);\n acceptedFiles.length = 0;\n await fetchImage(id);\n setShowUpload(true);\n };\n\n const onUpvoteClick = async (id) => {\n props.handleUpvote(id);\n };\n\n const onRemoveUpvoteClick = async (id) => {\n props.handleRemoveUpvote(id);\n };\n\n const onNotificationClick = async (id) => {\n props.handleNotificationClick(id);\n };\n\n const handleAddMoreTags = async (itemId, categoryId) => {\n setSelectedItemId(itemId);\n setSelectedItemCategory(categoryId);\n setShowTags(true);\n props.handleMainFilter(false);\n };\n\n const handleUpvoteYolo = async (itemId) => {\n setSelectedItemId(itemId);\n setShowEditUpvote(true);\n };\n\n\n const handleChangeCategory = async (id, categoryId) => {\n setSelectedItemId(id);\n setSelectedItemCategory(categoryId);\n setModalIsOpen(true);\n };\n\n const updateSelectedCategory = async (categoryId) => {\n setSelectedItemCategory(categoryId);\n };\n\n const showCategory = async () => {\n const stored = localStorage.getItem('YoloMeal');\n if (stored) {\n showLoader();\n const userData = JSON.parse(stored);\n fetch(process.env.REACT_APP_SERVER_URL + '/user-categories?user=' + userData.id + '&v=' + Date.now(), {\n method: 'GET',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: 'Bearer ' + userData.token,\n }),\n })\n .then((res) => res.json())\n .then(\n (result) => {\n hideLoader();\n setCategories(result);\n },\n (error) => {\n hideLoader();\n console.log(error);\n }\n );\n }\n };\n\n const hideDeleteModal = () => {\n setShowDelete(false);\n };\n\n const hideEditModal = () => {\n setShowEdit(false);\n };\n\n const hideEditYoloNameModal = () => {\n setShowEditYoloName(false);\n };\n\n const hideEditUpvoteYoloModal = () => {\n setShowEditUpvote(false);\n };\n\n const hideUploadPhotoModal = () => {\n setShowUpload(false);\n };\n\n const onDescriptionChange = async (event) => {\n var str = event.target.value;\n setLeftCounter(300 - str.length);\n setDescription(str);\n };\n\n const onYoloNameChange = async (event) => {\n var str = event.target.value;\n setYoloName(str);\n };\n\n const onUpvoteYoloChange = async (event) => {\n var str = event.target.value;\n setUpvoteCount(str);\n };\n\n const onUserNameChange = async (event) => {\n setUserName(event.target.value);\n };\n\n const log = async (message: any) => {\n if (process.env.REACT_APP_LOG === 'true') {\n console.log(message);\n }\n };\n\n const onEdit = async () => {\n showLoader();\n const data = {\n id: yoloId,\n description: description,\n userName: userName,\n userId: props.user.id,\n };\n log(data);\n fetch(process.env.REACT_APP_SERVER_URL + '/yolos', {\n method: 'PUT',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: 'Bearer ' + props.user.token,\n }),\n body: JSON.stringify(data),\n })\n .then((res) => res.json())\n .then(\n (result) => {\n log(result);\n if (!didCancel) {\n hideLoader();\n if (result.hasOwnProperty('error')) {\n setError(result.error);\n } else {\n setShowEdit(false);\n setError('');\n hideLoader();\n props.loadData();\n setYoloSetting(false);\n }\n }\n },\n (error) => {\n log(error);\n if (!didCancel) {\n setError(error.message);\n hideLoader();\n }\n }\n );\n };\n\n const onEditYoloName = async () => {\n try {\n const response = await fetch(`https://api.yolomeal.com/yolo/name?yoloId=${yoloId}&new_name=${yoloName}`, {\n method: 'PUT',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: 'Bearer ' + props.user.token,\n }),\n });\n const result = response.headers.get('content-type')?.includes('application/json')\n ? await response.json()\n : await response.text();\n\n if (!didCancel) {\n hideLoader();\n if (response.ok) {\n console.log('--------------');\n setShowEditYoloName(false);\n // setShowEdit(false);\n setError('');\n props.loadData();\n setYoloSetting(false);\n } else {\n setError(result.error || result);\n console.log('error-------');\n }\n }\n } catch (error) {\n if (!didCancel) {\n setError(error.message);\n hideLoader();\n console.log(error, 'error-----');\n }\n }\n };\n\n const onEditUpvoteYolo = async () => {\n showLoader();\n try {\n const addUpvoteRequestDTO = {\n itemId: props.item.id,\n userId: props.user.id,\n newCount: upvoteCount\n };\n\n const response = await fetch(process.env.REACT_APP_SERVER_URL +`/items/upvote-yolo`, {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: 'Bearer ' + props.user.token,\n }),\n body: JSON.stringify(addUpvoteRequestDTO),\n });\n const result = response.headers.get('content-type')?.includes('application/json')\n ? await response.json()\n : await response.text();\n\n if (!didCancel) {\n hideLoader();\n if (response.ok) {\n console.log('--------------');\n setShowEditYoloName(false);\n // setShowEdit(false);\n setError('');\n props.loadData();\n setYoloSetting(false);\n } else {\n setError(result.error || result);\n console.log('error-------');\n }\n }\n } catch (error) {\n if (!didCancel) {\n setError(error.message);\n hideLoader();\n console.log(error, 'error-----');\n }\n }\n hideEditUpvoteYoloModal();\n hideLoader();\n };\n\n const onUpload = async () => {\n showLoader();\n\n const formData = new FormData();\n formData.append('file', acceptedFiles[0]);\n axios\n .post(process.env.REACT_APP_SERVER_URL + '/yolo-image/' + yoloId + '/image/upload', formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n Authorization: 'Bearer ' + props.user.token,\n },\n })\n .then((result) => {\n log(result);\n if (!didCancel) {\n setShowUpload(false);\n setError('');\n setYoloSetting(false);\n props.loadData();\n hideLoader();\n }\n })\n .catch((err) => {\n log(err);\n if (!didCancel) {\n hideLoader();\n setError(err);\n }\n });\n };\n\n const updateCategory = async () => {\n try {\n const stored = localStorage.getItem('YoloMeal');\n if (stored) {\n showLoader();\n const userData = JSON.parse(stored);\n fetch(\n process.env.REACT_APP_SERVER_URL +\n '/yolos/category?yoloId=' +\n selectedItemId +\n '&categoryId=' +\n selectedItemCategory,\n {\n method: 'PUT',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: 'Bearer ' + userData.token,\n }),\n }\n )\n .then((res) => res.json())\n .then(\n (result) => {\n closeModal();\n props.loadData();\n setYoloSetting(false);\n hideLoader();\n },\n (error) => {\n hideLoader();\n console.log(error);\n }\n );\n }\n } catch (error) {\n console.error('Error fetching categories:', error);\n }\n };\n\n const addTags = async () => {\n try {\n const selectedTagsArray = selectedTags.map((tagId) => ({ tagId }));\n\n const stored = localStorage.getItem('YoloMeal');\n if (stored) {\n showLoader();\n const userData = JSON.parse(stored);\n fetch(process.env.REACT_APP_SERVER_URL + '/add-more-tags/' + selectedItemId, {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: 'Bearer ' + userData.token,\n }),\n body: JSON.stringify(selectedTagsArray),\n })\n .then((res) => res.json())\n .then(\n (result) => {\n hideTags();\n props.loadData();\n setYoloSetting(false);\n hideLoader();\n },\n (error) => {\n hideLoader();\n console.log(error);\n }\n );\n }\n } catch (error) {\n console.error('Error fetching categories:', error);\n }\n };\n\n const closeModal = () => {\n setModalIsOpen(false);\n };\n\n const handleSave = () => {\n setShowModal(true);\n };\n\n const isChecked = (categoryId) => {\n return categoryId === selectedItemCategory;\n };\n\n const closeConfirmBox = () => {\n setShowModal(false);\n };\n\n const closeTagsConfirmationBox = () => {\n setShowtagsModal(false);\n };\n\n const handleConfirmYes = () => {\n updateCategory();\n setShowModal(false);\n };\n\n const handleTagsConfirmYes = () => {\n props.handleMainFilter(false);\n addTags();\n setShowtagsModal(false);\n props.handleMainFilter(true);\n };\n\n const hideTags = () => {\n setShowTags(false);\n };\n\n const handleTagsConfirmNo = () => {\n setShowtagsModal(false);\n };\n\n const handleConfirmNo = () => {\n setShowModal(false);\n };\n\n const closeShowTags = () => {\n console.log('closed received');\n setShowTags(false);\n };\n\n const handleTagSave = () => {\n setShowtagsModal(true);\n };\n\n const onTagClick = (id) => {\n if (selectedTags.some((tag) => tag === id)) {\n props.handleMainFilter(false);\n // If the tag is already in the array, remove it\n setSelectedTags((prevTags) => prevTags.filter((tag) => tag !== id));\n } else {\n props.handleMainFilter(false);\n // If the tag is not in the array, add it\n setSelectedTags((prevTags) => [...prevTags, id]);\n }\n };\n\n const onDelete = async () => {\n // showLoader();\n console.log(props.item);\n fetch(process.env.REACT_APP_SERVER_URL + '/yolos/delete/' + yoloId, {\n method: 'DELETE',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: 'Bearer ' + props.user.token,\n }),\n })\n .then((res) => res.json())\n .then(\n (result) => {\n log(result);\n if (!didCancel) {\n hideDeleteModal();\n hideLoader();\n setError('');\n setYoloSetting(false);\n props.loadData();\n }\n },\n (error) => {\n log(error);\n if (!didCancel) {\n setError(error.message);\n hideLoader();\n }\n }\n );\n };\n\n const url = '/restaurant/' + props.item.restaurantId;\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n {props.item.name === 'Wagu Sirloin' ? 'Wagu Ribeye' : props.item.name}\n

    \n
    \n {props.showRestaurant && (\n
    \n \n \"\"\n

    \n {props.item.restaurantName} {generateDollarSigns(props.item.priceLevel)}\n

    \n \n
    \n )}\n \n {!props.isLogged && !YoloSetting && (\n props.handleLogin()}>\n Tap to upvote\n \n )}\n {props.isLogged && !props.item.upvoted && props.item.canUpvote && !YoloSetting && (\n onUpvoteClick(props.item.id)}>\n Tap to upvote\n \n )}\n {props.isLogged && props.item.upvoted && !YoloSetting && (\n onRemoveUpvoteClick(props.item.id)}>\n UPVOTED!\n \n )}\n
    \n
    \n {props.isLogged && props.restaurentPage && !props.item.expired && !YoloSetting && (\n onNotificationClick(props.item.id)}\n >\n Item no longer on the menu?\n \n )}\n {props.isLogged && props.restaurentPage && props.item.expired && !YoloSetting && (\n \n Thanks for reporting\n \n )}\n
    \n
    \n\n {props.item.yolos.map((subitem) => {\n return (\n
    \n
    \n {subitem.image ? (\n handlePhoto(subitem.id)}\n width={100}\n />\n ) : (\n \"missing-photo\" handlePhoto(subitem.id)} />\n // \"missing-photo\"\n handlePhoto(subitem.id)}\n // width={100}\n // />\n )}\n
    \n
    \n {!YoloSetting && (\n
    \n \n {subitem.userName}\n \n
    \n )}\n
    \n {!YoloSetting && (\n
    \n

    \n {readMore ? (\n onReadMoreClicked()}>\n Read more\n \n }\n />\n ) : (\n \n {subitem.description}\n onReadMoreClicked()}>\n {' '}\n Read Less\n \n \n )}\n

    \n
    \n )}\n
    \n {props.editable && (\n \n )}\n
    \n
    \n );\n })}\n
    \n
    \n
    \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n
    \n );\n};\n\nexport default ItemNew;\n","import React from 'react';\r\n\r\nimport ItemNew from './ItemNew';\r\n\r\ntype Props = { \r\n\tname: String,\r\n\titems: any,\r\n\tuser: any,\r\n\teditable: Boolean,\r\n\thandleLogin(): void\r\n\thandleUpvote(id): void,\r\n\tloadData(): void\r\n\t\r\n};\r\nconst handleRemoveUpvote =async(id)=>{\r\n}\r\n\r\nconst handleMainFilter = (value: boolean) => {\r\n}\r\n\r\nconst CategoryItems: React.FC = (props) => {\r\n\r\n\tconst loadData = async () => {\r\n\t\tprops.loadData()\r\n\t}\r\n\r\n\tconst handleNotificationClick= async(id)=>{\r\n\t}\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t

    {props.name}

    \r\n\t\t\t{\r\n\t\t\t\tprops.items.length === 0\t?\r\n\t\t\t\t

    No yolos.

    \r\n\t\t\t\t:\r\n\t\t\t\tprops.items.map((item, i) =>\r\n\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t
    \t\t\t\r\n\t);\r\n}\r\n\r\nexport default CategoryItems;\r\n","import React, { useState } from \"react\";\r\n\r\ntype Props = { \r\n\tpath: string,\r\n\tpage: string\r\n};\r\n\r\nconst CopyUrl: React.FC = (props) => {\r\n\tconst [isClicked, setIsClicked] = useState(false);\r\n\r\n\tconst copyUrl = async () => {\r\n\t\t//var path = window.location.href;\r\n\t\tsetIsClicked(true);\r\n\t\tif (navigator.userAgent.match(/ipad|ipod|iphone/i)) {\r\n\t\t\tcopyToClipboardIos(props.path)\r\n\t\t} else {\r\n\t\t\tcopyToClipboard(props.path);\r\n\t\t}\t\t\r\n\t}\r\n\r\n\tconst copyToClipboard = (text: string) => {\r\n\t\tvar textArea = document.createElement(\"textarea\");\r\n\t\r\n\t\t//\r\n\t\t// *** This styling is an extra step which is likely not required. ***\r\n\t\t//\r\n\t\t// Why is it here? To ensure:\r\n\t\t// 1. the element is able to have focus and selection.\r\n\t\t// 2. if element was to flash render it has minimal visual impact.\r\n\t\t// 3. less flakyness with selection and copying which **might** occur if\r\n\t\t// the textarea element is not visible.\r\n\t\t//\r\n\t\t// The likelihood is the element won't even render, not even a flash,\r\n\t\t// so some of these are just precautions. However in IE the element\r\n\t\t// is visible whilst the popup box asking the user for permission for\r\n\t\t// the web page to copy to the clipboard.\r\n\t\t//\r\n\t\r\n\t\t// Place in top-left corner of screen regardless of scroll position.\r\n\t\ttextArea.style.position = 'fixed';\r\n\t\ttextArea.style.top = \"0\";\r\n\t\ttextArea.style.left = \"0\";\r\n\t\r\n\t\t// Ensure it has a small width and height. Setting to 1px / 1em\r\n\t\t// doesn't work as this gives a negative w/h on some browsers.\r\n\t\ttextArea.style.width = '2em';\r\n\t\ttextArea.style.height = '2em';\r\n\t\r\n\t\t// We don't need padding, reducing the size if it does flash render.\r\n\t\ttextArea.style.padding = \"0\";\r\n\t\r\n\t\t// Clean up any borders.\r\n\t\ttextArea.style.border = 'none';\r\n\t\ttextArea.style.outline = 'none';\r\n\t\ttextArea.style.boxShadow = 'none';\r\n\t\r\n\t\t// Avoid flash of white box if rendered for any reason.\r\n\t\ttextArea.style.background = 'transparent';\r\n\t\r\n\t\ttextArea.value = text;\r\n\t\r\n\t\tdocument.body.appendChild(textArea);\r\n\t\ttextArea.select();\r\n\t\ttry {\r\n\t\t\tvar successful = document.execCommand('copy');\r\n\t\t\t//var msg = successful ? 'successful' : 'unsuccessful';\r\n\t\t\t//console.log('Copying text command was ' + msg);\r\n\t\t} catch (err) {\r\n\t\t\t//console.log('Oops, unable to copy');\r\n\t\t}\r\n\t\tdocument.body.removeChild(textArea);\r\n\t}\r\n\r\n\tconst copyToClipboardIos = (str: string) => {\r\n\t\tvar el = document.createElement('textarea');\r\n\t\tel.value = str;\r\n\t\tel.setAttribute('readonly', '');\r\n\t\tel.setAttribute('style', \"position: absolute, left: -9999px\");\r\n\t\tdocument.body.appendChild(el);\r\n\t\r\n\t\t// save current contentEditable/readOnly status\r\n\t\tvar editable = el.contentEditable;\r\n\t\tvar readOnly = el.readOnly;\r\n\t\r\n\t\t// convert to editable with readonly to stop iOS keyboard opening\r\n\t\tel.contentEditable = \"true\";\r\n\t\tel.readOnly = true;\r\n\t\r\n\t\t// create a selectable range\r\n\t\tvar range = document.createRange();\r\n\t\trange.selectNodeContents(el);\r\n\t\r\n\t\t// select the range\r\n\t\tvar selection = window.getSelection();\r\n\t\tif (selection) {\r\n\t\t\tselection.removeAllRanges();\r\n\t\t\tselection.addRange(range);\r\n\t\t}\r\n\t\tel.setSelectionRange(0, 999999);\r\n\t\r\n\t\t// restore contentEditable/readOnly to original state\r\n\t\tel.contentEditable = editable;\r\n\t\tel.readOnly = readOnly;\r\n\t\r\n\t\tdocument.execCommand('copy');\r\n\t\tdocument.body.removeChild(el);\r\n\t}\r\n\r\n\r\n\tif (props.page === \"mypage\") {\r\n\t\tvar message = \"SHARE YOUR LIST! CLICK TO COPY URL\"\r\n\t\tif (isClicked) {\r\n\t\t\tmessage = \"COPIED!\"\r\n\t\t}\r\n\t\t\treturn (\r\n\t\t\t

    copyUrl() }>{message}

    \r\n\t\t)\r\n\t} else {\r\n\t\tvar message = \"Click here to copy your referral link\"\r\n\t\tif (isClicked) {\r\n\t\t\tmessage = \"Copied!\"\r\n\t\t}\r\n\t\treturn (\r\n\t\t\t

    copyUrl() }>{message}

    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default CopyUrl;\r\n","import React, { useState, useEffect, useContext, useRef } from 'react';\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport MenuBar from './../components/Menubar';\r\nimport User from './../components/Utils';\r\nimport CategoryItems from '../components/CategoryItems';\r\nimport LoaderContext from './../components/LoaderContext';\r\nimport CopyUrl from './../components/CopyUrl';\r\nimport LoginPage from './LoginPage';\r\n\r\nimport BellImage from '../images/bell-icon.png';\r\nimport {categoriesArray} from '../utils/helpers';\r\n\r\ntype Props = {\r\n\tuser: User,\r\n\thandleLogin(user): void\r\n};\r\n\r\ntype MyItems = {\r\n\tupvoted: Number,\r\n\treceived: Number,\r\n\tshares: Number,\r\n\titems: any[],\r\n};\r\n\r\nconst MyPage: React.FC = (props) => {\r\n\tconst [error, setError] = useState('');\r\n\tconst [items, setItems] = useState({ upvoted: 0, received: 0, shares: 0, items: [] });\r\n\tconst [upvotedItems, setUpvotedItems] = useState([]);\r\n\tconst { showLoader, hideLoader } = useContext(LoaderContext);\r\n\tconst [showJumpToTopButton, setShowJumpToTopButton] = useState(false);\r\n\tconst [pageNumber, setPageNumber] = useState(0);\r\n\tconst [pageSize, setPageSize] = useState(10);\r\n\tconst [showUpvoted, setShowUpvoted] = useState(false);\r\n\r\n\tlet didCancel = false;\r\n\r\n\tconst handleNextPage = () => {\r\n\t\tsetPageNumber(pageNumber + 1);\r\n\t};\r\n\r\n\tconst handlePreviousPage = () => {\r\n\t\tif (pageNumber > 0) {\r\n\t\t\tsetPageNumber(pageNumber - 1);\r\n\t\t}\r\n\t};\r\n\r\n\tconst log = async (message: any) => {\r\n\t\tif (process.env.REACT_APP_LOG === 'true') {\r\n\t\t\tconsole.log(message);\r\n\t\t}\r\n\t}\r\n\r\n\tconst container = useRef(null)\r\n\r\n\tconst handleScroll = () => {\r\n\t\tconst windowHeight = window.innerHeight; // Height of the viewport\r\n\t\tconst scrollPosition = window.scrollY; // Current scroll position\r\n\t\tconst scrollThreshold = windowHeight * 1; // Threshold at 25% down the page\r\n\r\n\t\tsetShowJumpToTopButton(scrollPosition > scrollThreshold); // Show button when scrolled past 25% down\r\n\t};\r\n\r\n\tconst handleJumpToTop = () => {\r\n\t\twindow.scrollTo({ top: 0, behavior: 'smooth' }); // Scroll to top of the page smoothly\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\twindow.addEventListener('scroll', handleScroll);\r\n\t\treturn () => {\r\n\t\t\twindow.removeEventListener('scroll', handleScroll);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tconst scrollToBottom = ()=>{\r\n\t\tlet check = localStorage.getItem(\"isUpvotedButtonClicked\");\r\n\t\tconsole.log(check);\r\n\r\n\t\tif (check == \"true\") {\r\n\t\t\tsetTimeout(()=>{\r\n\t\t\t\tif(container.current){\r\n\t\t\t\t\twindow.scrollTo({\r\n\t\t\t\t\t\ttop: container.current.scrollHeight, behavior: 'smooth'\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t\tsetShowUpvoted(true);\r\n\t\t\tlocalStorage.setItem(\"isUpvotedButtonClicked\", JSON.stringify(false));\r\n\t\t}\r\n\t}\r\n\r\n\tconst handleErrors = (response) => {\r\n\t\tlog(response);\r\n\t\t/*\r\n\t\tok: false\r\n\t\t redirected: false\r\n\t\t status: 403\r\n\t\t statusText: \"\"\r\n\t\t type: \"cors\"\r\n\t\t*/\r\n\t\tif (!response.ok) {\r\n\t\t\tvar err = response.statusText;\r\n\t\t\tif (err === '') {\r\n\t\t\t\terr = 'Error';\r\n\t\t\t}\r\n\t\t\tthrow Error(err);\r\n\t\t}\r\n\t\treturn response;\r\n\t}\r\n\r\n\tconst loadData = async () => {\r\n\t\tshowLoader();\r\n\t\tfetch(process.env.REACT_APP_SERVER_URL + \"/my-page?v=\" + Date.now(), {\r\n\t\t\tmethod: 'GET',\r\n\t\t\theaders: new Headers({\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\"Accept\": \"application/json\",\r\n\t\t\t\t'Authorization': 'Bearer ' + props.user.token\r\n\t\t\t}),\r\n\t\t})\r\n\t\t\t.then(handleErrors)\r\n\t\t\t.then(res => res.json())\r\n\t\t\t.then(\r\n\t\t\t\t(result) => {\r\n\t\t\t\t\tlog(result);\r\n\t\t\t\t\tif (!didCancel) {\r\n\t\t\t\t\t\thideLoader();\r\n\t\t\t\t\t\tsetItems({ upvoted: result.upvotedCount, received: result.receivedCount, shares: result.shareCount, items: result.items });\r\n\t\t\t\t\t\tsetError(\"\");\r\n\t\t\t\t\t\tscrollToBottom();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t(error) => {\r\n\t\t\t\t\tlog(error);\r\n\t\t\t\t\tif (!didCancel) {\r\n\t\t\t\t\t\thideLoader();\r\n\t\t\t\t\t\tsetError(error.message);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (props.user.isLogged) {\r\n\t\t\tloadData();\r\n\t\t\tshowUpvotedItems();\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tdidCancel = true;\r\n\t\t};\r\n\t}, [props.user.isLogged,pageNumber,pageSize]);\r\n\r\n\tconst handleUpvote = async (id) => {\r\n\t}\r\n\r\n\tconst onLoginBackClick = async () => {\r\n\t}\r\n\r\n\tconst handleLogin = async () => {\r\n\t}\r\n\r\n\tconst showUpvotedItems = async () => {\r\n\t\tconst stored = localStorage.getItem('YoloMeal');\r\n\t\tconsole.log(\"========>\",stored);\r\n\r\n\t\tif (stored) {\r\n\t\t\tshowLoader()\r\n\t\t\tconst userData = JSON.parse(stored);\r\n\t\t\tfetch(\r\n\t\t\t\tprocess.env.REACT_APP_SERVER_URL +\r\n\t\t\t\t`/upvotedItems?pageNumber=${pageNumber}&pageSize=${pageSize}`,\r\n\t\t\t\t{\r\n\t\t\t\t\tmethod: 'GET',\r\n\t\t\t\t\theaders: new Headers({\r\n\t\t\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\t\tAccept: 'application/json',\r\n\t\t\t\t\t\tAuthorization: 'Bearer ' + userData.token,\r\n\t\t\t\t\t}),\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t\t\t.then((res) => res.json())\r\n\t\t\t\t.then(\r\n\t\t\t\t\t(result) => {\r\n\t\t\t\t\t\thideLoader();\r\n\t\t\t\t\t\tconsole.log(\"@@@@@@@@@@@@@@@\",result);\r\n\r\n\t\t\t\t\t\tsetUpvotedItems(result.items)\r\n\r\n\t\t\t\t\t},\r\n\t\t\t\t\t(error) => {\r\n\t\t\t\t\t\thideLoader()\r\n\t\t\t\t\t\tconsole.log(error)\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t}\r\n\t};\r\n\r\n\tconst getCategoryItems = (category) => {\r\n\t\tlet list: any[] = [];\r\n\t\tfor (var i = 0; i < items.items.length; i++) {\r\n\t\t\tif (items.items[i].categoryId === category) {\r\n\t\t\t\tlist.push(items.items[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn list;\r\n\t}\r\n\r\n\tconst showupvoted = () => {\r\n\t\tsetShowUpvoted(true);\r\n\t\tlocalStorage.setItem(\"isUpvotedButtonClicked\", JSON.stringify(true));\r\n\t}\r\n\r\n\tconst navigate =()=>{\r\n\t\tlocalStorage.setItem(\"isUpvotedButtonClicked\", JSON.stringify(true));\r\n\t}\r\n\r\n\tvar path = window.location.href;\r\n\tpath = path.slice(0, -7);\r\n\tpath = path + \"user/\" + props.user.id;\r\n\r\n\tif (!props.user.isLogged) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t)\r\n\t} else {\r\n\t\treturn (\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
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    {props.user.name} PAGE

    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\tClick for Account Settings\r\n\t\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
    • YOU OWN{items.shares}SHARES!
    • \r\n\t\t\t\t\t\t\t\t
    • YOU UPVOTED{items.upvoted}ITEMS!
    • \r\n\t\t\t\t\t\t\t\t
    • YOU HAVE{items.received}UPVOTES!
    • \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\tDASHBOARD\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\"notification\"\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\t{error !== '' &&\r\n\t\t\t\t\t\t\t\t

    {error}

    \r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t{items.items.length > 0 &&\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{categoriesArray.map(category => (\r\n\t\t\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
    \r\n\t\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
    \r\n\t\t\t\t\t\t\t{showUpvoted && (\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\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{upvotedItems.length <= 0 ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\tupvotedItems.map((item, index) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t))\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    Item No.Name
    No items found
    {index + 1 + (pageNumber * pageSize)}{item.name}
    \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\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\r\n\t\t\t\t{showJumpToTopButton && (\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\r\nexport default MyPage;","import React, { useState, useEffect, useContext } from 'react';\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nimport MenuBar from './../components/Menubar';\r\nimport User from './../components/Utils';\r\nimport CategoryItems from '../components/CategoryItems';\r\nimport LoaderContext from './../components/LoaderContext';\r\nimport LoginPage from './LoginPage';\r\nimport { categoriesArray } from '../utils/helpers';\r\n\r\ntype Props = {\r\n\tuser: User,\r\n\thandleLogin(user): void\r\n};\r\n\r\nconst loadData = () => {\r\n\r\n}\r\n\r\nconst UserPage: React.FC = (props) => {\r\n\tconst [error, setError] = useState('');\r\n\tconst [userName, setUserName] = useState(\"\");\r\n\tconst [items, setItems] = useState([]);\r\n\tconst [showLogin, setShowLogin] = useState(false);\r\n\tconst { id }: any = useParams();\r\n\tconst { showLoader, hideLoader } = useContext(LoaderContext);\r\n\tlet didCancel = false;\r\n\r\n\tconst log = async (message: any) => {\r\n\t\tif (process.env.REACT_APP_LOG === 'true') {\r\n\t\t\tconsole.log(message);\r\n\t\t}\r\n\t}\r\n\r\n\tconst handleErrors = (response) => {\r\n\t\tlog(response);\r\n\t\t/*\r\n\t\tok: false\r\n\t\t​redirected: false\r\n\t\t​status: 403\r\n\t\t​statusText: \"\"\r\n\t\t​type: \"cors\"\r\n\t\t*/\r\n\t\tif (!response.ok) {\r\n\t\t\tvar err = response.statusText;\r\n\t\t\tif (err === '') {\r\n\t\t\t\terr = 'Error';\r\n\t\t\t}\r\n\t\t\tthrow Error(err);\r\n\t\t}\r\n\t\treturn response;\r\n\t}\r\n\r\n\tconst loadData = async () => {\r\n\t\tshowLoader();\r\n\t\tvar headers = new Headers({\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\"Accept\":\"application/json\",\r\n\t\t\t}\r\n\t\t);\r\n\t\tif (props.user.isLogged) {\r\n\t\t\theaders.append('Authorization', 'Bearer ' + props.user.token);\r\n\t\t}\r\n\t\tfetch(process.env.REACT_APP_SERVER_URL + \"/users/\" + id + \"?v=\" + Date.now(), {\r\n\t\t\tmethod: 'GET',\r\n\t\t\theaders: headers\r\n\t\t})\r\n\t\t\t.then(handleErrors)\r\n\t\t\t.then(res => res.json())\r\n\t\t\t.then(\r\n\t\t\t\t(result) => {\r\n\t\t\t\t\tlog(result);\r\n\t\t\t\t\tif (!didCancel) {\r\n\t\t\t\t\t\thideLoader();\r\n\t\t\t\t\t\tsetUserName(result.userName);\r\n\t\t\t\t\t\tsetItems(result.items);\r\n\t\t\t\t\t\tsetError(\"\");\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t(error) => {\r\n\t\t\t\t\tlog(error);\r\n\t\t\t\t\tif (!didCancel) {\r\n\t\t\t\t\t\thideLoader();\r\n\t\t\t\t\t\tsetError(error.message);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tloadData();\r\n\r\n\t\treturn () => {\r\n\t\t\tdidCancel = true;\r\n\t\t};\r\n\t}, [props.user.isLogged]);\r\n\r\n\tconst handleUpvote = async (id) => {\r\n\t\tshowLoader();\r\n\t\tconst data = { userId: props.user.id};\r\n\t\tfetch(process.env.REACT_APP_SERVER_URL + \"/items/\" + id + \"/upvote\", {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: new Headers({\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\"Accept\":\"application/json\",\r\n\t\t\t\t'Authorization': 'Bearer ' + props.user.token\r\n\t\t\t}),\r\n\t\t\tbody: JSON.stringify(data)\r\n\t\t})\r\n\t\t\t.then(res => res.json())\r\n\t\t\t.then(\r\n\t\t\t\t(result) => {\r\n\t\t\t\t\tlog(result);\r\n\t\t\t\t\tsetItems(items.map(item => item.id === id ? {...item, upvoted: true, upvoteCount: item.upvoteCount + 1} : item ));\r\n\t\t\t\t\tsetError(\"\");\r\n\t\t\t\t\thideLoader();\r\n\t\t\t\t},\r\n\t\t\t\t(error) => {\r\n\t\t\t\t\tlog(error);\r\n\t\t\t\t\tsetError(error.message);\r\n\t\t\t\t\thideLoader();\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t}\r\n\r\n\tconst handleLogin = async () => {\r\n\t\tsetShowLogin(true);\r\n\t}\r\n\r\n\tconst onLoginBackClick = async () => {\r\n\t\tsetShowLogin(false);\r\n\t}\r\n\r\n\tconst getCategoryItems = (category) => {\r\n\t\tlet list: any[] = [];\r\n\t\tfor (var i = 0; i < items.length; i++) {\r\n\t\t\tif (items[i].categoryId === category) {\r\n\t\t\t\tlist.push(items[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn list;\r\n\t}\r\n\r\n\tif (showLogin && !props.user.isLogged) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t)\r\n\t} else {\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t{userName !== '' &&\r\n\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

    {userName} PAGE

    \r\n\t\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{error !== '' &&\r\n\t\t\t\t\t\t\t\t\t

    {error}

    \r\n\t\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{categoriesArray.map(category => (\r\n\t\t\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
    \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)\r\n\t}\r\n}\r\n\r\nexport default UserPage;","import React from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport MenuBar from '../components/Menubar';\r\n\r\ntype Props = { \r\n\tuser: any\r\n};\r\n\r\nconst SettingsPage: React.FC = (props) => {\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\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    NOTIFICATION SETTINGS

    \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
    • \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
    \t \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    SETTINGS

    \r\n\t\t\t\t\t\t\t CHANGE YOUR IDENTITY \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
    \r\n\t);\r\n}\r\n\r\nexport default SettingsPage;\r\n","import React from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport MenuBar from '../components/Menubar';\r\n\r\ntype Props = { \r\n\tuser: any\r\n};\r\n\r\nconst NotificationsPage: React.FC = (props) => {\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\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
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    BACK

    \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
    \r\n\t);\r\n}\r\n\r\nexport default NotificationsPage;\r\n","import React from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport MenuBar from '../components/Menubar';\r\n\r\ntype Props = { \r\n\tuser: any\r\n};\r\n\r\nconst ChangeIdentityPage: React.FC = (props) => {\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\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    You are allowed 1 name change per year. Choose wisely :)

    \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

    BACK

    \r\n\t\t\t\t\t\t\t

    Edit

    \r\n\t\t\t\t\t\t\t

    Save

    \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
    \r\n\t);\r\n}\r\n\r\nexport default ChangeIdentityPage;\r\n","import React from 'react';\r\nimport MenuBar from '../components/Menubar';\r\nimport { Link } from 'react-router-dom';\r\n\r\ntype Props = { \r\n\tuser: any\r\n};\r\n\r\nconst FaqPage: React.FC = (props) => {\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\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    HOW IT WORKS

    \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\tDon't you hate spending 15 minutes deciding what to order and then dropping $$$ on something that ends\r\n\t\t\t\t\t\t\t\t\tup being mediocre? Yeah, us too. That's why we created Yolomeal.com.\r\n\t\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\tMillions of people eat restaurant food every day. In our search for great food, we will never even\r\n\t\t\t\t\t\t\t\t\ttaste a fraction of that food, so why\r\n\t\t\t\t\t\t\t\t\tnot put their tongues to work for us?\r\n\t\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\tYolomeal is a completely positive experience that crowdsources\r\n\t\t\t\t\t\t\t\t\teach city's tastiest menu items then mixes in some magic to reveal the best food in your city, or at\r\n\t\t\t\t\t\t\t\t\tany\r\n\t\t\t\t\t\t\t\t\trestaurant you might visit. No more wasted money or time; just delicious food. 😉\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\t
    \r\n\t\t\t\t\t\t\t\t

    How to use Yolomeal to find new, delicious dishes:

    \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\t1. \r\n\t\t\t\t\t\t\t\t\t\tSelect your city of interest.\r\n\t\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\t2. \r\n\t\t\t\t\t\t\t\t\t\tClick the \"Eat\" button to see our 8 food categories. Click on your category of interest. You'll\r\n\t\t\t\t\t\t\t\t\t\tsee a ranked list of your city's best menu items in that category.\r\n\t\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\t3. \r\n\t\t\t\t\t\t\t\t\t\tRefine the list of foods within any of the categories by clicking the filter button. This will\r\n\t\t\t\t\t\t\t\t\t\thelp you narrow down the categories to pasta, vegan, etc!\r\n\t\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\t4. \r\n\t\t\t\t\t\t\t\t\t\tYou can also click \"Restaurant Search\" from the main menu to see if a restaurant you plan to\r\n\t\t\t\t\t\t\t\t\t\tvisit has anything Yolo worthy.\r\n\t\t\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
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t

    How to add your favorite menu items to Yolomeal:

    \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\t1. \r\n\t\t\t\t\t\t\t\t\t\tIf you love a menu item not yet on the list, just click \"Add Your Favorites\" to start saving your\r\n\t\t\t\t\t\t\t\t\t\town.\r\n\t\t\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
    \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\tWhile adding faves, be sure to add all the appropriate tags for that item, so it's easier for other\r\n\t\t\t\t\t\t\t\tpeople\r\n\t\t\t\t\t\t\t\tto find awesome food!\r\n\t\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

    How to tell others that you LOVE a menu item in Yolomeal:

    \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\t1. \r\n\t\t\t\t\t\t\t\t\t\tClick \"Tap to Upvote\" on that item to help it move up in the rankings.\r\n\t\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\t2. \r\n\t\t\t\t\t\t\t\t\t\tAll the favorites you save and your upvotes will be collected on your \"My Page.\" This list can be\r\n\t\t\t\t\t\t\t\t\t\teasily shared with your friends.\r\n\t\t\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
    \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\tThanks for using Yolomeal and making your city a more delicious place!\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
    \r\n\t);\r\n}\r\n\r\nexport default FaqPage;\r\n","import React from 'react';\r\nimport MenuBar from './../components/Menubar';\r\n\r\ntype Props = { \r\n\tuser: any\r\n};\r\n\t\r\nconst TermsPage: React.FC = (props) => {\t\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\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    YOLO MEAL TERMS OF USE

    \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\tYolomeal Terms of Service\r\n\t\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\tLast Updated: August 26, 2021\r\n\t\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\tWelcome to Yolomeal! Yolomeal is a platform that provides you with the\r\n\t\t\t\t\t\t\t\t\teasiest way to find the best tasting food at local restaurants.\r\n\t\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\tThese terms of service (“Terms of Service”) set forth the agreement\r\n\t\t\t\t\t\t\t\t\t(“Agreement”) between you and Yolomeal, Inc. (“Yolomeal” “we” or “us”). It\r\n\t\t\t\t\t\t\t\t\tgoverns your use of the products and services we offer through our websites\r\n\t\t\t\t\t\t\t\t\tand applications (collectively the “Yolomeal Platform”).\r\n\t\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\tPlease make sure to read it, because, by using the Yolomeal Platform, you\r\n\t\t\t\t\t\t\t\t\tconsent to these Terms of Service.\r\n\t\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\t1.\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tThe Mission of the Yolomeal Platform\r\n\t\t\t\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
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tYolomeal's mission is to welcome the power of the crowd in making\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tall our lives better by sharing and discovering the best tasting\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfood wherever in the world we go.\r\n\t\t\t\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

    \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t2. Using the Yolomeal Platform\r\n\t\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\ta. Who Can Use It. Use of the Yolomeal Platform by anyone\r\n\t\t\t\t\t\t\t\t\tunder 13 years of age is prohibited. You represent that you are at least\r\n\t\t\t\t\t\t\t\t\tthe age of majority in the jurisdiction where you live or, if you are not,\r\n\t\t\t\t\t\t\t\t\tyour parent or legal guardian must consent to these Terms of Service and\r\n\t\t\t\t\t\t\t\t\taffirm that they accept this Agreement on your behalf and bear\r\n\t\t\t\t\t\t\t\t\tresponsibility for your use. If you are accepting these Terms of Service on\r\n\t\t\t\t\t\t\t\t\tbehalf of someone else or an entity, you confirm that you have the legal\r\n\t\t\t\t\t\t\t\t\tauthority to bind that person or entity to this Agreement.\r\n\t\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\tb. Registration. When you set up a profile on the Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform, you will be asked to provide certain information about yourself.\r\n\t\t\t\t\t\t\t\t\tYou agree to provide us accurate information when you create your account\r\n\t\t\t\t\t\t\t\t\ton the Yolomeal Platform. We will treat information you provide as part of\r\n\t\t\t\t\t\t\t\t\tregistration in accordance with our Privacy Policy You\r\n\t\t\t\t\t\t\t\t\tshould take care in maintaining the confidentiality of your password.\r\n\t\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\tc. Privacy Policy. Our privacy practices are set forth in\r\n\t\t\t\t\t\t\t\t\tour Privacy Policy. By use of the Yolomeal Platform, you\r\n\t\t\t\t\t\t\t\t\tagree to accept our Privacy Policy, regardless of whether\r\n\t\t\t\t\t\t\t\t\tyou are a registered user.\r\n\t\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\tAcceptable Use Policy\r\n\t\t\t\t\t\t\t\t\t. In your interaction with others on the Yolomeal Platform, you agree to\r\n\t\t\t\t\t\t\t\t\tfollow our Acceptable Use Policy:\r\n\t\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\t\r\n\t\t\t\t\t\t\t\t\t\t\tNo Spam\r\n\t\t\t\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\tDo not use Yolomeal to post or attract spam.\r\n\t\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\t\r\n\t\t\t\t\t\t\t\t\t\t\tNo Malicious or Illegal Activity\r\n\t\t\t\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\tDo not contribute viruses, malware, and other malicious programs or engage\r\n\t\t\t\t\t\t\t\t\tin activity that harms or interferes with the operation of Yolomeal or\r\n\t\t\t\t\t\t\t\t\tseeks to circumvent security or authentication measures. Do not use\r\n\t\t\t\t\t\t\t\t\tYolomeal to engage in unlawful activity or to promote illegal acts.\r\n\t\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\r\n\t\t\t\t\t\t\t\t\t\t\tAbide by Other Yolomeal Policies\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\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

    \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\tReporting Problems\r\n\t\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\tIf you see something on Yolomeal that you believe violates our guidelines\r\n\t\t\t\t\t\t\t\t\tor policies, please report it to us via email: info@yolomeal.com.\r\n\t\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\tViolating the Acceptable Use Policy may result in the removal of content,\r\n\t\t\t\t\t\t\t\t\tor in the limitation or termination of a user's access to Yolomeal.\r\n\t\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\td. Termination. You may close your account at any time by\r\n\t\t\t\t\t\t\t\t\tgoing to account settings and disabling your account. We may terminate or\r\n\t\t\t\t\t\t\t\t\tsuspend your Yolomeal account if you violate any Yolomeal policy or for any\r\n\t\t\t\t\t\t\t\t\tother reason.\r\n\t\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\te. Changes to the Yolomeal Platform. We are always trying\r\n\t\t\t\t\t\t\t\t\tto improve your experience on the Yolomeal Platform. We may need to add or\r\n\t\t\t\t\t\t\t\t\tchange features and may do so without notice to you.\r\n\t\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\tf. Feedback. We welcome your feedback and suggestions\r\n\t\t\t\t\t\t\t\t\tabout how to improve the Yolomeal Platform. Feel free to submit feedback by\r\n\t\t\t\t\t\t\t\t\temail: info@yolomeal.com. By submitting feedback, you agree to grant us the\r\n\t\t\t\t\t\t\t\t\tright, at our discretion, to use, disclose and otherwise exploit the\r\n\t\t\t\t\t\t\t\t\tfeedback, in whole or part, freely and without compensation to you.\r\n\t\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\t3. Your Content\r\n\t\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\ta. Definition of Your Content. The Yolomeal Platform\r\n\t\t\t\t\t\t\t\t\tenables you to add comments and photos and other information about yourself\r\n\t\t\t\t\t\t\t\t\tto share with others. All material that you upload, publish or display to\r\n\t\t\t\t\t\t\t\t\tothers via the Yolomeal Platform will be referred to collectively as “Your\r\n\t\t\t\t\t\t\t\t\tContent.” You acknowledge and agree that, as part of using the Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform, Your Content may be viewed by the general public.\r\n\t\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\tb.\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tOwnership. You, or your licensors, as applicable, retain ownership of\r\n\t\t\t\t\t\t\t\t\t\t\tthe copyright and other intellectual property in Your Content, subject\r\n\t\t\t\t\t\t\t\t\t\t\tto the non-exclusive rights granted below.\r\n\t\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\t

    \r\n\t\t\t\t\t\t\t\t\tc. License and Permission to Use Your Content.\r\n\t\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\ti. By submitting, posting, or displaying Your Content on the Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform, you grant Yolomeal and its affiliated companies a nonexclusive,\r\n\t\t\t\t\t\t\t\t\tworldwide, royalty free, fully paid up, transferable, sublicensable\r\n\t\t\t\t\t\t\t\t\t(through multiple tiers), license to use, copy, reproduce, process, adapt,\r\n\t\t\t\t\t\t\t\t\tmodify, create derivative works from, publish, transmit, store, display and\r\n\t\t\t\t\t\t\t\t\tdistribute, translate, communicate and make available to the public, and\r\n\t\t\t\t\t\t\t\t\totherwise use Your Content in connection with the operation or use of the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform or the promotion, advertising or marketing of the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform or our business partners, in any and all media or\r\n\t\t\t\t\t\t\t\t\tdistribution methods (now known or later developed), including via means of\r\n\t\t\t\t\t\t\t\t\tautomated distribution, such as through an application programming\r\n\t\t\t\t\t\t\t\t\tinterface (also known as an “API”). You agree that this license includes\r\n\t\t\t\t\t\t\t\t\tthe right for Yolomeal to make Your Content available to other companies,\r\n\t\t\t\t\t\t\t\t\torganizations, business partners, or individuals who collaborate with\r\n\t\t\t\t\t\t\t\t\tYolomeal for the syndication, broadcast, communication and making available\r\n\t\t\t\t\t\t\t\t\tto the public, distribution or publication of Your Content on the Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform or through other media or distribution methods. This license also\r\n\t\t\t\t\t\t\t\t\tincludes the right for other users of the Yolomeal Platform to use, copy,\r\n\t\t\t\t\t\t\t\t\treproduce, adapt, modify, create derivative works from, publish, transmit,\r\n\t\t\t\t\t\t\t\t\tdisplay, and distribute, translate, communicate and make available to the\r\n\t\t\t\t\t\t\t\t\tpublic Your Content, subject to our Terms of Service. Except as expressly\r\n\t\t\t\t\t\t\t\t\tprovided in these Terms of Service, this license will not confer the right\r\n\t\t\t\t\t\t\t\t\tfor you to use automated technology to copy content displayed on\r\n\t\t\t\t\t\t\t\t\tYolomeal.com for the purpose of making derivative works.\r\n\t\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\tii. Any edits and changes made by you may be visible to other users. The\r\n\t\t\t\t\t\t\t\t\tright for Yolomeal to copy, display, transmit, publish, perform,\r\n\t\t\t\t\t\t\t\t\tdistribute, store, modify, and otherwise use any information you post, and\r\n\t\t\t\t\t\t\t\t\tsublicense those rights to others, is perpetual and irrevocable, to the\r\n\t\t\t\t\t\t\t\t\tmaximum extent permitted by law, except as otherwise specified in this\r\n\t\t\t\t\t\t\t\t\tAgreement.\r\n\t\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\tiii. You acknowledge and agree that Yolomeal may preserve Your Content and\r\n\t\t\t\t\t\t\t\t\tmay also disclose Your Content and related information if required to do so\r\n\t\t\t\t\t\t\t\t\tby law or in the good faith belief that such preservation or disclosure is\r\n\t\t\t\t\t\t\t\t\treasonably necessary to: (a) comply with legal process, applicable laws or\r\n\t\t\t\t\t\t\t\t\tgovernment requests; (b) enforce these Terms of Service; (c) respond to\r\n\t\t\t\t\t\t\t\t\tclaims that any of Your Content violates the rights of third parties; (d)\r\n\t\t\t\t\t\t\t\t\tdetect, prevent, or otherwise address fraud, security or technical issues;\r\n\t\t\t\t\t\t\t\t\tor (e) protect the rights, property, or personal safety of Yolomeal, its\r\n\t\t\t\t\t\t\t\t\tusers, or the public.\r\n\t\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\tiv. You understand that we may modify, adapt, or create derivative works\r\n\t\t\t\t\t\t\t\t\tfrom Your Content in order to transmit, display or distribute it over\r\n\t\t\t\t\t\t\t\t\tcomputer networks, devices, service providers, and in various media. We\r\n\t\t\t\t\t\t\t\t\talso may remove or refuse to publish Your Content, in whole or part, at any\r\n\t\t\t\t\t\t\t\t\ttime.\r\n\t\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\tv. You further give us the permission and authority to act as your\r\n\t\t\t\t\t\t\t\t\tnonexclusive agent to take enforcement action against any unauthorized use\r\n\t\t\t\t\t\t\t\t\tby third parties of any of Your Content outside of the Yolomeal Platform or\r\n\t\t\t\t\t\t\t\t\tin violation of our Terms of Service.\r\n\t\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\td. Your Responsibilities for Your Content. By posting Your\r\n\t\t\t\t\t\t\t\t\tContent on the Yolomeal Platform, you represent and warrant to us that: i)\r\n\t\t\t\t\t\t\t\t\tyou have the ownership rights, or you have obtained all necessary licenses\r\n\t\t\t\t\t\t\t\t\tor permissions to use Your Content and grant us the rights to use Your\r\n\t\t\t\t\t\t\t\t\tContent as provided for under this Agreement, and ii) that posting Your\r\n\t\t\t\t\t\t\t\t\tContent violates no intellectual property or personal right of others or\r\n\t\t\t\t\t\t\t\t\tany applicable law or regulation, including any laws or regulations\r\n\t\t\t\t\t\t\t\t\trequiring disclosure that you have been compensated for Your Content. You\r\n\t\t\t\t\t\t\t\t\taccept full responsibility for avoiding infringement of the intellectual\r\n\t\t\t\t\t\t\t\t\tproperty or personal rights of others or violation of laws and regulations\r\n\t\t\t\t\t\t\t\t\tin connection with Your Content. You are responsible for ensuring that Your\r\n\t\t\t\t\t\t\tContent does not violate Yolomeal’s Acceptable Use Policy, Copyright Policy , Trademark Policy, other\r\n\t\t\t\t\t\t\t\t\tpublished Yolomeal policy, or any applicable law or regulation. You agree\r\n\t\t\t\t\t\t\t\t\tto pay all royalties, fees, and any other monies owed to any person by\r\n\t\t\t\t\t\t\t\t\treason of Your Content.\r\n\t\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\t4. Our Content and Materials\r\n\t\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\ta. Definition of Our Content and Materials. All\r\n\t\t\t\t\t\t\t\t\tintellectual property in or related to the Yolomeal Platform (specifically\r\n\t\t\t\t\t\t\t\t\tincluding, but not limited to our software, the Yolomeal marks, the\r\n\t\t\t\t\t\t\t\t\tYolomeal logo, but excluding Your Content) is the property of Yolomeal,\r\n\t\t\t\t\t\t\t\t\tInc., or its subsidiaries and affiliates, or content posted by other\r\n\t\t\t\t\t\t\t\t\tYolomeal users licensed to us (collectively “Our Content and Materials”).\r\n\t\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\tb. Data. All data Yolomeal collects (“Data”) about use of\r\n\t\t\t\t\t\t\t\t\tthe Yolomeal Platform by you or others is the property of Yolomeal, Inc.,\r\n\t\t\t\t\t\t\t\t\tits subsidiaries, and affiliates. For clarity, Data does not include Your\r\n\t\t\t\t\t\t\t\t\tContent and is separate from Our Content and Materials.\r\n\t\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\tc. Our License to You.\r\n\t\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\ti. We grant you a personal, limited, non-exclusive license to use and\r\n\t\t\t\t\t\t\t\t\taccess Our Content and Materials and Data as made available to you on the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform in connection with your use of the Yolomeal Platform,\r\n\t\t\t\t\t\t\t\t\tsubject to the terms and conditions of this Agreement.\r\n\t\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\tii. Yolomeal gives you a worldwide, royalty-free, revocable, personal,\r\n\t\t\t\t\t\t\t\t\tnon-assignable and non-exclusive license to re-post a small portion of\r\n\t\t\t\t\t\t\t\t\tcontent posted by other Yolomeal users anywhere on the web, subject to\r\n\t\t\t\t\t\t\t\t\tthese Terms and Conditions and provided that: (a) the content in question\r\n\t\t\t\t\t\t\t\t\twas added to the Yolomeal Platform after April 22, 2010; (b) the user who\r\n\t\t\t\t\t\t\t\t\tcreated the content has not explicitly marked the content as not for\r\n\t\t\t\t\t\t\t\t\treproduction on the Yolomeal Platform; (c) you do not modify the content;\r\n\t\t\t\t\t\t\t\t\t(d) you attribute Yolomeal by name in readable text and with a human and\r\n\t\t\t\t\t\t\t\t\tmachine-followable link (an HTML <a> anchor tag) linking back to the\r\n\t\t\t\t\t\t\tpage displaying the original source of the content on https://yolomeal.com on every page that contains such\r\n\t\t\t\t\t\t\t\t\tcontent; (e) upon request, either by Yolomeal or a user, you remove the\r\n\t\t\t\t\t\t\t\t\tuser's name from content which the user has subsequently made anonymous;\r\n\t\t\t\t\t\t\t\t\t(f) upon request, either by Yolomeal or by a user who contributed to the\r\n\t\t\t\t\t\t\t\t\tcontent, you make a reasonable effort to update a particular piece of\r\n\t\t\t\t\t\t\t\t\tcontent to the latest version on the Yolomeal Platform; and (g) upon\r\n\t\t\t\t\t\t\t\t\trequest, either by Yolomeal or by a user who contributed to the content,\r\n\t\t\t\t\t\t\t\t\tyou make a reasonable attempt to delete content that has been deleted or\r\n\t\t\t\t\t\t\t\t\tmarked as not for reproduction on the Yolomeal Platform; and (h) you do not\r\n\t\t\t\t\t\t\t\t\tuse any automated tools to aggregate or create derivative works. In\r\n\t\t\t\t\t\t\t\t\texercising these rights, you may not implicitly or explicitly assert any\r\n\t\t\t\t\t\t\t\t\tconnection with, sponsorship or endorsement by Yolomeal, or any Yolomeal\r\n\t\t\t\t\t\t\t\t\tuser, without separate, express prior written permission from us.\r\n\t\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\tiii. We may terminate our license to you at any time for any reason. We\r\n\t\t\t\t\t\t\t\t\thave the right but not the obligation to refuse to distribute any content\r\n\t\t\t\t\t\t\t\t\ton the Yolomeal Platform or to remove content. Except for the rights and\r\n\t\t\t\t\t\t\t\t\tlicense granted in these Terms of Service, we reserve all other rights and\r\n\t\t\t\t\t\t\t\t\tgrant no other rights or licenses, implied or otherwise.\r\n\t\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\td. Permitted uses. If you operate a search engine, web\r\n\t\t\t\t\t\t\t\t\tcrawler, bot, scraping tool, data mining tool, bulk downloading tool, wget\r\n\t\t\t\t\t\t\t\t\tutility, or similar data gathering or extraction tool, you may access the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform, subject to the following additional rules: i) you must\r\n\t\t\t\t\t\t\t\t\tuse a descriptive user agent header; ii) you must follow robots.txt at all\r\n\t\t\t\t\t\t\t\t\ttimes; iii) your access must not adversely affect any aspect of the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform’s functioning; and iv) you must make it clear how to\r\n\t\t\t\t\t\t\t\t\tcontact you, either in your user agent string, or on your website if you\r\n\t\t\t\t\t\t\t\t\thave one. You represent and warrant that you will not use any automated\r\n\t\t\t\t\t\t\t\t\ttools such as artificial intelligence or machine learning i) to create\r\n\t\t\t\t\t\t\t\t\tderivative works of Our Content and Materials; ii) to create any service\r\n\t\t\t\t\t\t\t\t\tcompetitive to the Yolomeal Platform; or iii) for other commercial purposes\r\n\t\t\t\t\t\t\t\t\texcept as expressly permitted by these Terms of Service or the written\r\n\t\t\t\t\t\t\t\t\tconsent of Yolomeal.\r\n\t\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\te. No Endorsement or Verification. Please note that the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform contains access to third-party content, products and\r\n\t\t\t\t\t\t\t\t\tservices, and it offers interactions with third parties. Participation or\r\n\t\t\t\t\t\t\t\t\tavailability on the Yolomeal Platform does not amount to endorsement or\r\n\t\t\t\t\t\t\t\t\tverification by us. We make no warranties or representations about the\r\n\t\t\t\t\t\t\t\t\taccuracy, completeness, or timeliness of any content posted on the Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform by anyone.\r\n\t\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\tf. Ownership. You acknowledge and agree that Our Content\r\n\t\t\t\t\t\t\t\t\tand Materials remain the property of Yolomeal's users or Yolomeal. The\r\n\t\t\t\t\t\t\t\t\tcontent, information and services made available on the Yolomeal Platform\r\n\t\t\t\t\t\t\t\t\tare protected by U.S. and international copyright, trademark, and other\r\n\t\t\t\t\t\t\t\t\tlaws, and you acknowledge that these rights are valid and enforceable.\r\n\t\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\t5. Integrated Service Provider. You may enable another\r\n\t\t\t\t\t\t\t\t\tonline service provider, such as a social networking service (“Integrated\r\n\t\t\t\t\t\t\t\t\tService Provider”), to be directly integrated into your account on the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform. By enabling an integrated service, you are allowing us\r\n\t\t\t\t\t\t\t\t\tto pass to, and receive from, the Integrated Service Provider your log-in\r\n\t\t\t\t\t\t\t\t\tinformation and other user data. For more information about Yolomeal’s use,\r\n\t\t\t\t\t\t\t\t\tstorage, and disclosure of information related to you and your use of\r\n\t\t\t\t\t\t\tintegrated services within Yolomeal, please see our Privacy Policy. Note that your use of any Integrated\r\n\t\t\t\t\t\t\t\t\tService Provider and its own handling of your data and information is\r\n\t\t\t\t\t\t\t\t\tgoverned solely by their terms of use, privacy policies, and other\r\n\t\t\t\t\t\t\t\t\tpolicies.\r\n\t\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\t6. More About Certain Offerings on the Yolomeal Platform\r\n\t\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\ta. Advertisements. The Yolomeal Platform may include\r\n\t\t\t\t\t\t\t\t\tadvertisements, which may be targeted to content or information on the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform, queries made through the Yolomeal Platform, or other\r\n\t\t\t\t\t\t\t\t\tinformation, in an effort to make them relevant to you. The types and\r\n\t\t\t\t\t\t\t\t\textent of advertising by Yolomeal are subject to change. In consideration\r\n\t\t\t\t\t\t\t\t\tfor Yolomeal granting you access to and use of the Yolomeal Platform, you\r\n\t\t\t\t\t\t\t\t\tagree that Yolomeal and its third-party providers and partners may place\r\n\t\t\t\t\t\t\t\t\tsuch advertising on the Yolomeal Platform. If you wish to become an\r\n\t\t\t\t\t\t\t\t\tadvertiser, you will be required to enter into separate and supplemental\r\n\t\t\t\t\t\t\t\t\tterms with us about providing advertising services on the Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform.\r\n\t\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\tb. Subscriptions. Certain content from other areas of the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform may be available only by subscription, subject to\r\n\t\t\t\t\t\t\t\t\tsupplemental terms and conditions.\r\n\t\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\tc. Buttons, Links and Widgets. You have permission to use\r\n\t\t\t\t\t\t\t\t\tYolomeal's buttons, links, and widgets, subject to these Terms of Service\r\n\t\t\t\t\t\t\t\t\t(including the disclaimers and limitations of liability) and provided that:\r\n\t\t\t\t\t\t\t\t\t(a) your use of such buttons, links and widgets link only to the Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform; (b) you will not modify such buttons, links, or widgets or\r\n\t\t\t\t\t\t\t\t\tassociated code in any manner; (c) you will not use any such buttons,\r\n\t\t\t\t\t\t\t\t\tlinks, or widgets in any manner which implies or suggests that Yolomeal\r\n\t\t\t\t\t\t\t\t\tendorses, sponsors, or recommends the website on which such buttons, links\r\n\t\t\t\t\t\t\t\t\tand widgets are used; and (d) the use of such buttons, links and widgets,\r\n\t\t\t\t\t\t\t\t\tand the website on which such buttons, links and widgets are used do not\r\n\t\t\t\t\t\t\t\t\tviolate Yolomeal’s Acceptable Use Policy.\r\n\t\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\td. Web resources and third-party services. The Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform may also offer you the opportunity to visit links to other\r\n\t\t\t\t\t\t\t\t\twebsites or to engage with third-party products or services. You assume all\r\n\t\t\t\t\t\t\t\t\trisk arising out of your use of such websites or resources.\r\n\t\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\te. Services that Require Separate Agreement. Certain\r\n\t\t\t\t\t\t\t\t\tfeatures or services may require that you enter into a separate and\r\n\t\t\t\t\t\t\t\t\tsupplemental written agreement prior to use.\r\n\t\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\t7.\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tReporting Violations of Your Intellectual Property Rights, Yolomeal\r\n\t\t\t\t\t\t\t\t\t\t\tPolicies, or Applicable Laws\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t. We have a special process for reporting violations of your intellectual\r\n\t\t\t\t\t\t\t\t\tproperty rights or other violations of Yolomeal policies or applicable\r\n\t\t\t\t\t\t\t\t\tlaws.\r\n\t\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\ta. Copyright Policy and Trademark Policy. We have adopted\r\n\t\t\t\t\t\t\tand implemented a Copyright Policy and Trademark Policy. For more information, including detailed\r\n\t\t\t\t\t\t\t\t\tinformation about how to submit a request for takedown if you believe\r\n\t\t\t\t\t\t\t\t\tcontent on the Yolomeal Platform infringes your intellectual property\r\n\t\t\t\t\t\t\t\t\trights, please contact us at: info@yolomeal.com\r\n\t\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\tb. Reports of Other Violations. If you believe content on\r\n\t\t\t\t\t\t\tthe Yolomeal Platform violates Yolomeal’s Acceptable Use Policy or otherwise violates applicable law\r\n\t\t\t\t\t\t\t\t\t(apart from copyright or trademark violations) or other Yolomeal policies,\r\n\t\t\t\t\t\t\t\t\tyou may contact us: info@yolomeal.com\r\n\t\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\t
    \r\n\t\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

    \r\n\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\t\tDISCLAIMERS AND LIMITATION OF LIABILITY\r\n\t\t\t\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
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tPLEASE READ THIS SECTION CAREFULLY SINCE IT LIMITS THE LIABILITY OF\r\n\t\t\t\t\t\t\t\t\t\t\tYOLOMEAL ENTITIES TO YOU.\r\n\t\t\t\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
    \r\n\t\t\t\t\t\t\t\t\t“YOLOMEAL ENTITIES” MEANS YOLOMEAL, INC., AND ANY SUBSIDIARIES, AFFILIATES,\r\n\t\t\t\t\t\t\t\t\tRELATED COMPANIES, SUPPLIERS, LICENSORS AND PARTNERS, AND THE OFFICERS,\r\n\t\t\t\t\t\t\t\t\tDIRECTORS, EMPLOYEES, AGENTS AND REPRESENTATIVES OF EACH OF THEM. EACH\r\n\t\t\t\t\t\t\t\t\tPROVISION BELOW APPLIES TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE\r\n\t\t\t\t\t\t\t\t\tLAW.\r\n\t\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\tc. WE ARE PROVIDING YOU THE YOLOMEAL PLATFORM, ALONG WITH OUR CONTENT AND\r\n\t\t\t\t\t\t\t\t\tMATERIALS AND THE OPPORTUNITY TO CONNECT WITH OTHERS, ON AN “AS IS” AND “AS\r\n\t\t\t\t\t\t\t\t\tAVAILABLE” BASIS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. WITHOUT\r\n\t\t\t\t\t\t\t\t\tLIMITING THE FOREGOING, YOLOMEAL ENTITIES EXPRESSLY DISCLAIM ANY AND ALL\r\n\t\t\t\t\t\t\t\t\tWARRANTIES AND CONDITIONS OF MERCHANTABILITY, TITLE, ACCURACY AND\r\n\t\t\t\t\t\t\t\t\tCOMPLETENESS, UNINTERRUPTED OR ERROR-FREE SERVICE, FITNESS FOR A PARTICULAR\r\n\t\t\t\t\t\t\t\t\tPURPOSE, QUIET ENJOYMENT, NON-INFRINGEMENT, AND ANY WARRANTIES ARISING OUT\r\n\t\t\t\t\t\t\t\t\tOF COURSE OF DEALING OR TRADE USAGE.\r\n\t\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\td. YOLOMEAL MAKES NO PROMISES WITH RESPECT TO, AND EXPRESSLY DISCLAIMS ALL\r\n\t\t\t\t\t\t\t\t\tLIABILITY FOR: (i) CONTENT POSTED BY ANY USER OR THIRD PARTY; (ii) ANY\r\n\t\t\t\t\t\t\t\t\tTHIRD-PARTY WEBSITE, THIRD-PARTY PRODUCT, OR THIRD-PARTY SERVICE LISTED ON\r\n\t\t\t\t\t\t\t\t\tOR ACCESSIBLE TO YOU THROUGH THE YOLOMEAL PLATFORM, INCLUDING AN INTEGRATED\r\n\t\t\t\t\t\t\t\t\tSERVICE PROVIDER OR PROFESSIONAL CONTRIBUTOR; (iii) THE QUALITY OR CONDUCT\r\n\t\t\t\t\t\t\t\t\tOF ANY THIRD PARTY YOU ENCOUNTER IN CONNECTION WITH YOUR USE OF THE\r\n\t\t\t\t\t\t\t\t\tYOLOMEAL PLATFORM; OR (iv) UNAUTHORIZED ACCESS, USE OR ALTERATION OF YOUR\r\n\t\t\t\t\t\t\t\t\tCONTENT. YOLOMEAL MAKES NO WARRANTY THAT: (a) THE YOLOMEAL PLATFORM WILL\r\n\t\t\t\t\t\t\t\t\tMEET YOUR REQUIREMENTS; (b) THE YOLOMEAL PLATFORM WILL BE UNINTERRUPTED,\r\n\t\t\t\t\t\t\t\t\tTIMELY, SECURE, OR ERROR-FREE; (c) THE RESULTS OR INFORMATION THAT YOU MAY\r\n\t\t\t\t\t\t\t\t\tOBTAIN FROM THE USE OF THE YOLOMEAL PLATFORM, A PROFESSIONAL CONTRIBUTOR,\r\n\t\t\t\t\t\t\t\t\tOR ANY OTHER USER WILL BE ACCURATE OR RELIABLE; OR (d) THE QUALITY OF ANY\r\n\t\t\t\t\t\t\t\t\tPRODUCTS, SERVICES, INFORMATION, OR OTHER MATERIAL OBTAINED OR PURCHASED BY\r\n\t\t\t\t\t\t\t\t\tYOU THROUGH THE YOLOMEAL PLATFORM WILL BE SATISFACTORY.\r\n\t\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\te. YOU AGREE THAT TO THE MAXIMUM EXTENT PERMITTED BY LAW, YOLOMEAL ENTITIES\r\n\t\t\t\t\t\t\t\t\tWILL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY. WITHOUT LIMITING\r\n\t\t\t\t\t\t\t\t\tTHE FOREGOING, YOU AGREE THAT, TO THE MAXIMUM EXTENT PERMITTED BY LAW,\r\n\t\t\t\t\t\t\t\t\tYOLOMEAL ENTITIES SPECIFICALLY WILL NOT BE LIABLE FOR ANY INDIRECT,\r\n\t\t\t\t\t\t\t\t\tINCIDENTAL, CONSEQUENTIAL, SPECIAL, OR EXEMPLARY DAMAGES, LOSS OF PROFITS,\r\n\t\t\t\t\t\t\t\t\tBUSINESS INTERRUPTION, REPUTATIONAL HARM, OR LOSS OF DATA (EVEN IF WE HAVE\r\n\t\t\t\t\t\t\t\t\tBEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR SUCH DAMAGES ARE\r\n\t\t\t\t\t\t\t\t\tFORESEEABLE) ARISING OUT OF OR IN ANY WAY CONNECTED WITH YOUR USE OF, OR\r\n\t\t\t\t\t\t\t\t\tINABILITY TO USE, THE YOLOMEAL PLATFORM.\r\n\t\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\tf. YOUR SOLE REMEDY FOR DISSATISFACTION WITH THE YOLOMEAL PLATFORM IS TO\r\n\t\t\t\t\t\t\t\t\tSTOP USING THE YOLOMEAL PLATFORM.\r\n\t\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\tg. WITHOUT LIMITING THE FOREGOING, YOLOMEAL’S MAXIMUM AGGREGATE LIABILITY\r\n\t\t\t\t\t\t\t\t\tTO YOU FOR LOSSES OR DAMAGES THAT YOU SUFFER IN CONNECTION WITH THE\r\n\t\t\t\t\t\t\t\t\tYOLOMEAL PLATFORM OR THIS AGREEMENT IS LIMITED TO THE AMOUNT PAID TO\r\n\t\t\t\t\t\t\t\t\tYOLOMEAL IN CONNECTION WITH THE YOLOMEAL PLATFORM IN THE TWELVE (12) MONTHS\r\n\t\t\t\t\t\t\t\t\tPRIOR TO THE ACTION GIVING RISE TO LIABILITY.\r\n\t\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\th. SOME JURISDICTIONS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR\r\n\t\t\t\t\t\t\t\t\tEXCLUSION OF LIABILITY FOR CERTAIN TYPES OF DAMAGES. AS A RESULT, THE ABOVE\r\n\t\t\t\t\t\t\t\t\tLIMITATIONS OR EXCLUSIONS MAY NOT APPLY TO YOU IN WHOLE OR IN PART, AND THE\r\n\t\t\t\t\t\t\t\t\tFOREGOING SECTIONS 8(c), 8(d), AND 8(e) WILL NOT APPLY TO A RESIDENT OF NEW\r\n\t\t\t\t\t\t\t\t\tJERSEY, TO THE EXTENT DAMAGES TO SUCH NEW JERSEY RESIDENT ARE THE RESULT OF\r\n\t\t\t\t\t\t\t\t\tYOLOMEAL’S NEGLIGENT, FRAUDULENT, RECKLESS, OR INTENTIONAL MISCONDUCT.\r\n\t\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\t8. Indemnification\r\n\t\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\tYou agree to release, indemnify, and defend Yolomeal Entities from all\r\n\t\t\t\t\t\t\t\t\tthird-party claims and costs (including reasonable attorneys’ fees) arising\r\n\t\t\t\t\t\t\t\t\tout of or related to: i) your use of the Yolomeal Platform, ii) Your\r\n\t\t\t\t\t\t\t\t\tContent, iii) your conduct or interactions with other users of the Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform, or iv) your breach of any part of this Agreement. We will\r\n\t\t\t\t\t\t\t\t\tpromptly notify you of any such claim and will provide you (at your\r\n\t\t\t\t\t\t\t\t\texpense) with reasonable assistance in defending the claim. You will allow\r\n\t\t\t\t\t\t\t\t\tus to participate in the defense and will not settle any such claim without\r\n\t\t\t\t\t\t\t\t\tour prior written consent. We reserve the right, at our own expense, to\r\n\t\t\t\t\t\t\t\t\tassume the exclusive defense of any matter otherwise subject to\r\n\t\t\t\t\t\t\t\t\tindemnification by you. In that event, you will have no further obligation\r\n\t\t\t\t\t\t\t\t\tto defend us in that matter.\r\n\t\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\t9.\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\tLegal Disputes and Arbitration Agreement for users in the United States\r\n\t\t\t\t\t\t\t\t\t\t\tand Canada\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\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\tPlease Read the Following Clause Carefully – It May Significantly Affect\r\n\t\t\t\t\t\t\t\t\tYour Legal Rights, Including Your Right to File a Lawsuit in Court\r\n\t\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\ta. Initial Dispute Resolution. We are available by email\r\n\t\t\t\t\t\t\t\t\tat info@yolomeal.com to address any\r\n\t\t\t\t\t\t\t\t\tconcerns you may have regarding your use of the Yolomeal Platform. Most\r\n\t\t\t\t\t\t\t\t\tconcerns may be quickly resolved in this manner. The parties agree to use\r\n\t\t\t\t\t\t\t\t\tbest efforts to settle any dispute, claim, question, or disagreement\r\n\t\t\t\t\t\t\t\t\tdirectly through consultation and good faith negotiations with us, before\r\n\t\t\t\t\t\t\t\t\tinitiating a lawsuit or arbitration.\r\n\t\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\tb. Agreement to Binding Arbitration. If an agreed upon\r\n\t\t\t\t\t\t\t\t\tsolution is not reached through informal dispute resolution as outlined\r\n\t\t\t\t\t\t\t\t\tabove within a period of thirty (30) days pursuant to the initial dispute\r\n\t\t\t\t\t\t\t\t\tresolution procedure provided in Section 10(a) above, then either party may\r\n\t\t\t\t\t\t\t\t\tinitiate binding arbitration to formally resolve claims, subject to the\r\n\t\t\t\t\t\t\t\t\tterms and exclusion set forth below. All claims arising out of or relating\r\n\t\t\t\t\t\t\t\t\tto these Terms of Service (including their formation, performance, and\r\n\t\t\t\t\t\t\t\t\tbreach), the parties’ relationship with each other, and/or your use of the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform will be finally settled by binding arbitration\r\n\t\t\t\t\t\t\t\t\tadministered by AAA, in accordance with the AAA Consumer Arbitration Rules,\r\n\t\t\t\t\t\t\t\t\texcluding any rules or procedures governing or permitting class actions.\r\n\t\t\t\t\t\t\t\t\tEach party will have the right to use legal counsel in connection with\r\n\t\t\t\t\t\t\t\t\tarbitration at its own expense. The parties will select a single neutral\r\n\t\t\t\t\t\t\t\t\tarbitrator in accordance with the AAA Consumer Arbitration Rules. The\r\n\t\t\t\t\t\t\t\t\tarbitrator, and not any federal, state or local court or agency, will have\r\n\t\t\t\t\t\t\t\t\texclusive authority to resolve all disputes arising out of or relating to\r\n\t\t\t\t\t\t\t\t\tthe interpretation, applicability, enforceability, or formation of these\r\n\t\t\t\t\t\t\t\t\tTerms of Service, including, but not limited to, any claim that all or any\r\n\t\t\t\t\t\t\t\t\tpart of these Terms of Service is void or voidable. Either party may elect\r\n\t\t\t\t\t\t\t\t\tto appear at the arbitration by phone or, if mutually agreed, to conduct it\r\n\t\t\t\t\t\t\t\t\tonline, in lieu of appearing live. The arbitrator will be empowered to\r\n\t\t\t\t\t\t\t\t\tgrant whatever relief would be available in a court under law or in equity.\r\n\t\t\t\t\t\t\t\t\tThe arbitrator’s award will be in writing and provide a statement of the\r\n\t\t\t\t\t\t\t\t\tessential findings and conclusions, will be binding on the parties and may\r\n\t\t\t\t\t\t\t\t\tbe entered as a judgment in any court of competent jurisdiction. The\r\n\t\t\t\t\t\t\t\t\tinterpretation and enforcement of these Terms of Service will be subject to\r\n\t\t\t\t\t\t\t\t\tthe Federal Arbitration Act.\r\n\t\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\tc. Rules. The AAA rules governing the arbitration may be\r\n\t\t\t\t\t\t\t\t\taccessed at https://www.adr.org/. Each party will be responsible for\r\n\t\t\t\t\t\t\t\t\tits arbitration fees as set forth in the AAA Consumer Arbitration Rules.\r\n\t\t\t\t\t\t\t\t\tYou will not be required to pay fees and costs incurred by us if you do not\r\n\t\t\t\t\t\t\t\t\tprevail in arbitration. The parties understand that, absent this mandatory\r\n\t\t\t\t\t\t\t\t\tprovision, they would have the right to sue in court and have a jury trial.\r\n\t\t\t\t\t\t\t\t\tThey further understand that the right to discovery may be more limited in\r\n\t\t\t\t\t\t\t\t\tarbitration than in court.\r\n\t\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\td. Class Action and Class Arbitration Waiver. The parties\r\n\t\t\t\t\t\t\t\t\teach further agree that any arbitration will be conducted in our respective\r\n\t\t\t\t\t\t\t\t\tindividual capacities only and not as a class action or other\r\n\t\t\t\t\t\t\t\t\trepresentative action, and each expressly waives its respective right to\r\n\t\t\t\t\t\t\t\t\tfile a class action or seek relief on a class basis. If any court or\r\n\t\t\t\t\t\t\t\t\tarbitrator determines that the class action waiver set forth in this\r\n\t\t\t\t\t\t\t\t\tparagraph is void or unenforceable for any reason or that an arbitration\r\n\t\t\t\t\t\t\t\t\tcan proceed on a class basis, then the arbitration provision set forth\r\n\t\t\t\t\t\t\t\t\tabove in Section 10(b) will be deemed null and void in its entirety and the\r\n\t\t\t\t\t\t\t\t\tparties will be deemed to have not agreed to arbitrate disputes.\r\n\t\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\te. Exception: Small Claims Court Claims. Notwithstanding\r\n\t\t\t\t\t\t\t\t\tthe parties’ agreement to resolve all disputes through arbitration, either\r\n\t\t\t\t\t\t\t\t\tparty may seek relief in a small claims court for disputes or claims within\r\n\t\t\t\t\t\t\t\t\tthe scope of that court’s jurisdiction and on an individual (non-class)\r\n\t\t\t\t\t\t\t\t\tbasis only.\r\n\t\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\tf. Exception: Intellectual Property and Content Claims.\r\n\t\t\t\t\t\t\t\t\tNotwithstanding the parties’ agreement to resolve all disputes through\r\n\t\t\t\t\t\t\t\t\tarbitration, this binding arbitration section does not apply to disputes\r\n\t\t\t\t\t\t\t\t\trelating to either party’s intellectual property rights (trademark,\r\n\t\t\t\t\t\t\t\t\tcopyright, patent, and trade secret) or violations of Yolomeal’s Acceptable\r\n\t\t\t\t\t\t\t\t\tUse Policy. For further clarification, disputes relating to your privacy\r\n\t\t\t\t\t\t\t\t\trights are not excepted from this binding arbitration section.\r\n\t\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\tg. 30 Day Right to Opt-Out. You have the right to opt-out\r\n\t\t\t\t\t\t\t\t\tand not be bound by the arbitration and class action waiver provisions set\r\n\t\t\t\t\t\t\t\t\tforth in Sections 10(b) and 10(c) by sending written notice of your\r\n\t\t\t\t\t\t\t\t\tdecision to opt-out by emailing us at info@yolomeal.com. The notice\r\n\t\t\t\t\t\t\t\t\tmust be sent within thirty (30) days of registering to use the Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform, otherwise you will be bound to arbitrate disputes in accordance\r\n\t\t\t\t\t\t\t\t\twith the terms of those sections. If you opt out of these arbitration\r\n\t\t\t\t\t\t\t\t\tprovisions, we also will not be bound by them.\r\n\t\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\th. Exclusive Venue for Litigation. To the extent that the\r\n\t\t\t\t\t\t\t\t\tarbitration provisions set forth in Section 10(b) do not apply, or if you\r\n\t\t\t\t\t\t\t\t\thave opted out of arbitration, the parties agree that any litigation\r\n\t\t\t\t\t\t\t\t\tbetween them must be filed exclusively in state or federal courts located\r\n\t\t\t\t\t\t\t\t\tin Santa Clara County, California (except for small claims court actions\r\n\t\t\t\t\t\t\t\t\twhich may be brought in the county where you reside). The parties expressly\r\n\t\t\t\t\t\t\t\t\tconsent to exclusive jurisdiction in Santa Clara County, California for any\r\n\t\t\t\t\t\t\t\t\tlitigation other than small claims court actions. In the event of\r\n\t\t\t\t\t\t\t\t\tlitigation relating to these Terms of Service, the parties agree to waive,\r\n\t\t\t\t\t\t\t\t\tto the maximum extent permitted by law, any right to a jury trial, except\r\n\t\t\t\t\t\t\t\t\twhere a jury trial waiver is not permissible under applicable law.\r\n\t\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\t10. General Terms\r\n\t\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\ta. Changes to these Terms of Service. We may amend this\r\n\t\t\t\t\t\t\tAgreement (including any policies, such as thePrivacy Policy, Acceptable Use Policy, Copyright Policy, and Trademark Policy that\r\n\t\t\t\t\t\t\t\t\tare incorporated into this Agreement) at any time, in our sole discretion.\r\n\t\t\t\t\t\t\t\t\tIf we amend material terms to this Agreement, such amendment will be\r\n\t\t\t\t\t\t\t\t\teffective after we send you notice of the amended agreement. Such notice\r\n\t\t\t\t\t\t\t\t\twill be in our sole discretion, and the manner of notification could\r\n\t\t\t\t\t\t\t\t\tinclude, for example, via email, posted notice on the Yolomeal Platform, or\r\n\t\t\t\t\t\t\t\t\tother manner. Your failure to cancel your account, or cease use of the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform, after receiving notification of the amendment, will\r\n\t\t\t\t\t\t\t\t\tconstitute your acceptance of the amended terms. If you do not agree to the\r\n\t\t\t\t\t\t\t\t\tamendments or to any of the terms in this Agreement, your only remedy is to\r\n\t\t\t\t\t\t\t\t\tcancel your account or to cease use of the Yolomeal Platform.\r\n\t\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\tb. Use Outside of the United States. Yolomeal expressly\r\n\t\t\t\t\t\t\t\t\tdisclaims any representation or warranty that the Yolomeal Platform\r\n\t\t\t\t\t\t\t\t\tcomplies with all applicable laws and regulations outside of the United\r\n\t\t\t\t\t\t\t\t\tStates. If you use the Yolomeal Platform outside of the United States, you\r\n\t\t\t\t\t\t\t\t\texpressly understand and agree that you are responsible for determining\r\n\t\t\t\t\t\t\t\t\tcompliance with different laws, regulations, or customs that may apply in\r\n\t\t\t\t\t\t\t\t\tconnection with your use of the Yolomeal Platform.\r\n\t\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\tc. Export. The Yolomeal Platform is controlled and\r\n\t\t\t\t\t\t\t\t\toperated from our United States offices in California. Yolomeal software is\r\n\t\t\t\t\t\t\t\t\tsubject to United States export controls. No software for Yolomeal may be\r\n\t\t\t\t\t\t\t\t\tdownloaded or otherwise exported or re-exported in violation of any\r\n\t\t\t\t\t\t\t\t\tapplicable laws or regulations. You represent that you are not (1) located\r\n\t\t\t\t\t\t\t\t\tin a country that is subject to a U.S. government embargo, or that has been\r\n\t\t\t\t\t\t\t\t\tdesignated by the U.S. government as a “terrorist supporting” country, and\r\n\t\t\t\t\t\t\t\t\t(2) listed on any U.S. government list of prohibited or restricted parties.\r\n\t\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\td. Applications and Mobile Devices. If you access the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform through a Yolomeal application, you acknowledge that this\r\n\t\t\t\t\t\t\t\t\tAgreement is between you and Yolomeal only, and not with another\r\n\t\t\t\t\t\t\t\t\tapplication service provider or application platform provider (such as\r\n\t\t\t\t\t\t\t\t\tApple Inc. or Google Inc.), which may provide you the application subject\r\n\t\t\t\t\t\t\t\t\tto its own terms. To the extent you access the Yolomeal Platform through a\r\n\t\t\t\t\t\t\t\t\tmobile device, your wireless carrier’s standard charges, data rates, and\r\n\t\t\t\t\t\t\t\t\tother fees may apply.\r\n\t\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\te. Survival. The following provisions will survive\r\n\t\t\t\t\t\t\t\t\texpiration or termination of this Agreement: Section 2(e)(Termination),\r\n\t\t\t\t\t\t\t\t\t2(g)(Feedback), Section 3(Your Content), Section 4(a)-(b) and (d)-(f)(Our\r\n\t\t\t\t\t\t\t\t\tContent and Materials), Section 8 (Disclaimers and Limitation of\r\n\t\t\t\t\t\t\t\t\tLiability), Section 9 (Indemnification), Sections 10 (Legal Disputes and\r\n\t\t\t\t\t\t\t\t\tArbitration Agreement), and Section 11 (General Terms).\r\n\t\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\tf. Notice for California Users. Under California Civil\r\n\t\t\t\t\t\t\t\t\tCode Section 1789.3, California web users are entitled to the following\r\n\t\t\t\t\t\t\t\t\tspecific consumer rights notice: The Yolomeal Platform is provided by\r\n\t\t\t\t\t\t\t\t\tYolomeal, Inc., St. Paul, MN. If you have a question or complaint regarding\r\n\t\t\t\t\t\t\t\t\tthe Yolomeal Platform, please contact Yolomeal at info@yolomeal.com.\r\n\t\t\t\t\t\t\t\t\tCalifornia residents may reach the Department of Consumer Affairs Consumer\r\n\t\t\t\t\t\t\t\t\tInformation Division at 1625 N. Market Blvd., Suite S-202, Sacramento,\r\n\t\t\t\t\t\t\t\t\tCalifornia 95834, or by telephone at (916) 445-1254 or (800) 952-5210 or\r\n\t\t\t\t\t\t\t\t\tHearing Impaired at TDD (800) 326-2297 or TDD (916) 322-1700.\r\n\t\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\tg. Government End Users. Any Yolomeal software and related\r\n\t\t\t\t\t\t\t\t\tdocumentation are “Commercial Items,” as that term is defined at 48 C.F.R.\r\n\t\t\t\t\t\t\t\t\t§2.101, consisting of “Commercial Computer Software” and “Commercial\r\n\t\t\t\t\t\t\t\t\tComputer Software Documentation,” as such terms are used in 48 C.F.R.\r\n\t\t\t\t\t\t\t\t\t§12.212 or 48 C.F.R. §227.7202 (as applicable). Consistent with 48 C.F.R.\r\n\t\t\t\t\t\t\t\t\t§12.212 or 48 C.F.R. §227.7202-1 through 227.7202-4 (as applicable), the\r\n\t\t\t\t\t\t\t\t\tCommercial Computer Software and Commercial Computer Software Documentation\r\n\t\t\t\t\t\t\t\t\tare being licensed to U.S. government end users: (i) only as Commercial\r\n\t\t\t\t\t\t\t\t\tItems; and (ii) with only those rights as are granted to all other end\r\n\t\t\t\t\t\t\t\t\tusers pursuant to this Agreement.\r\n\t\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\th. Assignment. You may not assign or transfer this\r\n\t\t\t\t\t\t\t\t\tAgreement (or any of your rights or obligations under this Agreement)\r\n\t\t\t\t\t\t\t\t\twithout our prior written consent; any attempted assignment or transfer\r\n\t\t\t\t\t\t\t\t\twithout complying with the foregoing will be void. We may freely assign or\r\n\t\t\t\t\t\t\t\t\ttransfer this Agreement. This Agreement inures to the benefit of and is\r\n\t\t\t\t\t\t\t\t\tbinding upon the parties and their respective legal representatives,\r\n\t\t\t\t\t\t\t\t\tsuccessors, and assigns.\r\n\t\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\ti. Electronic Communications. You consent to receive\r\n\t\t\t\t\t\t\t\t\tcommunications from us by email in accordance with this Agreement and\r\n\t\t\t\t\t\t\t\t\tapplicable law. You acknowledge and agree that all agreements, notices,\r\n\t\t\t\t\t\t\t\t\tdisclosures and other communications that we provide to you electronically\r\n\t\t\t\t\t\t\t\t\twill satisfy any legal requirement that such communications be in writing.\r\n\t\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\tj. Entire Agreement/ Severability. This Agreement\r\n\t\t\t\t\t\t\t\t\tsupersedes all prior terms, agreements, discussions and writings regarding\r\n\t\t\t\t\t\t\t\t\tthe Yolomeal Platform and constitutes the entire agreement between you and\r\n\t\t\t\t\t\t\t\t\tus regarding the Yolomeal Platform (except as to services that require\r\n\t\t\t\t\t\t\t\t\tseparate written agreement with us, in addition to this Agreement). If any\r\n\t\t\t\t\t\t\t\t\tprovision in this Agreement is found to be unenforceable, then that\r\n\t\t\t\t\t\t\t\t\tprovision will not affect the enforceability of the remaining provisions of\r\n\t\t\t\t\t\t\t\t\tthe Agreement, which will remain in full force and effect.\r\n\t\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\tk. Interpretation. In construing or interpreting the terms\r\n\t\t\t\t\t\t\t\t\tof this Agreement: (i) the headings in this Agreement are for convenience\r\n\t\t\t\t\t\t\t\t\tonly, and are not to be considered, and (ii) no presumption is to operate\r\n\t\t\t\t\t\t\t\t\tin either party’s favor as a result of its counsel’s role in drafting this\r\n\t\t\t\t\t\t\t\t\tAgreement.\r\n\t\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\tl. Notices. All notices permitted or required under this\r\n\t\t\t\t\t\t\t\t\tAgreement, unless specified otherwise in this Agreement, must be sent in\r\n\t\t\t\t\t\t\t\t\twriting as follows in order to be valid: (i) if to you, by us via email to\r\n\t\t\t\t\t\t\t\t\tthe address associated with your account, and (ii) if to us, by you via\r\n\t\t\t\t\t\t\t\t\tlegal@yolomeal.com. Notices will be deemed given (a) if to you, when\r\n\t\t\t\t\t\t\t\t\temailed, and (b) if to us, on receipt by us.\r\n\t\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\tm. Relationship. This Agreement does not create a joint\r\n\t\t\t\t\t\t\t\t\tventure, agency, partnership, or other form of joint enterprise between you\r\n\t\t\t\t\t\t\t\t\tand us. Except as expressly provided herein, neither party has the right,\r\n\t\t\t\t\t\t\t\t\tpower, or authority to create any obligation or duty, express or implied,\r\n\t\t\t\t\t\t\t\t\ton behalf of the other.\r\n\t\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\tn. Waiver. No waiver of any terms will be deemed a further\r\n\t\t\t\t\t\t\t\t\tor continuing waiver of such term or any other term. Our failure to assert\r\n\t\t\t\t\t\t\t\t\ta right or provision under this Agreement will not constitute a waiver of\r\n\t\t\t\t\t\t\t\t\tsuch right or provision.\r\n\t\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\to. Further Assurances. You agree to execute a hard copy of\r\n\t\t\t\t\t\t\t\t\tthis Agreement and any other documents, and to take any actions at our\r\n\t\t\t\t\t\t\t\t\texpense that we may request to confirm and effect the intent of this\r\n\t\t\t\t\t\t\t\t\tAgreement and any of your rights or obligations under this Agreement.\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\tp. Contact. Feel free to contact us through info@yolomeal.com with any questions about these terms. Yolomeal is\r\n\t\t\t\t\t\t\t\t\ta Delaware corporation.\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
    \r\n\t);\r\n}\r\n\r\nexport default TermsPage;","import React from 'react';\r\nimport MenuBar from '../components/Menubar';\r\n\r\ntype Props = { \r\n\tuser: any\r\n};\r\n\r\nconst PolicyPage: React.FC = (props) => {\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\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t

    YOLO MEAL PRIVACY POLICY

    \r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\tYolomeal.com recognizes that your privacy is very important, and we take it\r\n\t\t\t\t\t\t\t\t\tseriously. This Privacy Policy (“Privacy Policy”) describes our policies\r\n\t\t\t\t\t\t\t\t\tand procedures on the collection, use, disclosure, and sharing of your\r\n\t\t\t\t\t\t\t\t\tpersonal information when you use the Yolomeal Platform.\r\n\t\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\tThis Privacy Policy applies to activities by Yolomeal, Inc. and its\r\n\t\t\t\t\t\t\t\t\taffiliates and subsidiaries (collectively “Yolomeal,” “we” or “us”).\r\n\t\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\tNotice for California Residents. \r\n\t\t\t\t\t\t\t\t\tIf you are a California resident, please see the section below titled\r\n\t\t\t\t\t\t\t\t\tAdditional Information for California Residents.\r\n\t\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\tThe Information We Collect. \r\n\t\t\t\t\t\t\t\t\tWe collect information directly from individuals, from third parties, and\r\n\t\t\t\t\t\t\t\t\tautomatically through the Yolomeal Platform.\r\n\t\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\tAccount and Profile Information. \r\n\t\t\t\t\t\t\t\t\tWhen you create an account and profile on the Yolomeal Platform, we\r\n\t\t\t\t\t\t\t\t\tcollect your name, contact information, demographic information, and other\r\n\t\t\t\t\t\t\t\t\tinformation you provide, such as topics that you know about or find\r\n\t\t\t\t\t\t\t\t\tinteresting. Your name, photo, and any other information that you choose to\r\n\t\t\t\t\t\t\t\t\tadd to your public-facing profile will be available for viewing by the\r\n\t\t\t\t\t\t\t\t\tpublic and other users of the Yolomeal Platform. Once you create a profile,\r\n\t\t\t\t\t\t\t\t\tothers will be able to see in your profile certain information about your\r\n\t\t\t\t\t\t\t\t\tactivity on the Yolomeal Platform, such as the favorite foods you posted,\r\n\t\t\t\t\t\t\t\t\tyour followers and who you follow.\r\n\t\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\tYour Content. \r\n\t\t\t\t\t\t\t\t\tWe collect the information and content that you post to the Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform, including your photos and comments. Your content is publicly\r\n\t\t\t\t\t\t\t\t\tviewable on the Yolomeal Platform, along with your name. This also may be\r\n\t\t\t\t\t\t\t\t\tindexed by search engines and be republished elsewhere on the Internet in\r\n\t\t\t\t\t\t\t\t\taccordance with our Terms of Service.\r\n\t\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\tCommunications. \r\n\t\t\t\t\t\t\t\t\tWhen you communicate with us (via email, through the Yolomeal Platform,\r\n\t\t\t\t\t\t\t\t\tor otherwise), we may maintain a record of your communication.\r\n\t\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\tIntegrated Service Provider and Linked Networks. \r\n\t\t\t\t\t\t\t\t\tYou can connect your existing Yolomeal account with certain third-party\r\n\t\t\t\t\t\t\t\t\tnetworks like Twitter or Google, for example (each a “Linked Network”). You\r\n\t\t\t\t\t\t\t\t\tcan also elect to sign in or sign up to the Yolomeal Platform through a\r\n\t\t\t\t\t\t\t\t\tLinked Network. If you elect to sign up through or connect a Linked\r\n\t\t\t\t\t\t\t\t\tNetwork, we receive certain profile and account information about you from\r\n\t\t\t\t\t\t\t\t\tthe Linked Network. These Linked Networks may also appear in your profile,\r\n\t\t\t\t\t\t\t\t\tso that people can find you on these Linked Networks. The specific\r\n\t\t\t\t\t\t\t\t\tinformation provided to us by Linked Networks is determined by you and such\r\n\t\t\t\t\t\t\t\t\tLinked Networks and may vary by network. In all cases, the permissions page\r\n\t\t\t\t\t\t\t\t\tfor the Linked Network will describe the information being shared. You\r\n\t\t\t\t\t\t\t\t\tshould consult their respective privacy policies for information about\r\n\t\t\t\t\t\t\t\t\ttheir practices. You may elect to use information from the Linked Network\r\n\t\t\t\t\t\t\t\t\tto populate your profile on the Yolomeal Platform or to import your\r\n\t\t\t\t\t\t\t\t\tcontacts to help you find and connect with them on the Yolomeal Platform or\r\n\t\t\t\t\t\t\t\t\tto invite them to join. For information on your choices, including how to\r\n\t\t\t\t\t\t\t\t\tdisconnect a Linked Network from your Yolomeal profile, see the Your\r\n\t\t\t\t\t\t\t\t\tChoices section below. You may also elect to connect and make and receive\r\n\t\t\t\t\t\t\t\t\tpayments to and from use through third-party networks (“Integrated Service\r\n\t\t\t\t\t\t\t\t\tProvider”); if you do so, you will be allowing us to pass to and receive\r\n\t\t\t\t\t\t\t\t\tfrom the Integrated Service Provider your login information and other user\r\n\t\t\t\t\t\t\t\t\tdata for payment purposes.\r\n\t\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\t Automatically Collected Information About Your Activity. \r\n\t\t\t\t\t\t\t\t\tWe use cookies, log files, pixel tags, local storage objects, and other\r\n\t\t\t\t\t\t\t\t\ttracking technologies to automatically collect information about your\r\n\t\t\t\t\t\t\t\t\tactivities, such as your searches, page views, date and time of your visit,\r\n\t\t\t\t\t\t\t\t\tand other information about your use of the Yolomeal Platform. We also\r\n\t\t\t\t\t\t\t\t\tcollect information that your computer or mobile device provides to us in\r\n\t\t\t\t\t\t\t\t\tconnection with your use of the Yolomeal Platform such as your browser\r\n\t\t\t\t\t\t\t\t\ttype, type of computer or mobile device, browser language, IP address,\r\n\t\t\t\t\t\t\t\t\tmobile carrier, unique device identifier, location, and requested and\r\n\t\t\t\t\t\t\t\t\treferring URLs. We also receive information when you view content on or\r\n\t\t\t\t\t\t\t\t\totherwise interact with the Yolomeal Platform, even if you have not created\r\n\t\t\t\t\t\t\t\t\tan account. For more information, see the “Cookies, Pixels and Tracking”\r\n\t\t\t\t\t\t\t\t\tsection below and our Cookie Policy.\r\n\t\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\t Engagement. \r\n\t\t\t\t\t\t\t\t\tWe collect browsing information – such as IP address and location, date\r\n\t\t\t\t\t\t\t\t\tand time stamp, user agent, Yolomeal cookie ID (if applicable), URL, unique\r\n\t\t\t\t\t\t\t\t\tadvertising or content identifiers (if applicable) and time zone, and other\r\n\t\t\t\t\t\t\t\t\tinformation about user activities on the Yolomeal Platform, as well as on\r\n\t\t\t\t\t\t\t\t\tthird-party sites and services that have embedded our Yolomeal pixels\r\n\t\t\t\t\t\t\t\t\t(“Pixels”), widgets, plug-ins, buttons, or related services. See the\r\n\t\t\t\t\t\t\t\t\tsection below about Yolomeal Ads and Personalization for more detailed\r\n\t\t\t\t\t\t\t\t\tinformation about how our Pixels may be used by publishers or users of our\r\n\t\t\t\t\t\t\t\t\tadvertising services (“Ad Services”) on the Yolomeal Platform to enable\r\n\t\t\t\t\t\t\t\t\tpersonalization, as well as your choices related to advertising and\r\n\t\t\t\t\t\t\t\t\tpersonalization. We may also receive information about you from third\r\n\t\t\t\t\t\t\t\t\tparties, such as other users, partners (including ad partners), or our\r\n\t\t\t\t\t\t\t\t\taffiliated companies.\r\n\t\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\tHow We Use Your Information. \r\n\t\t\t\t\t\t\t\t\tWe do not sell your personal information – such as your name and contact\r\n\t\t\t\t\t\t\t\t\tinformation – to third parties to use for their own marketing purposes.\r\n\t\t\t\t\t\t\t\t\tYolomeal uses the information we collect for the following purposes:\r\n\t\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\t
    • \r\n\t\t\t\t\t\t\t\tProvide our Services. To provide you the services we offer on the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform and make the Yolomeal Platform available to the public,\r\n\t\t\t\t\t\t\t\t\tcommunicate with you about your use of the Yolomeal Platform, respond to\r\n\t\t\t\t\t\t\t\t\tyour inquiries, provide troubleshooting, and for other customer service\r\n\t\t\t\t\t\t\t\t\tpurposes.\r\n\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\tPersonalization. To tailor the content and information that we may send\r\n\t\t\t\t\t\t\t\t\tor display to you in the Yolomeal Platform, to suggest followers and\r\n\t\t\t\t\t\t\t\t\tcontent, to help others find your profile, to offer location customization,\r\n\t\t\t\t\t\t\t\t\tand personalized help and instructions, and to otherwise personalize your\r\n\t\t\t\t\t\t\t\t\texperiences while using the Yolomeal Platform.\r\n\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\tAdvertising. To display interest-based advertising to you in the Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform, to improve our advertising and measurement systems so we can show\r\n\t\t\t\t\t\t\t\t\tyou relevant ads, to pre-fill forms in ads, and to measure the\r\n\t\t\t\t\t\t\t\t\teffectiveness and reach of ads and services. For more information, see the\r\n\t\t\t\t\t\t\t\t\tAd Services section below about Yolomeal Ads and Personalization.\r\n\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\tMarketing and Promotions. For marketing and promotional purposes, such as\r\n\t\t\t\t\t\t\t\t\tto send you news and newsletters, special offers, and promotions, or to\r\n\t\t\t\t\t\t\t\t\totherwise contact you about products or information we think may interest\r\n\t\t\t\t\t\t\t\t\tyou, including information about third-party products and services.\r\n\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\tAnalytics. To gather metrics to better understand how users access and\r\n\t\t\t\t\t\t\t\t\tuse the Yolomeal Platform; to evaluate and improve the Yolomeal Platform,\r\n\t\t\t\t\t\t\t\t\tincluding the Ad Services and personalization, and to develop new products\r\n\t\t\t\t\t\t\t\t\tand services.\r\n\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\tComply with Law. To comply with legal obligations, as part of our general\r\n\t\t\t\t\t\t\t\t\tbusiness operations, and for other business administration purposes.\r\n\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\tPrevent Misuse. Where we believe necessary to investigate, prevent or\r\n\t\t\t\t\t\t\t\t\ttake action regarding illegal activities, suspected fraud, situations\r\n\t\t\t\t\t\t\t\t\tinvolving potential threats to the safety of any person or violations of\r\n\t\t\t\t\t\t\t\t\tour Terms of Service or this Privacy Policy.\r\n\t\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\t

    \r\n\t\t\t\t\t\t\t\t\tHow We Share Your Information \r\n\t\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\tWe share information as set forth below, and where individuals have\r\n\t\t\t\t\t\t\t\t\totherwise consented:\r\n\t\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\t
    • \r\n\t\t\t\t\t\t\t\t\tService Providers. \r\n\t\t\t\t\t\t\t\t\tWe may share your information with third-party service providers who use\r\n\t\t\t\t\t\t\t\t\tthis information to perform services for us, such as payment processors,\r\n\t\t\t\t\t\t\t\t\thosting providers, auditors, advisors, consultants, customer service and\r\n\t\t\t\t\t\t\t\t\tsupport providers, as well as those who assist us in providing the Ad\r\n\t\t\t\t\t\t\t\t\tServices.\r\n\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\tAffiliates. \r\n\t\t\t\t\t\t\t\t\tThe information collected about you may be accessed by or shared with\r\n\t\t\t\t\t\t\t\t\tsubsidiaries and affiliates of Yolomeal, Inc., whose use and disclosure of\r\n\t\t\t\t\t\t\t\t\tyour personal information is subject to this Privacy Policy.\r\n\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\tBusiness Transfers. \r\n\t\t\t\t\t\t\t\t\tWe may disclose or transfer information, including personal information,\r\n\t\t\t\t\t\t\t\t\tas part of any merger, sale, and transfer of our assets, acquisition or\r\n\t\t\t\t\t\t\t\t\trestructuring of all or part of our business, bankruptcy, or similar event.\r\n\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\tLegally Required. \r\n\t\t\t\t\t\t\t\t\tWe may disclose your information if we are required to do so by law.\r\n\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\tProtection of Rights. \r\n\t\t\t\t\t\t\t\t\tWe may disclose information where we believe it necessary to respond to\r\n\t\t\t\t\t\t\t\t\tclaims asserted against us or, comply with legal process (e.g., subpoenas\r\n\t\t\t\t\t\t\t\t\tor warrants), enforce or administer our agreements and terms, for fraud\r\n\t\t\t\t\t\t\t\t\tprevention, risk assessment, investigation, and protect the rights,\r\n\t\t\t\t\t\t\t\t\tproperty or safety of Yolomeal, its users, or others.\r\n\t\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\t

    \r\n\t\t\t\t\t\t\t\t\tYour Content and Public Information. \r\n\t\t\t\t\t\t\t\t\tYour content, including your name, profile picture, profile information,\r\n\t\t\t\t\t\t\t\t\tand certain associated activity information is available to other users of\r\n\t\t\t\t\t\t\t\t\tthe Yolomeal Platform and may also be viewed publicly. Public viewing\r\n\t\t\t\t\t\t\t\t\tincludes availability to non-registered visitors and can occur when users\r\n\t\t\t\t\t\t\t\t\tshare your content across other sites or services. In addition, your\r\n\t\t\t\t\t\t\t\t\tcontent may be indexed by search engines. In some cases, we may charge for\r\n\t\t\t\t\t\t\t\t\taccess to your content and public information on the Yolomeal Platform. See\r\n\t\t\t\t\t\t\t\t\tthe section below about Your Choices for information about how you may\r\n\t\t\t\t\t\t\t\t\tchange how certain information is shared or viewed by others.\r\n\t\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\tMetrics. \r\n\t\t\t\t\t\t\t\t\tWe may share with our advertisers or publishers aggregate statistics,\r\n\t\t\t\t\t\t\t\t\tmetrics and other reports about the performance of their ads or content in\r\n\t\t\t\t\t\t\t\t\tthe Yolomeal Platform such as the number of unique user views, demographics\r\n\t\t\t\t\t\t\t\t\tabout the users who saw their ads or content, conversion rates, and date\r\n\t\t\t\t\t\t\t\t\tand time information. We do not share IP addresses or personal information,\r\n\t\t\t\t\t\t\t\t\tbut certain features may allow you to share your personal information with\r\n\t\t\t\t\t\t\t\t\tadvertisers on our platform if you choose to do so. We may also allow our\r\n\t\t\t\t\t\t\t\t\tadvertisers or publishers to use Pixels on the Yolomeal Platform in order\r\n\t\t\t\t\t\t\t\t\tto collect information about the performance of their ads or content.\r\n\t\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\tAnonymized and Aggregated Data. \r\n\t\t\t\t\t\t\t\t\tWe may share aggregated or de-identified information with third parties\r\n\t\t\t\t\t\t\t\t\tfor research, marketing, analytics and other purposes, provided such\r\n\t\t\t\t\t\t\t\t\tinformation does not identify a particular individual.\r\n\t\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\tAs Directed by You. \r\n\t\t\t\t\t\t\t\t\tWe may also share data as otherwise directed by you (for example, to\r\n\t\t\t\t\t\t\t\t\tfulfill a transaction).\r\n\t\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\tCookies, Pixels and Tracking. \r\n\t\t\t\t\t\t\t\t\tWe and our third-party providers use cookies, clear GIFs/pixel tags,\r\n\t\t\t\t\t\t\t\t\tJavaScript, local storage, log files, and other mechanisms to automatically\r\n\t\t\t\t\t\t\t\t\tcollect and record information about your usage and browsing activities on\r\n\t\t\t\t\t\t\t\t\tthe Yolomeal Platform and across third-party sites or online services. We\r\n\t\t\t\t\t\t\t\t\tmay combine this information with other information we collect about users.\r\n\t\t\t\t\t\t\t\t\tBelow, we provide a brief summary of these activities:\r\n\t\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\t
    • \r\n\t\t\t\t\t\t\t\t\t\t\tCookies. \r\n\t\t\t\t\t\t\t\t\t\t\tThese are small files with a unique identifier that are transferred\r\n\t\t\t\t\t\t\t\t\t\t\tto your browser through our websites. They allow us to remember users\r\n\t\t\t\t\t\t\t\t\t\t\twho are logged in, to understand how users navigate through and use the\r\n\t\t\t\t\t\t\t\t\t\t\tYolomeal Platform, and to display personalized content and targeted ads\r\n\t\t\t\t\t\t\t\t\t\t\t(including on third-party sites and applications).\r\n\t\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\t\tPixels, web beacons, clear GIFs. \r\n\t\t\t\t\t\t\t\t\t\t\tThese are tiny graphics with a unique identifier, similar in function\r\n\t\t\t\t\t\t\t\t\t\t\tto cookies, which we use to track the online movements of users of the\r\n\t\t\t\t\t\t\t\t\t\t\tYolomeal Platform and the web pages of users of our Ad Services, and to\r\n\t\t\t\t\t\t\t\t\t\t\tpersonalize content. We also use these in our emails to let us know\r\n\t\t\t\t\t\t\t\t\t\t\twhen they have been opened or forwarded, so we can gauge the\r\n\t\t\t\t\t\t\t\t\t\t\teffectiveness of our communications.\r\n\t\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\t\tAnalytics Tools. \r\n\t\t\t\t\t\t\t\t\t\tWe may use internal and third-party analytics tools, including Google Analytics. The third-party analytics companies we work\r\n\t\t\t\t\t\t\t\t\t\t\twith may combine the information collected with other information they\r\n\t\t\t\t\t\t\t\t\t\t\thave independently collected from other websites and/or other online\r\n\t\t\t\t\t\t\t\t\t\t\tproducts and services. Their collection and use of information is\r\n\t\t\t\t\t\t\t\t\t\t\tsubject to their own privacy policies.\r\n\t\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\t

    \r\n\t\t\t\t\t\t\t\t\tDo-Not-Track Signals. \r\n\t\t\t\t\t\t\t\t\tPlease note we do not change system behavior within the Yolomeal Platform\r\n\t\t\t\t\t\t\t\t\tin response to browser requests not to be tracked. You may, however,\r\n\t\t\t\t\t\t\t\t\tdisable certain tracking by third parties as discussed in the Yolomeal Ads\r\n\t\t\t\t\t\t\t\t\tand Personalization section below. You may also opt out of tracking by\r\n\t\t\t\t\t\t\t\t\tYolomeal Pixels, as described below in Yolomeal Ads and Personalization.\r\n\t\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\tYolomeal Ads and Personalization. \r\n\t\t\t\t\t\t\t\t\tWe may display personalized content (including from third-party content\r\n\t\t\t\t\t\t\t\t\tpublishers) and personalized ads (including sponsored content), based on\r\n\t\t\t\t\t\t\t\t\tinformation that we have collected via the Yolomeal Platform, and through\r\n\t\t\t\t\t\t\t\t\tour Pixels, widgets, and buttons embedded on third-party sites. We also may\r\n\t\t\t\t\t\t\t\t\treport aggregated or de-identified information about the number of users\r\n\t\t\t\t\t\t\t\t\tthat saw a particular ad or content and related audience engagement\r\n\t\t\t\t\t\t\t\t\tinformation to users of our Ad Services and to publishers of content on the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform.\r\n\t\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\tAdvertisers who use our Ad Services may also provide us with information as\r\n\t\t\t\t\t\t\t\t\tpart of their ad campaigns, including customer information (e.g., email\r\n\t\t\t\t\t\t\t\t\taddresses, phone numbers, or other contact information, demographic or\r\n\t\t\t\t\t\t\t\t\tinterest data) in order to create custom audiences for personalizing their\r\n\t\t\t\t\t\t\t\t\tad campaigns or for measuring the effectiveness of their ads; we only use\r\n\t\t\t\t\t\t\t\t\tthis information to facilitate the particular advertiser’s campaign\r\n\t\t\t\t\t\t\t\t\t(including ad metrics and reporting to that advertiser); and we do not\r\n\t\t\t\t\t\t\t\t\tdisclose this information to third parties (other than our service\r\n\t\t\t\t\t\t\t\t\tproviders) unless required by law. We also do not disclose to the\r\n\t\t\t\t\t\t\t\t\tadvertisers who use our Ad Services the names or contact information of\r\n\t\t\t\t\t\t\t\t\ttheir customers that were successfully reached as part of such campaigns\r\n\t\t\t\t\t\t\t\t\twithout those customers’ consent.\r\n\t\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\tThird-Party Ads on Yolomeal. \r\n\t\t\t\t\t\t\t\t\tAs described in our Cookie Policy we may also work with third parties such\r\n\t\t\t\t\t\t\t\t\tas network advertisers to serve ads on the Yolomeal Platform and on\r\n\t\t\t\t\t\t\t\t\tthird-party websites or other media (e.g., social networking platforms),\r\n\t\t\t\t\t\t\t\t\tsuch as Google AdSense and Facebook Audience Network. These third parties\r\n\t\t\t\t\t\t\t\t\tmay use cookies, JavaScript, web beacons (including clear GIFs), Flash LSOs\r\n\t\t\t\t\t\t\t\t\tand other tracking technologies to measure the effectiveness of their ads\r\n\t\t\t\t\t\t\t\t\tand to personalize advertising content to you.\r\n\t\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\tIn addition to opting out of tracking across sites by our Pixels (see Your\r\n\t\t\t\t\t\t\t\t\tChoices section below), you also may opt out of much interest-based\r\n\t\t\t\t\t\t\t\t\tadvertising on third-party sites and through third-party ad networks\r\n\t\t\t\t\t\t\t\t\t(including Facebook Audience Network and Google AdSense). See Your Choices\r\n\t\t\t\t\t\t\t\t\tsection below for more information about opting out of third-party ad\r\n\t\t\t\t\t\t\t\t\tnetworks.\r\n\t\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\tHow We Protect Your Information. \r\n\t\t\t\t\t\t\t\t\tThe security of your information is important to us. Yolomeal has\r\n\t\t\t\t\t\t\t\t\timplemented safeguards to protect the information we collect. However, no\r\n\t\t\t\t\t\t\t\t\twebsite or Internet transmission is completely secure. We urge you to take\r\n\t\t\t\t\t\t\t\t\tsteps to keep your personal information safe, such as choosing a strong\r\n\t\t\t\t\t\t\t\t\tpassword and keeping it private, as well as logging out of your user\r\n\t\t\t\t\t\t\t\t\taccount, and closing your web browser when finished using the Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform on a shared or unsecured device.\r\n\t\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\tAccess and Amend Your Information. \r\n\t\t\t\t\t\t\t\t\tYou may update or correct your account information at any time by logging\r\n\t\t\t\t\t\t\t\t\tin to your account. You may also make a number of other adjustments to\r\n\t\t\t\t\t\t\t\t\tsettings or the display of information about you as described in more\r\n\t\t\t\t\t\t\t\t\tdetail in the following section about Your Choices.\r\n\t\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\tYour Choices. \r\n\t\t\t\t\t\t\t\t\tYou may, of course, decline to submit information through the Yolomeal\r\n\t\t\t\t\t\t\t\t\tPlatform, in which case we may not be able to provide certain services to\r\n\t\t\t\t\t\t\t\t\tyou. You may also control the types of notifications and communications we\r\n\t\t\t\t\t\t\t\t\tsend, limit the information shared within the Yolomeal Platform about you,\r\n\t\t\t\t\t\t\t\t\tand otherwise amend certain privacy settings. Here is some further\r\n\t\t\t\t\t\t\t\t\tinformation about some of your choices.\r\n\t\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\tYour Content. \r\n\t\t\t\t\t\t\t\t\tYou may edit or delete the Yolos that you post at any time. Any deleted\r\n\t\t\t\t\t\t\t\t\tcontent will be removed from third-party sites from which it has been\r\n\t\t\t\t\t\t\t\t\tshared via Yolomeal’s standard sharing features; however we have no control\r\n\t\t\t\t\t\t\t\t\tover deletions or changes to your content if it has been shared manually by\r\n\t\t\t\t\t\t\t\t\tothers.\r\n\t\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\tEmails and Notifications. \r\n\t\t\t\t\t\t\t\t\t. \r\n\t\t\t\t\t\t\t\t\tWhen you join the Yolomeal Platform by signing up for an account or\r\n\t\t\t\t\t\t\t\t\tcreating a profile, as part of the service, you will receive email digests\r\n\t\t\t\t\t\t\t\t\tcontaining content from the Yolomeal Platform that we believe may match\r\n\t\t\t\t\t\t\t\t\tyour interests. You may also receive notices about other content from the\r\n\t\t\t\t\t\t\t\t\tYolomeal Platform that may be of interest to you, such as people that you\r\n\t\t\t\t\t\t\t\t\tfollow or that match your interests. In addition, users may be able to send\r\n\t\t\t\t\t\t\t\t\tcommunications and invites to their imported contacts through their\r\n\t\t\t\t\t\t\t\t\tYolomeal account, by email, text, or phone. You can manage all your email\r\n\t\t\t\t\t\t\t\t\tand notice preferences in your account profile settings, under your Emails\r\n\t\t\t\t\t\t\t\t\tand Notifications settings. If you opt out of receiving emails or other\r\n\t\t\t\t\t\t\t\t\tnotifications about recommendations or other information we think may\r\n\t\t\t\t\t\t\t\t\tinterest you, we may still send you transactional emails about your account\r\n\t\t\t\t\t\t\t\t\tor any services you have requested or received from us.\r\n\t\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\tLinked Networks. \r\n\t\t\t\t\t\t\t\t\tYou may connect or disconnect your Linked Networks, such as Google, through\r\n\t\t\t\t\t\t\t\t\tthe Account Settings tab in your profile settings, and you may access,\r\n\t\t\t\t\t\t\t\t\tamend and delete much of your profile information through your profile\r\n\t\t\t\t\t\t\t\t\tsettings. Once you disconnect a Linked Network, we will not receive\r\n\t\t\t\t\t\t\t\t\tinformation from that Linked Network going forward unless you choose to\r\n\t\t\t\t\t\t\t\t\treconnect it. You may also control whether the Linked Network is visible in\r\n\t\t\t\t\t\t\t\t\tyour profile and, if you enable contact imports, how you message your\r\n\t\t\t\t\t\t\t\t\tcontacts to find and connect with you on the Yolomeal Platform.\r\n\t\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\tSecuring data. \r\n\t\t\t\t\t\t\t\t\tYolomeal is headquartered in the United States, and has operations,\r\n\t\t\t\t\t\t\t\t\tentities, and service providers in the United States and throughout the\r\n\t\t\t\t\t\t\t\t\tworld. As such, we and our service providers may transfer your personal\r\n\t\t\t\t\t\t\t\t\tinformation to, or access it in, jurisdictions (including the United\r\n\t\t\t\t\t\t\t\t\tStates) that may not provide equivalent levels of data protection as your\r\n\t\t\t\t\t\t\t\t\thome jurisdiction. We will take steps to ensure that your personal\r\n\t\t\t\t\t\t\t\t\tinformation receives an adequate level of protection in the jurisdictions\r\n\t\t\t\t\t\t\t\t\tin which we process it.\r\n\t\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\tChildren’s Privacy. \r\n\t\t\t\t\t\t\t\t\tWe do not knowingly collect or solicit personal information from anyone\r\n\t\t\t\t\t\t\t\t\tunder the age of 13 or knowingly allow such persons to register. If we\r\n\t\t\t\t\t\t\t\t\tbecome aware that we have collected personal information from a child under\r\n\t\t\t\t\t\t\t\t\tthe relevant age without parental consent, we take steps to delete that\r\n\t\t\t\t\t\t\t\t\tinformation.\r\n\t\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\tLinks to Other Websites. \r\n\t\t\t\t\t\t\t\t\tThe Yolomeal Platform may contain links to third-party sites or online\r\n\t\t\t\t\t\t\t\t\tservices. We are not responsible for the practices of such third parties,\r\n\t\t\t\t\t\t\t\t\twhose information practices are subject to their own policies and\r\n\t\t\t\t\t\t\t\t\tprocedures, not to this Privacy Policy.\r\n\t\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\tAdditional Information for California Residents. \r\n\t\t\t\t\t\t\t\t\tThis section provides information organized in accordance with the\r\n\t\t\t\t\t\t\t\t\tCalifornia Consumer Privacy Act (“CCPA”) for residents of California about\r\n\t\t\t\t\t\t\t\t\thow we handle certain personal information we have collected over the past\r\n\t\t\t\t\t\t\t\t\t12 months.\r\n\t\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\tCategories of Personal Information. \r\n\t\t\t\t\t\t\t\t\tThis Privacy Policy discloses the categories of personal information that\r\n\t\t\t\t\t\t\t\t\twe collect, use, and disclose in order to operate our business over the\r\n\t\t\t\t\t\t\t\t\tpast 12 months:\r\n\t\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\t
    • \r\n\t\t\t\t\t\t\t\t\t\t\tCollect. \r\n\t\t\t\t\t\t\t\t\tThe section above entitled The Information We Collect discloses the categories of\r\n\t\t\t\t\t\t\t\t\t\t\tpersonal information that we collect, which include your account and\r\n\t\t\t\t\t\t\t\t\t\t\tprofile information, your content, your communications with us, your\r\n\t\t\t\t\t\t\t\t\t\t\tinformation you provide from linked networks, information about your\r\n\t\t\t\t\t\t\t\t\t\t\tactivity on Yolomeal, and how you engage with Yolomeal.\r\n\t\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\t\tUse. \r\n\t\t\t\t\t\t\t\t\tThe section above entitled How We Use Your Information discloses the that the\r\n\t\t\t\t\t\t\t\t\t\t\tcategories of personal information we collect are used to provide our\r\n\t\t\t\t\t\t\t\t\t\t\tservices, for personalization, to provide advertising in order to\r\n\t\t\t\t\t\t\t\t\t\t\tgenerate income to operate Yolomeal, to promote our services to you, to\r\n\t\t\t\t\t\t\t\t\t\t\tanalyze how our services are used, to comply with law, and to prevent\r\n\t\t\t\t\t\t\t\t\t\t\tmisuse of Yolomeal.\r\n\t\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\t\tDisclose. \r\n\t\t\t\t\t\t\t\t\tThe section above entitled How We Share Your Information discloses that we share\r\n\t\t\t\t\t\t\t\t\t\t\tyour personal information with, service providers, affiliates, law\r\n\t\t\t\t\t\t\t\t\t\t\tenforcement authorities, and as needed with third parties to provide\r\n\t\t\t\t\t\t\t\t\t\t\tour services.\r\n\t\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\t

    \r\n\t\t\t\t\t\t\t\t\tWe do not sell your personal information to third parties. \r\n\t\t\t\t\t\t\t\t\tYolomeal may share your personal information with third parties and third\r\n\t\t\t\t\t\t\t\t\tparties may collect your personal information as described above in the How\r\n\t\t\t\t\t\t\t\t\tWe Share Your Information section. In addition, as described in our Cookie\r\n\t\t\t\t\t\t\t\t\tPolicy, we may also work with third parties such as network advertisers to\r\n\t\t\t\t\t\t\t\t\tserve ads on the Yolomeal Platform and on third-party websites or other\r\n\t\t\t\t\t\t\t\t\tmedia (e.g., social networking platforms), such as Google AdSense and\r\n\t\t\t\t\t\t\t\t\tFacebook Audience Network. These third parties may use cookies, JavaScript,\r\n\t\t\t\t\t\t\t\t\tweb beacons (including clear GIFs), Flash LSOs and other tracking\r\n\t\t\t\t\t\t\t\t\ttechnologies to measure the effectiveness of their ads and to personalize\r\n\t\t\t\t\t\t\t\t\tadvertising content to you.\r\n\t\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\tWe do not collect personal information from consumers that we know are\r\n\t\t\t\t\t\t\t\t\tyounger than 16 years old.\r\n\t\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\tRequests for Deletion, Copy and Right to Know Your Information. \r\n\t\t\t\t\t\t\t\t\tCalifornia consumers have the right to make the following requests, which\r\n\t\t\t\t\t\t\t\t\twe endeavor to honor from non-California residents as well:\r\n\t\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\t
    • \r\n\t\t\t\t\t\t\t\t\t\t\tDeletion. \r\n\t\t\t\t\t\t\t\t\t\t\tYou have the right to request deletion of personal information that\r\n\t\t\t\t\t\t\t\t\t\t\twe have collected about you.\r\n\t\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\t\tCopy and Right to Know. \r\n\t\t\t\t\t\t\t\t\t\t\tYou have the right to request a copy of the specific pieces of\r\n\t\t\t\t\t\t\t\t\t\t\tpersonal information that we have collected about you over the past 12\r\n\t\t\t\t\t\t\t\t\t\t\tmonths, including the categories of information, sources, and purposes\r\n\t\t\t\t\t\t\t\t\t\t\tof collection, as well as categories of third parties we have shared it\r\n\t\t\t\t\t\t\t\t\t\t\twith.\r\n\t\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\t\tDesignated Agent. \r\n\t\t\t\t\t\t\t\t\t\t\tYou may designate an agent to make a request on your behalf. That\r\n\t\t\t\t\t\t\t\t\t\t\tagent must have access to your account in order for us to verify the\r\n\t\t\t\t\t\t\t\t\t\t\trequest.\r\n\t\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\t

    \r\n\t\t\t\t\t\t\t\t\tYou may submit deletion, copy and right to know requests by emailing us at\r\n\t\t\t\t\t\t\t\t\tprivacy@yolomeal.com. You will need access to the email account associated\r\n\t\t\t\t\t\t\t\t\twith your Yolomeal account in order to verify your identity and complete\r\n\t\t\t\t\t\t\t\t\tthis process.\r\n\t\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\tNon-Discrimination. \r\n\t\t\t\t\t\t\t\t\tYolomeal will not discriminate against you, including by denying or\r\n\t\t\t\t\t\t\t\t\tproviding a different level or quality of goods or services should you\r\n\t\t\t\t\t\t\t\t\tchoose to exercise your options under the CCPA.\r\n\t\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\t Your California Privacy Rights under California’s Shine-the-Light\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tLaw. \r\n\t\t\t\t\t\t\t\t\tCalifornia law permits users who are California residents to request and\r\n\t\t\t\t\t\t\t\t\tobtain from us once a year, free of charge, a list of the third parties to\r\n\t\t\t\t\t\t\t\t\twhom we have disclosed their personal information (if any) for their direct\r\n\t\t\t\t\t\t\t\t\tmarketing purposes in the prior calendar year, as well as the types of\r\n\t\t\t\t\t\t\t\t\tpersonal information disclosed to those parties. If you are a California\r\n\t\t\t\t\t\t\t\t\tresident and would like to request this information, please submit your\r\n\t\t\t\t\t\t\t\t\trequest in an email to privacy@yolomeal.com.\r\n\t\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\tContact Us. \r\n\t\t\t\t\t\t\t\t\tIf you have any questions about our practices or this Privacy Policy,\r\n\t\t\t\t\t\t\t\t\tplease contact us at privacy@yolomeal.com.\r\n\t\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\tChanges to Our Privacy Policy. \r\n\t\t\t\t\t\t\t\t\tIf we change our privacy policies and procedures, we will post those\r\n\t\t\t\t\t\t\t\t\tchanges on this page. If we make any changes to this Privacy Policy that\r\n\t\t\t\t\t\t\t\t\tmaterially change how we treat your personal information, we will endeavor\r\n\t\t\t\t\t\t\t\t\tto provide you with reasonable notice of such changes, such as via\r\n\t\t\t\t\t\t\t\t\tprominent notice in the Yolomeal Platform or to your email address of\r\n\t\t\t\t\t\t\t\t\trecord, and where required by law, we will obtain your consent or give you\r\n\t\t\t\t\t\t\t\t\tthe opportunity to opt out of such changes.\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
    \r\n\t);\r\n}\r\n\r\nexport default PolicyPage;","import React from 'react'\r\nimport {\r\n Link\r\n} from \"react-router-dom\"\r\n\r\nimport BurgersImage from '../images/new-burger.png'\r\nimport HandheldImage from '../images/handhelds.jpg'\r\nimport SidesImage from '../images/new-side.png'\r\nimport EntreeImage from '../images/new-entree.png'\r\nimport BreakfastImage from '../images/new-breakfast.png'\r\nimport DessertImage from '../images/pie.jpg'\r\nimport PizzaImage from '../images/new-pizza.png'\r\nimport AppsImage from '../images/new-appetizer.png'\r\nimport User from '../components/Utils'\r\nimport MenuBar from '../components/Menubar'\r\n\r\ntype Props = { \r\n\tuser: User,\r\n};\r\n\r\nconst EatPage: React.FC = (props) => {\r\n\treturn (\r\n\t\t
    \r\n\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\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\"burgers\"\r\n\t\t\t\t\t\t\t\t

    Burgers

    \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\"handheld\"\r\n\t\t\t\t\t\t\t\t

    HANDHELD

    \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\"breakfast\"\r\n\t\t\t\t\t\t\t\t

    Breakfast

    \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

    Home

    \r\n\t\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\"entree\"\r\n\t\t\t\t\t\t\t\t

    Entree

    \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\"dessert\"\r\n\t\t\t\t\t\t\t\t

    Dessert

    \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\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\"Pizza\"\r\n\t\t\t\t\t\t\t\t

    Pizza

    \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\"apps\"\r\n\t\t\t\t\t\t\t\t

    Apps

    \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\"sides\"\r\n\t\t\t\t\t\t\t\t

    Sides

    \r\n\t\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\tDrink\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\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\"entree\"\r\n\t\t\t\t\t\t\t

    Entree

    \r\n\t\t\t\t\t\t\r\n\t\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\"burgers\"\r\n\t\t\t\t\t\t\t

    Burgers

    \r\n\t\t\t\t\t\t\r\n\t\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\"handheld\"\r\n\t\t\t\t\t\t\t

    HANDHELD

    \r\n\t\t\t\t\t\t\r\n\t\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\"Pizza\"\r\n\t\t\t\t\t\t\t

    Pizza

    \r\n\t\t\t\t\t\t\r\n\t\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\"apps\"\r\n\t\t\t\t\t\t\t

    Apps

    \r\n\t\t\t\t\t\t\r\n\t\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\"sides\"\r\n\t\t\t\t\t\t\t

    Sides

    \r\n\t\t\t\t\t\t\r\n\t\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\"dessert\"\r\n\t\t\t\t\t\t\t

    Dessert

    \r\n\t\t\t\t\t\t\r\n\t\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\"breakfast\"\r\n\t\t\t\t\t\t\t

    Breakfast

    \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\t
    \r\n\t\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\r\nexport default EatPage;","import React from 'react';\r\nimport {\r\n Link\r\n} from \"react-router-dom\";\r\n\r\nimport WineImage from '../images/wine.jpg';\r\nimport MixedDrinkImage from '../images/mixed-drink.jpg';\r\nimport IceCreamImage from '../images/ice-crem-drink.jpg';\r\nimport CoffeeImage from '../images/coffee.jpg';\r\nimport BeerImage from '../images/beer.jpg';\r\nimport User from '../components/Utils';\r\nimport MenuBar from '../components/Menubar';\r\n\r\ntype Props = { \r\n\tuser: User,\r\n};\r\n\r\nconst DrinksPage: React.FC = (props) => {\r\n\treturn (\r\n\t\t
    \r\n\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\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\"wine\"/\r\n\t\t\t\t\t\t\t\t

    Wine

    \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

    Home

    \r\n\t\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\"mixed-drink\"/\r\n\t\t\t\t\t\t\t\t

    Mixed Drinks

    \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\"ice-crem-drink\"/\r\n\t\t\t\t\t\t\t\t

    Other
    Drinks

    \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\"coffee\"/\r\n\t\t\t\t\t\t\t\t

    Coffee

    \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\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\"beer\"/\r\n\t\t\t\t\t\t\t\t

    Beer

    \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

    Eat

    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \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\"wine\"/\r\n\t\t\t\t\t\t\t

    Wine

    \r\n\t\t\t\t\t\t\r\n\t\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\"mixed-drink\"/\r\n\t\t\t\t\t\t\t

    Mixed Drinks

    \r\n\t\t\t\t\t\t\r\n\t\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\"beer\"\r\n\t\t\t\t\t\t\t

    Beer

    \r\n\t\t\t\t\t\t\r\n\t\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\"coffee\"\r\n\t\t\t\t\t\t\t

    Coffee

    \r\n\t\t\t\t\t\t\r\n\t\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\"ice-crem-drink\"/\r\n\t\t\t\t\t\t\t

    Other
    Drinks

    \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\t
    \r\n\t\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\r\nexport default DrinksPage;","import React, { useState, useEffect, useContext, useRef } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport ItemNew from './../components/ItemNew';\nimport LoaderContext from './../components/LoaderContext';\nimport LoginPage from './LoginPage';\nimport { tagArray } from '../utils/helpers'\nimport MenuBar from \"../components/Menubar\";\n\ntype Props = { \n\tname: String,\n id: Number,\n\teatOrMeal: String,\n\tlocation: any,\n\tuser: any\n\thandleLogin(user): void,\t\n};\n\nconst EatYolosPage: React.FC = (props) => {\n const ref = useRef(null);\n\tconst [error, setError] = useState('');\n const [nearByItems, setNearByItems] = useState([]);\n const [topItems, setTopItems] = useState([]);\n const [tags, setTags] = useState([]);\n const [showFilter, setShowFilter] = useState(false);\n const [showLogin, setShowLogin] = useState(false);\n\tconst { showLoader, hideLoader } = useContext(LoaderContext);\n\tconst [showJumpToTopButton, setShowJumpToTopButton] = useState(false);\n\n\tconst handleScrolBottomToTop = () => {\n\t\tconst windowHeight = window.innerHeight; // Height of the viewport\n\t\tconst scrollPosition = window.scrollY; // Current scroll position\n\t\tconst scrollThreshold = windowHeight * 1; // Threshold at 25% down the page\n\t\n\t\tsetShowJumpToTopButton(scrollPosition > scrollThreshold); // Show button when scrolled past 25% down\n\t};\n\n\tconst handleJumpToTop = () => {\n window.scrollTo({ top: 0, behavior: 'smooth' }); // Scroll to top of the page smoothly\n\t};\n\n\tuseEffect(() => {\n\t\twindow.addEventListener('scroll', handleScrolBottomToTop);\n\t\treturn () => {\n\t\t\twindow.removeEventListener('scroll', handleScrolBottomToTop);\n\t\t};\n\t}, []);\n\n\tuseEffect(() => {\n\t\tloadItems(tags);\n\t}, [props.user.isLogged]);\n\n const log = async (message: any) => {\n if (process.env.REACT_APP_LOG === 'true') {\n console.log(message);\n }\n }\n\n\tconst handleUpvote = async (id) => {\n\t\tshowLoader();\n\t\tconst data = { userId: props.user.id};\n\t\tfetch(process.env.REACT_APP_SERVER_URL + \"/items/\" + id + \"/upvote\", {\n\t\t\tmethod: 'POST',\n\t\t\theaders: new Headers({\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\"Accept\":\"application/json\",\n\t\t\t\t'Authorization': 'Bearer ' + props.user.token\n\t\t\t}),\n\t\t\tbody: JSON.stringify(data)\n\t\t})\n\t\t.then(res => res.json())\n\t\t.then(\n\t\t\t(result) => {\n\t\t\t\tlog(result);\n\t\t\t\tsetNearByItems(nearByItems.map(item => item.id === id ? {...item, upvoted: true, upvoteCount: item.upvoteCount + 1} : item ));\n\t\t\t\tsetTopItems(topItems.map(item => item.id === id ? {...item, upvoted: true, upvoteCount: item.upvoteCount + 1} : item ));\n\t\t\t\tsetError(\"\");\n\t\t\t\thideLoader();\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\tlog(error);\n\t\t\t\tsetError(error.message);\n\t\t\t\thideLoader();\n\t\t\t}\n\t\t)\t\t\n\t}\n\n\tconst RemoveUpvote = async (id) => {\n\t\tshowLoader();\n\t\tconst data = { userId: props.user.id};\n\t\tfetch(process.env.REACT_APP_SERVER_URL + \"/items/\" + id + \"/removeUpvote\", {\n\t\t\tmethod: 'POST',\n\t\t\theaders: new Headers({\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\"Accept\":\"application/json\",\n\t\t\t\t'Authorization': 'Bearer ' + props.user.token\n\t\t\t}),\n\t\t\tbody: JSON.stringify(data)\n\t\t})\n\t\t.then(res => res.json())\n\t\t.then(\n\t\t\t(result) => {\n\t\t\t\tlog(result);\n\t\t\t\tsetNearByItems(nearByItems.map(item => item.id === id ? {...item, upvoted: false, upvoteCount: item.upvoteCount - 1} : item ));\n\t\t\t\tsetTopItems(topItems.map(item => item.id === id ? {...item, upvoted: false, upvoteCount: item.upvoteCount - 1} : item ));\n\t\t\t\tsetError(\"\");\n\t\t\t\thideLoader();\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\tlog(error);\n\t\t\t\tsetError(error.message);\n\t\t\t\thideLoader();\n\t\t\t}\n\t\t)\t\t\n\t}\n\n\tconst onTagClick = async (id) => {\n\t\tvar newTags;\n\t\tif (tags.includes(id)) {\n\t\t\tnewTags = tags.filter(function (tag) { return tag !== id });\n\t\t\tsetTags(newTags);\n\t\t} else {\n\t\t\tnewTags = [...tags, id];\n\t\t\tsetTags(newTags);\n\t\t\thandleScroll(ref.current)\n\t\t}\n\t\tloadItems(newTags);\n\t}\n\t\n\tconst handleScroll = (ref) => {\n\t\t// ref.current?.scrollIntoView({behavior: 'smooth'});\t\n\t\twindow.scrollTo({\n\t\t\ttop: ref.offsetTop,\n\t\t\tleft: 0,\n\t\t\tbehavior: \"smooth\",\n\t\t});\n\t};\n\n\tconst loadItems = (newTags: Array) => {\n\t\tshowLoader();\n\n\t\tvar headers = new Headers({\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Accept': 'application/json'\n\t\t\t}\n\t\t);\n\t\tif (props.user.isLogged) {\n\t\t\theaders.append('Authorization', 'Bearer ' + props.user.token);\n\t\t}\n\t\tfetch(process.env.REACT_APP_SERVER_URL + \"/yolos?category=\" + props.id + \"&latitude=\" + props.location.lat + \"&longitude=\" + props.location.lng + \"&tags=\" + newTags.join() + \"&v=\" + Date.now(), {\n\t\t\tmethod: 'GET',\n\t\t\theaders: headers\n\t\t})\n\t\t.then(res => res.json())\n\t\t.then(\n\t\t\t(result) => {\n\t\t\t\tlog(result);\n\t\t\t\tsetNearByItems(result.nearBy);\n\t\t\t\tsetTopItems(result.top);\n\t\t\t\t/*\n\t\t\t\tsetCategory({id: id, name: name})\n\t\t\t\tshowItem();\n\t\t\t\t*/\n\t\t\t\tsetError(\"\");\n\t\t\t\thideLoader();\n\t\t\t\tsetShowLogin(false);\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\tlog(error);\n\t\t\t\tsetError(error.message);\n\t\t\t\thideLoader();\n\t\t\t}\n\t\t)\n\t}\n\n\tconst onLoginClick = async () => {\n\t\tsetShowLogin(true);\n\t}\n\n\tconst onLoginBackClick = async () => {\n\t\tsetShowLogin(false);\n\t}\n\n\tconst handleNotificationClick= async(id)=>{\n\t\t\tsendNotification(id);\n\t}\n\n\tconst sendNotification = (id) => {\n\t\ttry {\n\t\t\tconst stored = localStorage.getItem('YoloMeal');\n\t\t\tconsole.log(stored);\n\t\t\tif (stored) {\n\t\t\t\tshowLoader();\n\t\t\t\tconst userData = JSON.parse(stored);\n\t\t\t\tfetch(\n\t\t\t\t\tprocess.env.REACT_APP_SERVER_URL +\n\t\t\t\t\t`/itemExpired?itemId=${id}&userId=${userData.id}` ,\n\t\t\t\t\t{\n\t\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\t\theaders: new Headers({\n\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\tAccept: 'application/json',\n\t\t\t\t\t\t\tAuthorization: 'Bearer ' + userData.token,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\t.then(\n\t\t\t\t\t\t(result) => {\n\n\t\t\t\t\t\t\tif(nearByItems != null)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsetNearByItems(\n\t\t\t\t\t\t\t\t\tnearByItems.map((item) => (item.id === id ? { ...item, expired: true} : item))\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tconsole.log(nearByItems);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsetTopItems(\n\t\t\t\t\t\t\t\t\ttopItems.map((item) => (item.id === id ? { ...item, expired: true} : item))\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\tconsole.log(topItems);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\thideLoader();\n\t\t\t\t\t\t},\n\t\t\t\t\t\t(error) => {\n\t\t\t\t\t\t\thideLoader();\n\t\t\t\t\t\t\tconsole.log(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error('Error fetching categories:', error);\n\t\t}\n\t};\n\n\tconst loadData = () => {\n\t\tloadItems(tags);\n\t}\n\n\tvar mainClass = \"main-bg eat-bg \";\n\tvar back = Eat\n\tvar titleClass = \"text-center pt-3 pb-2 uppercase\";\n\tvar helpClass = \"f-38 light text-center font-poppins\";\n\tif (props.eatOrMeal === 'drink') {\n\t\tmainClass = \"main-bg drink-bg \";\n\t\tback = Drinks\n\t\ttitleClass = \"text-center pt-3 pb-2 uppercase white\";\n\t\thelpClass = helpClass + \" white\";\n\t}\n\n\tconst tagList = tagArray.filter(el => el.category == props.id).map((tag) => {\n\t\tif (tags.includes(tag.id)) {\n\t\t\treturn
  • onTagClick(tag.id)} checked/>
  • \n\t\t} else {\n\t\t\treturn
  • onTagClick(tag.id)}/>
  • \n\t\t}\n\t});\n\n\tconst handleMainFilter = (value: boolean) => {\n\t\tsetShowFilter(value);\n\t}\n\n\tif (showLogin && !props.user.isLogged) {\n\t\treturn ( \n\t\t\t\n\t\t)\n\t} else {\n\t\treturn (\n
    \n
    \n \n
    \n
    \n

    {props.name}

    \n {tagList.length > 0 && !showFilter && (\n
    setShowFilter(true)}>\n Click here to filter your choices\n
    \n )}\n {tagList.length > 0 && showFilter && (\n
    \n
      {tagList}
    \n
    \n )}\n
    \n {nearByItems.length === 0 && (\n

    Help everyone find the BEST by saving one of your TOP 3 here!

    \n )}\n
    \n {nearByItems.map(\n (item) =>\n\t\t\t\t\t\t\t\titem.yolos && item.yolos.length > 0 && item.yolos[0].id !== null && (\n
    \n \n
    \n )\n )}\n
    \n\n {nearByItems?.length === 0 && (\n
    \n
    \n

    \n Add Favorite\n

    \n
    \n
    \n )}\n\n {topItems?.length > 0 && (\n

    \n You can be the first to help everyone find a great meal by saving you favorite here!\n

    \n )}\n
    \n

    \n Home\n

    \n

    {back}

    \n
    \n {error !== '' &&

    {error}

    }\n
    \n {showJumpToTopButton && (\n \n )}\n
    \n );\n\t}\n}\n\nexport default EatYolosPage;\n","import React, { useEffect, useState } from 'react';\n\ntype Props = {\n location: any;\n handlePlaceChanged(place): void;\n handlePlaceError(error): void;\n};\n\nconst FindRestaurant: React.FC = (props) => {\n const [isLocationAvailable, setIsLocationAvailable] = useState(false);\n const [location, setLocation] = useState({ name: '', lat: 0, lng: 0 });\n const [restaurantName, setRestaurantName] = useState(\"\");\n const [hasError, setHasError] = useState(false);\n\n const newLocation = async (place, name) => {\n var obj = {\n name: name,\n lat: place.geometry.location.lat(),\n lng: place.geometry.location.lng(),\n };\n setLocation(obj);\n setIsLocationAvailable(true);\n };\n\n const handlePlaceChange = (place) =>{\n if (place.geometry && place.address_components) {\n\n const addressComponents = place.address_components;\n let fullName : String = '';\n\n const country = addressComponents.filter(component =>\n component['types'].includes('country')\n ).map(component => {\n return component;\n });\n\n const state = addressComponents.filter(component =>\n component['types'].includes('administrative_area_level_1')\n ).map(component => {\n return component;\n });\n\n const locality = addressComponents.filter(component =>\n component['types'].includes('locality')\n ).map(component => {\n return component;\n });\n\n if (locality.length > 0){\n fullName = `${locality[0].long_name}, ${state[0].short_name}, ${country[0].short_name}`\n newLocation(place, fullName);\n return;\n }\n\n const administrativeArea = addressComponents.filter(component =>\n component['types'].includes('administrative_area_level_2')\n ).map(component => {\n return component;\n });\n\n if (administrativeArea.length > 0) {\n fullName = `${administrativeArea[0].long_name}, ${state[0].short_name}, ${country[0].short_name}`\n newLocation(place, fullName);\n return;\n }\n }\n props.location = ({ lat: 0, lng: 0, name: '' });\n }\n\n useEffect(() => {\n if (props.location.lat !== 0 && props.location.lng !== 0) {\n setLocation(props.location)\n setIsLocationAvailable(true);\n } else {\n setIsLocationAvailable(false);\n }\n }, [props.location]);\n\n useEffect(() => {\n const center = { lat: props.location.lat, lng: props.location.lng };\n\n const cityInput = document.getElementById('city-name') as HTMLInputElement;\n\n const defaultBounds = {\n north: center.lat + 0.1,\n south: center.lat - 0.1,\n east: center.lng + 0.1,\n west: center.lng - 0.1,\n };\n\n const options = {\n bounds: defaultBounds,\n fields: ['address_components', 'geometry'],\n origin: center,\n strictBounds: false,\n types: ['geocode'],\n };\n\n if(cityInput){\n const cityAutocomplete = new google.maps.places.Autocomplete(cityInput, options);\n cityAutocomplete.addListener('place_changed',function () {\n var place = cityAutocomplete.getPlace();\n handlePlaceChange(place);\n })\n }\n }, [props.location, isLocationAvailable]);\n\n useEffect(() => {\n if (!isLocationAvailable) return;\n const center = { lat: location.lat, lng: location.lng };\n const circle = new google.maps.Circle({ center, radius: 50 * 1609.344 });\n\n const options = {\n bounds: circle.getBounds(),\n fields: ['place_id', 'address_components', 'geometry', 'name'],\n origin: center,\n strictBounds: true,\n types: ['establishment'],\n };\n const input = document.getElementById('restaurant-name') as HTMLInputElement;\n\n const autocomplete = new google.maps.places.Autocomplete(input, options);\n console.log(\"autocomplete\", autocomplete)\n\n\n autocomplete.addListener('place_changed', function () {\n var place = autocomplete.getPlace();\n //console.log(place);\n\n if (place.geometry && place.address_components && place.name !== '' && place.place_id !== '') {\n var address = [\n (place.address_components[0] && place.address_components[0].short_name) || '',\n (place.address_components[1] && place.address_components[1].short_name) || '',\n (place.address_components[2] && place.address_components[2].short_name) || '',\n ].join(' ');\n //console.log(address);\n\n var obj = {\n id: place.place_id,\n name: place.name,\n address: address,\n latitude: place.geometry.location.lat(),\n longitude: place.geometry.location.lng(),\n response: JSON.stringify(place),\n };\n props.handlePlaceChanged(obj);\n setRestaurantName(\"\");\n } else {\n props.handlePlaceError('Error!');\n setRestaurantName(\"\");\n }\n });\n\n }, [location, isLocationAvailable]);\n\n const handleInputValue = (e) => {\n setRestaurantName(e.target.value);\n setHasError(false);\n };\n\n return (\n
    \n

    {props.location.name}

    \n \n \n
    \n );\n};\n\nexport default FindRestaurant;\n","import React from 'react';\r\nimport { useEffect, useState } from 'react';\r\n\r\ntype Props = {\r\n location: any;\r\n handlePlaceChanged(place): void;\r\n handleClose(): void;\r\n};\r\n\r\nconst FindLocation: React.FC = (props) => {\r\n const [error, setError] = useState('');\r\n const [location, setLocation] = useState({ lat: 0, lng: 0, name: '' });\r\n\r\n const newLocation = async (place, name) => {\r\n var obj = {\r\n name: name,\r\n lat: place.geometry.location.lat(),\r\n lng: place.geometry.location.lng(),\r\n };\r\n setLocation(obj);\r\n setError('');\r\n //console.log(obj);\r\n props.handlePlaceChanged(obj);\r\n };\r\n\r\n useEffect(() => {\r\n const center = { lat: props.location.lat, lng: props.location.lng };\r\n\r\n const defaultBounds = {\r\n north: center.lat + 0.1,\r\n south: center.lat - 0.1,\r\n east: center.lng + 0.1,\r\n west: center.lng - 0.1,\r\n };\r\n\r\n const input = document.getElementById('restaurant-name') as HTMLInputElement;\r\n\r\n const options = {\r\n bounds: defaultBounds,\r\n fields: ['address_components', 'geometry'],\r\n origin: center,\r\n strictBounds: false,\r\n types: ['geocode'],\r\n };\r\n\r\n const autocomplete = new google.maps.places.Autocomplete(input, options);\r\n\r\n autocomplete.addListener('place_changed', function () {\r\n var place = autocomplete.getPlace();\r\n //console.log(place);\r\n if (place.geometry && place.address_components) {\r\n var i;\r\n for (i = 0; i < place.address_components.length; i++) {\r\n if (place.address_components[i]['types'][0] === 'locality') {\r\n newLocation(place, place.address_components[i]['long_name']);\r\n return;\r\n }\r\n }\r\n for (i = 0; i < place.address_components.length; i++) {\r\n if (place.address_components[i]['types'][0] === 'administrative_area_level_2') {\r\n newLocation(place, place.address_components[i]['long_name']);\r\n return;\r\n }\r\n }\r\n }\r\n setLocation({ lat: 0, lng: 0, name: '' });\r\n setError('Not Found!');\r\n });\r\n }, []);\r\n\r\n const onClose = async () => {\r\n props.handleClose();\r\n };\r\n\r\n const onChange = async () => {\r\n props.handlePlaceChanged(location);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {props.location.name}

    \r\n \r\n {error !== '' &&

    {error}

    }\r\n {location.name !== '' &&

    {location.name}

    }\r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n {location.name !== '' && (\r\n

    \r\n \r\n

    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default FindLocation;\r\n","import React, { useEffect, useState } from 'react';\nimport AppleIcon from '../images/AppleLogo.svg';\nimport { Link, Redirect } from 'react-router-dom';\nimport FacebookLogin from 'react-facebook-login';\nimport AmazonImage from '../images/amazon-icon.png';\nimport AppleSignin from 'react-apple-signin-auth';\n\ntype Props = {\n user: any;\n showHome: boolean;\n handleLogin(user: any): void;\n handleBack(): void;\n success(): void;\n emailVerified: boolean\n};\n\n\nconst defaultProps: Props = {\n user: null,\n showHome: true,\n handleLogin: () => {},\n handleBack: () => {},\n success:()=>{},\n emailVerified: false\n};\n\nconst LoginPagev2: React.FC = (props) => {\n const [error, setError] = useState('');\n const [appleInfo, setappleInfo] = useState();\n const [fbInfo, setfbInfo] = useState();\n const [appleSignIn, setappleSignIn] = useState(true);\n const [showFbSignIn, setFbSignIn] = useState(true);\n const loginButtonClass = 'd-flex justify-content-space-between facebook-button';\n const appId: string = process.env.REACT_APP_FACEBOOK_APP_ID || '';\n const appleRedirectURL: string = process.env.REACT_APP_APPLE_REDIRECT_URL || 'https://3c46-119-155-28-245.ngrok-free.app';\n const appleClientId: string = process.env.REACT_APP_APPLE_CLIENT_ID || 'com.yolo.meal';\n const [name, setName] = useState('');\n const [email, setEmail] = useState('');\n const [isErrorCleared, setIsErrorCleared] = useState(false);\n\n const authOptions = {\n clientId: appleClientId,\n scope: 'name email',\n redirectURI: appleRedirectURL,\n state: 'state',\n nonce: 'nonce',\n usePopup: true,\n }\n\n useEffect(() => {\n let loginInfoStr = localStorage.getItem(\"loginInfo\");\n if (loginInfoStr) {\n let loginInfo = JSON.parse(loginInfoStr);\n console.log(loginInfo);\n setappleInfo(loginInfo.facebookLogin);\n setappleSignIn(false);\n setFbSignIn(false);\n setfbInfo(loginInfo.appleLogin);\n\n }\n }, [])\n\n const renderAppleAuthButton = (props: JSX.IntrinsicAttributes & React.ButtonHTMLAttributes) => (\n \n );\n\n const handleFacebookClick = async () => {\n //showLoader();\n };\n\n const getReferrer = () => {\n var path = window.location.href;\n const arr = path.split('?');\n if (arr.length === 2) {\n const params = arr[1];\n const paramsArr = params.split('=');\n if (paramsArr.length === 2 && paramsArr[0] === 'referrer') {\n return paramsArr[1];\n }\n }\n return '';\n };\n\n const responseFacebook = (response: { hasOwnProperty: (arg0: string) => any; accessToken: any; status: string }) => {\n // let loginInfoStr = localStorage.getItem(\"loginInfo\");\n // if (loginInfoStr) {\n // let loginInfo = JSON.parse(loginInfoStr);\n // console.log(loginInfo);\n // if (loginInfo.appleLogin === true) {\n // return\n // }\n // }\n if (response.hasOwnProperty('id')) {\n const data = { accessToken: response.accessToken, referrer: '' };\n if (getReferrer() !== '') {\n data.referrer = getReferrer();\n }\n fetch(process.env.REACT_APP_SERVER_URL + '/login', {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n }),\n body: JSON.stringify(data),\n })\n .then((res) => res.json())\n .then(\n (result) => {\n if (result.hasOwnProperty('error')) {\n if (result.hasOwnProperty('message')) {\n setError(result.message);\n } else {\n setError(result.error);\n }\n } else {\n setError('');\n props.handleLogin(result);\n let obj = {\n facebookLogin: true,\n appleLogin: false,\n simpleLogin: false\n }\n localStorage.setItem('loginInfo', JSON.stringify(obj));\n props.success();\n }\n },\n (error) => {\n setError(error.message);\n console.log(error);\n }\n );\n } else {\n var error = 'Login error';\n if (response.hasOwnProperty('status')) {\n error = response.status;\n }\n setError(error);\n }\n };\n\n const handleAppleResponse = (response) => {\n\n\n const authorizationInfo = response.authorization;\n\n let userInfo = response?.user;\n\n let data = {};\n\n if (authorizationInfo) {\n if (userInfo) {\n data = { authorization: authorizationInfo, user: userInfo, referrer: 6 };\n } else {\n data = { authorization: authorizationInfo, referrer: 6 };\n }\n fetch(process.env.REACT_APP_SERVER_URL + '/login', {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n }),\n\n body: JSON.stringify(data),\n })\n .then((res) => res.json())\n .then(\n (result) => {\n console.log('after successful login ===> ', result);\n props.handleLogin(result);\n let obj = {\n facebookLogin: false,\n appleLogin: true,\n simpleLogin: false\n }\n localStorage.setItem('loginInfo', JSON.stringify(obj));\n props.success();\n },\n (error) => {\n setError(error.message);\n console.log(error);\n }\n );\n } else {\n var error = 'Apple Login error';\n if (response.hasOwnProperty('status')) {\n error = response.status;\n }\n setError(error);\n }\n };\n\n const handleInputChange = (setter) => (e) => {\n setter(e.target.value);\n setIsErrorCleared(true);\n };\n\n\n const handleJoinClick = () => {\n console.log(\"request gone\");\n let data = {\n \"userName\":name,\n \"email\":email,\n \"referer\": getReferrer()\n };\n\n fetch(process.env.REACT_APP_SERVER_URL + '/login', {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n }),\n body: JSON.stringify(data),\n })\n .then((res) =>\n res.ok ? res.json() : Promise.reject(res.json())\n ).then(\n (result) => {\n setIsErrorCleared(false);\n console.log('after successful login ===> ', result);\n props.handleLogin(result);\n let obj = {\n facebookLogin: false,\n appleLogin: false,\n simpleLogin: true\n }\n localStorage.setItem('loginInfo', JSON.stringify(obj));\n props.success();\n },\n (error) => {\n error.then((body) => {\n setError(body.message);\n setIsErrorCleared(false);\n })\n });\n };\n\n if (props.user.isLogged && props.showHome) {\n return ;\n }\n return (\n
    \n
    \n
    \n
    \n {!props.emailVerified && (\n
    \n

    Almost done!

    \n

    \n We need to add your name to your favorite and your
    \n email to send you your prize when you win our upcoming contest :)\n

    \n
    \n )}\n\n {error && (\n \n {error}\n
    \n )}\n\n \n setEmail(e.target.value)}\n />\n \n\n

    OR

    \n\n
    \n
      \n
    • \n
      \n \n {(fbInfo == false || showFbSignIn) && (\n \n )}\n \"Amazon\"\n \n
      \n {(appleInfo == false || appleSignIn) && (\n handleAppleResponse(response)}\n onError={(error: any) => console.error(error)}\n skipScript={false}\n render={renderAppleAuthButton}\n />\n )}\n
      \n
      \n
    • \n
    \n
    \n
    \n
    \n \n
    \n );\n}\n\nLoginPagev2.defaultProps = defaultProps;\n\nexport default LoginPagev2;","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Link, Redirect } from 'react-router-dom';\r\nimport Modal from 'react-modal';\r\nimport { useDropzone } from 'react-dropzone';\r\nimport axios from 'axios';\r\nimport MenuBar from './../components/Menubar';\r\nimport FindRestaurant from './../components/FindRestaurant';\r\nimport LoginPage from './LoginPage';\r\nimport User from './..//components/Utils';\r\nimport LoaderContext from './../components/LoaderContext';\r\nimport FindLocation from './../components/FindLocation';\r\nimport { tagArray } from '../utils/helpers';\r\nimport LoginPagev2 from './LoginPagev2';\r\n\r\ntype Props = {\r\n user: User;\r\n location: any;\r\n handleLogin(user): void;\r\n handleLogout(): void;\r\n handleLocationChange(obj): void;\r\n};\r\n\r\nconst AddYoloPage: React.FC = (props) => {\r\n const { showLoader, hideLoader } = useContext(LoaderContext);\r\n const [page, setPage] = useState('city');\r\n const [error, setError] = useState('');\r\n const [place, setPlace] = useState({ id: '', name: '', address: '', latitude: '', longitude: '', response: '' });\r\n const [category, setCategory] = useState({ id: '', name: '' });\r\n const [items, setItems] = useState([]);\r\n const [categories, setCategories] = useState([]);\r\n const [itemName, setItemName] = useState('');\r\n const [userName, setUserName] = useState('');\r\n const [tags, setTags] = useState([]);\r\n const [itemId, setItemId] = useState(-1);\r\n const [itemTitle, setItemTitle] = useState('');\r\n const [description, setDescription] = useState('');\r\n const [leftCounter, setLeftCounter] = useState(300);\r\n const [showLocation, setShowLocation] = useState(false);\r\n const [preview, setPreview] = useState(null);\r\n const { acceptedFiles, getRootProps, getInputProps } = useDropzone({\r\n onDrop: (acceptedFiles) => {\r\n const file = acceptedFiles[0];\r\n setPreview(URL.createObjectURL(file));\r\n },\r\n });\r\n const [yoloId, setYoloId] = useState(-1);\r\n let didCancel = false;\r\n const [rotate, setRotate] = useState(0);\r\n\r\n useEffect(() => {\r\n return () => {\r\n didCancel = true;\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n console.log(acceptedFiles)\r\n if (acceptedFiles.length > 0) {\r\n const file = acceptedFiles[0];\r\n const reader = new FileReader();\r\n reader.onloadend = () => {\r\n setPreview(reader.result as string);\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }, [acceptedFiles]);\r\n\r\n const showCity = async () => {\r\n setPage('city');\r\n };\r\n\r\n const showName = async () => {\r\n if (page === 'city') {\r\n setPlace({ id: '', name: '', address: '', latitude: '', longitude: '', response: '' });\r\n }\r\n setPage('name');\r\n };\r\n\r\n const log = async (message: any) => {\r\n if (process.env.REACT_APP_LOG === 'true') {\r\n console.log(message);\r\n }\r\n };\r\n\r\n const showCategory = async () => {\r\n showLoader();\r\n fetch(process.env.REACT_APP_SERVER_URL + '/user-categories?user=' + props.user.id + '&v=' + Date.now(), {\r\n method: 'GET',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n Authorization: 'Bearer ' + props.user.token,\r\n }),\r\n })\r\n .then((res) => res.json())\r\n .then(\r\n (result) => {\r\n log(result);\r\n setCategories(result);\r\n setError('');\r\n hideLoader();\r\n setPage('category');\r\n },\r\n (error) => {\r\n log(error);\r\n setError(error.message);\r\n hideLoader();\r\n }\r\n );\r\n };\r\n\r\n const showItem = async () => {\r\n setItemId(-1);\r\n if (page === 'category') {\r\n setItemName('');\r\n }\r\n setPage('item');\r\n };\r\n\r\n const checkItemName = async () => {\r\n showLoader();\r\n fetch(\r\n process.env.REACT_APP_SERVER_URL +\r\n '/restaurant-items?placeId=' +\r\n place.id +\r\n '&itemName=' +\r\n itemName.trim() +\r\n '&v=' +\r\n Date.now(),\r\n {\r\n method: 'GET',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n Authorization: 'Bearer ' + props.user.token,\r\n }),\r\n }\r\n )\r\n .then((res) => res.json())\r\n .then(\r\n (result) => {\r\n if (result.hasOwnProperty('error')) {\r\n //setError(result.error);\r\n setError(result.message);\r\n hideLoader();\r\n } else {\r\n setError('');\r\n hideLoader();\r\n if (hasTags(category.id)) {\r\n showTags();\r\n } else {\r\n showYolo();\r\n }\r\n }\r\n },\r\n (error) => {\r\n setError(error.message);\r\n hideLoader();\r\n }\r\n );\r\n };\r\n\r\n const showTags = async () => {\r\n if (page !== 'yolo') {\r\n setTags([]);\r\n }\r\n setPage('tags');\r\n };\r\n\r\n const showYolo = async () => {\r\n setDescription('');\r\n setUserName('');\r\n setLeftCounter(300);\r\n setPage('yolo');\r\n };\r\n\r\n const showUpload = async () => {\r\n setPage('upload');\r\n };\r\n\r\n const showDone = async () => {\r\n setPage('done');\r\n };\r\n\r\n const showLogin = async () =>{\r\n setPage('login');\r\n }\r\n\r\n const handlePlaceChanged = async (place) => {\r\n setError('');\r\n setPlace(place);\r\n showCategory();\r\n };\r\n\r\n const handlePlaceError = async (error) => {\r\n setError(error);\r\n };\r\n\r\n const hasTags = (id) => {\r\n const tags = [1, 2, 3, 4, 5, 6, 7, 13];\r\n return tags.includes(id);\r\n };\r\n\r\n const onItemClick = async (id, name) => {\r\n setItemId(id);\r\n setItemTitle(name);\r\n if (hasTags(category.id)) {\r\n showTags();\r\n } else {\r\n showYolo();\r\n }\r\n };\r\n\r\n const onTagClick = async (id) => {\r\n if (tags.includes(id)) {\r\n setTags(\r\n tags.filter(function (tag) {\r\n return tag !== id;\r\n })\r\n );\r\n } else {\r\n setTags([...tags, id]);\r\n }\r\n };\r\n\r\n const onItemNameChange = async (event) => {\r\n setItemName(event.target.value);\r\n setItemTitle(event.target.value);\r\n };\r\n\r\n const onUserNameChange = async (event) => {\r\n setUserName(event.target.value);\r\n };\r\n\r\n const onDescriptionChange = async (event) => {\r\n var str = event.target.value;\r\n setLeftCounter(300 - str.length);\r\n setDescription(str);\r\n };\r\n\r\n const handleLocationChanged = async (place) => {\r\n setShowLocation(false);\r\n props.handleLocationChange(place);\r\n };\r\n\r\n const handleHideLocation = async () => {\r\n setShowLocation(false);\r\n };\r\n\r\n const onCategoryClick = async (id, name) => {\r\n showLoader();\r\n fetch(\r\n process.env.REACT_APP_SERVER_URL +\r\n '/items?category=' +\r\n id +\r\n '&place=' +\r\n place.id +\r\n '&user=' +\r\n props.user.id +\r\n '&v=' +\r\n Date.now(),\r\n {\r\n method: 'GET',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n Authorization: 'Bearer ' + props.user.token,\r\n }),\r\n }\r\n )\r\n .then((res) => res.json())\r\n .then(\r\n (result) => {\r\n log(result);\r\n setItems(result);\r\n /*\r\n\t\t\t\tif (result.error != '') {\r\n\t\t\t\t\tsetError(result.error);\r\n\t\t\t\t} else {\r\n\t\t\t\t}\r\n\t\t\t\t*/\r\n //props.handleLogin();\r\n setCategory({ id: id, name: name });\r\n showItem();\r\n setError('');\r\n hideLoader();\r\n },\r\n // Note: it's important to handle errors here\r\n // instead of a catch() block so that we don't swallow\r\n // exceptions from actual bugs in components.\r\n (error) => {\r\n log(error);\r\n setError(error.message);\r\n hideLoader();\r\n }\r\n );\r\n };\r\n\r\n const saveYolo = () => {\r\n showLoader();\r\n const data = {\r\n userId: props.user.id,\r\n placeId: place.id,\r\n placeName: place.name,\r\n placeAddress: place.address,\r\n placeLatitude: place.latitude,\r\n placeLongitude: place.longitude,\r\n placeResponse: place.response,\r\n categoryId: category.id,\r\n itemId: itemId,\r\n itemName: itemName.trim(),\r\n description: description,\r\n userName: userName,\r\n tags: tags,\r\n };\r\n log(data);\r\n fetch(process.env.REACT_APP_SERVER_URL + '/yolos', {\r\n method: 'POST',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n Authorization: 'Bearer ' + props.user.token,\r\n }),\r\n body: JSON.stringify(data),\r\n })\r\n .then((res) => res.json())\r\n .then(\r\n (result) => {\r\n log(result);\r\n hideLoader();\r\n if (result.hasOwnProperty('error')) {\r\n //setError(result.error);\r\n setError(result.message);\r\n } else {\r\n setError('');\r\n setYoloId(result.id);\r\n showUpload();\r\n }\r\n },\r\n (error) => {\r\n setError(error.message);\r\n hideLoader();\r\n log(error);\r\n }\r\n );\r\n };\r\n\r\n const onUpload = async () => {\r\n if (!preview) {\r\n setError('No image to upload.');\r\n return;\r\n }\r\n\r\n showLoader();\r\n try {\r\n const rotatedBlob = await getRotatedImageBlob(preview, rotate);\r\n\r\n const formData = new FormData();\r\n formData.append('file', rotatedBlob, acceptedFiles[0].name);\r\n\r\n const result = await axios.post(\r\n `${process.env.REACT_APP_SERVER_URL}/yolo-image/${yoloId}/image/upload`,\r\n formData,\r\n {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data',\r\n Authorization: `Bearer ${props.user.token}`,\r\n },\r\n }\r\n );\r\n\r\n if (!didCancel) {\r\n setError('');\r\n hideLoader();\r\n showDone();\r\n }\r\n } catch (err) {\r\n log(err);\r\n if (!didCancel) {\r\n hideLoader();\r\n setError(err.message || 'An error occurred');\r\n }\r\n }\r\n };\r\n\r\n const getRotatedImageBlob = (imageSrc: string, rotation: number): Promise => {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n img.src = imageSrc;\r\n\r\n img.onload = () => {\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n\r\n if (!ctx) {\r\n reject(new Error('Failed to get canvas context'));\r\n return;\r\n }\r\n\r\n // Adjust canvas size and rotation\r\n if (rotation % 180 === 0) {\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n } else {\r\n canvas.width = img.height;\r\n canvas.height = img.width;\r\n }\r\n\r\n ctx.translate(canvas.width / 2, canvas.height / 2);\r\n ctx.rotate((rotation * Math.PI) / 180);\r\n ctx.drawImage(img, -img.width / 2, -img.height / 2);\r\n\r\n canvas.toBlob((blob) => {\r\n if (blob) {\r\n resolve(blob);\r\n } else {\r\n reject(new Error('Failed to create Blob'));\r\n }\r\n }, 'image/jpeg');\r\n };\r\n\r\n img.onerror = (error) => {\r\n reject(error);\r\n };\r\n });\r\n };\r\n\r\n const onLoginBackClick = async () => {};\r\n\r\n const itemList = items.map((item) => {\r\n console.log(item);\r\n\r\n if (item.used) {\r\n return (\r\n
  • \r\n

    {item.name}

    \r\n
  • \r\n );\r\n } else {\r\n return (\r\n
  • onItemClick(item.id, item.name)}>\r\n

    {item.name}

    \r\n
  • \r\n );\r\n }\r\n });\r\n\r\n const categoryList = categories.map((category) => {\r\n if (props.user.id !== 20 && category.counter === 3) {\r\n return (\r\n
  • \r\n {category.name}\r\n
  • \r\n );\r\n } else {\r\n return (\r\n
  • \r\n onCategoryClick(category.id, category.name)}>\r\n {category.name}\r\n \r\n
  • \r\n );\r\n }\r\n });\r\n\r\n const getTagList = () => {\r\n return tagArray\r\n .filter((el) => el.category == Number(category.id))\r\n .map((tag) => {\r\n if (tags.includes(tag.id)) {\r\n return (\r\n
  • \r\n onTagClick(tag.id)} checked />\r\n \r\n
  • \r\n );\r\n //return
  • onTagClick(tag.id)}>{tag.name}
  • \r\n } else {\r\n return (\r\n
  • \r\n onTagClick(tag.id)} />\r\n \r\n
  • \r\n );\r\n }\r\n });\r\n };\r\n\r\n const onLoginSuccess = async () =>{\r\n setPage('yolo');\r\n }\r\n\r\n const rotateLeft = () => {\r\n setRotate((prevRotate) => prevRotate + 90);\r\n };\r\n\r\n const rotateRight = () => {\r\n setRotate((prevRotate) => prevRotate - 90);\r\n };\r\n\r\n const files = acceptedFiles.map((file) => (\r\n
  • \r\n {file.name} - {file.size} bytes\r\n
  • \r\n ));\r\n\r\n const customStyles = {\r\n content: {\r\n left: 0,\r\n top: 0,\r\n width: '100%',\r\n height: '100%',\r\n margin: 0,\r\n padding: 0,\r\n border: 0,\r\n background: '#f9c5b4',\r\n },\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {page === 'city' && (\r\n
    \r\n
    \r\n

    \r\n LET'S ADD ONE OF THE BEST OF YOUR BEST (A YOLO)!  IS YOUR RESTAURANT NEAR THIS CITY?\r\n

    \r\n
      \r\n
    • \r\n

      {props.location.name}

      {' '}\r\n
    • \r\n
    \r\n

    IF NOT THEN....

    \r\n
      \r\n
    • \r\n

      setShowLocation(true)}>\r\n CHANGE LOCATION{' '}\r\n

      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n

    \r\n BACK\r\n

    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n )}\r\n {page === 'name' && (\r\n
    \r\n \r\n {error !== '' &&

    {error}

    }\r\n {place.name !== '' &&

    {place.name}

    }\r\n
    \r\n

    \r\n \r\n

    \r\n {place.name !== '' && (\r\n

    \r\n \r\n

    \r\n )}\r\n
    \r\n
    \r\n )}\r\n {page === 'category' && (\r\n
    \r\n
    \r\n

    {place.name}

    \r\n

    CHOOSE A CATEGORY....

    \r\n
    \r\n
      {categoryList}
    \r\n {error !== '' &&

    {error}

    }\r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n
    \r\n )}\r\n {page === 'item' && (\r\n
    \r\n
    \r\n

    {category.name}

    \r\n {itemList.length > 0 && (\r\n <>\r\n

    These items below are already Favorited for this restaurant.If you wish to also add a Yolo for one of these items, just click the item text.

    \r\n
      {itemList}
    \r\n

    Or add any new item name below.

    \r\n \r\n )}\r\n \r\n {error !== '' &&

    {error}

    }\r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n {itemName.trim() !== '' && (\r\n

    \r\n \r\n

    \r\n )}\r\n
    \r\n
    \r\n )}\r\n {page === 'tags' && (\r\n
    \r\n
    \r\n

    {itemTitle}

    \r\n

    CHECK ANY THAT APPLY

    \r\n
    \r\n\r\n
      {getTagList()}
    \r\n\r\n
      \r\n {error !== '' &&

      {error}

      }\r\n
      \r\n

      \r\n \r\n

      \r\n

      \r\n \r\n

      \r\n
      \r\n
      \r\n )}\r\n {page === 'yolo' && (\r\n
      \r\n
      \r\n

      {itemTitle}

      \r\n
        \r\n
      • \r\n \r\n {description}\r\n \r\n {leftCounter}\r\n
      • \r\n
      \r\n {props.user.isLogged && props.user.id === 20 && (\r\n \r\n )}\r\n
      \r\n

      Or you can add later with an edit.

      \r\n {error !== '' &&

      {error}

      }\r\n
      \r\n {hasTags(category.id) && (\r\n

      \r\n \r\n

      \r\n )}\r\n {!hasTags(category.id) && (\r\n

      \r\n \r\n

      \r\n )}\r\n

      \r\n \r\n

      \r\n
      \r\n
      \r\n )}\r\n {page === 'upload' && (\r\n
      \r\n
      \r\n

      Yolo added.

      \r\n
      \r\n {/*

      */}\r\n {/* Add a photo of your favorite to receive 4 additional contest entries!*/}\r\n {/*

      */}\r\n

      \r\n Add a photo now, or you can add it later by going to your My Page\r\n

      \r\n

      \r\n Tip: If you can’t take a photo, there is usually a photo of that menu item\r\n to use by searching the restaurant photos on Yelp or Google reviews.\r\n

      \r\n
      \r\n {preview ? (\r\n
      \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n ) : (\r\n \r\n
      \r\n \r\n

      Drag photo here, or click to access photo files

      \r\n
      \r\n
      \r\n )}\r\n
      \r\n

      {files}

      \r\n {error !== '' &&

      {error}

      }\r\n
      \r\n

      \r\n \r\n Home\r\n \r\n

      \r\n
      \r\n
      \r\n )}\r\n\r\n\r\n {page === 'login' && (\r\n \r\n )}\r\n {page === 'done' && }\r\n
      \r\n
      \r\n \r\n \r\n \r\n
      \r\n );\r\n};\r\n\r\nexport default AddYoloPage;\r\n","import React from 'react';\r\nimport { useEffect } from \"react\";\r\nimport {\r\n\tRedirect\r\n} from \"react-router-dom\";\r\n\r\ntype Props = { \r\n\tuser: any,\r\n\thandleLogout(): void \r\n};\r\n\r\nconst LogoutPage: React.FC = (props) => {\r\n\r\n\tuseEffect(() => {\r\n return () => {\r\n // do nothing\r\n };\r\n\t}, []);\t\r\n\r\n\tif (props.user.isLogged) {\r\n\t\tprops.handleLogout();\r\n\t}\r\n\treturn ( )\r\n}\r\n\r\nexport default LogoutPage;","import React, { useState, useEffect, useContext } from 'react';\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport MenuBar from './../components/Menubar';\r\nimport User from './../components/Utils';\r\nimport LoaderContext from './../components/LoaderContext';\r\n\r\ntype Props = {\r\n\tuser: User,\r\n\thandleLogin(user): void\r\n};\r\n\r\nconst AdminPage: React.FC = (props) => {\r\n\tconst [error, setError] = useState('');\r\n\tconst { showLoader, hideLoader } = useContext(LoaderContext);\r\n\r\n\tlet didCancel = false;\r\n\r\n\tconst log = async (message: any) => {\r\n\t\tif (process.env.REACT_APP_LOG === 'true') {\r\n\t\t\tconsole.log(message);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tuseEffect(() => {\r\n\t\tif (props.user.isLogged) {\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tdidCancel = true;\r\n\t\t};\r\n\t}, [props.user.isLogged]);\r\n\r\n\r\n\tconst history = useHistory();\r\n\r\n\tconst onLoginAdmin = async () => {\r\n\t\tshowLoader();\r\n\t\tfetch(process.env.REACT_APP_SERVER_URL + \"/login/20\", {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: new Headers({\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\"Accept\": \"application/json\",\r\n\t\t\t\t'Authorization': 'Bearer ' + props.user.token\r\n\t\t\t}),\r\n\t\t})\r\n\t\t\t.then(res => res.json())\r\n\t\t\t.then(\r\n\t\t\t\t(result) => {\r\n\t\t\t\t\tlog(result);\r\n\t\t\t\t\thideLoader();\r\n\t\t\t\t\tprops.handleLogin({ id: result.id, name: result.name, token: result.token });\r\n\t\t\t\t\thistory.push(\"home\");\r\n\t\t\t\t},\r\n\t\t\t\t(error) => {\r\n\t\t\t\t\tlog(error);\r\n\t\t\t\t\tsetError(error.message);\r\n\t\t\t\t\thideLoader();\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t}\r\n\r\n\tif (!props.user.isLogged || (props.user.id !== 6 && props.user.id !== 7 && props.user.id !== 514)) {\r\n\t\treturn (\r\n\t\t\t
      \r\n\t\t\t\t
      Access denied.
      \r\n\t\t\t
      \r\n\t\t)\r\n\t} else {\r\n\t\treturn (\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
      \r\n\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t{props.user.isLogged && props.user.id === 514 &&\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

      \r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t{error !== '' &&\r\n\t\t\t\t\t\t\t\t

      {error}

      \r\n\t\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
      \r\n\t\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
      \r\n\t\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
      \r\n\t\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
      \r\n\t\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
      \r\n\t\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
      \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)\r\n\t}\r\n}\r\n\r\nexport default AdminPage; ","import React, { useContext, useState } from 'react';\nimport FindRestaurant from './../components/FindRestaurant';\nimport axios from 'axios';\nimport { useHistory } from 'react-router-dom'; // Import useHistory hook for navigation\nimport MenuBar from './../components/Menubar';\nimport LoaderContext from '../components/LoaderContext';\n\ntype Props = {\n location: any; // Location data, if needed\n user: any;\n};\n\nasync function fetchRestaurantId(restaurantName) {\n try {\n const response = await axios.get(\n `${process.env.REACT_APP_SERVER_URL}/restaurants?name=${encodeURIComponent(restaurantName)}`\n );\n return { data: response.data, exists: true };\n } catch (error) {\n return { exists: false };\n }\n}\n\nconst RestaurantSearch: React.FC = (props) => {\n const [place, setPlace] = useState({ name: '', address: '', latitude: '', longitude: '' });\n const [error, setError] = useState('');\n const history = useHistory();\n const { showLoader, hideLoader } = useContext(LoaderContext);\n\n const handlePlaceChanged = async (place) => {\n setError('');\n setPlace(place); // Update place state with selected restaurant details\n const result = await fetchRestaurantId(place.name);\n if (result) {\n if (result.exists) {\n history.push(`/restaurant/${result.data}`);\n hideLoader();\n } else {\n setError(\"We're sorry, but there are no favorites saved at this restaurant yet.\");\n hideLoader();\n }\n } else {\n setError('Error fetching restaurant information. Please try again.');\n hideLoader();\n }\n };\n\n const handlePlaceError = (error) => {\n setError(error);\n };\n\n return (\n
      \n
      \n \n
      \n
      \n \n {error &&

      {error}

      }\n
      \n
      \n
      \n
      \n );\n};\n\nexport default RestaurantSearch;\n","import React, { useContext, useState } from 'react';\r\nimport User from '../components/Utils';\r\nimport LoginPage from './LoginPage';\r\nimport MenuBar from '../components/Menubar';\r\nimport LoaderContext from '../components/LoaderContext';\r\n\r\ntype Props = {\r\n user: User,\r\n handleLogin(user): void\r\n};\r\n\r\nconst AccountSettingPage: React.FC = (props) => {\r\n\r\n const [newName, setNewName] = useState('');\r\n const [verifyNewName, setVerifyNewName] = useState('');\r\n const [newEmail, setNewEmail] = useState('');\r\n const [verifyNewEmail, setVerifyNewEmail] = useState('');\r\n const { showLoader, hideLoader } = useContext(LoaderContext);\r\n\r\n const onLoginBackClick = async () => {\r\n }\r\n\r\n const saveChangeEmail = async ()=>{\r\n const stored = localStorage.getItem('YoloMeal');\r\n let userData: User;\r\n if(stored) {\r\n userData = JSON.parse(stored);\r\n }\r\n if(newEmail === verifyNewEmail){\r\n showLoader();\r\n fetch(\r\n process.env.REACT_APP_SERVER_URL +\r\n '/user/email?email=' +\r\n newEmail,\r\n {\r\n method: 'PUT',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n Authorization: 'Bearer ' + props.user.token,\r\n })\r\n }\r\n )\r\n .then((res) => res.json())\r\n .then(\r\n (result) => {\r\n userData.email = result.result.email;\r\n props.user.email = result.result.email;\r\n console.log(userData);\r\n localStorage.setItem('YoloMeal', JSON.stringify(userData));\r\n hideLoader();\r\n },\r\n (error) => {\r\n hideLoader();\r\n console.log(error)\r\n }\r\n );\r\n }\r\n }\r\n\r\n const saveChangeName = async () =>{\r\n const stored = localStorage.getItem('YoloMeal');\r\n let userData: User;\r\n if(stored) {\r\n userData = JSON.parse(stored);\r\n }\r\n if(newName === verifyNewName){\r\n var seperatedName = newName.split(' ');\r\n console.log(seperatedName);\r\n showLoader();\r\n var url = process.env.REACT_APP_SERVER_URL + '/user/name?firstname=' +\r\n seperatedName[0] + \"&lastname=\";\r\n if(seperatedName.length > 1){\r\n url = url + seperatedName[1];\r\n }\r\n console.log(url)\r\n fetch(\r\n url,\r\n {\r\n method: 'PUT',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n Authorization: 'Bearer ' + props.user.token,\r\n })\r\n }\r\n )\r\n .then((res) => res.json())\r\n .then(\r\n (result) => {\r\n userData.name = `${result.result.firstName} ${result.result.lastName}`;\r\n props.user.name = `${result.result.firstName} ${result.result.lastName}`;\r\n localStorage.setItem('YoloMeal', JSON.stringify(userData));\r\n hideLoader();\r\n },\r\n (error) => {\r\n hideLoader();\r\n console.log(error)\r\n }\r\n );\r\n }\r\n }\r\n\r\n const isNameButtonDisabled = () => {\r\n return newName !== verifyNewName || newName == \"\";\r\n }\r\n const isEmailButtonDisables = () =>{\r\n return newEmail !== verifyNewEmail || newEmail == \"\";\r\n }\r\n\r\n if (!props.user.isLogged) {\r\n return (\r\n \r\n )\r\n } else {\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n

      Current Name:{props.user.name}

      \r\n
      \r\n setNewName(e.target.value)}\r\n />\r\n setVerifyNewName(e.target.value)}\r\n />\r\n
      \r\n
      \r\n saveChangeName()}\r\n >\r\n Change Name\r\n \r\n
      \r\n

      Current Email:{props.user.email}

      \r\n
      \r\n setNewEmail(e.target.value)}/>\r\n setVerifyNewEmail(e.target.value)}/>\r\n
      \r\n
      \r\n saveChangeEmail()}\r\n >\r\n Change Email\r\n \r\n
      \r\n
      \r\n
      \r\n )\r\n }\r\n}\r\n\r\nexport default AccountSettingPage;","import React, { useContext, useEffect, useState } from 'react';\r\nimport { Link, useHistory } from \"react-router-dom\";\r\n\r\nimport MenuBar from './../components/Menubar';\r\nimport User from './../components/Utils';\r\nimport LoaderContext from './../components/LoaderContext';\r\n\r\ntype Props = {\r\n user: User,\r\n handleLogin(user: any): void\r\n};\r\nconst ShareHoldersPage: React.FC = (props) => {\r\n const [error, setError] = useState('');\r\n const [items, setItems] = useState([]);\r\n const [total, setTotal] = useState(0);\r\n const { showLoader, hideLoader } = useContext(LoaderContext);\r\n const [showJumpToTopButton, setShowJumpToTopButton] = useState(false);\r\n\r\n\r\n\tconst handleScrol = () => {\r\n\t\tconst windowHeight = window.innerHeight; // Height of the viewport\r\n\t\tconst scrollPosition = window.scrollY; // Current scroll position\r\n\t\tconst scrollThreshold = windowHeight * 1; // Threshold at 25% down the page\r\n\t\r\n\t\tsetShowJumpToTopButton(scrollPosition > scrollThreshold); // Show button when scrolled past 25% down\r\n\t};\r\n\r\n // Function to handle clicking on \"Jump to Top\" button\r\n const handleJumpToTop = () => {\r\n window.scrollTo({ top: 0, behavior: 'smooth' }); // Scroll to top of the page smoothly\r\n };\r\n useEffect(() => {\r\n window.addEventListener('scroll', handleScrol);\r\n return () => {\r\n window.removeEventListener('scroll', handleScrol);\r\n };\r\n }, []);\t\r\n useEffect(() => {\r\n if (props.user.isLogged) {\r\n loadData();\r\n }\r\n\r\n return () => {\r\n didCancel = true;\r\n };\r\n }, [props.user.isLogged]);\r\n let didCancel = false;\r\n const history = useHistory();\r\n\r\n const log = async (message: any) => {\r\n if (process.env.REACT_APP_LOG === 'true') {\r\n console.log(message);\r\n }\r\n }\r\n const handleErrors = (response) => {\r\n log(response);\r\n if (!response.ok) {\r\n var err = response.statusText;\r\n if (err === '') {\r\n err = 'Error';\r\n }\r\n throw Error(err);\r\n }\r\n return response;\r\n }\r\n const loadData = async () => {\r\n showLoader();\r\n fetch(process.env.REACT_APP_SERVER_URL + \"/shares?v=\" + Date.now(), {\r\n method: 'GET',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n 'Authorization': 'Bearer ' + props.user.token\r\n }),\r\n })\r\n .then(handleErrors)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n log(result);\r\n if (!didCancel) {\r\n hideLoader();\r\n setItems(result);\r\n var total = 0;\r\n result.map((item, i) => total = total + item['shareCount'])\r\n setTotal(total);\r\n setError(\"\");\r\n }\r\n },\r\n (error) => {\r\n log(error);\r\n if (!didCancel) {\r\n hideLoader();\r\n setError(error.message);\r\n }\r\n }\r\n )\r\n };\r\n if (!props.user.isLogged || (props.user.id !== 6 && props.user.id !== 7 && props.user.id !== 514)) {\r\n return (\r\n
      \r\n
      Access denied.
      \r\n
      \r\n )\r\n } else {\r\n return (\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n {props.user.isLogged && props.user.id === 514 &&\r\n

      \r\n \r\n

      \r\n }\r\n {error !== '' &&\r\n

      {error}

      \r\n }\r\n
      \r\n

      Share Holders List

      \r\n
      \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {items.map((item, i) =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      First NameLast NameYolosReferentShares
      \r\n {item['firstName']}\r\n \r\n {item['lastName']}\r\n \r\n {item['yoloCount']}\r\n \r\n {item['refCount']}\r\n \r\n {item['shareCount']}\r\n
      Total{total}
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n \r\n
      \r\n \r\n {showJumpToTopButton && (\r\n \r\n )}\r\n
      \r\n );\r\n }\r\n}\r\n\r\nexport default ShareHoldersPage;","import React, { useContext, useEffect, useState } from 'react';\r\nimport User from '../components/Utils';\r\nimport MenuBar from '../components/Menubar';\r\nimport LoaderContext from '../components/LoaderContext';\r\nimport { Link } from 'react-router-dom';\r\n\r\ntype Props = {\r\n user: User,\r\n handleLogin(user: any): void\r\n};\r\n\r\nconst ClosedRestaurantsPage: React.FC = (props) => {\r\n const { showLoader, hideLoader } = useContext(LoaderContext);\r\n const [restaurants, setRestaurants] = useState([]);\r\n const [showTable, setShowTable] = useState(false);\r\n\r\n const handleNotification = async () =>\r\n {\r\n try {\r\n const stored = localStorage.getItem('YoloMeal');\r\n console.log(stored);\r\n if (stored) {\r\n showLoader();\r\n const userData = JSON.parse(stored);\r\n\r\n fetch(\r\n process.env.REACT_APP_SERVER_URL +\r\n `/markedClosedRestaurant` ,\r\n {\r\n method: 'GET',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n Authorization: 'Bearer ' + userData.token,\r\n })\r\n }\r\n )\r\n .then((res) => res.json())\r\n .then(\r\n (result) => {\r\n setRestaurants(result.restaurants);\r\n setShowTable(true);\r\n hideLoader();\r\n },\r\n (error) => {\r\n hideLoader();\r\n console.log(error)\r\n }\r\n );\r\n\r\n }\r\n } catch (error) {\r\n console.error('Error fetching categories:', error);\r\n }\r\n };\r\n\r\n return(\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n {props.user.isLogged && props.user.id === 514 &&\r\n

      \r\n \r\n

      \r\n }\r\n\r\n {showTable && restaurants.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {restaurants.map((restaurant: any, index) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
      RestaurantAction
      {restaurant.name}\r\n Select\r\n
      \r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n );\r\n}\r\n\r\nexport default ClosedRestaurantsPage;","import React, { useContext, useEffect, useState } from 'react';\r\nimport User from '../components/Utils';\r\nimport LoaderContext from '../components/LoaderContext';\r\nimport MenuBar from '../components/Menubar';\r\nimport { Link } from 'react-router-dom';\r\n\r\ntype Props = {\r\n user: User,\r\n handleLogin(user: any): void\r\n};\r\nconst NewMemberPage: React.FC = (props) => {\r\n const [error, setError] = useState('');\r\n const { showLoader, hideLoader } = useContext(LoaderContext);\r\n const [users, setUsers] = useState([]);\r\n const [membersCount, setMembersCount] = useState(0);\r\n\r\n const [showJumpToTopButton, setShowJumpToTopButton] = useState(false);\r\n\r\n const [from, setFrom] = useState(new Date());\r\n const [to, setTo] = useState(new Date());\r\n\r\n const handleFromDateChange = (e: React.ChangeEvent) => {\r\n const value = e.target.value;\r\n const selectedDate = new Date(value);\r\n setFrom(selectedDate);\r\n };\r\n\r\n const handleToDateChange = (e: React.ChangeEvent) => {\r\n const value = e.target.value;\r\n const selectedDate = new Date(value);\r\n setTo(selectedDate);\r\n };\r\n\r\n const handleSearch = () => {\r\n loadUsers(); // Call loadUsers function to fetch data with selected date range\r\n };\r\n\r\n const handleScrol = () => {\r\n const windowHeight = window.innerHeight; // Height of the viewport\r\n const scrollPosition = window.scrollY; // Current scroll position\r\n const scrollThreshold = windowHeight * 0.25; // Threshold at 25% down the page\r\n\r\n setShowJumpToTopButton(scrollPosition > scrollThreshold); // Show button when scrolled past 25% down\r\n };\r\n\r\n // Function to handle clicking on \"Jump to Top\" button\r\n const handleJumpToTop = () => {\r\n window.scrollTo({ top: 0, behavior: 'smooth' }); // Scroll to top of the page smoothly\r\n };\r\n\r\n useEffect(() => {\r\n window.addEventListener('scroll', handleScrol);\r\n return () => {\r\n window.removeEventListener('scroll', handleScrol);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.user.isLogged) {\r\n // loadUsers(); // Load users initially when component mounts\r\n }\r\n\r\n return () => {\r\n didCancel = true;\r\n };\r\n }, [props.user.isLogged]);\r\n\r\n let didCancel = false;\r\n\r\n const log = async (message: any) => {\r\n if (process.env.REACT_APP_LOG === 'true') {\r\n console.log(message);\r\n }\r\n };\r\n\r\n const handleErrors = (response: Response) => {\r\n log(response);\r\n if (!response.ok) {\r\n var err = response.statusText || 'Error';\r\n throw Error(err);\r\n }\r\n return response;\r\n };\r\n\r\n const loadUsers = async () => {\r\n showLoader();\r\n\r\n // Construct API endpoint with from and to dates as query parameters\r\n const url = new URL(process.env.REACT_APP_SERVER_URL + \"/user/count\");\r\n if (from) {\r\n url.searchParams.append('from', from.toISOString().split('T')[0] );\r\n }\r\n if (to) {\r\n url.searchParams.append('to', to.toISOString().split('T')[0] );\r\n }\r\n\r\n fetch(url.toString(), {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json',\r\n 'Authorization': 'Bearer ' + props.user.token\r\n },\r\n })\r\n .then(handleErrors)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n hideLoader();\r\n if (!didCancel) {\r\n console.log(result);\r\n setUsers(result.new_users);\r\n setMembersCount(result.registered_users);\r\n }\r\n },\r\n (error) => {\r\n log(error);\r\n if (!didCancel) {\r\n hideLoader();\r\n setError(error.message);\r\n }\r\n }\r\n );\r\n };\r\n\r\n if (!props.user.isLogged || (props.user.id !== 6 && props.user.id !== 7 && props.user.id !== 514)) {\r\n return (\r\n
      \r\n
      Access denied.
      \r\n
      \r\n )\r\n } else {\r\n return (\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n {props.user.isLogged && props.user.id === 514 &&\r\n

      \r\n \r\n

      \r\n }\r\n {error !== '' &&\r\n

      {error}

      \r\n }\r\n\r\n
      \r\n
      \r\n

      From:

      \r\n \r\n
      \r\n
      \r\n

      To:

      \r\n \r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n

      Members count:

      \r\n

      {membersCount}

      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {users.length > 0 ? (\r\n <>\r\n {users.map((item, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n
      NameEmailsPlatformJoining DateMy Page
      {item['firstName']} {item['lastName']}{item['email']}{item['platform']}{new Date(item['createdAt']).toISOString().split('T')[0]}View Now!
      No users registered in the selected date range.
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n {showJumpToTopButton && (\r\n \r\n )}\r\n
      \r\n
      \r\n );\r\n }\r\n};\r\n\r\nexport default NewMemberPage;\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport User from '../components/Utils';\r\nimport LoaderContext from '../components/LoaderContext';\r\nimport MenuBar from '../components/Menubar';\r\nimport { Link } from 'react-router-dom';\r\ntype Props = {\r\n user: User,\r\n handleLogin(user: any): void\r\n};\r\nconst RecentYollosPage: React.FC = (props) => {\r\n const [error, setError] = useState('');\r\n const { showLoader, hideLoader } = useContext(LoaderContext);\r\n const [items, setItems] = useState([]);\r\n const [yoloCount, setYoloCount] = useState(0);\r\n const [from, setFrom] = useState(new Date());\r\n const [to, setTo] = useState(new Date());\r\n\r\n const handleFromDateChange = (e: React.ChangeEvent) => {\r\n const value = e.target.value;\r\n const selectedDate = new Date(value);\r\n setFrom(selectedDate);\r\n };\r\n\r\n const handleToDateChange = (e: React.ChangeEvent) => {\r\n const value = e.target.value;\r\n const selectedDate = new Date(value);\r\n setTo(selectedDate);\r\n };\r\n\r\n const handleSearch = () => {\r\n loadData();\r\n };\r\n\r\n let didCancel = false;\r\n useEffect(() => {\r\n if (props.user.isLogged) {\r\n console.log(\"recent\");\r\n\r\n }\r\n\r\n return () => {\r\n didCancel = true;\r\n };\r\n }, [props.user.isLogged]);\r\n const log = async (message: any) => {\r\n if (process.env.REACT_APP_LOG === 'true') {\r\n console.log(message);\r\n }\r\n }\r\n const handleErrors = (response) => {\r\n log(response);\r\n if (!response.ok) {\r\n var err = response.statusText;\r\n if (err === '') {\r\n err = 'Error';\r\n }\r\n throw Error(err);\r\n }\r\n return response;\r\n }\r\n\r\n const loadData = async () => {\r\n showLoader();\r\n const url = new URL(process.env.REACT_APP_SERVER_URL + \"/recentYolos\")\r\n\r\n if (from) {\r\n url.searchParams.append('from', from.toISOString().split('T')[0] );\r\n }\r\n if (to) {\r\n url.searchParams.append('to', to.toISOString().split('T')[0] );\r\n }\r\n\r\n fetch(url.toString(), {\r\n method: 'GET',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n 'Authorization': 'Bearer ' + props.user.token\r\n }),\r\n })\r\n .then(handleErrors)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n log(result);\r\n if (!didCancel) {\r\n hideLoader();\r\n setItems(result.recentYolos);\r\n setYoloCount(result.count);\r\n }\r\n },\r\n (error) => {\r\n log(error);\r\n if (!didCancel) {\r\n hideLoader();\r\n setError(error.message);\r\n }\r\n }\r\n )\r\n };\r\n\r\n if (!props.user.isLogged || (props.user.id !== 6 && props.user.id !== 7 && props.user.id !== 514)) {\r\n return (\r\n
      \r\n
      Access denied.
      \r\n
      \r\n )\r\n } else {\r\n return (\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n {props.user.isLogged && props.user.id === 514 &&\r\n

      \r\n \r\n

      \r\n }\r\n {error !== '' &&\r\n

      {error}

      \r\n }\r\n
      \r\n
      \r\n
      \r\n

      From:

      \r\n \r\n
      \r\n
      \r\n

      To:

      \r\n \r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n

      yolos within this time frame:

      \r\n

      '{yoloCount} { yoloCount > 0 ? 'yolos' : 'yolo' }'

      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {items.length <= 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n items.map((item, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )}\r\n \r\n
      NameCategoryMenu ItemRestaurant NameEmail
      No items found
      {item['Username']}{item['categoryName']}{item['itemName']}{item['restaurantName']}{item['email']}
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n\r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n );\r\n }\r\n}\r\nexport default RecentYollosPage;","import React from 'react';\r\nimport { useEffect, useState } from 'react';\r\n\r\ntype Props = {\r\n location: any;\r\n handlePlaceChanged(place): void;\r\n handleClose(): void;\r\n};\r\n\r\nconst CityLocation: React.FC = (props) => {\r\n const [error, setError] = useState('');\r\n const [location, setLocation] = useState({ lat: 0, lng: 0, name: '' });\r\n\r\n const newLocation = async (place, name) => {\r\n var obj = {\r\n name: name,\r\n lat: place.geometry.location.lat(),\r\n lng: place.geometry.location.lng(),\r\n };\r\n setLocation(obj);\r\n setError('');\r\n props.handlePlaceChanged(obj);\r\n };\r\n\r\n useEffect(() => {\r\n if (typeof google !== 'undefined') {\r\n const center = { lat: props.location.lat, lng: props.location.lng };\r\n \r\n const defaultBounds = {\r\n north: center.lat + 0.1,\r\n south: center.lat - 0.1,\r\n east: center.lng + 0.1,\r\n west: center.lng - 0.1,\r\n };\r\n \r\n const input = document.getElementById('city-name') as HTMLInputElement;\r\n \r\n const options = {\r\n bounds: defaultBounds,\r\n fields: ['address_components', 'geometry'],\r\n origin: center,\r\n strictBounds: false,\r\n types: ['geocode'],\r\n };\r\n \r\n const autocomplete = new google.maps.places.Autocomplete(input, options);\r\n \r\n autocomplete.addListener('place_changed', function () {\r\n var place = autocomplete.getPlace();\r\n //console.log(place);\r\n if (place.geometry && place.address_components) {\r\n var i;\r\n for (i = 0; i < place.address_components.length; i++) {\r\n if (place.address_components[i]['types'][0] === 'locality') {\r\n newLocation(place, place.address_components[i]['long_name']);\r\n return;\r\n }\r\n }\r\n for (i = 0; i < place.address_components.length; i++) {\r\n if (place.address_components[i]['types'][0] === 'administrative_area_level_2') {\r\n newLocation(place, place.address_components[i]['long_name']);\r\n return;\r\n }\r\n }\r\n }\r\n setLocation({ lat: 0, lng: 0, name: '' });\r\n setError('Not Found!');\r\n });\r\n }\r\n }, []);\r\n \r\n\r\n\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n

      City Selection

      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n );\r\n};\r\n\r\nexport default CityLocation;\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport User from '../components/Utils';\r\nimport LoaderContext from '../components/LoaderContext';\r\nimport MenuBar from '../components/Menubar';\r\nimport { Link } from 'react-router-dom';\r\nimport FindLocation from '../components/FindLocation';\r\nimport CityLocation from '../components/cityLocation';\r\n\r\ntype Props = {\r\n user: User,\r\n handleLogin(user: any): void\r\n location: any,\r\n handleLocationChange(obj): void,\r\n};\r\nconst AdminRestorentPage: React.FC = (props) => {\r\n const [error, setError] = useState('');\r\n const [location, setLocation] = useState({ lat: 0, lng: 0, name: '' });\r\n const { showLoader, hideLoader } = useContext(LoaderContext);\r\n const [restourents, setRestorents] = useState([]);\r\n const [showRestaurents, setShowRestaurents] = useState(false);\r\n const [showLocation, setShowLocation] = useState(false);\r\n const [showJumpToTopButton, setShowJumpToTopButton] = useState(false);\r\n // const google = window.google ? window.google : {}\r\n\r\n\r\n const handleScrol = () => {\r\n const windowHeight = window.innerHeight; // Height of the viewport\r\n const scrollPosition = window.scrollY; // Current scroll position\r\n const scrollThreshold = windowHeight * 1; // Threshold at 25% down the page\r\n\r\n setShowJumpToTopButton(scrollPosition > scrollThreshold); // Show button when scrolled past 25% down\r\n };\r\n\r\n // Function to handle clicking on \"Jump to Top\" button\r\n const handleJumpToTop = () => {\r\n window.scrollTo({ top: 0, behavior: 'smooth' }); // Scroll to top of the page smoothly\r\n };\r\n useEffect(() => {\r\n window.addEventListener('scroll', handleScrol);\r\n return () => {\r\n window.removeEventListener('scroll', handleScrol);\r\n };\r\n }, []);\r\n const log = async (message: any) => {\r\n if (process.env.REACT_APP_LOG === 'true') {\r\n console.log(message);\r\n }\r\n }\r\n const handleErrors = (response) => {\r\n log(response);\r\n if (!response.ok) {\r\n var err = response.statusText;\r\n if (err === '') {\r\n err = 'Error';\r\n }\r\n throw Error(err);\r\n }\r\n return response;\r\n }\r\n let didCancel = false;\r\n const loadRestourents = async (location) => {\r\n showLoader();\r\n fetch(process.env.REACT_APP_SERVER_URL + \"/restaurantsByCity?city=\" + location.name, {\r\n method: 'GET',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n 'Authorization': 'Bearer ' + props.user.token\r\n }),\r\n })\r\n .then(handleErrors)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n hideLoader();\r\n if (!didCancel) {\r\n setRestorents(result.restaurants)\r\n }\r\n },\r\n (error) => {\r\n log(error);\r\n if (!didCancel) {\r\n hideLoader();\r\n setError(error.message);\r\n }\r\n }\r\n )\r\n };\r\n \r\n useEffect(() => {\r\n if (props.user.isLogged) {\r\n }\r\n\r\n return () => {\r\n didCancel = true;\r\n };\r\n }, [props.user.isLogged]);\r\n\r\n const handlePlaceChanged = async (place) => {\r\n setShowLocation(false);\r\n props.handleLocationChange(place);\r\n loadRestourents(place);\r\n setShowRestaurents(true)\r\n };\r\n\r\n const handleHideLocation = async () => {\r\n setShowLocation(false)\r\n };\r\n\r\n\r\n if (!props.user.isLogged || (props.user.id !== 6 && props.user.id !== 7 && props.user.id !== 514)) {\r\n return (\r\n
      \r\n
      Access denied.
      \r\n
      \r\n )\r\n } else {\r\n return (\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n {props.user.isLogged && props.user.id === 514 &&\r\n

      \r\n \r\n

      \r\n }\r\n {error !== '' &&\r\n

      {error}

      \r\n }\r\n\r\n \r\n \r\n {showRestaurents && restourents.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {restourents.map((restaurant: any, index) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
      NameAction
      {restaurant.name}\r\n Select\r\n
      \r\n )}\r\n
      \r\n
      \r\n {showJumpToTopButton && (\r\n \r\n )}\r\n
      \r\n
      \r\n );\r\n }\r\n}\r\nexport default AdminRestorentPage;\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport User from '../components/Utils';\r\nimport LoaderContext from '../components/LoaderContext';\r\nimport MenuBar from '../components/Menubar';\r\nimport { useParams, useLocation, Link } from 'react-router-dom';\r\nimport Modal from 'react-modal';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\ntype Props = {\r\n user: User,\r\n handleLogin(user: any): void\r\n};\r\ninterface Params {\r\n id: string; // Define the type of the id parameter\r\n name: string\r\n}\r\n\r\nconst AdminRestorentDetailPage: React.FC = (props) => {\r\n const [error, setError] = useState('');\r\n const [showModal, setShowModal] = useState(false);\r\n const [showItemModal, setShowItemModal] = useState(false);\r\n const history = useHistory();\r\n const [itemIdToDelete, setItemIdToDelete] = useState('');\r\n\r\n const { showLoader, hideLoader } = useContext(LoaderContext);\r\n const [items, setItems] = useState([]);\r\n const { id } = useParams();\r\n let location = useLocation();\r\n let name = new URLSearchParams(location.search).get(\"name\");\r\n useEffect(() => {\r\n if (props.user.isLogged) {\r\n\r\n loadItems();\r\n }\r\n\r\n return () => {\r\n // didCancel = true;\r\n };\r\n }, [props.user.isLogged]);\r\n const log = async (message: any) => {\r\n if (process.env.REACT_APP_LOG === 'true') {\r\n console.log(message);\r\n }\r\n }\r\n const confirmBoxStyle = {\r\n content: {\r\n top: '50%',\r\n left: '50%',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: '30%',\r\n height: '30%',\r\n margin: 0,\r\n padding: 0,\r\n border: 0,\r\n background: '#f9c5b4'\r\n }\r\n };\r\n const handleDeleteRestaurent = () => {\r\n setShowModal(true);\r\n }\r\n\r\n const closeConfirmBox = () => {\r\n setShowModal(false);\r\n }\r\n\r\n\r\n const handleConfirmYes = () => {\r\n deleteRestaurent();\r\n setShowModal(false);\r\n history.push('/restourent');\r\n };\r\n const handleConfirmNo = () => {\r\n setShowModal(false);\r\n };\r\n\r\n const handleDeleteItems = (id) => {\r\n setItemIdToDelete(id);\r\n setShowItemModal(true);\r\n }\r\n const handleItemConfirmYes = () => {\r\n deleteItems(itemIdToDelete);\r\n setShowItemModal(false);\r\n };\r\n\r\n const closeItemConfirmBox = () => {\r\n setShowItemModal(false);\r\n }\r\n\r\n\r\n const handleItemConfirmNo = () => {\r\n setShowItemModal(false);\r\n };\r\n\r\n const handleErrors = (response) => {\r\n log(response);\r\n if (!response.ok) {\r\n var err = response.statusText;\r\n if (err === '') {\r\n err = 'Error';\r\n }\r\n throw Error(err);\r\n }\r\n return response;\r\n }\r\n let didCancel = false;\r\n const loadItems = async () => {\r\n showLoader();\r\n fetch(process.env.REACT_APP_SERVER_URL + \"/itemsWithYolos?restaurantId=\" + id, {\r\n method: 'GET',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n 'Authorization': 'Bearer ' + props.user.token\r\n }),\r\n })\r\n .then(handleErrors)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n hideLoader();\r\n if (!didCancel) {\r\n setItems(result.items);\r\n }\r\n },\r\n (error) => {\r\n log(error);\r\n if (!didCancel) {\r\n hideLoader();\r\n setError(error.message);\r\n }\r\n }\r\n )\r\n };\r\n const deleteRestaurent = async () => {\r\n showLoader();\r\n fetch(process.env.REACT_APP_SERVER_URL + \"/restaurant/delete?restaurantId=\" + id, {\r\n method: 'PUT',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n 'Authorization': 'Bearer ' + props.user.token\r\n }),\r\n })\r\n .then(handleErrors)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n hideLoader();\r\n if (!didCancel) {\r\n \r\n\r\n }\r\n },\r\n (error) => {\r\n log(error);\r\n if (!didCancel) {\r\n hideLoader();\r\n setError(error.message);\r\n }\r\n }\r\n )\r\n };\r\n\r\n const deleteItems = async (itemId) => {\r\n showLoader();\r\n fetch(process.env.REACT_APP_SERVER_URL + \"/items/delete?itemId=\" + itemId, {\r\n method: 'PUT',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n 'Authorization': 'Bearer ' + props.user.token\r\n }),\r\n })\r\n .then(handleErrors)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n hideLoader();\r\n if (!didCancel) {\r\n loadItems();\r\n }\r\n },\r\n (error) => {\r\n log(error);\r\n if (!didCancel) {\r\n hideLoader();\r\n setError(error.message);\r\n }\r\n }\r\n )\r\n };\r\n\r\n if (!props.user.isLogged || (props.user.id !== 6 && props.user.id !== 7 && props.user.id !== 514)) {\r\n return (\r\n
      \r\n
      Access denied.
      \r\n
      \r\n )\r\n } else {\r\n return (\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n

      {name}

      \r\n \r\n
      \r\n

      Yolloed items

      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {items.length > 0 ? (\r\n items.map((item: any, index) => (\r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n
      NameYolo CountAction
      {item.itemName}{item.yoloCount}\r\n \r\n
      No items found.
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n \r\n
      \r\n
      \r\n

      This will delete this restaurant from Yolomeal. Are you\r\n sure?

      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n

      This will delete this menu item from Yolomeal. Are you\r\n sure?

      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n );\r\n }\r\n}\r\nexport default AdminRestorentDetailPage;","import watch from '../images/appleWatch2.jpg';\nimport card from '../images/contestCard.jpg';\n\nimport React, { CSSProperties } from 'react';\ninterface Styles {\n mainContainer: CSSProperties;\n contentWrapper: CSSProperties;\n header: CSSProperties;\n subHeader: CSSProperties;\n title: CSSProperties;\n prizesContainer: CSSProperties;\n imageContainer: CSSProperties;\n image: CSSProperties;\n orText: CSSProperties;\n giftCardContainer: CSSProperties;\n giftCardAmount: CSSProperties;\n rulesContainer: CSSProperties;\n ruleText: CSSProperties;\n deadline: CSSProperties;\n}\nconst getStyles = (windowWidth: number): Styles => ({\n mainContainer: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n contentWrapper: {\n width: '100%',\n backgroundColor: '#faf9f8',\n padding: windowWidth < 768 ? 20 : 40,\n margin: 'auto',\n },\n header: {\n textAlign: 'center',\n marginBottom: windowWidth < 768 ? 24 : 48,\n },\n subHeader: {\n fontSize: windowWidth < 768 ? '16px' : '20px',\n color: 'black',\n fontWeight: 'bold',\n marginBottom: 16,\n padding: '0 20px',\n },\n title: {\n fontSize: windowWidth < 768 ? '48px' : '72px',\n fontWeight: 700,\n marginBottom: windowWidth < 768 ? 24 : 32,\n color: 'black',\n },\n prizesContainer: {\n display: 'flex',\n flexDirection: windowWidth < 768 ? 'column' : 'row',\n alignItems: 'start',\n justifyContent: 'center',\n gap: windowWidth < 768 ? '24px' : '48px',\n marginBottom: windowWidth < 768 ? 32 : 64,\n padding: '20px 0',\n },\n imageContainer: {\n width: windowWidth < 768 ? 240 : 320,\n height: windowWidth < 768 ? 240 : 320,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'transform 0.3s ease',\n cursor: 'pointer',\n },\n image: {\n maxWidth: '100%',\n height: 'auto',\n objectFit: 'contain',\n borderRadius: 8,\n },\n orText: {\n fontSize: windowWidth < 768 ? '32px' : '48px',\n fontWeight: 700,\n margin: windowWidth < 768 ? '8px 0' : '0 32px',\n color: 'black',\n alignContent: 'start',\n },\n giftCardContainer: {\n position: 'relative',\n width: '100%',\n height: '100%',\n },\n giftCardAmount: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n fontSize: windowWidth < 768 ? '32px' : '48px',\n fontWeight: 700,\n color: '#fff',\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n padding: '8px 16px',\n borderRadius: 8,\n },\n rulesContainer: {\n textAlign: 'center',\n maxWidth: windowWidth < 768 ? '100%' : '800px',\n margin: '0 auto',\n padding: windowWidth < 768 ? '0 16px' : '0 32px',\n },\n ruleText: {\n fontSize: windowWidth < 768 ? '16px' : '20px',\n marginBottom: 16,\n lineHeight: 1.2,\n color: 'black',\n justifyContent: 'start',\n textAlign: 'left',\n fontWeight: 600,\n fontFamily: 'Poppins',\n },\n deadline: {\n fontSize: windowWidth < 768 ? '18px' : '24px',\n fontWeight: 700,\n marginTop: 24,\n color: '#333',\n padding: '16px',\n backgroundColor: '#F8F8F8',\n borderRadius: 8,\n display: 'inline-block',\n },\n});\nconst FirstSplashScreen: React.FC = () => {\n const [windowWidth, setWindowWidth] = React.useState(window.innerWidth);\n React.useEffect(() => {\n const handleResize = () => {\n setWindowWidth(window.innerWidth);\n };\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n const styles = getStyles(windowWidth);\n return (\n
      \n
      \n
      \n \n \n \n

      \n open only to the\n Food Los Angeles\n sub.\n

      \n

      WIN

      \n
      \n
      \n
      \n \"Apple\n
      \n OR\n
      \n
      \n \"Amazon\n
      \n
      \n
      \n
      \n

      \n Everyone wants to know your favorite menu item from a local LA restaurant. Save your fave at Yolomeal.com\n and you are in it to win it! Save a photo of the menu item and get 4 extra entries! Hurry, contest ends and\n drawing is on 2/22/2025\n

      \n
      \n
      \n
      \n );\n};\nexport default FirstSplashScreen;","import React from 'react';\r\nimport watch2 from '../images/appleWatch.jpg';\r\nimport { Link } from 'react-router-dom';\r\nimport DisclaimerPage from './DisclaimerPage';\r\n\r\ntype Props = {\r\n\r\n}\r\n\r\nconst SecondSplashScreen: React.FC = (props) => {\r\n return(\r\n
      \r\n
      \r\n
      \r\n \"doorDash\"\r\n
      \r\n
      \r\n

      Tell us your favorite restaurant dish\r\n in the Twin Cities & be entered to win an Apple watch!

      \r\n

      Help us find the best food in MSP, promote local restaurants, and be entered\r\n to win an Apple watch! It’s a win / win!

      \r\n

      How to enter:

      \r\n
        \r\n
      • \r\n Log into Yolomeal.-\r\n Super easy!\r\n
      • \r\n
      • Select your city.\r\n
      • \r\n
      • Follow the prompts to save your favorite!\r\n
      • \r\n
      • Now you’re automatically entered to win an Apple watch!\r\n
      • \r\n
      • BONUS: Add a photo of your favorite and receive 4 additional entries!\r\n
      • \r\n
      \r\n {/*

      This site is not part of the Facebook website or Facebook Inc.*/}\r\n {/* Additionally, this site is NOT endorsed by Facebook in any way. FACEBOOK is a trademark of META, Inc. For more info: Contest Conditions Contact us at: info@yolomeal.com

      */}\r\n
      \r\n
      \r\n
      \r\n );\r\n}\r\n\r\nexport default SecondSplashScreen;","import React from 'react';\r\nimport MenuBar from '../components/Menubar';\r\nimport LoginPagev2 from './LoginPagev2';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\ntype Props = {\r\n user: any;\r\n handleLogin(user: any): void;\r\n handleBack(): void;\r\n};\r\n\r\nconst defaultProps: Props = {\r\n user: null,\r\n handleLogin: () => {},\r\n handleBack: () => {},\r\n};\r\n\r\n\r\n\r\nconst VerificationSuccess: React.FC = (props) => {\r\n\r\n const history = useHistory();\r\n\r\n const handleLoginSuccess = () =>{\r\n history.push('/home');\r\n }\r\n\r\n return(\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      The email has been verified successfully. You can continue with login process.

      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n );\r\n}\r\n\r\nVerificationSuccess.defaultProps = defaultProps;\r\nexport default VerificationSuccess;","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\ntype Props = {\r\n\r\n}\r\nconst DisclaimerPage: React.FC = (props) => {\r\n return(\r\n
      \r\n
      \r\n

      Yolomeal Contest conditions:

      \r\n\r\n
        \r\n
      • To qualify, entrants must add one favorite menu item into Yolomeal.com.
      • \r\n
      • Entrants must be a citizen of the United States.
      • \r\n
      • The Apple watch prize will be awarded on 7/31/2024.
      • \r\n
      • Winner will be notified by email after that date.
      • \r\n
      • Contest void in states where prohibited.
      • \r\n
      \r\n\r\n

      This site is not part of the Facebook website or Facebook Inc.\r\n Additionally, this site is NOT endorsed by Facebook in any way. FACEBOOK is a trademark of META, Inc.\r\n For more info: Contest Conditions Contact us at: info@yolomeal.com

      \r\n
      \r\n
      \r\n);\r\n}\r\n\r\nexport default DisclaimerPage;","import React, { useContext, useEffect, useState } from 'react';\r\nimport User from '../components/Utils';\r\nimport MenuBar from '../components/Menubar';\r\nimport LoaderContext from '../components/LoaderContext';\r\nimport { Link } from 'react-router-dom';\r\n\r\ntype Props = {\r\n user: User,\r\n handleLogin(user: any): void\r\n};\r\n\r\nconst ExpiredItemPage: React.FC = (props) => {\r\n const { showLoader, hideLoader } = useContext(LoaderContext);\r\n const [items, setItems] = useState([]);\r\n const [showTable, setShowTable] = useState(false);\r\n\r\n const handleNotification = async () =>\r\n {\r\n try {\r\n const stored = localStorage.getItem('YoloMeal');\r\n console.log(stored);\r\n if (stored) {\r\n showLoader();\r\n const userData = JSON.parse(stored);\r\n\r\n fetch(\r\n process.env.REACT_APP_SERVER_URL +\r\n `/markedExpiredItem` ,\r\n {\r\n method: 'GET',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n Authorization: 'Bearer ' + userData.token,\r\n })\r\n }\r\n )\r\n .then((items) => items.json())\r\n .then(\r\n (result) => {\r\n setItems(result);\r\n setShowTable(true);\r\n hideLoader();\r\n },\r\n (error) => {\r\n hideLoader();\r\n console.log(error)\r\n }\r\n );\r\n\r\n }\r\n } catch (error) {\r\n console.error('Error fetching categories:', error);\r\n }\r\n };\r\n\r\n return(\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n {props.user.isLogged && props.user.id === 514 &&\r\n

      \r\n \r\n

      \r\n }\r\n\r\n {showTable && items.length > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {items.map((item: any, index) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
      ItemsAction
      {item.name}\r\n Select\r\n
      \r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n );\r\n}\r\n\r\nexport default ExpiredItemPage;","import React, { useContext, useEffect, useState } from 'react';\r\nimport User from '../components/Utils';\r\nimport LoaderContext from '../components/LoaderContext';\r\nimport MenuBar from '../components/Menubar';\r\nimport { useParams, useLocation, Link } from 'react-router-dom';\r\nimport Modal from 'react-modal';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\ntype Props = {\r\n user: User,\r\n handleLogin(user: any): void\r\n};\r\ninterface Params {\r\n id: string; // Define the type of the id parameter\r\n name: string\r\n}\r\n\r\nconst AdminItemNoLongerPage: React.FC = (props) => {\r\n const [error, setError] = useState('');\r\n const [showModal, setShowModal] = useState(false);\r\n const [showYoloModal, setShowYoloModal] = useState(false);\r\n const history = useHistory();\r\n const [yoloIdToDelete, setYoloIdToDelete] = useState('');\r\n\r\n const { showLoader, hideLoader } = useContext(LoaderContext);\r\n const [yolos, setYolos] = useState([]);\r\n const [restaurant, setRestaurant] = useState('');\r\n const [upvote, setUpvote] = useState('');\r\n const [category, setCategory] = useState('');\r\n\r\n const { id} = useParams();\r\n let location = useLocation();\r\n let name = new URLSearchParams(location.search).get(\"name\");\r\n\r\n useEffect(() => {\r\n if (props.user.isLogged) {\r\n loadItems();\r\n }\r\n\r\n return () => {\r\n // didCancel = true;\r\n };\r\n }, [props.user.isLogged]);\r\n const log = async (message: any) => {\r\n if (process.env.REACT_APP_LOG === 'true') {\r\n console.log(message);\r\n }\r\n }\r\n const confirmBoxStyle = {\r\n content: {\r\n top: '50%',\r\n left: '50%',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: '30%',\r\n height: '30%',\r\n margin: 0,\r\n padding: 0,\r\n border: 0,\r\n background: '#f9c5b4'\r\n }\r\n };\r\n const handleDeleteItem = () => {\r\n setShowModal(true);\r\n }\r\n\r\n const closeConfirmBox = () => {\r\n setShowModal(false);\r\n }\r\n\r\n\r\n const handleConfirmYes = () => {\r\n deleteItem();\r\n setShowModal(false);\r\n history.push('/markedItemExpired');\r\n };\r\n const handleConfirmNo = () => {\r\n setShowModal(false);\r\n };\r\n\r\n const handleDeleteYolos = (id) => {\r\n setYoloIdToDelete(id);\r\n setShowYoloModal(true);\r\n }\r\n const handleYoloConfirmYes = () => {\r\n deleteYolos(yoloIdToDelete);\r\n setShowYoloModal(false);\r\n };\r\n\r\n const closeYoloConfirmBox = () => {\r\n setShowYoloModal(false);\r\n }\r\n\r\n const handleYoloConfirmNo = () => {\r\n setShowYoloModal(false);\r\n };\r\n\r\n const handleErrors = (response) => {\r\n log(response);\r\n if (!response.ok) {\r\n var err = response.statusText;\r\n if (err === '') {\r\n err = 'Error';\r\n }\r\n throw Error(err);\r\n }\r\n return response;\r\n }\r\n\r\n let didCancel = false;\r\n\r\n const loadItems = async () => {\r\n showLoader();\r\n fetch(process.env.REACT_APP_SERVER_URL + \"/getItemInfo?itemId=\" + Number(id) , {\r\n method: 'GET',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n 'Authorization': 'Bearer ' + props.user.token\r\n }),\r\n })\r\n .then(handleErrors)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n hideLoader();\r\n setRestaurant(result.restaurantName);\r\n setUpvote(result.upvoteCount);\r\n setCategory(result.categoryId);\r\n if (!didCancel) {\r\n setYolos(result.yolos);\r\n }\r\n },\r\n (error) => {\r\n log(error);\r\n if (!didCancel) {\r\n hideLoader();\r\n setError(error.message);\r\n }\r\n }\r\n )\r\n };\r\n\r\n const deleteItem = async () => {\r\n showLoader();\r\n fetch(process.env.REACT_APP_SERVER_URL + \"/items/delete?itemId=\" + Number(id), {\r\n method: 'PUT',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n 'Authorization': 'Bearer ' + props.user.token\r\n }),\r\n })\r\n .then(handleErrors)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n hideLoader();\r\n if (!didCancel) {\r\n }\r\n },\r\n (error) => {\r\n log(error);\r\n if (!didCancel) {\r\n hideLoader();\r\n setError(error.message);\r\n }\r\n }\r\n )\r\n };\r\n\r\n const deleteYolos = async (yoloId: string) => {\r\n showLoader();\r\n fetch(process.env.REACT_APP_SERVER_URL + `/yolos/delete/` + yoloId, {\r\n method: 'DELETE',\r\n headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n \"Accept\": \"application/json\",\r\n 'Authorization': 'Bearer ' + props.user.token\r\n }),\r\n })\r\n .then(handleErrors)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n // console.log(result)\r\n if (!didCancel) {\r\n loadItems();\r\n }\r\n hideLoader();\r\n },\r\n (error) => {\r\n log(error);\r\n if (!didCancel) {\r\n hideLoader();\r\n setError(error.message);\r\n }\r\n }\r\n )\r\n };\r\n\r\n if (!props.user.isLogged || (props.user.id !== 6 && props.user.id !== 7 && props.user.id !== 514)) {\r\n return (\r\n
      \r\n
      Access denied.
      \r\n
      \r\n )\r\n } else {\r\n return (\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n

      👇 Item needs to be deleted as it is no longer available!

      \r\n
      \r\n

      '{name}'

      \r\n \r\n
      \r\n

      Offered By {restaurant}

      \r\n

      - Belongs To The Category {category}

      \r\n

      - Liked By {upvote} people

      \r\n\r\n

      Item's All YOLOs

      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {yolos.length > 0 ? (\r\n yolos.map((yolo: any, index) => (\r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n
      YoloUser_IdAction
      {yolo.description}{yolo.userId}\r\n \r\n
      No yolo found.
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n \r\n
      \r\n
      \r\n

      This will delete this ITEM from Yolomeal. Are you sure?

      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n

      This will delete this YOLO from Yolomeal. Are you sure?

      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n );\r\n }\r\n}\r\nexport default AdminItemNoLongerPage;","import React, { useEffect, useState } from 'react';\r\nimport { Switch, Route, Redirect, BrowserRouter } from 'react-router-dom';\r\nimport Tracker from '@openreplay/tracker';\r\nimport Modal from 'react-modal';\r\n\r\nimport './App.css';\r\n\r\nimport LoaderContext from './components/LoaderContext';\r\nimport User from './components/Utils';\r\nimport StartPage from './pages/StartPage';\r\nimport HomePage from './pages/HomePage';\r\nimport AboutPage from './pages/AboutPage';\r\nimport MyPage from './pages/MyPage';\r\nimport UserPage from './pages/UserPage';\r\nimport SettingsPage from './pages/SettingsPage';\r\nimport NotificationsPage from './pages/NotificationsPage';\r\nimport ChangeIdentityPage from './pages/ChangeIdentityPage';\r\nimport FaqPage from './pages/FaqPage';\r\nimport TermsPage from './pages/TermsPage';\r\nimport PolicyPage from './pages/PolicyPage';\r\nimport ReferralPage from './pages/ReferralPage';\r\nimport RestaurantPage from './pages/RestaurantPage';\r\nimport EatPage from './pages/EatPage';\r\nimport DrinksPage from './pages/DrinksPage';\r\nimport EatYolosPage from './pages/EatYolosPage';\r\nimport AddYoloPage from './pages/AddYoloPage';\r\nimport LoginPage from './pages/LoginPage';\r\nimport LogoutPage from './pages/LogoutPage';\r\nimport AdminPage from './pages/AdminPage';\r\nimport RestaurantSearch from './pages/RestaurantSearch';\r\nimport AccountSettingPage from './pages/AccountSettingPage';\r\nimport ShareHoldersPage from './pages/shareholdersPage';\r\nimport ClosedRestaurantsPage from './pages/ClosedRestaurantsPage'\r\nimport NewMemberPage from './pages/newMemberPage';\r\nimport RecentYollosPage from './pages/recentYollsPage';\r\nimport AdminRestorentPage from './pages/adminRestaurentPage';\r\nimport AdminRestorentDetailPage from './pages/adminRestaorentsDetailPage';\r\nimport FirstSplashScreen from './pages/FirstSplashScreen';\r\nimport SecondSplahScreen from './pages/SecondSplahScreen';\r\nimport LoginPagev2 from './pages/LoginPagev2';\r\nimport VerificationSuccess from './pages/VerificationSuccess';\r\nimport DisclaimerPage from './pages/DisclaimerPage';\r\nimport ExpiredItemPage from './pages/ExpiredItemsPage';\r\nimport AdminItemNoLongerPage from './pages/adminItemNoLongerPage';\r\n\r\nModal.setAppElement('#root');\r\n\r\nfunction App() {\r\n const [user, setUser] = useState({ isLogged: false, id: -1, name: '', email: '', token: '', expires: 0 });\r\n const [location, setLocation] = useState({ lat: 0, lng: 0, name: '' });\r\n const [loading, setLoading] = useState(true);\r\n const [openReplayTracker, setOpenReplayTracker] = useState(null);\r\n const hideLoader = () => setLoading(false);\r\n const showLoader = () => setLoading(true);\r\n const [userInfo, setUserInfo] = useState(null);\r\n\r\n useEffect(() => {\r\n const tracker = new Tracker({\r\n projectKey: 'DA2gV3NaLuEAJa8Jc4vM',\r\n });\r\n setOpenReplayTracker(tracker);\r\n }, []);\r\n\r\n const newLocation = async (location, position) => {\r\n log(location['long_name']);\r\n const obj = {\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n name: location,\r\n };\r\n log(obj);\r\n setLocation(obj);\r\n };\r\n\r\n const log = async (message: any) => {\r\n if (process.env.REACT_APP_LOG === 'true') {\r\n console.log(message);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n console.log(process.env.REACT_APP_VERSION);\r\n log(process.env.REACT_APP_SERVER_URL);\r\n loadUser();\r\n //const googleMapScript = loadMapApi();\r\n setLoading(true);\r\n log('loading google maps...');\r\n const googleMapScript = document.createElement('script');\r\n googleMapScript.src =\r\n 'https://maps.googleapis.com/maps/api/js?key=AIzaSyBhVpChsNDfRuKCmBZ2A1qqtjVxW7nDY8c&libraries=places&v=3';\r\n googleMapScript.async = true;\r\n window.document.body.appendChild(googleMapScript);\r\n googleMapScript.addEventListener('load', () => {\r\n log('map loaded');\r\n setLoading(false);\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(\r\n (position: any) => {\r\n log(position);\r\n\r\n const latlng = {\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n };\r\n const geocoder = new google.maps.Geocoder();\r\n geocoder.geocode({ location: latlng }, (results, status) => {\r\n if (status === google.maps.GeocoderStatus.OK) {\r\n console.log(results);\r\n if (results[0] && results[0]['address_components']) {\r\n\r\n const addressComponents = results[0]['address_components'];\r\n let fullName : String = '';\r\n\r\n const country = addressComponents.filter(component =>\r\n component['types'].includes('country')\r\n ).map(component => {\r\n return component;\r\n });\r\n\r\n const state = addressComponents.filter(component =>\r\n component['types'].includes('administrative_area_level_1')\r\n ).map(component => {\r\n return component;\r\n });\r\n\r\n const locality = addressComponents.filter(component =>\r\n component['types'].includes('locality')\r\n ).map(component => {\r\n return component;\r\n });\r\n\r\n if (locality.length > 0){\r\n fullName = `${locality[0].long_name}, ${state[0].short_name}, ${country[0].short_name}`\r\n newLocation(fullName, position);\r\n return;\r\n }\r\n\r\n const administrativeArea = addressComponents.filter(component =>\r\n component['types'].includes('administrative_area_level_2')\r\n ).map(component => {\r\n return component;\r\n });\r\n\r\n if (administrativeArea.length > 0) {\r\n fullName = `${administrativeArea[0].long_name}, ${state[0].short_name}, ${country[0].short_name}`\r\n newLocation(fullName, position);\r\n return;\r\n }\r\n } else {\r\n log('Geocode was not successful for the following reason: ' + status);\r\n }\r\n }\r\n });\r\n },\r\n () => {\r\n log('error');\r\n }\r\n );\r\n } else {\r\n // Browser doesn't support Geolocation\r\n log('Not suppported');\r\n }\r\n });\r\n }, []);\r\n\r\n const loadUser = () => {\r\n log('Reading from session...');\r\n const stored = localStorage.getItem('YoloMeal');\r\n log(stored);\r\n if (stored) {\r\n const userData = JSON.parse(stored);\r\n const expires = new Date(userData.expires);\r\n log(expires);\r\n const now = new Date();\r\n if (expires > now) {\r\n setUser({\r\n isLogged: true,\r\n id: userData.id,\r\n name: userData.name,\r\n email: userData.email,\r\n token: userData.token,\r\n expires: userData.expires,\r\n });\r\n }\r\n }\r\n };\r\n\r\n const handleLogin = async (user) => {\r\n console.log(user);\r\n setUser({ isLogged: true, id: user.id, name: user.name, email: user.email, token: user.token, expires: user.expires });\r\n log('Saving to session...');\r\n localStorage.setItem('YoloMeal', JSON.stringify(user));\r\n };\r\n\r\n const onLoginBackClick = async () => {};\r\n\r\n const handleLogout = async () => {\r\n setUser({ isLogged: false, id: -1, name: '', email: user.email, token: '', expires: 0 });\r\n localStorage.setItem('YoloMeal', '');\r\n };\r\n\r\n const handleLocationChange = async (obj) => {\r\n setLocation(obj);\r\n log(obj);\r\n };\r\n\r\n useEffect(() => {\r\n // Check if login information exists in local storage\r\n let storedUser = localStorage.getItem(\"letsgo\");\r\n if (storedUser) {\r\n setUserInfo(storedUser);\r\n }\r\n }, []);\r\n\r\n /*\r\n const loadMapApi = () => {\r\n console.log('loading google maps...');\r\n const mapsURL = \"https://maps.googleapis.com/maps/api/js?key=AIzaSyBhVpChsNDfRuKCmBZ2A1qqtjVxW7nDY8c&libraries=places&v=3\";\r\n const scripts = document.getElementsByTagName('script');\r\n // Go through existing script tags, and return google maps api tag when found.\r\n for (let i = 0; i < scripts.length; i++) {\r\n if (scripts[i].src.indexOf(mapsURL) === 0) {\r\n return scripts[i];\r\n }\r\n }\r\n\r\n const googleMapScript = document.createElement('script');\r\n googleMapScript.src = mapsURL;\r\n googleMapScript.async = true;\r\n googleMapScript.defer = true;\r\n window.document.body.appendChild(googleMapScript);\r\n\r\n return googleMapScript;\r\n };\r\n */\r\n\r\n return (\r\n \r\n {loading && (\r\n
      \r\n
      \r\n

      Loading...

      \r\n
      \r\n
      \r\n
      \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!loading && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {/**/}\r\n {/* */}\r\n {/* */}\r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!loading && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {}}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n );\r\n}\r\n\r\nexport default App;\r\n","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport './index-media.css';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"names":["exports","file","acceptedFiles","acceptedFilesArray","Array","isArray","split","fileName","name","mimeType","type","toLowerCase","baseMimeType","replace","some","validType","trim","charAt","endsWith","define","StackFrame","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","parse","error","stacktrace","this","parseOpera","stack","match","parseV8OrIE","parseFFOrSafari","Error","extractLocation","urlLike","indexOf","parts","exec","undefined","filter","line","map","sanitizedLine","location","tokens","slice","locationParts","pop","functionName","join","lineNumber","columnNumber","source","functionNameRegex","matches","e","message","length","parseOpera9","parseOpera11","parseOpera10","lineRE","lines","result","i","len","push","argsRaw","functionCall","shift","args","canUseDOM","window","document","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","reactIs","require","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","prototype","caller","callee","arguments","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","Object","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","module","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","concat","targetStatics","sourceStatics","key","descriptor","b","Symbol","for","c","d","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","z","a","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","arr","toString","call","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","assign","test1","String","test2","fromCharCode","test3","forEach","letter","err","shouldUseNative","target","from","symbols","to","val","TypeError","toObject","s","isarray","pathToRegexp","compile","str","options","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","res","index","path","defaultDelimiter","delimiter","escaped","offset","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","prevText","escapeGroup","restrictBacktrack","substr","escapeString","encodeURIComponentPretty","encodeURI","charCodeAt","toUpperCase","flags","obj","opts","data","encode","pretty","encodeURIComponent","token","segment","value","JSON","stringify","j","test","attachKeys","re","sensitive","strict","end","route","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","_react","_interopRequireDefault","_useScript","_appleAuthHelpers","_excluded","__esModule","default","_extends","apply","ownKeys","enumerableOnly","sym","enumerable","_defineProperty","configurable","writable","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_style","_default","_ref","onSuccess","onError","_ref$skipScript","skipScript","authOptions","iconProps","_ref$uiType","uiType","className","_ref$noDefaultStyle","noDefaultStyle","_ref$buttonExtraChild","buttonExtraChildren","rest","APPLE_SCRIPT_SRC","getOwnPropertyDescriptors","defineProperties","_objectSpread","children","width","height","viewBox","stroke","strokeWidth","fill","fillRule","onClick","preventDefault","stopPropagation","signIn","_waitForVar","then","AppleID","console","auth","init","response","catch","src","useEffect","script","querySelectorAll","async","body","appendChild","_AppleSigninButton","waitForVar","pollFrequency","retries","parent","_ref$pollFrequency","_ref$retries","inRetries","_ref$parent","Promise","resolve","setTimeout","aa","ba","Set","ca","da","ea","add","fa","ha","ia","ja","ka","B","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","D","oa","pa","qa","ma","isNaN","na","la","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","E","Ma","Ka","iterator","La","Na","Oa","Pa","prepareStackTrace","set","Reflect","construct","Qa","tag","_render","Ra","_context","_payload","_init","Sa","Ta","nodeName","Va","_valueTracker","constructor","get","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","cb","ownerDocument","eb","Children","db","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","ob","namespaceURI","innerHTML","valueOf","firstChild","removeChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","rb","sb","tb","style","setProperty","substring","ub","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","removeEventListener","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","child","sibling","current","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","Map","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","transition","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","F","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","Math","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","id","bind","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","password","range","search","tel","text","time","url","week","me","ne","oe","event","listeners","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","href","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","start","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","instance","listener","G","$e","has","af","bf","random","cf","df","passive","Nb","ef","ff","parentWindow","gf","hf","J","K","Q","L","je","char","ke","unshift","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","clearTimeout","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","H","I","Cf","M","N","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","O","eg","fg","gg","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","context","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","payload","callback","Ag","Bg","Cg","C","Dg","Eg","Fg","Component","refs","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","state","updater","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","ref","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","mode","Vg","implementation","Wg","Xg","done","Yg","Zg","$g","ah","bh","ch","dh","eh","documentElement","tagName","fh","gh","hh","P","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","wh","xh","R","S","T","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","useState","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","create","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useCallback","useContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","hi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","ri","pendingContext","Bi","Ci","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","last","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","size","createElementNS","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","display","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","ceil","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","min","extend","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","onCommitFiberRoot","fk","gk","ik","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","kk","hk","_calculateChangedBits","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","version","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","o","loaded","decodeURIComponent","ReferenceError","setPrototypeOf","__proto__","navigator","standalone","userAgent","isSdkLoaded","isProcessing","responseApi","FB","api","language","fields","checkLoginState","setStateIfMounted","authResponse","onFailure","status","checkLoginAfterRefresh","login","click","setState","scope","appId","returnScopes","responseType","redirectUri","disableMobileRedirect","authType","client_id","redirect_uri","return_scopes","response_type","auth_type","isMobile","_isMounted","getElementById","sdkLoaded","setFbAsyncInit","loadSdkAsynchronously","autoLoad","getLoginStatus","xfbml","cookie","fbAsyncInit","isRedirectedFromFb","getElementsByTagName","cssClass","containerStyle","icon","textButton","typeButton","buttonStyle","rel","renderOwnButton","locals","small","medium","metro","nextProps","prevState","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","polyfill","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","bodyOpenClassName","portalClassName","_createClass","Constructor","protoProps","staticProps","_react2","_reactDom2","_propTypes2","_ModalPortal2","ariaAppHider","newObj","_interopRequireWildcard","_safeHTMLElement","_safeHTMLElement2","_reactLifecyclesCompat","_possibleConstructorReturn","self","isReact16","createHTMLElement","getCreatePortal","getParentElement","parentSelector","Modal","_Component","_temp","_this","_classCallCheck","_len","_key","removePortal","warn","portalRef","portal","renderPortal","defaultStyles","subClass","superClass","_inherits","prevParent","nextParent","_","_props","isOpen","closesAt","closeTimeoutMS","beforeClose","closeWithTimeout","setElement","content","overlay","htmlOpenClassName","afterOpen","overlayClassName","appElement","SafeHTMLCollection","SafeNodeList","onAfterOpen","onRequestClose","ariaHideApp","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldReturnFocusAfterClose","preventScroll","aria","role","contentLabel","shouldCloseOnEsc","overlayRef","contentRef","overlayElement","contentElement","contentEl","position","right","bottom","backgroundColor","border","background","overflow","WebkitOverflowScrolling","borderRadius","outline","padding","_typeof","focusManager","_scopeTab2","classList","_portalOpenInstances2","CLASS_NAMES","ariaHiddenInstances","ModalPortal","setOverlayRef","setContentRef","afterClose","_this$props","parentDocument","remove","show","returnFocus","teardownScopedFocus","popWithoutFocus","onAfterClose","deregister","open","beforeOpen","closeTimer","setupScopedFocus","markForFocusLater","openAnimationFrame","requestAnimationFrame","overlayEl","close","closeWithoutTimeout","focusContent","contentHasFocus","handleKeyDown","isTabKey","isEscKey","requestClose","handleOverlayOnClick","shouldClose","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","handleContentOnClick","handleContentOnMouseDown","shouldBeClosed","buildClassName","additional","classNames","attributesFromObject","items","reduce","acc","moveFromContentToOverlay","cancelAnimationFrame","hide","register","_props2","contentStyles","overlayStyles","overlayProps","onMouseDown","contentProps","tabIndex","onKeyDown","onMouseUp","modal","testId","resetState","globalElement","process","assertNodeList","useElement","el","validateElement","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","documentNotReadyOrSSRTesting","_warning","_warning2","nodeList","selector","HTMLCollection","NodeList","_arr","before","after","_i","item","instances","_arr2","_i2","check","_portalOpenInstances","eventType","openInstances","cloneNode","parentElement","htmlElement","cls","htmlClassList","removeClass","_cls","docBodyClassList","at","classString","classListRef","poll","incrementReference","decrementReference","focusLaterElements","handleBlur","handleFocus","toFocus","modalElement","_tabbable","_tabbable2","needToFocus","portalOpenInstances","PortalOpenInstances","openInstance","emit","splice","subscribers","subscriber","_exenv","EE","SafeHTMLElement","HTMLElement","tabbable","head","getActiveElement","checkSafari","shadowRoot","findTabbableDescendants","descendants","finished","DISPLAY_NONE","DISPLAY_CONTENTS","tabbableNode","hidesContents","zeroSize","offsetWidth","offsetHeight","getComputedStyle","displayValue","getPropertyValue","scrollWidth","scrollHeight","isNotOverflowing","exception","focusable","isTabIndexNotNaN","rootNode","getRootNode","host","visible","getAttribute","isTabIndexNaN","_Modal","_Modal2","_propTypes","_defineProperties","_assertThisInitialized","_getPrototypeOf","_setPrototypeOf","PRECISION","isEqual","n1","n2","abs","TextTruncate","_getPrototypeOf2","rafId","update","truncated","onToggled","onTruncated","onCalculated","font","canvas","forceUpdate","docFragment","createDocumentFragment","getContext","onResize","measureText","containerClassName","textElement","textTruncateChild","truncateText","maxCalculateTimes","scopeWidth","getBoundingClientRect","fullTextWidth","measureWidth","childText","currentPos","maxTextLength","truncatedText","splitPos","startPos","displayLine","lastIsEng","isPrevLineWithoutSpace","lastPos","lastSpaceIndex","ext","loopCnt","lastIndexOf","_this2","_this$props2","_this$props2$style","fontStyle","fontSize","fontFamily","renderText","getRenderText","rootProps","__self","__source","jsx","jsxs","escape","_status","_result","IsSomeRendererActing","count","toArray","only","PureComponent","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","createFactory","createRef","forwardRef","isValidElement","lazy","memo","performance","MessageChannel","unstable_forceFrameRate","floor","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","_isNumber","parseFloat","isFinite","_capitalize","_getter","booleanProps","numericProps","stringProps","arrayProps","objectProps","getArgs","setArgs","getEvalOrigin","evalOrigin","setEvalOrigin","getFileName","getLineNumber","getColumnNumber","getFunctionName","getIsEval","fromString","argsStartIndex","argsEndIndex","locationString","Boolean","Number","warning","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","chunkId","all","promises","miniCssF","globalThis","Function","prop","inProgress","dataWebpackPrefix","needAttach","scripts","charset","timeout","onScriptComplete","prev","onerror","onload","doneFns","fn","toStringTag","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","_inheritsLoose","isAbsolute","pathname","spliceOne","list","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","valueEqual","every","aValue","bValue","invariant","condition","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","resolvePathname","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","notifyListeners","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","baseTag","querySelector","pushHashPath","nextPaths","clamp","lowerBound","upperBound","max","includes","MAX_SIGNED_31_BIT_INT","commonjsGlobal","global","React","calculateChangedBits","contextProp","getUniqueId","_React$Component","emitter","handlers","on","handler","off","newValue","changedBits","createEventEmitter","oldValue","objectIs","_Provider$childContex","_React$Component2","onUpdate","_Consumer$contextType","createNamedContext","historyContext","Router","_pendingLocation","staticContext","computeRootMatch","params","isExact","Lifecycle","onMount","onUnmount","cache","cacheCount","generatePath","generator","compilePath","Redirect","computedMatch","_ref$push","method","cache$1","cacheCount$1","matchPath","_options","_options$exact","_options$strict","_options$sensitive","matched","cacheKey","pathCache","regexp","compilePath$1","_compilePath","values","Route","context$1","isEmptyChildren","createURL","staticHandler","methodName","noop","Switch","useHistory","useLocation","useParams","BrowserRouter","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","innerRef","navigate","_onClick","ex","isModifiedEvent","Link","_ref2","_ref2$component","__RouterContext","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","NavLink","ariaCurrent","_ref$ariaCurrent","activeClassName","_ref$activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","ConditionsManager","app","startParams","conditions","hasStarted","createConditionFromFilter","resultCondition","mapCondition","durationInt","setConditions","fetchConditions","projectId","fetch","ingestPoint","headers","Authorization","json","mappedConditions","filters","cond","subConditions","subCond","processDuration","debug","trigger","conditionName","processMessage","jsExceptionEvent","customEvent","clickEvent","pageLocationEvent","networkRequest","processFlags","flag","flagConds","flagCond","operator","operators","find","durationMs","condName","setInterval","attachStopCallback","clearInterval","reqConds","reqCond","validSubConditions","evConds","evCond","clickCond","urlConds","urlCond","testedValues","exceptionConds","exceptionCond","isAny","isNot","notContains","startsWith","greaterThan","greaterOrEqual","lessOrEqual","lessThan","opMap","notOn","mapOperator","con","FeatureFlags","storageKey","persistFlags","sessionStorage","getItem","persistFlagsStrArr","getFeatureFlag","flagName","isFlagEnabled","findIndex","onFlagsLoad","onFlagsCb","reloadFlags","persistFlagsStr","flagObj","sessionInfo","session","getInfo","userInfo","requestObject","projectID","userID","metadata","referrer","os","userOS","device","userDevice","country","userCountry","userState","city","userCity","browser","userBrowser","authToken","getSessionToken","resp","handleFlags","_a","is_persist","diffPersist","setItem","clearPersistFlags","removeItem","persistFlagsArr","Timestamp","timestamp","RemoveNodeAttribute","Metadata","LoadFontFace","parentID","family","descriptors","SetNodeFocus","SetNodeAttributeURLBased","baseURL","CreateIFrameDocument","frameID","AdoptedSSReplaceURLBased","sheetID","AdoptedSSInsertRuleURLBased","rule","AdoptedSSDeleteRule","AdoptedSSAddOwner","AdoptedSSRemoveOwner","JSException","NetworkRequest","duration","transferredBodySize","SelectionChange","selection","ResourceTiming","ttfb","headerSize","encodedBodySize","decodedBodySize","initiator","transferredSize","cached","TabChange","tabId","TabData","DEPRECATED_ATTRS","htmlmasked","masked","IN_BROWSER","IS_FIREFOX","timeOrigin","adjustTimeOrigin","getTimeOrigin","round","stars","normSpaces","isURL","DOCS_HOST","warnedFeatures","deprecationWarn","nameOfFeature","useInstead","docsPath","getLabelAttribute","hasOpenreplayAttribute","attr","newName","dec2hex","dec","padStart","ngSafeBrowserMethod","Zone","createMutationObserver","mObserver","createEventListener","safeAddEventListener","messages","deleteEventListener","safeRemoveEventListener","Nodes","node_id","nodes","totalNodeAmount","nodeCallbacks","elementListeners","scanTree","attachNodeCallback","nodeCallback","attachNodeListener","useCapture","getID","registerNode","isNew","unregisterNode","cleanTree","callNodeCallbacks","isStart","getNode","getNodeCount","clear","isNode","sth","isSVGElement","isElementNode","Node","ELEMENT_NODE","isTextNode","TEXT_NODE","isDocument","DOCUMENT_NODE","isRootNode","DOCUMENT_FRAGMENT_NODE","hasTag","localName","isIgnored","COMMENT_NODE","isCommentNode","as","isObservable","RecentsType","Observer","isTopContext","commited","recents","indexes","attributesMap","textSet","observer","safe","mutations","mutation","removedNodes","bindNode","addedNodes","bindTree","Changed","commitNodes","sendNodeAttribute","send","getBaseHref","attributeSender","sendSetAttribute","sendNodeData","SetCSSDataURLBased","sanitizer","sanitize","SetNodeData","New","Removed","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","acceptNode","FILTER_REJECT","FILTER_ACCEPT","nextNode","currentNode","unbindTree","RemoveNode","removed","totalBeforeRemove","removedPercent","_commitNode","commitNode","handleNode","isHidden","siblingID","recentsType","clientWidth","clientHeight","svg","CreateElementNode","attributes","CreateTextNode","MoveNode","cmt","observeRoot","beforeCommit","nodeToBind","observe","childList","characterData","subtree","attributeOldValue","characterDataOldValue","disconnect","IFrameObserver","iframe","doc","contentDocument","hostID","docID","ShadowRootObserver","shRoot","rootID","IFrameOffsets","states","calcOffset","parLeft","parTop","iFrame","getDocumentOffset","parentDoc","invalidateOffset","attachShadowNativeFn","attachShadow","ShadowRoot","TopObserver","super","iframeOffsets","contextCallbacks","contextsSet","iframeObservers","shadowRootObservers","captureIFrames","handleIframe","handleShadowRoot","attachContextCallback","handle","canAccessIframe","currentWin","currentDoc","shadow","SanitizeLevel","Sanitizer","obscured","hidden","obscureTextEmails","obscureTextNumbers","domSanitizer","sanitizeLevel","Obscured","Hidden","stringWiper","domain","domainName","isObscured","getInnerTextSecure","innerText","Ticker","timer","callbacks","attach","useSafe","thisArg","wrap","stop","LogLevel","Logger","debugLevel","level","shouldLog","Session","createTabId","attachUpdateCallback","handleUpdate","newInfo","sessionID","entries","setMetadata","setUserID","setUserInfo","getPageNumber","pageNoStr","session_pageno_key","parseInt","incPageNo","pageNo","session_token_key","setSessionToken","applySessionHash","hashParts","getSessionHash","getTabId","regenerateTabId","randomId","Uint8Array","crypto","msCrypto","getRandomValues","generateRandomId","session_tabid_key","localId","reset","ch2","u8","u16","Uint16Array","i32","Int32Array","fleb","fdeb","clim","freb","fl","revfl","_b","revfd","rev","hMap","co","rvb","sv","r_1","flt","fdt","flm","fdm","shft","slc","subarray","ind","msg","nt","captureStackTrace","wbits","wbits16","hTree","t2","et","sort","i0","i1","i2","maxSym","tr","mbt","ln","dt","lft","cst","i2_1","i2_2","i2_3","cl","cli","cln","clen","wfblk","out","pos","dat","wblk","final","syms","bs","bl","dlt","mlb","ddt","mdb","_c","lclt","nlc","_d","lcdt","ndc","lcfreq","_e","lct","mlcb","nlcc","lm","ll","dm","dl","flen","ftlen","dtlen","llm","lcts","it","clct","dst","deo","dflt","lvl","plvl","pre","post","st","lst","opt","msk_1","bs1_1","bs2_1","hsh","lc_1","hv","imod","pimod","rem","ch_1","dif","maxn","maxd","ml","nl","mmd","lin","din","crct","crc","cr","dopt","dictionary","dict","newDat","mem","mrg","wcln","fnStr","ks","st_1","spInd","wrkr","fns","td_1","transfer","URL","createObjectURL","Blob","$e$","tl","buffer","cbfs","bDflt","deflateSync","pbf","gze","gzh","gzhl","wbytes","cbify","terminate","consume","filename","mtime","gzipSync","TextDecoder","decode","stream","queueMicrotask","perf","memory","deviceMemory","jsHeapSizeLimit","StringDictionary","idx","backDict","getKey","AttributeSender","isDictDisabled","applyDict","qualityInt","low","high","snapshots","intervals","restartTracking","captureCanvas","IntersectionObserver","entry","isIntersecting","createdAt","paused","recordCanvas","ts","images","dummy","canvasMsg","int","cid","quality","fixedScaling","imageFormat","canvasScaleRatio","devicePixelRatio","ctx","drawImage","toDataURL","captureSnapshot","sendSnaps","interval","fps","startTracking","canvasId","formData","FormData","blob","dataUrl","header","base64","encParts","mime","blobStr","atob","u8arr","dataUrlToBlob","append","isDebug","imageDataUrl","download","saveImageData","bgStyle","alignItems","justifyContent","flexDirection","gap","containerWidgetStyle","titleStyle","descriptionStyle","borderTop","borderBottom","whiteSpace","boxShadow","textAlign","cursor","sectionTitleStyle","contentStyle","titleWidgetStyle","boxSizing","descriptionWidgetStyle","alignSelf","endSectionStyle","symbolIcon","buttonWidgetStyle","stopWidgetStyle","marginTop","marginBottom","paginationStyle","taskNumberActive","taskNumberDone","taskDescriptionCard","taskTextStyle","taskDescriptionStyle","taskButtonStyle","marginRight","taskButtonBorderedStyle","taskButtonsRow","spinnerStyles","borderLeftColor","Quality","Recorder","mediaRecorder","recordedChunks","recStartTs","startRecording","micReq","camReq","videoConstraints","mediaDevices","getUserMedia","video","frameRate","ideal","audio","MediaRecorder","ondataavailable","stopRecording","onstop","sendToAPI","finally","discard","saveToFile","revokeObjectURL","getTracks","createSpinner","styleSheet","addKeyframes","spinner","styles","TEST_START","TASK_IND","SESSION_ID","SignalManager","getTimestamp","setStorageKey","removeStorageKey","getStorageKey","getSessionId","durations","testStart","tasks","getDurations","setDurations","signalTask","taskId","taskAnswer","taskStart","started","signalTest","sessionId","possibleStart","UserTestManager","container","widgetGuidelinesVisible","widgetTasksVisible","widgetVisible","descriptionSection","taskSection","endSection","stopButton","stopButtonContainer","signalManager","getTest","ingest","localStorage","getSessionID","createGreeting","title","reqMic","reqCamera","userRecorder","showWidget","description","showTaskSection","hideTaskSection","collapseWidget","removeGreeting","toggleDescriptionVisibility","currentTaskIndex","taskIndex","getTestId","micRequired","cameraRequired","titleElement","descriptionElement","buttonElement","guidelines","titleSection","createTitleSection","createDescriptionSection","tasksSection","createTasksSection","stopContainer","leftIcon","grid","cell","gridTemplateColumns","gridTemplateRows","generateGrid","titleText","maxWidth","textOverflow","rightIcon","triangle","borderLeft","borderRight","marginLeft","transform","generateChevron","toggleWidget","isVisible","dragTarget","onmousedown","clientRect","shiftX","shiftY","moveAt","leftC","topC","innerWidth","innerHeight","onMouseMove","clearAll","ondragstart","section","titleContainer","descriptionC","maxHeight","overflowY","taskDurationInd","task_id","pagination","taskCard","taskText","taskDescription","taskButtons","inputTitle","inputArea","resize","inputContainer","closePanelButton","nextButton","updateTaskContent","task","allow_typing","pageNumber","highlightActive","activeTaskEl","taskEl","toggleTasksVisibility","textAnswer","showEndSection","firstTaskEl","isLoading","conclusion","WATCHED_TAGS_KEY","errLog","onTag","tags","setTags","__or_watcher_tagname","onTagRendered","unobserve","fetchTags","tagString","possibleEls","tagId","CANCELED","uxtStorageKey","bufferStorageKey","UnsuccessfulStart","reason","success","ActivityState","DEFAULT_INGEST_POINT","getTimezone","getTimezoneOffset","sign","hours","minutes","App","projectKey","sessionToken","signalError","bufferedMessages1","bufferedMessages2","startCallbacks","stopCallbacks","commitCallbacks","activityState","NotActive","compressionThreshold","restartAttempts","canvasRecorder","conditionsManager","_usingOldFetchPlugin","coldStartCommitN","coldInterval","orderNumber","coldStartTs","singleBuffer","onSessionSent","restartCanvasTracking","flushBuffer","ended","messagesBatch","nextMsg","postToWorker","onUxtCb","contextId","networkOptions","network","revID","session_reset_key","local_uuid_key","resourceBaseHref","__is_snippet","__debug_report_edp","__debug__","__save_canvas_locally","disableStringDict","forceSingleTab","assistSocketHost","fixedCanvasScaling","hostname","inIframe","BroadcastChannel","ticker","commit","featureFlags","tagWatcher","TagWatcher","UserID","worker","_debug","_ref3","batch","byteLength","ev","gzip","alertWorker","attachEventListener","thisTab","proto","urgent","ColdStart","Active","_nCommit","requestIdleCallback","channel","incoming","outgoing","requestIdleCb","_cStartCommit","attachCommitCallback","attachStartCallback","checkRequiredVersion","reqVer","ver","getTrackerInfo","userUUID","trackerVersion","isSnippet","getSessionInfo","getSessionURL","withCurrentTime","getHost","getProjectKey","baseURI","origin","resolveResourceURL","resourceURL","isServiceURL","active","resetNextPageSession","checkSessionToken","forceNew","lsReset","needNewSessionID","coldStart","startOpts","conditional","isNewSession","doNotRecord","bufferDiff","timezone","onStartInfo","cycle","sessionHash","offlineRecording","saverBuffer","saveBuffer","getBuffer","setBuffer","uploadOfflineRecording","connAttemptCount","connAttemptGap","beaconSizeLimit","clearBuffers","_start","isColdStart","Starting","startTimestamp","canvasEnabled","canvasQuality","canvasFPS","_ref4","CanvasRecorder","biggestBuffer","uxtId","onStart","uxtManager","savedUxtTag","query","URLSearchParams","qId","addOnUxtCb","getUxtId","_len2","_key2","onVisibilityChange","forceFlushBatch","trackWs","channelName","msgType","dir","chType","messageType","WSChannel","stopWorker","printError","printString","arg","printObject","printf","printFloat","printInt","consoleMethods","consoleThrottling","sendConsoleLog","ConsoleLog","patchContext","patchConsole","argumentsList","Proxy","getDefaultStack","colno","lineno","getExceptionMessage","fallbackStack","ErrorStackParser","getExceptionMessageFromEvent","ErrorEvent","PromiseRejectionEvent","resolveURL","sendPlaceholder","sendSrcset","srcset","resolvedSrcset","sendSrc","sendImgError","resolvedSrc","sendImgAttrs","complete","naturalHeight","naturalWidth","attributeFilter","INPUT_TYPES","labelElementFor","HTMLInputElement","labels","getInputLabel","label","labelElement","placeholder","InputMode","obscureInputNumbers","obscureInputEmails","defaultInputMode","obscureInputDates","getInputValue","inputMode","mask","sendInputValue","SetInputValue","inputValues","checkboxValues","trackInputValue","trackCheckboxValue","SetInputChecked","isTextFieldElement","nodeFocusTime","nodeHesitationTime","inputTime","onFocus","onInput","onChange","hesitationTime","valueMasked","inputDuration","InputChange","sendInputChange","isCheckbox","config","rootDocument","finder","defaults","root","idName","seedMinLength","optimizedMinLength","threshold","maxNumberOfTries","findRootDocument","bottomUpSearch","optimized","optimize","limit","maybe","penalty","nth","dispensableNth","nthChild","findUniquePath","paths","combinations","candidate","unique","css","elementId","CSS","attrs","notEmpty","counter","visited","newPath","newPathKey","same","isClickable","getTarget","owner","ownerSVGElement","_getTarget","disableClickmaps","checkIntervalId","mousePositionX","mousePositionY","mousePositionChanged","mouseTarget","mouseTargetTime","selectorMap","velocity","direction","directionChangeCount","distance","nextVelocity","checkMouseShaking","sendMouseMove","MouseMove","patchDocument","getSelector","minSelectorDepth","nthThreshold","maxOptimiseTries","_getSelector","attachListener","nextDirection","MouseClick","getTargetLabel","trackingOffset","captureResourceTimings","capturePageLoadTimings","capturePageRenderTimings","excludedResourceUrls","resources","resourceTiming","shouldSkip","responseStart","transferSize","initiatorType","responseStatus","PerformanceObserver","getEntries","prevSessionID","getEntriesByType","entryTypes","firstPaint","firstContentfulPaint","pageLoadTimingSent","timing","loadEventEnd","navigationStart","requestStart","responseEnd","domContentLoadedEventStart","domContentLoadedEventEnd","loadEventStart","PageLoadTiming","visuallyComplete","interactiveWindowStartTime","interactiveWindowTickTime","paintBlocks","pageRenderTimingSent","elements","styleURL","currentSrc","backgroundImage","rect","getPaintBlocks","speedIndex","calculateSpeedIndex","timeToInteractive","PageRenderTiming","getDocumentScroll","win","pageXOffset","pageYOffset","hasAdoptedSS","adoptedStyleSheets","_id","nextID","styleSheetIDMap","captureResponseData","axiosResponseObj","reqHs","reqData","rData","rHs","globStatus","resData","resHs","resStatus","ihOpt","ignoreHeaders","isHIgnoring","writeHeader","hsObj","requestHs","responseHs","toJSON","Headers","usedResHeader","reqResInfo","__openreplay_timing","reqInt","interceptors","use","sessionTokenHeader","headerValue","synchronous","resInt","failuresOnly","thing","isAxiosError","eject","RequestState","NetworkMessage","ignoredHeaders","setSessionTokenHeader","statusText","cancelState","readyState","requestHeader","responseSize","responseSizeText","endTime","getData","requestData","getMessage","writeHeaders","messageInfo","requestType","isHeaderIgnored","getStringResponseByType","isPureObject","genStringBody","isIterable","ReadableStream","ArrayBuffer","formatByteSize","bytes","toFixed","getURL","urlString","protocol","ResponseProxyHandler","mockReader","readerReceivedValue","getReader","_getReader","reader","DONE","_read","read","_cancel","cancel","FetchProxyHandler","sendMessage","isServiceUrl","tokenUrlMatcher","argsList","beforeFetch","Request","afterFetch","searchParams","isChunked","handleResponseBody","clone","responseValue","contentType","arrayBuffer","FetchProxy","XHRProxyHandler","XMLReq","onreadystatechange","onReadyStateChange","onabort","onAbort","ontimeout","onTimeout","getOpen","setRequestHeader","getSend","getSetRequestHeader","setOnReadyStateChange","setOnAbort","setOnTimeout","updateItemByReadyState","targetFunction","kv","genGetDataByUrl","_this3","_len3","_key3","orscFunction","_this4","_len4","_key4","oaFunction","_this5","_len5","_key5","otFunction","_this6","_len6","_key6","UNSENT","OPENED","HEADERS_RECEIVED","headerArr","getAllResponseHeaders","LOADING","XHRProxy","XMLHttpRequest","original","getContentType","BeaconProxyHandler","isSuccess","BeaconProxy","hasSendBeacon","origSendBeacon","sendBeacon","getWarning","getXHRRequestDataObject","xhr","__or_req_data__","strMethod","capturePayload","captureInIframes","axiosInstances","useProxy","isHIgnored","stHeader","resBody","notify","patchWindow","setProxy","origFetch","writeReqHeader","nativeOpen","nativeSetRequestHeader","nativeSend","initMethod","reqBody","headersArr","headerMap","axiosInstance","axiosSpy","isCollapsed","selectedText","DOCS_SETUP","API","checkDoNotTrack","respectDoNotTrack","doNotTrack","signalStartIssue","missingApi","req","orig","handleError","processOptions","__OPENREPLAY__","__DISABLE_SECURE_MODE","failReason","sendSetPageLocation","SetPageLocation","sendSetViewportSize","SetViewportSize","sendSetPageVisibility","Viewport","CSSStyleSheet","sendInsertDeleteRule","sheet","sendReplaceGroupingRule","topmostRule","parentRule","parentStyleSheet","cssText","ruleList","cssRules","insertRule","deleteRule","groupInsertRule","groupDeleteRule","CSSGroupingRule","nodeID","rules","CSSRules","adoptedStyleSheetsOwnings","sendAdoptedStyleSheetsUpdate","pastOwning","nowOwning","styleSheets","patchAdoptedStyleSheets","nativeAdoptedStyleSheetsDescriptor","retVal","__openreplay_adpss_patched__","Document","replaceSync","ConstructedStyleSheets","connection","mozConnection","webkitConnection","sendConnectionInformation","downlink","Connection","Console","captureExceptions","Exception","Img","Input","Mouse","mouse","Timing","capturePerformance","frames","ticks","nextFrame","sendPerformanceTrack","totalJSHeapSize","usedJSHeapSize","PerformanceTrack","Performance","documentScroll","nodeScroll","setNodeScroll","sendSetViewportScroll","SetViewportScroll","sendSetNodeScroll","SetNodeScroll","sendSetNodeFocus","blurred","elem","Focus","FontFace","docFonts","wnd","FontFaceInterceptor","desc","ffData","ffDataArr","Fonts","Network","Selection","Tabs","wOpen","autoResetOnWindowOpen","resetTabOnWindowOpen","sessStorage","getAllFeatureFlags","browserEnvCheck","startOfflineRecording","getUxId","setUserAnonymousID","UserAnonymousID","userAnonymousID","issue","CustomEvent","CustomIssue","loading","hideLoader","showLoader","setActive","_jsxs","_jsx","user","isLogged","menuToggle","MenuImage","alt","setError","setLocation","lat","lng","showLocation","setShowLocation","newLocation","place","geometry","handlePlaceChanged","center","defaultBounds","north","south","east","west","bounds","strictBounds","types","autocomplete","google","maps","places","Autocomplete","addListener","address_components","addressComponents","fullName","locality","long_name","short_name","administrativeArea","handlePlaceChange","getPlace","LocationPointer","MenuBar","FindLocationHome","handleLocationChange","handleClose","listStyle","FoodImage1","FoodImage2","FoodImage3","FoodImage4","FoodImage5","FacebookIconIMG","InstagramIconIMG","customStyles","margin","closeModel","handleModalClose","onDelete","maxLength","rows","onDescriptionChange","leftCounter","userName","onUserNameChange","onEdit","preview","setPreview","rotate","setRotate","rotateOld","setRotateOld","FileReader","onloadend","readAsDataURL","onUpload","rotatedBlob","getRotatedImageBlob","File","oldImage","imageSrc","rotation","Image","translate","PI","toBlob","rotateRightOld","rotateLeftOld","getRootProps","getInputProps","files","categories","setCategories","LoaderContext","showCategory","stored","userData","Accept","category","updateSelectedCategory","categoryId","isChecked","htmlFor","handleSave","onTagClick","selectedTags","hideTags","handleTagSave","confirmBoxStyle","handleConfirmYes","handleConfirmNo","handleTagsConfirmYes","handleTagsConfirmNo","__awaiter","_arguments","fulfilled","step","rejected","__generator","sent","trys","ops","verb","op","__read","ar","COMMON_MIME_TYPES","toFileWithPath","withMimeType","webkitRelativePath","FILES_TO_IGNORE","isObject","getInputFiles","evt","fromList","getFsHandleFiles","handles","getFile","getDataTransferFiles","kind","toFilePromises","noIgnoredFiles","flatten","webkitGetAsEntry","fromDataTransferItem","isDirectory","fromDirEntry","__spread","getAsFile","fwp","fromEntry","fromFileEntry","createReader","readEntries","err_1","fullPath","_slicedToArray","_arrayWithHoles","_s","_n","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","arr2","FILE_INVALID_TYPE","FILE_TOO_LARGE","FILE_TOO_SMALL","TOO_MANY_FILES","getInvalidTypeRejectionErr","accept","messageSuffix","getTooLargeRejectionErr","maxSize","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","accepts","fileMatchSize","isDefined","isEvtWithFiles","onDocumentDragOver","composeEventHandlers","canUseFileSystemAccessAPI","filePickerOptionsTypes","_excluded2","_excluded3","_excluded4","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","Dropzone","_useDropzone","useDropzone","getFilesFromEvent","isChangeEvt","maxFiles","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","validator","useFsAccessApi","onFileDialogCancel","onFileDialogOpen","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","initialState","isFocused","isFileDialogActive","isDragActive","isDragAccept","isDragReject","draggedFiles","fileRejections","_defaultProps$options","onFileDialogOpenCb","onFileDialogCancelCb","rootRef","inputRef","_useReducer2","reducer","onWindowFocus","dragTargetsRef","onDocumentDrop","onDragEnterCb","onDragOverCb","hasFiles","dropEffect","_unused","onDragLeaveCb","targets","targetIdx","setFiles","_fileAccepted2","accepted","acceptError","_fileMatchSize2","sizeMatch","sizeError","customErrors","errors","onDropCb","openFileDialog","showOpenFilePicker","onKeyDownCb","isEqualNode","onFocusCb","onBlurCb","onClickCb","isIe","isEdge","isIeOrEdge","composeHandler","composeKeyboardHandler","composeDragHandler","_ref2$refKey","refKey","onBlur","onInputElementClick","_ref3$refKey","autoComplete","fileCount","allFilesAccepted","kindOf","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isPlainObject","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","_global","isContextDefined","isTypedArray","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","reducedDescriptors","ret","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","_setImmediate","setImmediateSupported","postMessageSupported","setImmediate","asap","nextTick","isBuffer","isFormData","isArrayBufferView","isView","isBoolean","isStream","pipe","merge","caseless","assignValue","targetKey","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","searchString","lastIndex","forEachEntry","pair","matchAll","regExp","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","toCamelCase","p1","p2","toFiniteNumber","generateString","alphabet","isSpecCompliantForm","toJSONObject","visit","reducedValue","isThenable","AxiosError","utils","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","predicates","metaTokens","option","visitor","defaultVisitor","useBlob","convertValue","toISOString","Buffer","isFlatArray","exposedHelpers","build","charMap","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","runWhen","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","classes","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","platform","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","transitionalDefaults","adapter","transformRequest","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","parseHeaders","tokensRE","parseTokens","matcher","deleted","deleteHeader","normalize","format","normalized","formatHeader","asStrings","first","computed","accessor","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","mapped","transformData","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","freq","lastArgs","invoke","flush","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","throttle","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","msie","urlParsingNode","originURL","port","requestURL","write","expires","secure","toGMTString","buildFullPath","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","btoa","username","unescape","isURLSameOrigin","xsrfValue","cookies","_config","resolveConfig","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","responseHeaders","responseText","responseURL","ECONNABORTED","ERR_NETWORK","timeoutErrorMessage","ETIMEDOUT","upload","abort","aborted","parseProtocol","composeSignals","signals","controller","AbortController","streamChunk","chunk","chunkSize","readStream","asyncIterator","trackStream","onProgress","onFinish","iterable","readBytes","_onFinish","pull","loadedBytes","enqueue","highWaterMark","isFetchSupported","Response","isReadableStreamSupported","encodeText","TextEncoder","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","_request","getBodyLength","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","responseData","knownAdapters","http","xhrAdapter","fetchAdapter","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","formatMessage","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","InterceptorManager","configOrUrl","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","Cancel","spread","formToJSON","getAdapter","tagArray","categoriesArray","LoginPage","appleInfo","setappleInfo","fbInfo","setfbInfo","appleSignIn","setappleSignIn","showFbSignIn","setFbSignIn","setName","setEmail","isErrorCleared","setIsErrorCleared","clientId","redirectURI","nonce","usePopup","loginInfoStr","loginInfo","facebookLogin","appleLogin","renderAppleAuthButton","AppleIcon","handleFacebookClick","getReferrer","paramsArr","responseFacebook","accessToken","handleLogin","simpleLogin","handleJoinClick","_Fragment","setter","FacebookLogin","AmazonImage","AppleSignin","authorizationInfo","authorization","handleAppleResponse","showHome","showBack","handleBack","generateDollarSigns","handleMainFilter","setItems","restaurant","setRestaurant","showLogin","setShowLogin","isExpired","setIsexpired","clickCount","setClickCount","didCancel","loadData","handleUpvote","userId","upvoted","upvoteCount","onLoginClick","onLoginBackClick","handleRemoveUpvote","sendRestaurantNotification","restaurantClosed","handleNotificationClick","sendNotification","expired","placeId","priceLevel","address","restaurantPage","handleRestaurantClick","ItemNew","editable","showRestaurant","restaurentPage","yoloName","onYoloNameChange","onEditYoloName","onUpvoteYoloChange","onEditUpvoteCount","selectedItemCategory","setSelectedItemCategory","showModal","setShowModal","readMore","setReadMore","YoloSetting","setYoloSetting","showDelete","setShowDelete","showEdit","setShowEdit","showEditYoloName","setShowEditYoloName","showUpload","setShowUpload","yoloId","setYoloId","setLeftCounter","setDescription","setYoloName","setUserName","modalIsOpen","setModalIsOpen","showtagsModal","setShowtagsModal","selectedItemId","setSelectedItemId","setSelectedTags","showTags","setShowTags","setOldImage","setUpvoteCount","showEditUpvote","setShowEditUpvote","getTagList","yolos","selectedYoloTags","yolo","yoloTags","getTags","onReadMoreClicked","handlePhoto","image","fetchImage","hideDeleteModal","hideEditUpvoteYoloModal","closeModal","restaurantId","restaurantName","canUpvote","onUpvoteClick","onRemoveUpvoteClick","onNotificationClick","subitem","MissingPhoto","handleDelete","handleEdit","handleEditYoloName","handleChangeCategory","itemId","handleAddMoreTags","handleUpvoteYolo","DeleteModal","EditYoloDescriptionModal","hideEditModal","EditYoloNameModal","_response$headers$get","hideEditYoloNameModal","EditUpvoteYoloModal","_response$headers$get2","addUpvoteRequestDTO","newCount","UploadPhotoModal","hideUploadPhotoModal","ChangeCategoryModal","AddMoreTagsModal","closeShowTags","prevTags","ConfirmationModal","closeConfirmBox","updateCategory","TagsConfirmationModal","closeTagsConfirmationBox","selectedTagsArray","addTags","isClicked","setIsClicked","copyUrl","copyToClipboardIos","copyToClipboard","textArea","select","execCommand","readOnly","selectNodeContents","setSelectionRange","page","received","shares","upvotedItems","setUpvotedItems","showJumpToTopButton","setShowJumpToTopButton","setPageNumber","pageSize","setPageSize","showUpvoted","setShowUpvoted","handleNextPage","handlePreviousPage","handleScroll","windowHeight","scrollPosition","scrollY","handleJumpToTop","scrollTo","behavior","handleErrors","upvotedCount","receivedCount","shareCount","scrollToBottom","showUpvotedItems","getCategoryItems","showupvoted","CopyUrl","CategoryItems","colSpan","BurgersImage","HandheldImage","BreakfastImage","EntreeImage","DessertImage","PizzaImage","AppsImage","SidesImage","WineImage","MixedDrinkImage","IceCreamImage","CoffeeImage","BeerImage","nearByItems","setNearByItems","topItems","setTopItems","showFilter","setShowFilter","handleScrolBottomToTop","loadItems","RemoveUpvote","newTags","offsetTop","nearBy","mainClass","back","titleClass","helpClass","eatOrMeal","tagList","isLocationAvailable","setIsLocationAvailable","setRestaurantName","hasError","setHasError","cityInput","cityAutocomplete","Circle","radius","getBounds","place_id","latitude","longitude","handlePlaceError","onClose","LoginPagev2","emailVerified","setPage","setPlace","setCategory","itemName","setItemName","setItemId","itemTitle","setItemTitle","showName","showItem","showYolo","hasTags","itemList","used","onItemClick","categoryList","onCategoryClick","FindRestaurant","saveYolo","placeName","placeAddress","placeLatitude","placeLongitude","placeResponse","rotateRight","prevRotate","rotateLeft","showDone","FindLocation","handleLogout","onLoginAdmin","exists","fetchRestaurantId","setNewName","verifyNewName","setVerifyNewName","newEmail","setNewEmail","verifyNewEmail","setVerifyNewEmail","seperatedName","firstName","lastName","saveChangeName","saveChangeEmail","setTotal","handleScrol","align","restaurants","setRestaurants","showTable","setShowTable","users","setUsers","membersCount","setMembersCount","setFrom","setTo","handleFromDateChange","selectedDate","handleToDateChange","handleSearch","loadUsers","new_users","registered_users","paddingRight","paddingBottom","yoloCount","setYoloCount","recentYolos","restourents","setRestorents","showRestaurents","setShowRestaurents","loadRestourents","handleHideLocation","CityLocation","showItemModal","setShowItemModal","itemIdToDelete","setItemIdToDelete","handleDeleteRestaurent","deleteRestaurent","handleItemConfirmYes","deleteItems","closeItemConfirmBox","handleItemConfirmNo","handleDeleteItems","FirstSplashScreen","windowWidth","setWindowWidth","handleResize","mainContainer","contentWrapper","subHeader","prizesContainer","imageContainer","objectFit","orText","alignContent","giftCardContainer","giftCardAmount","rulesContainer","ruleText","deadline","getStyles","watch","card","watch2","VerificationSuccess","handleLoginSuccess","showYoloModal","setShowYoloModal","yoloIdToDelete","setYoloIdToDelete","setYolos","upvote","setUpvote","handleDeleteItem","deleteItem","handleYoloConfirmYes","deleteYolos","closeYoloConfirmBox","handleYoloConfirmNo","handleDeleteYolos","setUser","setLoading","openReplayTracker","setOpenReplayTracker","tracker","Tracker","coords","loadUser","googleMapScript","geolocation","getCurrentPosition","latlng","Geocoder","geocode","results","GeocoderStatus","OK","storedUser","HomePage","AboutPage","MyPage","UserPage","SettingsPage","NotificationsPage","ChangeIdentityPage","FaqPage","TermsPage","PolicyPage","LogoutPage","RestaurantPage","AddYoloPage","RestaurantSearch","EatPage","DrinksPage","EatYolosPage","AdminPage","ShareHoldersPage","NewMemberPage","RecentYollosPage","ClosedRestaurantsPage","ExpiredItemPage","AdminItemNoLongerPage","AdminRestorentPage","AdminRestorentDetailPage","AccountSettingPage","SecondSplahScreen","DisclaimerPage","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","reportWebVitals"],"sourceRoot":""}