{"version":3,"file":"script/bundle-default.cbfe182d83.js","mappings":"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","sources":["webpack://touchweb/webpack/runtime/chunk loaded","webpack://touchweb/webpack/runtime/create fake namespace object","webpack://touchweb/webpack/runtime/load script","webpack://touchweb/./node_modules/axios/lib/axios.js","webpack://touchweb/./node_modules/history/esm/history.js","webpack://touchweb/./node_modules/lodash/mapValues.js","webpack://touchweb/./node_modules/lodash/omitBy.js","webpack://touchweb/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js","webpack://touchweb/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js","webpack://touchweb/./node_modules/react-redux/es/components/connect.js","webpack://touchweb/./node_modules/react-redux/es/hooks/useDispatch.js","webpack://touchweb/./node_modules/react-redux/es/hooks/useSelector.js","webpack://touchweb/./node_modules/react-redux/es/index.js","webpack://touchweb/./src/hooks/use-query.ts","webpack://touchweb/./src/lang/boot-languages.js","webpack://touchweb/./src/lang/translate.tsx","webpack://touchweb/./src/legacy/static/packages/init-data.js","webpack://touchweb/./src/services/toasts.tsx","webpack://touchweb/./src/state/hooks.ts","webpack://touchweb/./src/state/language/selectors.ts","webpack://touchweb/./src/state/member/selectors.ts","webpack://touchweb/./src/state/multi-currency/reducer.ts","webpack://touchweb/./src/state/services/types/webapi-member-generated.ts","webpack://touchweb/./src/utils/api.ts","webpack://touchweb/./src/utils/cookie.ts","webpack://touchweb/./src/utils/format.js","webpack://touchweb/./src/utils/gdpr-settings.js","webpack://touchweb/./src/utils/object.ts","webpack://touchweb/./src/utils/url.ts","webpack://touchweb/./src/lang/constants.mjs","webpack://touchweb/webpack/bootstrap","webpack://touchweb/webpack/runtime/amd options","webpack://touchweb/webpack/runtime/compat get default export","webpack://touchweb/webpack/runtime/define property getters","webpack://touchweb/webpack/runtime/ensure chunk","webpack://touchweb/webpack/runtime/get javascript chunk filename","webpack://touchweb/webpack/runtime/get mini-css chunk filename","webpack://touchweb/webpack/runtime/global","webpack://touchweb/webpack/runtime/harmony module decorator","webpack://touchweb/webpack/runtime/hasOwnProperty shorthand","webpack://touchweb/webpack/runtime/make namespace object","webpack://touchweb/webpack/runtime/node module decorator","webpack://touchweb/webpack/runtime/runtimeId","webpack://touchweb/webpack/runtime/publicPath","webpack://touchweb/webpack/runtime/css loading","webpack://touchweb/webpack/runtime/jsonp chunk loading","webpack://touchweb/webpack/runtime/nonce","webpack://touchweb/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"touchweb:\";\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};","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // 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\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/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};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\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","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var baseIteratee = require('./_baseIteratee'),\n negate = require('./negate'),\n pickBy = require('./pickBy');\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nmodule.exports = omitBy;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"formatNextPathnameInfo\", {\n enumerable: true,\n get: function() {\n return formatNextPathnameInfo;\n }\n});\nconst _removetrailingslash = require(\"./remove-trailing-slash\");\nconst _addpathprefix = require(\"./add-path-prefix\");\nconst _addpathsuffix = require(\"./add-path-suffix\");\nconst _addlocale = require(\"./add-locale\");\nfunction formatNextPathnameInfo(info) {\n let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === \"/\" ? \"index.json\" : \".json\");\n }\n pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith(\"/\") ? (0, _addpathsuffix.addPathSuffix)(pathname, \"/\") : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname);\n}\n\n//# sourceMappingURL=format-next-pathname-info.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getNextPathnameInfo\", {\n enumerable: true,\n get: function() {\n return getNextPathnameInfo;\n }\n});\nconst _normalizelocalepath = require(\"../../i18n/normalize-locale-path\");\nconst _removepathprefix = require(\"./remove-path-prefix\");\nconst _pathhasprefix = require(\"./path-has-prefix\");\nfunction getNextPathnameInfo(pathname, options) {\n var _options_nextConfig;\n const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};\n const info = {\n pathname,\n trailingSlash: pathname !== \"/\" ? pathname.endsWith(\"/\") : trailingSlash\n };\n if (basePath && (0, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0, _removepathprefix.removePathPrefix)(info.pathname, basePath);\n info.basePath = basePath;\n }\n let pathnameNoDataPrefix = info.pathname;\n if (info.pathname.startsWith(\"/_next/data/\") && info.pathname.endsWith(\".json\")) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, \"\").replace(/\\.json$/, \"\").split(\"/\");\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== \"index\" ? \"/\" + paths.slice(1).join(\"/\") : \"/\";\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix;\n }\n }\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, _normalizelocalepath.normalizeLocalePath)(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n var _result_pathname;\n info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, _normalizelocalepath.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n}\n\n//# sourceMappingURL=get-next-pathname-info.js.map","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"reactReduxForwardedRef\"];\n\n/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport hoistStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport defaultSelectorFactory from '../connect/selectorFactory';\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps';\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps';\nimport { mergePropsFactory } from '../connect/mergeProps';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport shallowEqual from '../utils/shallowEqual';\nimport warning from '../utils/warning';\nimport { ReactReduxContext } from './Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStore = notInitialized;\nexport const initializeConnect = fn => {\n useSyncExternalStore = fn;\n}; // Define some constant arrays just to avoid re-creating these\n\nconst EMPTY_ARRAY = [null, 0];\nconst NO_SUBSCRIPTION_ARRAY = [null, null]; // Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\n\nconst stringifyComponent = Comp => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n// and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n} // Effect callback, extracted: assign the latest props values to refs for later usage\n\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, // actualChildProps: unknown,\nchildPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n} // Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\n\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, // forceComponentUpdateDispatch: React.Dispatch,\nadditionalSubscribeListener) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return () => {}; // Capture values for checking if and when this component unmounts\n\n let didUnsubscribe = false;\n let lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n } // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n\n\n const latestStoreState = store.getState();\n let newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // TODO This is hacky and not how `uSES` is meant to be used\n // Trigger the React `useSyncExternalStore` subscriber\n\n additionalSubscribeListener();\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n} // Reducer initial state creation for our update reducer\n\n\nconst initStateUpdates = () => EMPTY_ARRAY;\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n/**\n * Infers the type of props that a connector will inject into a component.\n */\n\n\nlet hasWarnedAboutDeprecatedPureOption = false;\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps A function that extracts values from state\n * @param mapDispatchToProps Setup for dispatching actions\n * @param mergeProps Optional callback to merge state and dispatch props together\n * @param options Options for configuring the connection\n *\n */\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning('The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component');\n }\n }\n\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n\n const wrapWithConnect = WrappedComponent => {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(`You must pass a component to the function returned by connect. Instead received ${stringifyComponent(WrappedComponent)}`);\n }\n\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n // @ts-ignore\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n const {\n reactReduxForwardedRef\n } = props,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]);\n const ContextToUse = React.useMemo(() => {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && // @ts-ignore\n isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n const contextValue = React.useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(`Could not find \"store\" in the context of ` + `\"${displayName}\". Either wrap the root component in a , ` + `or pass a custom React context provider to and the corresponding ` + `React context consumer to ${displayName} in connect options.`);\n } // Based on the previous check, one of these must be true\n\n\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = React.useMemo(() => {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return defaultSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n const subscription = createSubscription(store, didStoreComeFromProps ? undefined : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n const notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]); // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n const overriddenContextValue = React.useMemo(() => {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // Set up refs to coordinate values between the subscription effect and the render logic\n\n const lastChildProps = React.useRef();\n const lastWrapperProps = React.useRef(wrapperProps);\n const childPropsFromStoreUpdate = React.useRef();\n const renderIsScheduled = React.useRef(false);\n const isProcessingDispatch = React.useRef(false);\n const isMounted = React.useRef(false);\n const latestSubscriptionCallbackError = React.useRef();\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = React.useMemo(() => {\n const selector = () => {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n };\n\n return selector;\n }, [store, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n const subscribeForReact = React.useMemo(() => {\n const subscribe = reactListener => {\n if (!subscription) {\n return () => {};\n }\n\n return subscribeUpdates(shouldHandleStateChanges, store, subscription, // @ts-ignore\n childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, reactListener);\n };\n\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs]);\n let actualChildProps;\n\n try {\n actualChildProps = useSyncExternalStore( // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact, // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector, getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector);\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`;\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = undefined;\n childPropsFromStoreUpdate.current = undefined;\n lastChildProps.current = actualChildProps;\n }); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n const renderedWrappedComponent = React.useMemo(() => {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }))\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n const renderedChild = React.useMemo(() => {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n\n const _Connect = React.memo(ConnectFunction);\n\n // Add a hacky cast to get the right output type\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n const _forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n // @ts-ignore\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n\n return wrapWithConnect;\n}\n\nexport default connect;","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\n\nexport function createDispatchHook(context = ReactReduxContext) {\n const useStore = // @ts-ignore\n context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n const store = useStore(); // @ts-ignore\n\n return store.dispatch;\n };\n}\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const dispatch = useDispatch()\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n * return (\n *
\n * {value}\n * \n *
\n * )\n * }\n */\n\nexport const useDispatch = /*#__PURE__*/createDispatchHook();","import { useCallback, useDebugValue, useRef } from 'react';\nimport { createReduxContextHook, useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { ReactReduxContext } from '../components/Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStoreWithSelector = notInitialized;\nexport const initializeUseSelector = fn => {\n useSyncExternalStoreWithSelector = fn;\n};\n\nconst refEquality = (a, b) => a === b;\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\n\n\nexport function createSelectorHook(context = ReactReduxContext) {\n const useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : createReduxContextHook(context);\n return function useSelector(selector, equalityFnOrOptions = {}) {\n const {\n equalityFn = refEquality,\n stabilityCheck = undefined,\n noopCheck = undefined\n } = typeof equalityFnOrOptions === 'function' ? {\n equalityFn: equalityFnOrOptions\n } : equalityFnOrOptions;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n\n if (typeof selector !== 'function') {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(`You must pass a function as an equality function to useSelector`);\n }\n }\n\n const {\n store,\n subscription,\n getServerState,\n stabilityCheck: globalStabilityCheck,\n noopCheck: globalNoopCheck\n } = useReduxContext();\n const firstRun = useRef(true);\n const wrappedSelector = useCallback({\n [selector.name](state) {\n const selected = selector(state);\n\n if (process.env.NODE_ENV !== 'production') {\n const finalStabilityCheck = typeof stabilityCheck === 'undefined' ? globalStabilityCheck : stabilityCheck;\n\n if (finalStabilityCheck === 'always' || finalStabilityCheck === 'once' && firstRun.current) {\n const toCompare = selector(state);\n\n if (!equalityFn(selected, toCompare)) {\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' + '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization', {\n state,\n selected,\n selected2: toCompare\n });\n }\n }\n\n const finalNoopCheck = typeof noopCheck === 'undefined' ? globalNoopCheck : noopCheck;\n\n if (finalNoopCheck === 'always' || finalNoopCheck === 'once' && firstRun.current) {\n // @ts-ignore\n if (selected === state) {\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned the root state when called. This can lead to unnecessary rerenders.' + '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.');\n }\n }\n\n if (firstRun.current) firstRun.current = false;\n }\n\n return selected;\n }\n\n }[selector.name], [selector, globalStabilityCheck, stabilityCheck]);\n const selectedState = useSyncExternalStoreWithSelector(subscription.addNestedSub, store.getState, getServerState || store.getState, wrappedSelector, equalityFn);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const counter = useSelector(state => state.counter)\n * return
{counter}
\n * }\n */\n\nexport const useSelector = /*#__PURE__*/createSelectorHook();","// The primary entry point assumes we're working with standard ReactDOM/RN, but\n// older versions that do not include `useSyncExternalStore` (React 16.9 - 17.x).\n// Because of that, the useSyncExternalStore compat shim is needed.\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch';\nimport { initializeUseSelector } from './hooks/useSelector';\nimport { initializeConnect } from './components/connect';\ninitializeUseSelector(useSyncExternalStoreWithSelector);\ninitializeConnect(useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };\nexport * from './exports';","import { useNavigation } from 'tradera/hooks/use-navigation';\nimport { useLocation } from 'tradera/hooks/use-location';\nimport { useCallback } from 'react';\nimport { isNullOrUndefined } from 'tradera/utils/condition-check';\n\nexport enum ROUTING_TYPE {\n URL = 'url',\n PUSH = 'push',\n REPLACE = 'replace'\n}\n\nexport type UpdateSearchParams = (\n value?: string | number | boolean | null | undefined,\n routing?: ROUTING_TYPE,\n locationParameter?: URL\n) => URL;\n\n// This is TS overloading, meaning that the function can be called in different ways.\n// If called with a parameter, if will return a string or null.\n// If called with a defaultValue parameter, it will return a string or the defaultValue.\n/**\n * @deprecated\n * This is deprecated - use src/apps/nextweb/hooks/use-query-param.ts instead in Next.js\n *\n * If a parameter is passed, it returns an array with the value of the parameter and a function to update the value.\n * By default, the update function will trigger a `navigation.push()` call, but that can be disabled by passing `false` as the second parameter.\n *\n * If not parameter is passed, it returns a URLSearchParams object.\n *\n * @example\n * const [pageQuery, setPageQuery] = useQuery('page', 1);\n * const [filterQuery, setFilterQuery] = useQuery('filter', 'all');\n *\n * const handleFilterChange = (newFilter) => {\n * const url = setPageQuery(null, false);\n * setFilterQuery(newFilter, true, url);\n * };\n */\nexport function useQuery(\n parameter: string,\n defaultValue: string | number | boolean\n): [string, UpdateSearchParams];\nexport function useQuery(\n parameter: string\n): [string | null, UpdateSearchParams];\nexport function useQuery(\n parameter: string,\n defaultValue?: string | number | boolean\n): [string | null, UpdateSearchParams] {\n const location = useLocation('https://example.com');\n const navigation = useNavigation(true);\n const searchParams = new URLSearchParams(location.search);\n\n /**\n * Updates the value of the parameter in the URL.\n * If no value is passed, it will remove the parameter from the URL.\n *\n * By default, it will trigger a `navigation.push()` call, but that can be disabled by passing `false` as the second parameter.\n * By default it will use the current location, but that can be overridden by passing a URL as the third parameter.\n */\n const updateSearchParam: UpdateSearchParams = useCallback(\n (value, routing = ROUTING_TYPE.PUSH, locationParameter) => {\n const url = new URL(locationParameter ?? location);\n if (!parameter) return url;\n\n if (\n typeof value !== 'undefined' &&\n value !== null &&\n value !== defaultValue\n ) {\n url.searchParams.set(parameter, value.toString());\n } else {\n url.searchParams.delete(parameter);\n }\n\n if (routing !== ROUTING_TYPE.URL) navigation[routing](url);\n\n return url;\n },\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [parameter]\n );\n\n return [\n searchParams.get(parameter) ?? toStringOrNull(defaultValue),\n updateSearchParam\n ];\n}\n\n// this is to avoid stringifying undefined to \"undefined\"\nconst toStringOrNull = (\n value: string | number | boolean | undefined | null\n): string | null => (isNullOrUndefined(value) ? null : value.toString());\n","/* eslint-disable better-mutation/no-mutation */\n\nimport i18n from 'i18next';\nimport { logger } from 'packages/logger';\n// eslint-disable-next-line no-restricted-imports\nimport { initReactI18next } from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport { toLocalizedUrl } from 'tradera/utils/url';\nimport { formatNumberWithSeparators } from 'tradera/utils/format';\nimport { missingKeyLoggingConfig } from 'tradera/lang/shared-config';\nimport {\n NS_TOUCHWEB,\n NS_ATTRIBUTES,\n DEFAULT_LANGUAGE\n} from 'tradera/lang/constants.mjs';\nimport 'dayjs/locale/sv';\nimport 'dayjs/locale/da';\nimport 'dayjs/locale/de';\nimport { isServer } from 'tradera/utils/nextjs';\n\nif (isServer) {\n // Do not remove this without also removing the disable of eslint better-mutation/no-mutation at top of file.\n throw new Error(\n 'This implementation is not compatible with SSR as global properties are shared between server instances'\n );\n}\n\nlet i18nInitialized;\n\n/**\n * Initialize function for i18next\n * Must be run before doing any translations\n * @param {Array} [translations]\n * @param {Object} [options]\n * @returns {Promise} - a promise to the i18next t function\n */\nexport const bootLanguages = (\n translations = window.touchwebTranslations,\n attributeTranslations = window.attributeTranslations\n) => {\n const translationResources = Object.entries(translations).map(\n ([key, value]) => ({\n key,\n value,\n namespace: 'touchWeb'\n })\n );\n const attributeResources = Object.entries(attributeTranslations).map(\n ([key, value]) => ({ key, value, namespace: 'attributes' })\n );\n\n const resources = translationResources\n .concat(attributeResources)\n .reduce((prev, { key, value, namespace }) => {\n const s = prev[key] || {};\n s[namespace] = value;\n return {\n ...prev,\n [key]: s\n };\n }, {});\n\n i18nInitialized = i18n\n .use(initReactI18next)\n .use(LanguageDetector)\n .init(initOptions(resources), (err) => {\n if (err) {\n logger('error when loading translations', err);\n }\n });\n\n return i18nInitialized;\n};\n\nexport const initOptions = (resources) => ({\n detection: {\n order: ['htmlTag'],\n htmlTag: document.html\n },\n defaultNS: [NS_TOUCHWEB],\n ns: [NS_ATTRIBUTES],\n fallbackLng: DEFAULT_LANGUAGE,\n resources,\n debug: false,\n keySeparator: false,\n nsSeparator: ':::',\n interpolation: {\n skipOnVariables: true,\n escapeValue: false,\n format: (value, format) => {\n if (format === 'formatNumber') {\n return formatNumberWithSeparators(value);\n }\n\n return value;\n }\n },\n react: {\n useSuspense: false // loading from file currently breaks if this is true\n },\n ...missingKeyLoggingConfig\n});\n\n/**\n * This function helps you make sure that i18next init has completed before continuing\n */\nexport const whenInitialized = () => {\n if (!i18nInitialized) {\n throw new Error(\n \"Can't call boot-languages whenInitialized before init!\"\n );\n }\n return i18nInitialized.then((t) => ({\n t,\n toLocalizedUrl: (url) => toLocalizedUrl(url, i18n.language)\n }));\n};\n\n/**\n * Only required for Storybook, do not use.\n */\nexport const changeLanguage = (language) => i18n.changeLanguage(language);\n\nexport const getCurrentLanguage = () => i18n.language;\n","import React, { useRef } from 'react';\nimport { toLocalizedUrl } from 'tradera/utils/url';\nimport {\n NS_TOUCHWEB,\n I18N_FRONTEND_NAMESPACES,\n TRANS_SUFFIX\n} from './constants.mjs';\nimport { isServer } from 'tradera/utils/nextjs';\nimport {\n useAppSelector as useSelector,\n useAppDispatch\n} from 'tradera/state/hooks';\n\n// eslint-disable-next-line no-restricted-imports\nimport {\n type TFunction,\n type TranslationProps,\n useTranslation,\n Trans as TransComponent,\n I18nextProvider as NextI18nextProvider\n} from 'react-i18next';\nimport type { i18n } from 'i18next';\nimport type { AppDispatch, RootState } from 'tradera/state/configure-store';\nimport { addTranslationKey } from 'tradera/state/translations/reducer';\nimport { selectPreferredLanguageCode } from 'tradera/state/language/selectors';\nimport { useQuery } from 'tradera/hooks/use-query';\n\nexport type TranslationFunction = TFunction;\n\nexport const I18nextProvider = NextI18nextProvider;\n\nconst createWrappedT =\n (\n i18nObject: i18n,\n t: TranslationFunction,\n dispatch: AppDispatch,\n language: string,\n hasLoadedAllTranslations: boolean,\n throwOnTransSuffix?: boolean,\n isShowingTranslationKeysEnabled?: boolean\n ) =>\n (\n i18nKey: string,\n options?: TranslationProps | string,\n ...args: object[]\n ) => {\n if (\n typeof i18nKey === 'string' &&\n i18nKey.endsWith(TRANS_SUFFIX) &&\n throwOnTransSuffix\n ) {\n throw new Error(\n `t function keys should not have \"Trans\" suffix, got key \"${i18nKey}\". Use Trans component instead.`\n );\n }\n const translation = t(\n i18nKey,\n // @ts-ignore: TS2698 because I have no idea how these types from/using i18n work\n { ...options, lng: language, hasLoadedAllTranslations },\n // @ts-ignore: TS2345 because I have no idea how these types from/using i18n work\n ...args\n );\n if (isServer) {\n addTranslationForHydration(\n i18nKey,\n options,\n language,\n i18nObject,\n dispatch\n );\n }\n return isShowingTranslationKeysEnabled ? i18nKey : translation;\n };\n\nconst isQueryToggleEnabled = (query: string | null) => {\n if (query === null) return false;\n return ['1', 'true', ''].includes(query);\n};\n\n/**\n * i18next translation wrappers for translating static text in react components\n * When to use what?\n * -----\n * 1. For functional components use `useTranslator()` hook\n * 2. For class components use `withTranslator()` HOC\n */\n\n/**\n * Translation hook, wrapper for react-i18next\n */\nexport const useTranslator = () => {\n const dispatch = useAppDispatch();\n const [isShowingTranslationKeysEnabledQuery] = useQuery('translation-keys');\n const isShowingTranslationKeysEnabled = isQueryToggleEnabled(\n isShowingTranslationKeysEnabledQuery\n );\n const language = useSelector(selectPreferredLanguageCode);\n const loadedLanguages =\n useSelector((state: RootState) => state.status?.loadedLanguages) || [];\n const hasLoadedAllTranslations = loadedLanguages.includes(language);\n const { t, ready, i18n } = useTranslation(I18N_FRONTEND_NAMESPACES);\n const wrappedT: TranslationFunction = React.useMemo(\n () =>\n createWrappedT(\n i18n,\n t,\n dispatch,\n language,\n hasLoadedAllTranslations,\n true,\n isShowingTranslationKeysEnabled\n ),\n [\n hasLoadedAllTranslations,\n i18n,\n t,\n dispatch,\n language,\n isShowingTranslationKeysEnabled\n ]\n );\n return { t: ready ? wrappedT : () => '...', i18n };\n};\n\nconst addTranslationForHydration = (\n i18nKey: string,\n options = {},\n language: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n: any,\n dispatch: AppDispatch\n) => {\n const { key, namespaces } = i18n.translator.extractFromKey(\n i18nKey,\n options\n );\n const namespace = namespaces[namespaces.length - 1];\n const { res, exactUsedKey } = i18n.translator.resolve(key, {\n ...options,\n lng: language,\n ns: namespace\n });\n const pluralizedKey = exactUsedKey || i18nKey;\n\n dispatch(\n addTranslationKey({ key: pluralizedKey, translation: res, namespace })\n );\n};\n\nexport type WithTranslatorProps = ReturnType['t'];\n\n/**\n * Translation HOC, wrapper for react-i18next\n */\nexport function withTranslator<\n TComponent extends WithTranslatorProps = WithTranslatorProps\n>(\n WrappedComponent: React.ComponentType\n): React.ComponentType {\n function WithTranslator(\n props: Omit\n ) {\n const { t } = useTranslator();\n return ;\n }\n\n WithTranslator.displayName = `withTranslator(${\n WrappedComponent.displayName || WrappedComponent.name\n }`;\n return WithTranslator;\n}\n\nexport type WithUrlLocalizerProps = ReturnType<\n typeof useUrlLocalizer\n>['toLocalizedUrl'];\n\n/**\n * Localization HOC, wrapper for URL-localizer\n * @param {Component} WrappedComponent\n */\nexport function withUrlLocalizer<\n TComponent extends WithUrlLocalizerProps = WithUrlLocalizerProps\n>(WrappedComponent: React.ComponentType) {\n function WithUrlLocalizer(\n props: Omit\n ) {\n const { toLocalizedUrl } = useUrlLocalizer();\n return ;\n }\n\n WithUrlLocalizer.displayName = `withUrlLocalizer(${\n WrappedComponent.displayName || WrappedComponent.name\n }`;\n\n return WithUrlLocalizer;\n}\n\n/**\n * Current language hook, wrapper for react-i18next\n */\nexport const useCurrentLanguage = () => {\n const preferredLanguage = useSelector(selectPreferredLanguageCode);\n // Using language from Redux instead of i18n.language since that\n // will always be 'sv' if we don't clone the instance.\n return {\n language: preferredLanguage\n };\n};\n\n/**\n * Returns function to append language prefix to link\n */\nexport const useUrlLocalizer = () => {\n const preferredLanguage = useSelector(selectPreferredLanguageCode);\n const urlLocalizer = useRef(function toLocalizedUrlWrapper(\n url: T\n ): T | string {\n return toLocalizedUrl(url, preferredLanguage);\n });\n return {\n toLocalizedUrl: urlLocalizer.current\n };\n};\n\nexport type TransProps = Omit<\n React.ComponentProps,\n 'i18nKey'\n> & {\n i18nKey: string;\n};\n\nexport const Trans = (props: TransProps) => {\n const dispatch = useAppDispatch();\n const language = useSelector(selectPreferredLanguageCode);\n const [isShowingTranslationKeysEnabledQuery] = useQuery('translation-keys');\n const isShowingTranslationKeysEnabled = isQueryToggleEnabled(\n isShowingTranslationKeysEnabledQuery\n );\n const loadedLanguages =\n useSelector((state: RootState) => state.status?.loadedLanguages) || [];\n const hasLoadedAllTranslations = loadedLanguages.includes(language);\n const { t, ready, i18n } = useTranslation(I18N_FRONTEND_NAMESPACES);\n const { i18nKey, children, defaults } = props;\n const wrappedT = React.useMemo(\n () =>\n createWrappedT(\n i18n,\n t,\n dispatch,\n language,\n hasLoadedAllTranslations,\n false,\n isShowingTranslationKeysEnabled\n ),\n [\n hasLoadedAllTranslations,\n i18n,\n t,\n dispatch,\n language,\n isShowingTranslationKeysEnabled\n ]\n );\n\n // TODO: since we don't have TS everywhere we still need to check these things, when we have TS we can use TS to enforce most of it instead instead\n\n if (!i18nKey) {\n throw new Error('Trans component key must have a i18nKey property');\n }\n if (!i18nKey.endsWith(TRANS_SUFFIX)) {\n throw new Error(\n `Trans component key must have the \"Trans\" suffix, got key \"${i18nKey}\"`\n );\n }\n if (children) {\n throw new Error(\n `Trans component must not have children, use components or t('${i18nKey}') function instead`\n );\n }\n if (defaults) {\n throw new Error(\n 'Trans components must not have defaults, use lokalise instead.'\n );\n }\n if (!ready) {\n return <>...;\n }\n return ;\n};\n","/**\n * @returns initData as JSON;\n * Default\n */\nconst initData = function () {\n if (typeof window === 'undefined') {\n return {};\n } else if (!window.initData) {\n const initDataEL = document.getElementById('init-data');\n if (initDataEL) {\n const data = initDataEL.getAttribute('data-init-data');\n const parsed = JSON.parse(data);\n return parsed;\n } else {\n return null;\n }\n } else {\n return window.initData;\n }\n};\n\nexport const getInitData = initData;\nexport default new initData();\n","import { createElement } from 'react';\nimport { toast } from 'react-toastify';\n\nimport { ItemToast } from 'tradera/components/toasts/item-toast';\nimport { MessageToast } from 'tradera/components/toasts/message-toast';\nimport { isServer } from 'tradera/utils/nextjs';\nimport { webApiClient } from '../utils/http';\nimport { createQueue } from './toast-queue';\nimport type { ItemBasicInfoApiResponse } from 'tradera/state/services/types/webapi-browse-generated';\n\nconst queuedToasts = createQueue();\n\nconst openNextToast = async () => {\n if (isServer) {\n return;\n }\n if (queuedToasts.isInProgress()) {\n return;\n }\n const nextItem = queuedToasts.next();\n if (nextItem) {\n try {\n const queueLength = queuedToasts.getLength();\n const toastOptions = {\n autoClose: Math.max(2, 5 - queueLength) * 1000,\n onClose: () => {\n queuedToasts.notifyDone();\n openNextToast();\n }\n };\n if (nextItem.eventData.itemId) {\n const response =\n await webApiClient.get(\n `/browse/item-basic-info/${nextItem.eventData.itemId}`\n );\n const { imageUrl, itemUrl, shortDescription } =\n response.data.item || {};\n toast(\n // TODO: convert to JSX when we have a proper story for this\n createElement(ItemToast, {\n imageUrl,\n itemUrl,\n shortDescription,\n type: nextItem.type,\n eventData: nextItem.eventData\n }),\n toastOptions\n );\n } else if (nextItem.eventData.message) {\n const { message, header, messageData, headerData } =\n nextItem.eventData;\n toast(\n ,\n { ...toastOptions, type: nextItem.eventData.type }\n );\n }\n } catch (e) {\n queuedToasts.notifyDone();\n openNextToast();\n throw e;\n }\n }\n};\n\nconst handleNotification = async (\n type: string,\n eventData:\n | {\n message: string;\n header?: string | null;\n messageData: unknown;\n headerData: unknown;\n type: (typeof toast.TYPE)[keyof typeof toast.TYPE] | string;\n }\n | {\n itemId: number;\n newLeadingBidAmount?: number;\n price?: number;\n timeLeftMinutes?: number;\n },\n ttlInMinutes = 10\n) => {\n if (document.visibilityState !== 'visible') {\n // We don't want to show messages if page is not visible. If we do they will queue up!\n return;\n }\n queuedToasts.add({ type, eventData }, ttlInMinutes);\n openNextToast();\n};\n\nexport const showItemOutbiddedToast = (\n itemId: number,\n newLeadingBidAmount: number\n) =>\n handleNotification('ItemOutbidded', {\n itemId,\n newLeadingBidAmount\n });\n\nexport const showItemFirstBidToast = (itemId: number) =>\n handleNotification('ItemFirstBid', { itemId });\n\nexport const showItemSoldToast = (itemId: number, price: number) =>\n handleNotification('ItemSold', { itemId, price });\n\nexport const showItemWonToast = (itemId: number, price: number) =>\n handleNotification('ItemWon', { itemId, price });\n\nexport const showItemPaidToast = (itemId: number) =>\n handleNotification('ItemPaid', { itemId });\n\nexport const showItemWishListReminderToast = (\n itemId: number,\n timeLeftMinutes: number\n) =>\n handleNotification(\n 'ItemWishListReminder',\n { itemId, timeLeftMinutes },\n timeLeftMinutes > 10 ? 10 : 2\n );\n\n/**\n *\n * @param message The message translation key\n * @param header The header translation key\n * @param messageData Any data that's needed for the message translation key\n * @param headerData Any data that's needed for the header translation key\n */\nexport const showSuccessToast = (\n message: string,\n header?: string,\n messageData: unknown = null,\n headerData: unknown = null\n) => {\n handleNotification('Message', {\n message,\n header,\n messageData,\n headerData,\n type: toast.TYPE.SUCCESS\n });\n};\n\nexport const showErrorToast = (\n message: string,\n header?: string | null,\n messageData: unknown = null,\n headerData: unknown = null\n) => {\n handleNotification('Message', {\n header,\n message,\n messageData,\n headerData,\n type: toast.TYPE.ERROR\n });\n};\n\nexport const showInfoToast = (\n message: string,\n header?: string,\n messageData = null,\n headerData = null\n) => {\n handleNotification('Message', {\n message,\n header,\n messageData,\n headerData,\n type: toast.TYPE.INFO\n });\n};\n\n// export const ToastTestButton = () => (\n// {\n// e.preventDefault();\n// showItemWishListReminderToast(85391643, 3);\n// showItemOutbiddedToast(85391639, 99);\n// showItemFirstBidToast(85391639);\n// showItemSoldToast(85391639, 1234);\n// showItemWonToast(85391639, 1234);\n// showItemPaidToast(85391639);\n// }}>\n// Test\n// \n// );\n","import { useSelector, useDispatch } from 'react-redux';\nimport type { TypedUseSelectorHook } from 'react-redux';\nimport type { RootState, AppDispatch } from './configure-store';\n\n// Use throughout our app instead of plain `useSelector` since this gets us typed state\nexport const useAppSelector: TypedUseSelectorHook = useSelector;\n// Use throughout our app instead of plain `useDispatch` since it includes the thunk middleware types etc\nexport const useAppDispatch: () => AppDispatch = useDispatch;\n","import { DEFAULT_LANGUAGE } from 'tradera/lang/constants.mjs';\nimport type { RootState } from '../configure-store';\nimport { createSelector } from '@reduxjs/toolkit';\n\nexport const selectAvailableLanguages = (state: RootState) =>\n state.language.available;\n\nexport const selectAvailableLanguageCodesIso2 = createSelector(\n selectAvailableLanguages,\n (available) => available?.map((x) => x.languageCodeIso2)\n);\n\nexport const selectPreferredLanguage = (state: RootState) =>\n state.language.preferred;\n\nexport const selectPreferredLanguageCode = (state: RootState) =>\n state?.language?.preferred?.languageCodeIso2 || DEFAULT_LANGUAGE;\n\nexport const selectLocale = (state: RootState) => {\n const language = selectPreferredLanguageCode(state);\n const country = state.language.memberCountryCodeIso2 || 'SE';\n\n return `${language}-${country}`;\n};\n\nexport const selectIsForeignLanguageActivated = (state: RootState) =>\n selectPreferredLanguage(state)?.languageCodeIso2 !== DEFAULT_LANGUAGE;\n\nexport const selectAutomaticTranslationPreferred = (\n state: RootState\n): boolean => state.language.automaticTranslationPreferred ?? true;\n","import { selectShippingRegionCountryCodeIso2 } from 'tradera/state/shipping-region/selectors';\nimport { areCountryCodesIso2Equal } from 'tradera/localization/countrycode';\nimport type { RootState } from '../configure-store';\nimport { RequirementTypeApi } from '../services/types/webapi-member-generated';\n\nexport const selectMember = (state: RootState) => state.member;\n\nexport const selectIsLoggedIn = (state: RootState) => state.member?.isLoggedIn;\n\nexport const selectGeolocation = (state: RootState) =>\n state.member?.geolocation;\n\nexport const selectMemberId = (state: RootState) => state?.member?.memberId;\n\nexport const selectMemberAlias = (state: RootState) =>\n state.member?.memberAlias;\n\nexport const selectMemberEmail = (state: RootState) =>\n state.member?.memberEmail;\n\nexport const selectMemberFirstName = (state: RootState) =>\n state.member?.memberFirstName;\n\nexport const selectMemberLastName = (state: RootState) =>\n state.member?.memberLastName;\n\nexport const selectMemberBirthdate = (state: RootState) =>\n state.member?.memberBirthdate;\n\nexport const selectCurrencyCode = (state: RootState) =>\n state.member?.currencyCode;\n\n// Prefer using selectShippingRegionCountryCodeIso2 to be safe for all users, non-logged in and logged in.\nexport const selectMemberCountryCodeIso2 = (state: RootState) =>\n state.member?.memberCountryCodeIso2;\n\nexport const selectIsOutsideSweden = (state: RootState) =>\n state.member?.geolocation?.isoCode &&\n state.member?.geolocation?.isoCode.toLowerCase() !== 'se';\n\nexport const showDanishFromCountry = (state: RootState) => {\n const fromCountry = selectShippingRegionCountryCodeIso2(state);\n return areCountryCodesIso2Equal(fromCountry, 'DK');\n};\n\nexport const selectMemberTown = (state: RootState) => state.member?.memberTown;\n\nexport const selectMemberPermissions = (state: RootState) =>\n state.member.permissions;\n\nexport const selectIsUnderage = (state: RootState) => {\n const permissions = selectMemberPermissions(state);\n return (\n permissions?.sellPermission?.isPermitted === false &&\n permissions?.sellPermission?.requirementsNotMet?.includes(\n RequirementTypeApi.IsOverMinimumAge\n )\n );\n};\n\nexport const selectIsCompany = (state: RootState) => state.member?.isCompany;\n\nexport const selectIsImpersonationSession = (state: RootState) =>\n state.member?.isImpersonationSession;\n\nexport const selectMemberState = (state: RootState) =>\n state.member?.memberState;\n\nexport const selectIsTrustedMember = (state: RootState) =>\n state.member?.isTrustedMember;\n","import { type PayloadAction, createSlice } from '@reduxjs/toolkit';\n\nexport type Currency = {\n code: string;\n rate: number;\n valueDate: string;\n updatedDate: string;\n symbolSuffix: string;\n shortName: string;\n longName: string;\n decimals: number;\n};\n\nexport const defaultCurrency: Currency = {\n code: 'SEK',\n rate: 1,\n valueDate: '0000-01-01',\n updatedDate: '0000-01-01T00:00:00.0000000Z',\n symbolSuffix: 'kr',\n shortName: 'SEK',\n longName: 'Svensk krona',\n decimals: 0\n};\n\ntype MultiCurrencyState = {\n enabled: boolean;\n currencies: Currency[];\n preferredCurrency: Currency | null;\n};\n\nconst initialState: MultiCurrencyState = {\n enabled: false,\n currencies: [],\n preferredCurrency: null\n};\n\nconst resolveCurrency = (\n enabled: boolean,\n currencyCode: string | undefined,\n currencies: Currency[]\n) => {\n if (!enabled || !currencyCode) {\n return null;\n }\n return (\n currencies.find((currency) => currency.code === currencyCode) || null\n );\n};\n\nconst multiCurrencySlice = createSlice({\n name: 'multiCurrency',\n initialState,\n reducers: {\n initialize: (\n state,\n action: PayloadAction<{\n enabled: boolean;\n preferredCurrency: string;\n currencies?: Currency[];\n }>\n ) => {\n const {\n currencies = [],\n enabled,\n preferredCurrency\n } = action.payload;\n\n return {\n ...state,\n enabled,\n currencies,\n preferredCurrency: resolveCurrency(\n enabled,\n preferredCurrency,\n currencies\n )\n };\n },\n setPreferredCurrency: (\n state,\n { payload }: PayloadAction<{ currencyCode: string }>\n ) => {\n const { enabled, currencies } = state;\n\n return {\n ...state,\n preferredCurrency: resolveCurrency(\n enabled,\n payload.currencyCode,\n currencies\n )\n };\n }\n }\n});\n\nexport const { initialize, setPreferredCurrency } = multiCurrencySlice.actions;\nexport default multiCurrencySlice.reducer;\n","/* eslint-disable */\n/* tslint:disable */\n/*\n * ---------------------------------------------------------------\n * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##\n * ## ##\n * ## AUTHOR: acacode ##\n * ## SOURCE: https://github.com/acacode/swagger-typescript-api ##\n * ---------------------------------------------------------------\n */\n\nexport interface ActivesummaryRequest {\n request?: MemberActiveItemsSummaryApiRequest;\n}\n\nexport interface AutoShipmentCheckoutEnabledUpdateParams {\n request?: SetAutoShipmentCheckoutMemberEnabledApiRequest;\n}\n\nexport interface BankIdPasswordRecoveryCancelCreateParams {\n request?: BankIdPasswordRecoveryCancelApiRequest;\n}\n\nexport interface BankIdProgressWithIdRequest {\n bankIdOrderRef?: string;\n /** @format int32 */\n memberid?: number;\n}\n\nexport interface BankIdRecoveryWithIdCreateParams {\n request?: BankIdBeginWithIdApiRequest;\n}\n\nexport interface BankaccountCreateParams {\n request?: SetBankAccountPayoutTransferMethodApiRequest;\n}\n\nexport interface BankaccountDeleteParams {\n request?: RemoveBankAccountPayoutTransferMethodApiRequest;\n}\n\nexport interface BankidVerificationRequest {\n /** @format int32 */\n fixedPrice?: number;\n}\n\nexport interface BlockedMembersCreateParams {\n request?: BlockMemberApiRequest;\n}\n\nexport interface BlockedMembersDeleteParams {\n request?: UnblockMemberApiRequest;\n}\n\nexport interface BlockedMembersRequest {\n request?: GetBlockedMembersApiRequest;\n}\n\nexport interface BlueshiftCredentialsRequest {\n request?: GetBlueshiftEventApiCredentialsApiRequest;\n}\n\nexport interface BraintreeOnboardingDetailsRequest {\n request?: GetBraintreeOnboardingDetailsApiRequest;\n}\n\nexport interface BuyerCreateParams {\n request?: SaveFeedbackAsBuyerApiRequest;\n}\n\nexport interface BuyerRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface BuyerTransactionVisibilityCreateParams {\n request?: SetBuyerTransactionVisibilityApiRequest;\n}\n\nexport interface ChangeStatusToAppealedCreateParams {\n request?: ChangeDisputeStatusToAppealedApiRequest;\n}\n\nexport interface ChangealiasCreateParams {\n request?: ChangeAliasApiRequest;\n}\n\nexport interface ChangeemailCreateParams {\n request?: ChangeEmailWithIdApiRequest;\n memberId: string;\n}\n\nexport interface ChangepasswordCreate2Params {\n request?: ChangePasswordWithIdApiRequest;\n memberId: string;\n}\n\nexport interface ChangepasswordCreateParams {\n request?: ChangePasswordApiRequest;\n}\n\nexport interface CombinedShippingDaysUpdateParams {\n request?: SetCombinedShippingMemberDaysApiRequest;\n}\n\nexport interface CombinedShippingEnabledUpdateParams {\n request?: SetCombinedShippingMemberEnabledApiRequest;\n}\n\nexport interface CommentCreateParams {\n request?: CommentFeedbackApiRequest;\n}\n\nexport interface CommitonpaymentEnabledUpdateParams {\n request?: SetCommitOnPaymentMemberEnabledApiRequest;\n}\n\nexport interface CompanyContactSsnRequest {\n request?: MemberHasCompanyContactSsnApiRequest;\n}\n\nexport interface CompanyContactSsnUpdateParams {\n request?: UpdateMemberCompanyContactSsnApiRequest;\n}\n\nexport interface CompanyDac7StatusRequest {\n request?: GetMemberCompanyDac7StatusApiRequest;\n}\n\nexport interface CompanyMoneyTransferLicenseStatusRequest {\n request?: GetMemberCompanyMoneyTransferLicenseStatusApiRequest;\n}\n\nexport interface CompleteQuestionnaireCreateParams {\n request?: CompleteQuestionnaireApiRequest;\n}\n\nexport interface CompletehyperwallettransfermethodCreateParams {\n request?: CompleteHyperwalletTransferMethodApiRequest;\n}\n\nexport interface ConfirmCreateParams {\n request?: ConfirmMutualFeedbackRemovalApiRequest;\n}\n\nexport interface ConfirmationValidationRequest {\n /** @format int32 */\n id?: number;\n}\n\nexport interface ConsentCreateParams {\n request?: SetMemberConsentApiRequest;\n}\n\nexport interface ContactSellerCreateParams {\n request?: ContactSellerApiRequest;\n}\n\nexport interface CreateCreateParams {\n request?: CreateFeedbackRemovalApiRequest;\n}\n\nexport interface CreateVerificationCodeCreateParams {\n request?: CreateVerificationCodeApiRequest;\n}\n\nexport interface CreateVerificationCodeWithMemberIdCreateParams {\n request?: CreateVerificationCodeWithMemberIdApiRequest;\n}\n\nexport interface CreationValidationRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface CurrencyUpdateParams {\n request?: UpdateMemberCurrencyApiRequest;\n}\n\nexport interface DeactivateaccountCreateParams {\n request?: DeactivateMemberAccountPermanentlyApiRequest;\n}\n\nexport interface DeactivateaccountRequest {\n request?: GetAccountDeactivationSettingsApiRequest;\n}\n\nexport interface DeactivateaccounttemporarilyCreateParams {\n request?: DeactivateMemberAccountTemporarilyApiRequest;\n}\n\nexport interface DenyCreateParams {\n request?: DenyMutualFeedbackRemovalApiRequest;\n}\n\nexport interface DetailsRequest {\n request?: MemberContactDetailsApiRequest;\n}\n\nexport interface DetailsUpdateParams {\n request?: UpdateMemberContactDetailsApiRequest;\n}\n\nexport interface DisputeCreateParams {\n request?: CreateDisputeApiRequest;\n}\n\nexport interface DisputeRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface DisputeMessageCreateParams {\n request?: AddDisputeMessageApiRequest;\n}\n\nexport interface DisputesRequest {\n transactionIds?: number[];\n}\n\nexport interface EmailSettingsRequest {\n request?: MemberEmailSettingsApiRequest;\n}\n\nexport interface EmailSettingsUpdateParams {\n request?: UpdateMemberEmailSettingsApiRequest;\n}\n\nexport interface EmailnotifyRequest {\n /** @format int32 */\n memberId?: number;\n}\n\nexport interface EmailnotifyUpdateParams {\n request?: SetMessagingEmailNotifyApiRequest;\n}\n\nexport interface EndingtodaycountRequest {\n request?: GetWishlistItemsEndingTodayCountApiRequest;\n}\n\nexport interface FeatureSummaryByIdsRequest {\n itemIds?: number[];\n}\n\nexport interface FeedbackRequest {\n /** @format int32 */\n memberId?: number;\n feedbackRoleFilter?: FeedbackRoleFilter;\n feedbackRatingFilter?: FeedbackRatingFilter;\n /** @format int32 */\n skip?: number;\n /** @format int32 */\n take?: number;\n}\n\nexport interface FeedbackRemovalDetailsRequest {\n /** @format int32 */\n feedbackRemovalRequestId?: number;\n}\n\nexport interface FeedbackRemovalsCreateParams {\n request?: FeedbackRemovalsApiRequest;\n}\n\nexport interface FeedbacksRequest {\n /** @format int32 */\n transactionId?: number;\n showDeleted?: boolean;\n}\n\nexport interface FindRequest {\n query?: string;\n /** @format int32 */\n page?: number;\n /** @format int32 */\n pageSize?: number;\n}\n\nexport interface GetGeoParams {\n request?: GetMemberGeoDataApiRequest;\n}\n\nexport interface GetSsnParams {\n request?: MemberHasSsnApiRequest;\n}\n\nexport interface GetavailablecountriesforshippingRequest {\n request?: GetAvailableCountriesForShippingApiRequest;\n}\n\nexport interface GetcreditmemobyencryptedidRequest {\n encryptedId?: string;\n}\n\nexport interface GetcreditmemopdfRequest {\n /** @format int64 */\n invoiceId?: number;\n creditMemoDocumentId?: string;\n}\n\nexport interface GetcreditmemopdfbyidRequest {\n /** @format int64 */\n creditMemoId?: number;\n}\n\nexport interface GethyperwalletmemberdetailsRequest {\n request?: GetHyperwalletMemberDetailsApiRequest;\n}\n\nexport interface GetinvoicecsvRequest {\n /** @format int64 */\n invoiceId?: number;\n}\n\nexport interface GetinvoicepdfRequest {\n /** @format int64 */\n invoiceId?: number;\n}\n\nexport interface GetinvoicepdfbyencryptedidRequest {\n encryptedId?: string;\n}\n\nexport interface GetinvoicesRequest {\n /** @format int32 */\n pageIndex?: number;\n /** @format int32 */\n itemsPerPage?: number;\n}\n\nexport interface GetiscombinedshippingenabledRequest {\n request?: GetIsCombinedShippingEnabledApiRequest;\n}\n\nexport interface GetistraderapayenabledRequest {\n request?: GetIsTraderaPayEnabledApiRequest;\n}\n\nexport interface GetshippinginvoicememberRequest {\n request?: GetShippingInvoiceMemberApiRequest;\n}\n\nexport interface GettraderapayonboardingdetailsRequest {\n request?: GetTraderaPayOnboardingDetailsApiRequest;\n}\n\nexport interface GradeTransactionsRequest {\n gradeIds?: number[];\n}\n\nexport interface HasTinRequest {\n request?: GetMemberHasTaxIdentificationNumberApiRequest;\n}\n\nexport interface HyperwalletauthenticationtokenRequest {\n request?: GetHyperwalletAuthenticationTokenApiRequest;\n}\n\nexport interface HyperwallettransfermethodviewmodelRequest {\n request?: GetHyperwalletTransferMethodViewModelApiRequest;\n}\n\nexport interface ImageUploadUrlRequest {\n contentType?: string;\n}\n\nexport interface InitializeQuestionnaireCreateParams {\n request?: InitializeQuestionnaireApiRequest;\n}\n\nexport interface ItemIdsRequest {\n request?: GetWishListItemIdsApiRequest;\n}\n\nexport interface ItemShippedCreateParams {\n request?: SetItemShippedApiRequest;\n}\n\nexport interface ItemShippingBookedCreateParams {\n request?: SetItemShippingBookedApiRequest;\n}\n\nexport interface ItemVisibilityCreateParams {\n request?: SetItemVisibilityApiRequest;\n}\n\nexport interface ItemsRequest {\n /** @format int32 */\n memberId?: number;\n role?: FeedbackRoleFilter;\n rating?: FeedbackRatingFilter;\n /** @format int32 */\n skip?: number;\n /** @format int32 */\n take?: number;\n}\n\nexport interface LanguageUpdateParams {\n request?: UpdateMemberLanguageApiRequest;\n}\n\nexport interface LastnotifiedCreateParams {\n request?: SetLastNotifiedApiRequest;\n}\n\nexport interface ListingFeeRequest {\n request?: MemberListingFeeApiRequest;\n}\n\nexport interface MakeAnOfferEnabledUpdateParams {\n request?: SetMakeAnOfferMemberEnabledApiRequest;\n}\n\nexport interface MarkAsEscalatedCreateParams {\n request?: MarkDisputeAsEscalatedApiRequest;\n}\n\nexport interface MarkAsSolvedCreateParams {\n request?: MarkDisputeAsSolvedApiRequest;\n}\n\nexport interface MarkedAsPaidBySellerCreateParams {\n request?: MarkAsPaidBySellerApiRequest;\n}\n\nexport interface MatchbankCreateParams {\n request?: MatchBankApiRequest;\n}\n\nexport interface McpStrikeConfirmCreateParams {\n request?: ConfirmMutualCancelOfPurchaseStrikeApiRequest;\n}\n\nexport interface McpStrikeCreateParams {\n request?: AddMutualCancelOfPurchaseStrikeApiRequest;\n}\n\nexport interface McpStrikeRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n}\n\nexport interface MemberLocalizationRequest {\n request?: GetMemberLocalizationApiRequest;\n}\n\nexport interface MemberconsentRequest {\n request?: GetMemberConsentApiRequest;\n}\n\nexport interface MemberemailnotificationssettingsviewmodelRequest {\n request?: GetMemberEmailNotificationsSettingsViewModelApiRequest;\n}\n\nexport interface MemberprofilesettingsviewmodelRequest {\n request?: GetMemberProfileSettingsViewModelApiRequest;\n}\n\nexport interface MembersecuritysettingsviewmodelRequest {\n request?: GetMemberSecuritySettingsViewModelApiRequest;\n}\n\nexport interface MembersellersettingsviewmodelRequest {\n request?: GetMemberSellerSettingsViewModelApiRequest;\n}\n\nexport interface MessagingConfigurationRequest {\n request?: GetMessagingConfigurationApiRequest;\n}\n\nexport interface MoneyTransferLicenseAgreementRequest {\n /** @format date-time */\n asOf?: string;\n}\n\nexport interface NewDisputePageRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n itemIds?: number[];\n}\n\nexport interface NotificationsRequest {\n /** @format int32 */\n take?: number;\n /** @format int32 */\n skip?: number;\n}\n\nexport interface PagedTransactionsRequest {\n /** @format int32 */\n skip?: number;\n /** @format int32 */\n take?: number;\n}\n\nexport interface PaymentproviderDeleteParams {\n request?: RemovePayoutTransferMethodApiRequest;\n}\n\nexport interface PayoutfrequencyRequest {\n request?: GetPayoutFrequencyApiRequest;\n}\n\nexport interface PayoutfrequencyoptionsRequest {\n request?: GetPayoutFrequencyOptionsApiRequest;\n}\n\nexport interface PayoutsettingsmodalviewmodelRequest {\n tinkRedirectPath?: string;\n}\n\nexport interface PayoutsettingsviewmodelRequest {\n request?: GetPayoutSettingsViewModelApiRequest;\n}\n\nexport interface PaypalCreateParams {\n request?: SetPayPalPayoutTransferMethodApiRequest;\n}\n\nexport interface PaypalDeleteParams {\n request?: RemovePayPalPayoutTransferMethodApiRequest;\n}\n\nexport interface PendingActionsRequest {\n request?: GetKycPendingActionsApiRequest;\n}\n\nexport interface PicklistRequest {\n /** @format int32 */\n pageIndex?: number;\n /** @format int32 */\n itemsPerPage?: number;\n retrieveHidden?: boolean;\n paidStatus?: PickListFilterPaidStatus;\n shippedStatus?: PickListFilterShippedStatus;\n /** @format date-time */\n from?: string;\n /** @format date-time */\n to?: string;\n}\n\nexport interface PicklistV2Request {\n /** @format int32 */\n skip?: number;\n /** @format int32 */\n take?: number;\n retrieveHidden?: boolean;\n paidStatus?: PickListFilterPaidStatus;\n shippedStatus?: PickListFilterShippedStatus;\n /** @format date-time */\n fromDate?: string;\n /** @format date-time */\n toDate?: string;\n}\n\nexport interface PonrStrikeCreateParams {\n request?: AddPurchaseOrderNotReceivedStrikeApiRequest;\n}\n\nexport interface PonrStrikeRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n}\n\nexport interface ProfilePageRequest {\n /** @format int32 */\n memberId?: number;\n languageCodeIso2?: string;\n}\n\nexport interface PublicProfileHeroImageDeleteParams {\n request?: RemoveMemberPublicProfileHeroImageApiRequest;\n}\n\nexport interface PublicProfileHeroImageUpdateParams {\n request?: UpdateMemberPublicProfileHeroImageApiRequest;\n}\n\nexport interface PublicProfileInformationUpdateParams {\n request?: UpdateMemberPublicProfileInformationApiRequest;\n}\n\nexport interface PublicprofileRequest {\n /** @format int32 */\n memberId?: number;\n toLanguageCodeIso2?: string;\n}\n\nexport interface PurchaseRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface PurchaseorderRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n}\n\nexport interface PurchaseorderitemRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n}\n\nexport interface PutSsnParams {\n request?: UpdateMemberSsnApiRequest;\n}\n\nexport interface PutTinParams {\n request?: UpdateMemberTaxIdentificationNumberApiRequest;\n}\n\nexport interface QuestionnaireRequest {\n actionType?: string;\n languageCodeIso2?: string;\n}\n\nexport interface ReferralCodeCreateParams {\n request?: GenerateMemberReferralCodeApiRequest;\n}\n\nexport interface RemovetraderapaypayoutdestinationCreateParams {\n request?: RemoveTraderaPayPayoutDestinationApiRequest;\n}\n\nexport interface ResendverificationCreateParams {\n request?: ResendPayoutTransferMethodVerificationCodeApiRequest;\n}\n\nexport interface RestartItemsSummaryRequest {\n itemIds?: number[];\n}\n\nexport interface SelectedDescriptionLanguageUpdateParams {\n request?: UpdateMemberSelectedDescriptionLanguageApiRequest;\n}\n\nexport interface SellerAutoFeedbackRequest {\n request?: SellerAutoFeedbackApiRequest;\n}\n\nexport interface SellerAutoFeedbackUpdateParams {\n request?: SaveSellerAutoFeedbackSettingsApiRequest;\n}\n\nexport interface SellerAutoPaymentReminderRequest {\n request?: SellerAutoPaymentReminderApiRequest;\n}\n\nexport interface SellerAutoPaymentReminderUpdateParams {\n request?: SaveSellerAutoPaymentReminderSettingsApiRequest;\n}\n\nexport interface SellerCreateParams {\n request?: SaveFeedbackAsSellerApiRequest;\n}\n\nexport interface SellerRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface SelloprofileRequest {\n request?: MemberSelloProfileApiRequest;\n}\n\nexport interface ServerStorageRequest {\n request?: MemberServerStorageListApiRequest;\n}\n\nexport interface ServerStorageUpdateParams {\n request?: MemberServerStoragePutApiRequest;\n}\n\nexport interface SessionDataRequest {\n request?: MemberSessionDataApiRequest;\n}\n\nexport interface SethyperwalletpayeeverificationassubmittedCreateParams {\n request?: SetHyperwalletPayeeVerificationAsSubmittedApiRequest;\n}\n\nexport interface SetpayoutfrequencyCreateParams {\n request?: SetPayoutFrequencyApiRequest;\n}\n\nexport interface ShippingFeeRuleFreeShippingCostLimitUpdateParams {\n request?: SetShippingFeeRuleFreeShippingCostLimitApiRequest;\n}\n\nexport interface ShippingFeeRuleShippingOptionUpdateParams {\n request?: SetShippingFeeRuleShippingOptionApiRequest;\n}\n\nexport interface ShippingFromCountryUpdateParams {\n request?: UpdateMemberShippingFromCountryApiRequest;\n}\n\nexport interface ShopDetailsRequest {\n /** @format int32 */\n memberId?: number;\n}\n\nexport interface ShopitemOrderhistoryRequest {\n /** @format int32 */\n itemId?: number;\n}\n\nexport interface ShouldCollectTinRequest {\n request?: GetMemberShouldCollectTaxIdentificationNumberApiRequest;\n}\n\nexport interface SilentRequest {\n request?: GetMessagingSilentApiRequest;\n}\n\nexport interface SilentUpdateParams {\n request?: SetMessagingSilentApiRequest;\n}\n\nexport interface SmsCheckCreateParams {\n request?: SmsCheckApiRequest;\n}\n\nexport interface SmsVerificationCreateParams {\n request?: SendVerificationSmsApiRequest;\n}\n\nexport interface SmsVerificationRequest {\n action?: string;\n}\n\nexport interface SmsVerificationWithIdCreateParams {\n request?: SendVerificationSmsWithIdApiRequest;\n}\n\nexport interface SolditemsRequest {\n soldItemStateFilter?: string;\n soldItemOrderBy?: string;\n retrieveHidden?: boolean;\n /** @format int32 */\n take?: number;\n /** @format int32 */\n skip?: number;\n}\n\nexport interface SoldsummaryRequest {\n request?: MemberSoldItemsSummaryApiRequest;\n}\n\nexport interface StatsRequest {\n request?: GetMessagingStatsApiRequest;\n}\n\nexport interface StatsThisMonthRequest {\n request?: MemberStatsThisMonthApiRequest;\n}\n\nexport interface SummaryRequest {\n /** @format int32 */\n memberId?: number;\n}\n\nexport interface SuspendedUntilRequest {\n request?: GetMemberSuspendedUntilApiRequest;\n}\n\nexport interface SwishCreateParams {\n request?: SetSwishPayoutTransferMethodApiRequest;\n}\n\nexport interface SystemMessagesRequest {\n request?: GetSystemMessagesApiRequest;\n}\n\nexport interface TinImageUploadUrlCreateParams {\n request?: CreateTaxIdentificationImageUploadUrlApiRequest;\n}\n\nexport interface TinkBankaccountsRequest {\n code?: string;\n}\n\nexport interface TinkaccountCreateParams {\n request?: SetPayoutTransferMethodUsingTinkApiRequest;\n}\n\nexport interface ResponseError {\n errorCode?: string | null;\n fieldName?: string | null;\n message?: string | null;\n}\n\nexport interface ResponseError5 {\n transactionIds?: number[];\n}\n\nexport interface ResponseError7 {\n /** @format int32 */\n skip?: number;\n /** @format int32 */\n take?: number;\n}\n\nexport interface ResponseError9 {\n request?: WebChangeEmailWithIdApiRequest;\n}\n\nexport interface ResponseStatus {\n errorCode?: string | null;\n errors?: ResponseError[] | null;\n message?: string | null;\n stackTrace?: string | null;\n}\n\nexport interface BankIdAuthenticationBeginApiResponse {\n autoStartToken?: string | null;\n bankIdOrderRef?: string | null;\n qrData?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface BankIdAuthenticationCancelApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface BankIdAuthenticationProgressApiResponse {\n isCompleted: boolean;\n progress?: string | null;\n qrData?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ItemImageUrls {\n medium?: string | null;\n normal?: string | null;\n}\n\nexport enum ItemTransactionTypeApiDto {\n Auction = 'Auction',\n Bin = 'Bin',\n Cart = 'Cart',\n PurchaseOfferOnActive = 'PurchaseOfferOnActive',\n PurchaseOfferOnEnded = 'PurchaseOfferOnEnded'\n}\n\nexport enum ItemTypeApiDto {\n Auction = 'Auction',\n AuctionBin = 'AuctionBin',\n PureBin = 'PureBin',\n ShopItem = 'ShopItem'\n}\n\nexport interface BlockMemberApiRequest {\n aliasToBlock?: string | null;\n}\n\nexport interface BlockMemberApiResponse {\n /** @format int32 */\n blockedMemberId: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface AddDisputeMessageApiRequest {\n attachments?: string[] | null;\n message?: string | null;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface AddDisputeMessageApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ChangeDisputeStatusToAppealedApiRequest {\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface ChangeDisputeStatusToAppealedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface CreateDisputeApiRequest {\n message?: string | null;\n /** @format int32 */\n reason: number;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface CreateDisputeApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetDisputeApiResponse {\n dispute?: DisputeApiDto | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetDisputesApiResponse {\n disputes?: DisputeApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MarkDisputeAsEscalatedApiRequest {\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface MarkDisputeAsEscalatedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MarkDisputeAsSolvedApiRequest {\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface MarkDisputeAsSolvedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface DisputeApiDto {\n /** @format int32 */\n buyerMemberId: number;\n isHandledByExternalPart: boolean;\n /** @format int32 */\n itemId: number;\n message?: string | null;\n messages?: DisputeMessageDto[] | null;\n /** @format int32 */\n sellerMemberId: number;\n status: DisputeStatus;\n /** @format date-time */\n timeStamp: string;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface DisputeMessageDto {\n attachments?: string[] | null;\n /** @format date-time */\n created: string;\n /** @format uuid */\n id: string;\n sentBy: MessageSentBy;\n text?: string | null;\n}\n\nexport enum DisputeStatus {\n New = 'New',\n WaitingForSeller = 'WaitingForSeller',\n TraderaIsInvestigating = 'TraderaIsInvestigating',\n ToBeClosed = 'ToBeClosed',\n WaitingForBuyer = 'WaitingForBuyer',\n BuyerWonDispute = 'BuyerWonDispute',\n SellerWonDispute = 'SellerWonDispute',\n WaitingForReturn = 'WaitingForReturn',\n Appealed = 'Appealed',\n AvslutadUnder120Kr = 'AvslutadUnder120Kr',\n NotEscalated = 'NotEscalated',\n BuyerMarkedAsSolved = 'BuyerMarkedAsSolved'\n}\n\nexport enum MessageSentBy {\n CsAgent = 'CsAgent',\n Buyer = 'Buyer',\n Seller = 'Seller'\n}\n\nexport interface ItemInfoDto {\n imageUrl?: string | null;\n /** @format int32 */\n itemId: number;\n itemUrl?: string | null;\n /** @format double */\n price: number;\n shortDescription?: string | null;\n}\n\nexport interface ItemStrikeSubmission {\n strikeSubmitted: boolean;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface PurchaseOrderDto {\n /** @format double */\n buyerProtectionCost: number;\n items?: ItemInfoDto[] | null;\n /** @format uuid */\n purchaseOrderId: string;\n /** @format double */\n shippingCost: number;\n}\n\nexport interface AddPurchaseOrderNotReceivedStrikeApiRequest {\n comment?: string | null;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface AddPurchaseOrderNotReceivedStrikeApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface PurchaseOrderNotReceivedStrikeApiResponse {\n items?: ItemStrikeSubmission[] | null;\n responseStatus?: ResponseStatus | null;\n strikeSubmitted: boolean;\n}\n\nexport interface AddMutualCancelOfPurchaseStrikeApiRequest {\n comment?: string | null;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface AddMutualCancelOfPurchaseStrikeApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ConfirmMutualCancelOfPurchaseStrikeApiRequest {\n approved: boolean;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface ConfirmMutualCancelOfPurchaseStrikeApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MutualCancelOfPurchaseStrikeApiResponse {\n items?: StrikeItem[] | null;\n /** @format uuid */\n purchaseOrderId: string;\n responseStatus?: ResponseStatus | null;\n strikeConfirmed: boolean;\n strikeSubmitted: boolean;\n}\n\nexport interface StrikeItem {\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface AddUnpaidPurchaseOrderStrikeApiRequest {\n comment?: string | null;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface AddUnpaidPurchaseOrderStrikeApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UnpaidItemStrikeApiResponse {\n responseStatus?: ResponseStatus | null;\n strikeSubmitted: boolean;\n}\n\nexport interface UnpaidPurchaseOrderStrikeApiResponse {\n items?: ItemStrikeSubmission[] | null;\n responseStatus?: ResponseStatus | null;\n strikeSubmitted: boolean;\n}\n\nexport interface CommentFeedbackApiRequest {\n comment?: string | null;\n /** @format int32 */\n gradeId: number;\n /** @format int32 */\n memberId: number;\n}\n\nexport interface CommentFeedbackApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ContactSellerApiRequest {\n /** @format int32 */\n itemId: number;\n message?: string | null;\n sendCopytoSender: boolean;\n}\n\nexport interface ContactSellerApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface Country {\n countryCodeIso2?: string | null;\n countryNameEng?: string | null;\n countryNameSwe?: string | null;\n}\n\nexport interface BlockedMemberDto {\n alias?: string | null;\n /** @format date-time */\n createdDate: string;\n /** @format int32 */\n memberId: number;\n}\n\nexport interface BookedShipping {\n hasShipmentLabel: boolean;\n hasShipmentReceipt: boolean;\n /** @format uuid */\n shipmentCheckoutId: string;\n /** @format uuid */\n shipmentId: string;\n shippingType?: string | null;\n trackingId?: string | null;\n trackingLink?: string | null;\n}\n\nexport interface BuyerPaidDataDto {\n /** @format int32 */\n numberOfItems: number;\n /** @format uuid */\n purchaseOrderId: string;\n shipmentBookingType?: string | null;\n}\n\nexport interface BuyerProtectionApiDto {\n /** @format double */\n buyerProtectionCost: number;\n}\n\nexport interface ContactDetailsApiDto {\n countryCodeIso2?: string | null;\n alias?: string | null;\n companyName?: string | null;\n country?: string | null;\n email?: string | null;\n firstName?: string | null;\n fullName?: string | null;\n isCompany: boolean;\n lastName?: string | null;\n /** @format int32 */\n memberId: number;\n organizationNumber?: string | null;\n phoneNumber?: string | null;\n streetName?: string | null;\n town?: string | null;\n zipCode?: string | null;\n}\n\nexport interface CreditSafeLookupResult {\n firstName?: string | null;\n givenName?: string | null;\n lastName?: string | null;\n socialSecurityNumber?: string | null;\n}\n\nexport interface CreditSafeNameVerificationResult {\n lookupResult?: CreditSafeLookupResult | null;\n status: CreditSafeNameVerificationStatus;\n}\n\nexport enum CreditSafeNameVerificationStatus {\n Valid = 'Valid',\n Invalid = 'Invalid',\n SSNFail = 'SSNFail',\n NotFound = 'NotFound',\n Error = 'Error'\n}\n\nexport interface DetailedSellerRatingApiDto {\n /** @format double */\n averageRating: number;\n category?: string | null;\n /** @format int32 */\n categoryCount: number;\n}\n\nexport interface DetailedSellerRatingSummaryForMemberApiDto {\n communication?: DetailedSellerRatingApiDto | null;\n deliveryTime?: DetailedSellerRatingApiDto | null;\n /** @format double */\n detailedSellerRatingAverage: number;\n itemDescription?: DetailedSellerRatingApiDto | null;\n /** @format int32 */\n memberId: number;\n shippingCost?: DetailedSellerRatingApiDto | null;\n}\n\nexport interface DiscountDto {\n /** @format double */\n amount: number;\n /** @format date-time */\n created: string;\n type?: string | null;\n}\n\nexport interface FeatureSummaryApiDto {\n /** @format int32 */\n cost: number;\n /** @format int32 */\n count: number;\n name?: string | null;\n}\n\nexport interface FeedbackItemApiDto {\n feedbackMemberCountryCodeIso2?: string | null;\n /** @format date-time */\n created: string;\n feedbackMemberAlias?: string | null;\n /** @format int32 */\n feedbackMemberId: number;\n feedbackMemberRole: FeedbackRoleApiDto;\n /** @format int32 */\n gradeId: number;\n /** @format int32 */\n itemCategoryId: number;\n /** @format date-time */\n itemEndDate: string;\n /** @format int32 */\n itemId: number;\n /** @format int32 */\n itemMaxBid: number;\n itemShortDescription?: string | null;\n mutualFeedbackRemovalItem?: MutualFeedbackRemovalItemApiDto | null;\n rating: FeedbackRatingApiDto;\n reply?: string | null;\n text?: string | null;\n /** @format int32 */\n totalRating: number;\n}\n\nexport enum FeedbackRatingApiDto {\n None = 'None',\n Negative = 'Negative',\n Positive = 'Positive'\n}\n\nexport enum FeedbackRatingFilter {\n All = 'All',\n Positive = 'Positive',\n Negative = 'Negative'\n}\n\nexport interface FeedbackReminderDataDto {\n isSeller: boolean;\n}\n\nexport enum FeedbackRoleApiDto {\n Buyer = 'Buyer',\n Seller = 'Seller'\n}\n\nexport enum FeedbackRoleFilter {\n All = 'All',\n Seller = 'Seller',\n Buyer = 'Buyer',\n LeftBy = 'LeftBy'\n}\n\nexport interface FeedbackSummaryItemApiDto {\n /** @format int32 */\n totalNegative: number;\n /** @format int32 */\n totalPositive: number;\n}\n\nexport interface ItemTransactionApiDto {\n /** @format int32 */\n bidCount?: number | null;\n /** @format int32 */\n buyItNowPrice?: number | null;\n /** @format int32 */\n buyerMemberId: number;\n discounts?: DiscountDto[] | null;\n hasBuyerLeftFeedback: boolean;\n hasSellerLeftFeedback: boolean;\n hasTraderaAsMerchantOfRecord: boolean;\n imageUrl?: string | null;\n imageUrlTemplate?: string | null;\n isHidden: boolean;\n isPaid: boolean;\n isPaynovaPayment: boolean;\n /** @format int32 */\n itemCategoryId: number;\n /** @format int32 */\n itemId: number;\n /** @format int32 */\n itemPrice?: number | null;\n itemResellPublished: boolean;\n itemTitle?: string | null;\n itemTransactionType: ItemTransactionTypeApiDto;\n /** @format int32 */\n openingBid?: number | null;\n /** @format int32 */\n orderNumber: number;\n paidStatus?: string | null;\n /** @format uuid */\n purchaseOrderId: string;\n selectedShipping?: ShippingApiDto | null;\n sellerAlias?: string | null;\n /** @format int32 */\n sellerMemberId: number;\n /** @format int32 */\n sellerRating: number;\n trackingLink?: string | null;\n /** @format date-time */\n transactionDate: string;\n /** @format int32 */\n transactionId: number;\n}\n\nexport enum MemberAccountState {\n None = 'None',\n Active = 'Active',\n TemporarySuspended = 'TemporarySuspended',\n PermanentlySuspended = 'PermanentlySuspended',\n Deregistered = 'Deregistered'\n}\n\nexport interface MemberActiveItemsSummaryApiDto {\n /** @format int32 */\n auctionCount: number;\n /** @format int32 */\n bidCount: number;\n /** @format int32 */\n bidSum: number;\n /** @format int32 */\n buyItNowCount: number;\n /** @format int32 */\n itemCount: number;\n /** @format int32 */\n shopItemCount: number;\n /** @format int32 */\n sumOpeningBids: number;\n}\n\nexport interface MemberContactDetailsApiDto {\n countryCodeIso2?: string | null;\n alias?: string | null;\n country?: string | null;\n email?: string | null;\n firstName?: string | null;\n fullName?: string | null;\n lastName?: string | null;\n /** @format int32 */\n memberId: number;\n phoneNumber?: string | null;\n ssn?: string | null;\n streetName?: string | null;\n town?: string | null;\n zipCode?: string | null;\n}\n\nexport interface MemberLoginDetailDto {\n accountState: MemberAccountState;\n alias?: string | null;\n hasTraderMessage: boolean;\n heroImageUrl?: string | null;\n isCompanyUser: boolean;\n /** @format int32 */\n memberId: number;\n /** @format date-time */\n memberSince: string;\n /** @format int32 */\n totalRating: number;\n}\n\nexport interface MemberPermissionsApiDto {\n apiRegistrationPermission?: PermissionApiDto | null;\n sellPermission?: PermissionApiDto | null;\n}\n\nexport interface MemberSoldItemApiDto {\n /** @format int32 */\n bidCount?: number | null;\n bookedShipping?: BookedShipping | null;\n buyerContactDetails?: MemberContactDetailsApiDto | null;\n buyerMemberAlias?: string | null;\n /** @format int32 */\n buyerMemberId: number;\n /** @format int32 */\n buyerTotalRating: number;\n /** @format int32 */\n categoryId: number;\n discounts?: DiscountDto[] | null;\n /** @format int32 */\n fixedPrice?: number | null;\n hasBuyerLeftFeedback: boolean;\n hasSellerLeftFeedback: boolean;\n hiddenBySeller: boolean;\n isDiscountAfterPaymentSupported: boolean;\n isDiscountBeforePaymentSupported: boolean;\n isMarkedAsPaidByBuyer: boolean;\n isMarkedAsPaidBySeller: boolean;\n isMarkedAsShipped: boolean;\n /** @deprecated */\n isPaidWithIntegratedPaymentOption: boolean;\n isShippingBooked: boolean;\n /** @format int32 */\n itemId: number;\n itemTitle?: string | null;\n itemTransactionType: ItemTransactionTypeApiDto;\n /** @format int32 */\n leadingBid?: number | null;\n mainImage?: ItemImageUrls | null;\n mainImageTemplate?: string | null;\n offeredShippingOptions?: ShippingApiDto[] | null;\n /** @format int32 */\n openingBid?: number | null;\n paidStatus?: string | null;\n /** @deprecated */\n paymentProvider?: string | null;\n /** @format int32 */\n price: number;\n /** @format uuid */\n purchaseOrderId: string;\n /** @format int32 */\n reservedPrice?: number | null;\n selectedShipping?: ShippingApiDto | null;\n shippingDiscount?: ShippingDiscount | null;\n soldItemState?: string | null;\n /** @deprecated */\n trackingLink?: string | null;\n /** @format date-time */\n transactionDate: string;\n /** @format int32 */\n transactionId: number;\n userReference?: string | null;\n}\n\nexport interface MemberSoldItemsSummaryApiDto {\n /** @format int32 */\n auctionCount: number;\n /** @format int32 */\n bidCount: number;\n /** @format int32 */\n bidSum: number;\n /** @format int32 */\n buyItNowCount: number;\n /** @format int32 */\n itemCount: number;\n /** @format int32 */\n shopItemCount: number;\n /** @format int32 */\n sumOpeningBids: number;\n /** @format int32 */\n totalPrice: number;\n}\n\nexport interface MutualFeedbackRemovalItemApiDto {\n /** @format int32 */\n feedbackRemovalRequestId?: number | null;\n status: MutualFeedbackRemovalStatus;\n /** @deprecated */\n statusText?: string | null;\n /** @format int32 */\n transactionId: number;\n}\n\nexport enum MutualFeedbackRemovalStatus {\n Available = 'Available',\n Unavailable = 'Unavailable',\n Requested = 'Requested',\n Received = 'Received',\n Denied = 'Denied'\n}\n\nexport interface NotificationApiDto {\n /** @format int32 */\n amount: number;\n buyerPaidData?: BuyerPaidDataDto | null;\n feedbackReminderData?: FeedbackReminderDataDto | null;\n isRead: boolean;\n /** @format int32 */\n itemId: number;\n mainImage?: ItemImageUrls | null;\n mainImageTemplate?: string | null;\n /** @format int32 */\n memberId: number;\n purchaseOrderUnpaidData?: PurchaseOrderUnpaidDataDto | null;\n shipmentSentData?: ShipmentSentDataDto | null;\n /** @format date-time */\n timeStamp: string;\n title?: string | null;\n type?: string | null;\n wishListItemsEndingTodayData?: WishListItemsEndingTodayDataDto | null;\n wishlistItemPriceLoweredData?: WishlistItemPriceLoweredDataDto | null;\n}\n\nexport interface OfferedShippingOption {\n /** @format int32 */\n cost: number;\n type?: string | null;\n}\n\nexport interface PaymentOptionApiDto {\n displayName?: string | null;\n paymentType?: string | null;\n}\n\nexport interface PermissionApiDto {\n isPermitted: boolean;\n requirementsNotMet?: RequirementTypeApi[] | null;\n}\n\nexport interface PickListBuyerApiDto {\n buyerContactDetails?: MemberContactDetailsApiDto | null;\n buyerMemberAlias?: string | null;\n /** @format int32 */\n buyerMemberId: number;\n /** @format int32 */\n feedbackCount: number;\n items?: MemberSoldItemApiDto[] | null;\n}\n\nexport interface PickListBuyerV2ApiDto {\n buyerContactDetails?: ContactDetailsApiDto | null;\n buyerMemberAlias?: string | null;\n /** @format int32 */\n buyerMemberId: number;\n items?: PickListItemApiDto[] | null;\n}\n\nexport interface PickListItemApiDto {\n hasSellerLeftFeedback: boolean;\n hiddenBySeller: boolean;\n isMarkedAsPaidBySeller: boolean;\n isMarkedAsShipped: boolean;\n /** @format int32 */\n itemId: number;\n itemTitle?: string | null;\n itemUrl?: string | null;\n mainImage?: ItemImageUrls | null;\n mainImageTemplate?: string | null;\n offeredShippingOptions?: OfferedShippingOption[] | null;\n /** @format int32 */\n price: number;\n /** @format uuid */\n purchaseOrderId: string;\n selectedShipping?: SelectedShippingOption | null;\n temporaryShippingAddress?: Address | null;\n /** @format double */\n totalDiscountAmount: number;\n /** @format date-time */\n transactionDate: string;\n /** @format int32 */\n transactionId: number;\n userReference?: string | null;\n}\n\nexport interface PublicProfileApiDto {\n alias?: string | null;\n city?: string | null;\n country?: string | null;\n /** @format double */\n detailedSellerRating?: number | null;\n hasShop: boolean;\n isCompanyUser: boolean;\n /** @format int32 */\n memberId: number;\n /** @format int32 */\n totalRating: number;\n zipCode?: string | null;\n}\n\nexport interface PurchaseOrderUnpaidDataDto {\n /** @format int32 */\n numberOfItems: number;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport enum RequirementTypeApi {\n Unknown = 'Unknown',\n IsOverMinimumAge = 'IsOverMinimumAge'\n}\n\nexport interface SelectedShippingOption {\n /** @format int32 */\n cost: number;\n type?: string | null;\n}\n\nexport enum SellerAutoFeedbackCriteria {\n Manual = 'Manual',\n PositiveFeedback = 'PositiveFeedback',\n Paid = 'Paid'\n}\n\nexport interface ShipmentSentDataDto {\n /** @format int32 */\n numberOfItems: number;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface ShippingApiDto {\n fromCountryCodeIso2?: string | null;\n toCountryCodeIso2?: string | null;\n /** @format double */\n cost: number;\n isFreeShipping: boolean;\n isTakeaway: boolean;\n name?: string | null;\n partnerProvider?: string | null;\n /** @format int32 */\n productId?: number | null;\n type?: string | null;\n /** @format int32 */\n weight?: number | null;\n}\n\nexport interface TotalFeedbackSummaryForMemberApiDto {\n lastMonth?: FeedbackSummaryItemApiDto | null;\n lastSixMonths?: FeedbackSummaryItemApiDto | null;\n lastTwelveMonths?: FeedbackSummaryItemApiDto | null;\n /** @format int32 */\n memberId: number;\n sinceRegistration?: FeedbackSummaryItemApiDto | null;\n unique?: FeedbackSummaryItemApiDto | null;\n}\n\nexport interface TranslatedFeedbackItemApiDto {\n /** @format int32 */\n gradeId: number;\n reply?: string | null;\n text?: string | null;\n}\n\nexport interface WishListItemsEndingTodayDataDto {\n /** @format int32 */\n numberOfItems: number;\n}\n\nexport enum WishListStatusFilter {\n All = 'All',\n Active = 'Active',\n Ended = 'Ended'\n}\n\nexport interface WishlistItemPriceLoweredDataDto {\n currencyCode?: string | null;\n /** @format int32 */\n newPrice: number;\n}\n\nexport interface GetNotificationsApiResponse {\n items?: NotificationApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n /** @format int64 */\n unreadCount: number;\n}\n\nexport type GetUnreadNotificationsCountApiRequest = object;\n\nexport interface GetUnreadNotificationsCountApiResponse {\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n unreadCount: number;\n}\n\nexport type SetLastNotifiedApiRequest = object;\n\nexport interface SetLastNotifiedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface CreditMemoByEncryptedIdApiResponse {\n /** @format byte */\n pdfFileContent?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface CreditMemoDto {\n creditMemoDocumentId?: string | null;\n /** @format int64 */\n invoiceId: number;\n}\n\nexport interface GetBraintreeInvoicePaymentApiResponse {\n /** @format double */\n amount: number;\n /** @format int64 */\n invoiceId: number;\n orderId?: string | null;\n responseStatus?: ResponseStatus | null;\n status?: string | null;\n}\n\nexport interface GetCreditMemoPdfApiResponse {\n /** @format byte */\n pdfFileContent?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetInvoiceCsvApiResponse {\n /** @format byte */\n csvFileContent?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetInvoicePdfApiResponse {\n /** @format byte */\n pdfFileContent?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetInvoicesApiResponse {\n invoices?: InvoiceDto[] | null;\n isBillingUnderMaintenance: boolean;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface InvoiceDto {\n /** @format double */\n amountOwed: number;\n creditMemos?: CreditMemoDto[] | null;\n csvGenerated: boolean;\n /** @format date-time */\n dueDate: string;\n /** @format double */\n invoiceAmount: number;\n /** @format date-time */\n invoiceDate: string;\n /** @format int64 */\n invoiceId: number;\n /** @format int64 */\n ocr: number;\n paymentStatus?: string | null;\n}\n\nexport interface FindMembersApiResponse {\n members?: MemberLoginDetailDto[] | null;\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n totalCount: number;\n}\n\nexport interface GetAllItemsForLeaveFeedbackAsBuyerApiResponse {\n items?: ItemTransactionApiDto[] | null;\n /** @format int64 */\n itemsLeft: number;\n /** @format int64 */\n paidTotalCount: number;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface GetAllItemsForLeaveFeedbackAsSellerApiResponse {\n items?: MemberSoldItemApiDto[] | null;\n /** @format int64 */\n itemsLeft: number;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport type GetAvailableCountriesForShippingApiRequest = object;\n\nexport interface GetAvailableCountriesForShippingApiResponse {\n availableCountries?: Country[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetBlockedMembersApiRequest = object;\n\nexport interface GetBlockedMembersApiResponse {\n blockedMembers?: BlockedMemberDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetBlueshiftEventApiCredentialsApiRequest = object;\n\nexport interface GetBlueshiftEventApiCredentialsApiResponse {\n eventApiKey?: string | null;\n eventSignature?: string | null;\n responseStatus?: ResponseStatus | null;\n verificationKey?: string | null;\n}\n\nexport interface GetImageUploadUrlApiResponse {\n responseStatus?: ResponseStatus | null;\n signedUrl?: string | null;\n}\n\nexport type GetIsCombinedShippingEnabledApiRequest = object;\n\nexport interface GetIsCombinedShippingEnabledApiResponse {\n isEnabled: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetItemsForLeaveFeedbackAsBuyerApiResponse {\n responseStatus?: ResponseStatus | null;\n transactions?: ItemTransactionApiDto[] | null;\n}\n\nexport interface GetItemsForLeaveFeedbackAsSellerApiResponse {\n items?: MemberSoldItemApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberGeoDataApiRequest = object;\n\nexport interface GetMemberGeoDataApiResponse {\n /** @format double */\n latitude: number;\n /** @format double */\n longitude: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberSuspendedUntilApiRequest = object;\n\nexport interface GetMemberSuspendedUntilApiResponse {\n canAccessMessaging: boolean;\n responseStatus?: ResponseStatus | null;\n /** @format date-time */\n suspendedUntil?: string | null;\n}\n\nexport type GetMemberVatDetailsApiRequest = object;\n\nexport interface GetMemberVatDetailsApiResponse {\n memberIsSubjectToVat: boolean;\n responseStatus?: ResponseStatus | null;\n /** @format byte */\n selectableVatValues?: string | null;\n}\n\nexport interface GetMemberWithAliasApiResponse {\n alias?: string | null;\n hasShopAccount: boolean;\n isCompanyUser: boolean;\n /** @format int32 */\n memberId: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetSystemMessagesApiRequest = object;\n\nexport interface GetSystemMessagesApiResponse {\n items?: SystemMessage[] | null;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface GetTransactionFeedbacksApiResponse {\n feedbacks?: TransactionFeedbackApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GradeTransactionsApiResponse {\n gradesTransactions?: Record;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface CompleteQuestionnaireApiRequest {\n languageCodeIso2?: string | null;\n fieldValues?: Record;\n /** @format int32 */\n questionnaireId: number;\n}\n\nexport interface CompleteQuestionnaireApiResponse {\n alias?: string | null;\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n ruleViolations?: Record;\n}\n\nexport type GetKycPendingActionsApiRequest = object;\n\nexport interface GetKycPendingActionsApiResponse {\n /** @format int32 */\n memberId: number;\n pendingActionActionTypes?: string[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetKycQuestionnairePageDefinitionApiResponse {\n alias?: string | null;\n /** @format int32 */\n memberId: number;\n pageDefinition?: any;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface InitializeQuestionnaireApiRequest {\n alias?: string | null;\n}\n\nexport interface InitializeQuestionnaireApiResponse {\n /** @format int32 */\n questionnaireId: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface LeaveFeedbackAsBuyerApiResponse {\n responseStatus?: ResponseStatus | null;\n transaction?: ItemTransactionApiDto | null;\n}\n\nexport interface LeaveFeedbackAsSellerApiResponse {\n responseStatus?: ResponseStatus | null;\n transaction?: ItemTransactionApiDto | null;\n}\n\nexport type MemberContactDetailsApiRequest = object;\n\nexport interface MemberContactDetailsApiResponse {\n countryCodeIso2?: string | null;\n alias?: string | null;\n country?: string | null;\n email?: string | null;\n firstName?: string | null;\n fullName?: string | null;\n lastName?: string | null;\n /** @format int32 */\n memberId: number;\n phoneNumber?: string | null;\n responseStatus?: ResponseStatus | null;\n ssn?: string | null;\n streetName?: string | null;\n town?: string | null;\n zipCode?: string | null;\n}\n\nexport type MemberEmailSettingsApiRequest = object;\n\nexport interface MemberEmailSettingsApiResponse {\n acceptsNewsLetter: boolean;\n acceptsOfferEmails: boolean;\n acceptsUnknownDeviceOrIpEmails: boolean;\n acceptsUpiInfoEmails: boolean;\n /** @format int32 */\n memberId: number;\n notifyBeforeWishListItemEnds: boolean;\n notifyOnFirstWinningBid: boolean;\n notifyWhenItemBecomesUnsold: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MemberFeedbackApiResponse {\n accountState: MemberAccountState;\n detailedSellerRatingSummaryForMember?: DetailedSellerRatingSummaryForMemberApiDto | null;\n items?: FeedbackItemApiDto[] | null;\n /** @format date-time */\n memberSince: string;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n totalFeedbackSummary?: TotalFeedbackSummaryForMemberApiDto | null;\n}\n\nexport interface MemberFeedbackItemsApiResponse {\n items?: FeedbackItemApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface MemberFeedbackSummaryApiResponse {\n accountState: MemberAccountState;\n detailedSellerRatingSummary?: DetailedSellerRatingSummaryForMemberApiDto | null;\n /** @format date-time */\n memberSince: string;\n responseStatus?: ResponseStatus | null;\n totalFeedbackSummary?: TotalFeedbackSummaryForMemberApiDto | null;\n}\n\nexport interface MemberPurchaseApiResponse {\n buyer?: MemberContactDetailsApiDto | null;\n item?: ItemTransactionApiDto | null;\n responseStatus?: ResponseStatus | null;\n seller?: MemberContactDetailsApiDto | null;\n}\n\nexport interface MemberPurchaseOrderApiResponse {\n buyer?: ContactDetailsApiDto | null;\n items?: ItemTransactionApiDto[] | null;\n paymentMethod?: string | null;\n responseStatus?: ResponseStatus | null;\n seller?: ContactDetailsApiDto | null;\n}\n\nexport interface MemberPurchaseOrderItemApiResponse {\n items?: ItemTransactionApiDto[] | null;\n paymentMethod?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type MemberSelloProfileApiRequest = object;\n\nexport interface MemberSelloProfileApiResponse {\n accountState: MemberAccountState;\n alias?: string | null;\n city?: string | null;\n /** @format int32 */\n combinedShippingDays: number;\n /** @format float */\n detailedSellerRatingAverage?: number | null;\n email?: string | null;\n firstName?: string | null;\n hasShop: boolean;\n isCompanyUser: boolean;\n isSwedishUser: boolean;\n /** @format int32 */\n memberId: number;\n /** @format date-time */\n memberSince: string;\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n totalRating: number;\n}\n\nexport type MemberServerStorageListApiRequest = object;\n\nexport interface MemberServerStorageListApiResponse {\n responseStatus?: ResponseStatus | null;\n rows?: Row[] | null;\n}\n\nexport interface MemberServerStoragePutApiRequest {\n key?: string | null;\n value?: string | null;\n}\n\nexport interface MemberServerStoragePutApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type MemberSessionDataApiRequest = object;\n\nexport interface MemberSessionDataApiResponse {\n countryCodeIso2?: string | null;\n languageCodeIso2?: string | null;\n /** @format int32 */\n age?: number | null;\n alias?: string | null;\n aliasSlug?: string | null;\n appleId?: string | null;\n automaticTranslationPreferred: boolean;\n birthDate?: string | null;\n blueshiftEventSignature?: string | null;\n city?: string | null;\n country?: string | null;\n currencyCode?: string | null;\n /** @format float */\n detailedSellerRating?: number | null;\n email?: string | null;\n facebookId?: string | null;\n firstName?: string | null;\n gender?: string | null;\n googleId?: string | null;\n hasTraderaPay: boolean;\n heroImageUrl?: string | null;\n isBuyer: boolean;\n isSeller: boolean;\n isTrustedMember: boolean;\n klarnaId?: string | null;\n lastName?: string | null;\n /** @format int32 */\n memberId: number;\n memberIdHash?: string | null;\n /** @format int32 */\n memberState: number;\n permissions?: MemberPermissionsApiDto | null;\n /** @format date-time */\n registrationDate: string;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MemberShopDetailsApiResponse {\n alias?: string | null;\n companyInfo?: string | null;\n contactInfo?: string | null;\n hasLogo: boolean;\n logoFormat?: string | null;\n /** @format int32 */\n memberId: number;\n purchaseTerms?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface FirebaseConfiguration {\n apiKey?: string | null;\n authDomain?: string | null;\n databaseUrl?: string | null;\n functionsEmulatorUrl?: string | null;\n projectId?: string | null;\n region?: string | null;\n storageBucket?: string | null;\n}\n\nexport type GetMessagingConfigurationApiRequest = object;\n\nexport interface GetMessagingConfigurationApiResponse {\n firebaseConfiguration?: FirebaseConfiguration | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetMessagingEmailNotifyApiResponse {\n emailNotify: MessagingEmailNotification;\n /** @format int32 */\n memberId: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetMessagingItemApiResponse {\n /** @format int32 */\n price: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMessagingSilentApiRequest = object;\n\nexport interface GetMessagingSilentApiResponse {\n enabled: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMessagingStatsApiRequest = object;\n\nexport interface GetMessagingStatsApiResponse {\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n threads: number;\n /** @format int32 */\n threadsUnread: number;\n}\n\nexport enum MessagingEmailNotification {\n All = 'All',\n Unread = 'Unread',\n None = 'None'\n}\n\nexport interface SetMessagingEmailNotifyApiRequest {\n emailNotify: MessagingEmailNotification;\n}\n\nexport interface SetMessagingEmailNotifyApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetMessagingSilentApiRequest {\n enabled: boolean;\n}\n\nexport interface SetMessagingSilentApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ConfirmMutualFeedbackRemovalApiRequest {\n /** @format int32 */\n feedbackRemovalRequestId: number;\n}\n\nexport interface ConfirmMutualFeedbackRemovalApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum ConfirmationStatus {\n ConfirmationAllowed = 'ConfirmationAllowed',\n RequestIsOlderThen30Days = 'RequestIsOlderThen30Days',\n RequestedBySubmitter = 'RequestedBySubmitter'\n}\n\nexport interface CreateFeedbackRemovalApiRequest {\n comment?: string | null;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface CreateFeedbackRemovalApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum CreationStatus {\n CreationAllowed = 'CreationAllowed',\n CreatedBySubmitter = 'CreatedBySubmitter',\n CanBeAcceptedByReceiver = 'CanBeAcceptedByReceiver'\n}\n\nexport interface DenyMutualFeedbackRemovalApiRequest {\n /** @format int32 */\n feedbackRemovalRequestId: number;\n}\n\nexport interface DenyMututalFeedbackRemovalApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum FeedbackRemovalFlowStatus {\n CanBeStarted = 'CanBeStarted',\n CanBeAccepted = 'CanBeAccepted',\n SubmittedAlready = 'SubmittedAlready',\n NotApplicable = 'NotApplicable'\n}\n\nexport enum FeedbackRemovalState {\n Pending = 'Pending',\n Accepted = 'Accepted',\n Rejected = 'Rejected'\n}\n\nexport interface FlowStatusRequest {\n /** @format int32 */\n feedbackMemberId: number;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface FlowStatusResponse {\n feedbacksRemovalRequest?: MutualFeedbackRemovalApiDto | null;\n flowStatus: FeedbackRemovalFlowStatus;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface MemberDetails {\n alias?: string | null;\n /** @format int32 */\n id: number;\n}\n\nexport interface MutualFeedbackRemovalApiDto {\n comment?: string | null;\n /** @format date-time */\n completed?: string | null;\n /** @format date-time */\n created: string;\n fromMember?: MemberDetails | null;\n /** @format int32 */\n id: number;\n isCompleted: boolean;\n /** @format int32 */\n itemId: number;\n status?: FeedbackRemovalState | null;\n toMember?: MemberDetails | null;\n /** @format int32 */\n transactionBuyerMemberId: number;\n /** @format int32 */\n transactionId: number;\n /** @format int32 */\n transactionSellerMemberId: number;\n}\n\nexport interface TransactionFeedbackApiDto {\n /** @format date-time */\n created: string;\n fromMemberAlias?: string | null;\n /** @format int32 */\n fromMemberId: number;\n memberRole: TransactionFeedbackRole;\n rating: TransactionFeedbackRating;\n text?: string | null;\n toMemberAlias?: string | null;\n /** @format int32 */\n toMemberId: number;\n}\n\nexport enum TransactionFeedbackRating {\n None = 'None',\n Negative = 'Negative',\n Positive = 'Positive'\n}\n\nexport enum TransactionFeedbackRole {\n Buyer = 'Buyer',\n Seller = 'Seller'\n}\n\nexport interface FeedbackRemovalApiResponse {\n feedbackRemovalRequest?: MutualFeedbackRemovalApiDto | null;\n feedbacks?: TransactionFeedbackApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface FeedbackRemovalsApiRequest {\n feedbacks?: FlowStatusRequest[] | null;\n}\n\nexport interface FeedbackRemovalsApiResponse {\n feedbacksRemovalRequests?: FlowStatusResponse[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ValidateConfirmationApiResponse {\n confirmationStatus: ConfirmationStatus;\n feedbackRemovalRequest?: MutualFeedbackRemovalApiDto | null;\n feedbacks?: TransactionFeedbackApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ValidateCreationApiResponse {\n creationStatus: CreationStatus;\n feedbackRemovalRequest?: MutualFeedbackRemovalApiDto | null;\n feedbacks?: TransactionFeedbackApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum AvailablePayoutOption {\n SwedishBankAccount = 'SwedishBankAccount',\n InternationalBankAccount = 'InternationalBankAccount',\n PayPal = 'PayPal',\n Swish = 'Swish',\n Tink = 'Tink',\n Unknown = 'Unknown'\n}\n\nexport interface CompleteHyperwalletTransferMethodApiRequest {\n transferMethodToken?: string | null;\n transferMethodType?: string | null;\n}\n\nexport interface CompleteHyperwalletTransferMethodApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetHyperwalletAuthenticationTokenApiRequest = object;\n\nexport interface GetHyperwalletAuthenticationTokenApiResponse {\n authenticationToken?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetHyperwalletMemberDetailsApiRequest = object;\n\nexport interface GetHyperwalletMemberDetailsApiResponse {\n payeeVerificationStatus?: string | null;\n responseStatus?: ResponseStatus | null;\n userToken?: string | null;\n}\n\nexport type GetHyperwalletTransferMethodViewModelApiRequest = object;\n\nexport interface GetHyperwalletTransferMethodViewModelApiResponse {\n responseStatus?: ResponseStatus | null;\n userToken?: string | null;\n widgetBaseUrl?: string | null;\n}\n\nexport type GetIsTraderaPayEnabledApiRequest = object;\n\nexport interface GetIsTraderaPayEnabledApiResponse {\n isEnabled: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetPayoutSettingsModalViewModelApiResponse {\n availablePayoutOptions?: AvailablePayoutOption[] | null;\n hyperwallet?: PayoutSettingsModalHyperwallet | null;\n member?: PayoutSettingsModalMember | null;\n payoutFrequencyOption?: string | null;\n responseStatus?: ResponseStatus | null;\n tink?: PayoutSettingsModalTink | null;\n}\n\nexport type GetPayoutSettingsViewModelApiRequest = object;\n\nexport interface GetPayoutSettingsViewModelApiResponse {\n hyperwalletOnboardingProblems?: HyperwalletOnboardingProblem[] | null;\n hyperwalletPayeeVerificationStatus?: string | null;\n payoutDestination?: string | null;\n payoutDestinationType?: string | null;\n payoutFrequencyOption?: string | null;\n payoutFrequencyOptions?: string[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetPayoutTransferMethodUpdateStatusApiResponse {\n errorCode?: string | null;\n responseStatus?: ResponseStatus | null;\n status?: string | null;\n}\n\nexport interface HyperwalletOnboardingProblem {\n details?: string | null;\n type?: string | null;\n}\n\nexport interface MatchBankApiRequest {\n bankAccountNumber?: string | null;\n clearingNumber?: string | null;\n}\n\nexport interface MatchBankApiResponse {\n bankFound: boolean;\n /** @deprecated */\n bankName?: string | null;\n ok: boolean;\n /** @deprecated */\n requireBankIdVerification: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface PayoutSettingsModalHyperwallet {\n userToken?: string | null;\n widgetBaseUrl?: string | null;\n}\n\nexport interface PayoutSettingsModalMember {\n emailAddress?: string | null;\n isCompany: boolean;\n /** @format int32 */\n memberId: number;\n phoneNumber?: string | null;\n requireBankIdVerification: boolean;\n}\n\nexport interface PayoutSettingsModalTink {\n tinkLinkUrl?: string | null;\n}\n\nexport type RemoveBankAccountPayoutTransferMethodApiRequest = object;\n\nexport interface RemoveBankAccountPayoutTransferMethodApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type RemovePayPalPayoutTransferMethodApiRequest = object;\n\nexport interface RemovePayPalPayoutTransferMethodApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type RemovePayoutTransferMethodApiRequest = object;\n\nexport interface RemovePayoutTransferMethodApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ResendPayoutTransferMethodVerificationCodeApiRequest {\n /** @format uuid */\n processCorrelationId: string;\n swishNumber?: string | null;\n}\n\nexport interface ResendPayoutTransferMethodVerificationCodeApiResponse {\n errorCode?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetBankAccountPayoutTransferMethodApiRequest {\n bankAccountNumber?: string | null;\n bankIdOrderRef?: string | null;\n clearingNumber?: string | null;\n}\n\nexport interface SetBankAccountPayoutTransferMethodApiResponse {\n errorCode?: string | null;\n /** @format uuid */\n processCorrelationId: string;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type SetHyperwalletPayeeVerificationAsSubmittedApiRequest = object;\n\nexport interface SetHyperwalletPayeeVerificationAsSubmittedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetPayPalPayoutTransferMethodApiRequest {\n bankIdOrderRef?: string | null;\n emailAddress?: string | null;\n}\n\nexport interface SetPayPalPayoutTransferMethodApiResponse {\n errorCode?: string | null;\n /** @format uuid */\n processCorrelationId: string;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetPayoutTransferMethodUsingTinkApiRequest {\n accountNumber?: string | null;\n bankIdOrderRef?: string | null;\n}\n\nexport interface SetPayoutTransferMethodUsingTinkApiResponse {\n errorCode?: string | null;\n /** @format uuid */\n processCorrelationId: string;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetSwishPayoutTransferMethodApiRequest {\n bankIdOrderRef?: string | null;\n swishNumber?: string | null;\n}\n\nexport interface SetSwishPayoutTransferMethodApiResponse {\n errorCode?: string | null;\n /** @format uuid */\n processCorrelationId: string;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface VerifyPayoutTransferMethodApiRequest {\n /** @format uuid */\n processCorrelationId: string;\n verificationCode?: string | null;\n}\n\nexport interface VerifyPayoutTransferMethodApiResponse {\n errorCode?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface BankIdBeginWithIdApiRequest {\n /** @format int32 */\n memberId: number;\n}\n\nexport interface BankIdPasswordRecoveryCancelApiRequest {\n bankIdOrderRef?: string | null;\n /** @format int32 */\n memberid: number;\n}\n\nexport interface ChangeAliasApiRequest {\n browser?: string | null;\n ipAddress?: string | null;\n location?: string | null;\n newAlias?: string | null;\n operatingSystem?: string | null;\n}\n\nexport interface ChangeAliasApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ChangeEmailWithIdApiRequest {\n bankIdOrderRef?: string | null;\n email?: string | null;\n /** @format int32 */\n memberId: number;\n userIpAddress?: string | null;\n}\n\nexport interface ChangeEmailWithIdApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ChangePasswordApiRequest {\n password?: string | null;\n}\n\nexport interface ChangePasswordApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ChangePasswordWithIdApiRequest {\n /** @format int32 */\n memberId: number;\n password?: string | null;\n}\n\nexport interface CreateTaxIdentificationImageUploadUrlApiRequest {\n contentType?: string | null;\n}\n\nexport interface CreateTaxIdentificationImageUploadUrlApiResponse {\n objectName?: string | null;\n responseStatus?: ResponseStatus | null;\n uploadUrl?: string | null;\n}\n\nexport type CreateVerificationCodeApiRequest = object;\n\nexport interface CreateVerificationCodeApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface CreateVerificationCodeWithMemberIdApiRequest {\n /** @format int32 */\n memberId: number;\n recoveryFlowType: RecoveryFlowType;\n}\n\nexport interface CreateVerificationCodeWithMemberIdApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type DeactivateMemberAccountPermanentlyApiRequest = object;\n\nexport interface DeactivateMemberAccountPermanentlyApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface DeactivateMemberAccountTemporarilyApiRequest {\n comment?: string | null;\n}\n\nexport interface DeactivateMemberAccountTemporarilyApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GenerateMemberReferralCodeApiRequest = object;\n\nexport interface GenerateMemberReferralCodeApiResponse {\n /** @format double */\n amount: number;\n referralCode?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetAccountDeactivationSettingsApiRequest = object;\n\nexport interface GetAccountDeactivationSettingsApiResponse {\n isAccountDeactivationAllowed: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetBraintreeOnboardingDetailsApiRequest = object;\n\nexport interface GetBraintreeOnboardingDetailsApiResponse {\n isAccountDetailsSupplied: boolean;\n maskedBankAccount?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetMemberBankIdVerificationApiResponse {\n bankIdFormattedPersonalNumber?: string | null;\n /** @format date-time */\n lastVerifiedDate: string;\n /** @format date-time */\n manualIdentityVerificationValidTo: string;\n needInitialVerification: boolean;\n needsVerification: boolean;\n responseStatus?: ResponseStatus | null;\n supportsVerification: boolean;\n verificationReason: VerificationReason;\n}\n\nexport type GetMemberCompanyDac7StatusApiRequest = object;\n\nexport interface GetMemberCompanyDac7StatusApiResponse {\n isUnderDac7Requirements: boolean;\n hasRegisteredTaxIdentificationNumber: boolean;\n hasRegisteredVatNumber: boolean;\n responseStatus?: ResponseStatus | null;\n shouldProvideTaxBasis: boolean;\n /** @deprecated */\n shouldProvideVatNumber: boolean;\n}\n\nexport type GetMemberCompanyMoneyTransferLicenseStatusApiRequest = object;\n\nexport interface GetMemberCompanyMoneyTransferLicenseStatusApiResponse {\n hasApprovedMoneyTransferLicenseAgreement: boolean;\n hasCompanyContactSsn: boolean;\n /** @deprecated */\n isCompanyContactSignatory: boolean;\n isEligibleToSignMoneyTransferLicenseAgreement: boolean;\n /** @deprecated */\n isUnderLicense: boolean;\n moneyTransferLicenseAgreementName?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberConsentApiRequest = object;\n\nexport interface GetMemberConsentApiResponse {\n hasTraderaPayConsent: boolean;\n isEligibleToSignMoneyTransferLicenseAgreement: boolean;\n /** @deprecated */\n isUnderLicense: boolean;\n needsConsentOfTraderaPayAgreement?: string | null;\n responseStatus?: ResponseStatus | null;\n signatoryVerificationRequired: boolean;\n}\n\nexport type GetMemberEmailNotificationsSettingsViewModelApiRequest = object;\n\nexport interface GetMemberEmailNotificationsSettingsViewModelApiResponse {\n email?: MemberEmailNotificationsSettingsEmailApiDto | null;\n /** @format int32 */\n memberId: number;\n messaging?: MemberEmailNotificationsSettingsMessagingApiDto | null;\n responseStatus?: ResponseStatus | null;\n silentMessaging?: MemberSilentMessagingSettingApiDto | null;\n}\n\nexport type GetMemberHasTaxIdentificationNumberApiRequest = object;\n\nexport interface GetMemberHasTaxIdentificationNumberApiResponse {\n hasTaxIdentificationNumber: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberLocalizationApiRequest = object;\n\nexport interface GetMemberLocalizationApiResponse {\n languageCodeIso2?: string | null;\n automaticTranslationPreferred: boolean;\n currencyCode?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberProfileSettingsViewModelApiRequest = object;\n\nexport interface GetMemberProfileSettingsViewModelApiResponse {\n accountInformation?: MemberProfileSettingsAccountInformationApiDto | null;\n /** @format int32 */\n memberId: number;\n personalData?: MemberProfileSettingsPersonalDataApiDto | null;\n presentation?: MemberProfileSettingsPresentationApiDto | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberSecuritySettingsViewModelApiRequest = object;\n\nexport interface GetMemberSecuritySettingsViewModelApiResponse {\n accountDeactivation?: MemberSecuritySettingsAccountDeactivationApiDto | null;\n memberBlocking?: MemberSecuritySettingsMemberBlockingApiDto | null;\n /** @format int32 */\n memberId: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetMemberSellerSettingsViewModelApiRequest = object;\n\nexport interface GetMemberSellerSettingsViewModelApiResponse {\n autoFeedback?: MemberSellerSettingsAutoFeedbackApiDto | null;\n autoShipmentCheckout?: MemberSellerSettingsAutoShipmentCheckoutApiDto | null;\n combinedShipping?: MemberSellerSettingsCombinedShippingApiDto | null;\n commitOnPayment?: MemberSellerSettingsCommitOnPaymentApiDto | null;\n itemLocalization?: MemberSellerSettingsItemLocalizationApiDto | null;\n makeAnOffer?: MemberSellerSettingsMakeAnOfferApiDto | null;\n /** @format int32 */\n memberId: number;\n responseStatus?: ResponseStatus | null;\n shippingFeeRule?: MemberSellerSettingsShippingFeeRuleApiDto | null;\n}\n\nexport type GetMemberShouldCollectTaxIdentificationNumberApiRequest = object;\n\nexport interface GetMemberShouldCollectTaxIdentificationNumberApiResponse {\n responseStatus?: ResponseStatus | null;\n shouldCollectBirthDate: boolean;\n shouldCollectTaxIdentificationNumber: boolean;\n}\n\nexport type GetMemberVerificationStatusApiRequest = object;\n\nexport interface GetMemberVerificationStatusApiResponse {\n hasAnyActiveTraderaPayConsent: boolean;\n hasCompanyContactSsn: boolean;\n hasSsn: boolean;\n isEligibleToSignMoneyTransferLicenseAgreement: boolean;\n /** @deprecated */\n isUnderLicense: boolean;\n needsBankIdVerification: boolean;\n needsConsentOfTraderaPayAgreement?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetMoneyTransferLicenseAgreementApiResponse {\n agreementName?: string | null;\n /** @format date-time */\n inEffectAsOf: string;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetPayoutFrequencyApiRequest = object;\n\nexport type GetPayoutFrequencyOptionsApiRequest = object;\n\nexport type GetShippingInvoiceMemberApiRequest = object;\n\nexport interface GetShippingInvoiceMemberApiResponse {\n enabled: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type GetTraderaPayOnboardingDetailsApiRequest = object;\n\nexport interface GetTraderaPayOnboardingDetailsApiResponse {\n isBankAccountDetailsSupplied: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetTranslatedMemberFeedbackApiResponse {\n isTranslationOnDemandDisabled: boolean;\n items?: TranslatedFeedbackItemApiDto[] | null;\n providerName?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface HeroImageUrlApiDto {\n max?: string | null;\n med?: string | null;\n min?: string | null;\n}\n\nexport interface MemberEmailNotificationsSettingsEmailApiDto {\n acceptsNewsLetter: boolean;\n acceptsOfferEmails: boolean;\n acceptsUnknownDeviceOrIpEmails: boolean;\n acceptsUpiInfoEmails: boolean;\n notifyBeforeWishListItemEnds: boolean;\n notifyOnFirstWinningBid: boolean;\n notifyWhenItemBecomesUnsold: boolean;\n}\n\nexport interface MemberEmailNotificationsSettingsMessagingApiDto {\n emailNotifyAll: boolean;\n isAllowedToSetParticipation: boolean;\n participates: boolean;\n}\n\nexport type MemberHasCompanyContactSsnApiRequest = object;\n\nexport interface MemberHasCompanyContactSsnApiResponse {\n hasCompanyContactSsn: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type MemberHasSsnApiRequest = object;\n\nexport interface MemberHasSsnApiResponse {\n hasSsn: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MemberProfileSettingsAccountInformationApiDto {\n alias?: string | null;\n emailAddress?: string | null;\n}\n\nexport interface MemberProfileSettingsPersonalDataApiDto {\n countryCodeIso2?: string | null;\n city?: string | null;\n country?: string | null;\n firstName?: string | null;\n isNameChangeAllowed: boolean;\n lastName?: string | null;\n phoneNumber?: string | null;\n phoneNumberUnvalidated?: string | null;\n streetName?: string | null;\n zipCode?: string | null;\n}\n\nexport interface MemberProfileSettingsPresentationApiDto {\n heroImageUrls?: HeroImageUrlApiDto | null;\n information?: string | null;\n}\n\nexport interface MemberSecuritySettingsAccountDeactivationApiDto {\n isAccountDeactivationAllowed: boolean;\n}\n\nexport interface MemberSecuritySettingsBlockedMemberApiDto {\n alias?: string | null;\n /** @format int32 */\n memberId: number;\n}\n\nexport interface MemberSecuritySettingsMemberBlockingApiDto {\n blockedMembers?: MemberSecuritySettingsBlockedMemberApiDto[] | null;\n}\n\nexport interface MemberSellerSettingsAutoFeedbackApiDto {\n enabled: boolean;\n message?: string | null;\n type: SellerAutoFeedbackType;\n}\n\nexport interface MemberSellerSettingsAutoShipmentCheckoutApiDto {\n enabled: boolean;\n isChangeAllowed: boolean;\n}\n\nexport interface MemberSellerSettingsCombinedShippingApiDto {\n /** @format int32 */\n days: number;\n enabled: boolean;\n isChangeAllowed: boolean;\n}\n\nexport interface MemberSellerSettingsCommitOnPaymentApiDto {\n enabled: boolean;\n isChangeAllowed: boolean;\n}\n\nexport interface MemberSellerSettingsItemLocalizationApiDto {\n selectedDescriptionLanguageCodeIso2?: string | null;\n shippingFromCountryCodeIso2?: string | null;\n}\n\nexport interface MemberSellerSettingsMakeAnOfferApiDto {\n enabled: boolean;\n isChangeAllowed: boolean;\n}\n\nexport interface MemberSellerSettingsShippingFeeRuleApiDto {\n /** @format int32 */\n freeShippingCostLimit: number;\n shippingOption?: string | null;\n useFreeShippingCostLimit: boolean;\n}\n\nexport interface MemberSilentMessagingSettingApiDto {\n enabled: boolean;\n isChangeAllowed: boolean;\n}\n\nexport interface PayoutFrequencyApiResponse {\n payoutFrequencyOption?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface PayoutFrequencyOptionsApiResponse {\n options?: string[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum RecoveryFlowType {\n Email = 'Email',\n Sms = 'Sms'\n}\n\nexport interface RemoveMemberPublicProfileHeroImageApiRequest {\n userIpAddress?: string | null;\n}\n\nexport interface RemoveMemberPublicProfileHeroImageApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type RemoveTraderaPayPayoutDestinationApiRequest = object;\n\nexport interface RemoveTraderaPayPayoutDestinationApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SaveSellerAutoFeedbackSettingsApiRequest {\n criteria: SellerAutoFeedbackCriteria;\n message?: string | null;\n}\n\nexport interface SaveSellerAutoFeedbackSettingsApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SaveSellerAutoPaymentReminderSettingsApiRequest {\n enabled: boolean;\n}\n\nexport interface SaveSellerAutoPaymentReminderSettingsApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SaveWinnerEmailApiRequest {\n winnerEmail?: string | null;\n}\n\nexport interface SaveWinnerEmailApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum SellerAutoFeedbackType {\n Manual = 'Manual',\n PositiveFeedback = 'PositiveFeedback',\n Paid = 'Paid'\n}\n\nexport interface SendVerificationSmsApiRequest {\n cellphoneNumber?: string | null;\n countryCode?: string | null;\n}\n\nexport interface SendVerificationSmsApiResponse {\n errorMessage?: string | null;\n responseStatus?: ResponseStatus | null;\n sentToCountryCode?: string | null;\n sentToTelephoneNumber?: string | null;\n smsSid?: string | null;\n successful: boolean;\n}\n\nexport interface SendVerificationSmsWithIdApiRequest {\n cellphoneNumber?: string | null;\n countryCode?: string | null;\n /** @format int32 */\n memberId: number;\n recoveryFlowType: RecoveryFlowType;\n}\n\nexport interface SetAutoShipmentCheckoutMemberEnabledApiRequest {\n enabled: boolean;\n}\n\nexport interface SetAutoShipmentCheckoutMemberEnabledApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetCombinedShippingMemberDaysApiRequest {\n /** @format int32 */\n days: number;\n}\n\nexport interface SetCombinedShippingMemberDaysApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetCombinedShippingMemberEnabledApiRequest {\n enabled: boolean;\n}\n\nexport interface SetCombinedShippingMemberEnabledApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetCommitOnPaymentMemberEnabledApiRequest {\n enabled: boolean;\n}\n\nexport interface SetCommitOnPaymentMemberEnabledApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetMakeAnOfferMemberEnabledApiRequest {\n enabled: boolean;\n}\n\nexport interface SetMakeAnOfferMemberEnabledApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetMemberConsentApiRequest {\n agreementName?: string | null;\n}\n\nexport interface SetMemberConsentApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetPayoutFrequencyApiRequest {\n payoutFrequencyOption?: string | null;\n}\n\nexport interface SetPayoutFrequencyApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetShippingFeeRuleFreeShippingCostLimitApiRequest {\n /** @format int32 */\n freeShippingCostLimit: number;\n useFreeShippingCostLimit: boolean;\n}\n\nexport interface SetShippingFeeRuleFreeShippingCostLimitApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetShippingFeeRuleShippingOptionApiRequest {\n shippingOption?: string | null;\n}\n\nexport interface SetShippingFeeRuleShippingOptionApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SmsCheckApiRequest {\n smsSid?: string | null;\n}\n\nexport interface SmsCheckApiResponse {\n responseStatus?: ResponseStatus | null;\n successful: boolean;\n}\n\nexport interface SmsVerificationDTO {\n action?: string | null;\n cellphoneNumber?: string | null;\n /** @format date-time */\n timestamp: string;\n}\n\nexport interface SmsVerificationsApiResponse {\n responseStatus?: ResponseStatus | null;\n verifications?: SmsVerificationDTO[] | null;\n}\n\nexport interface TaxIdentificationNumberImage {\n filename?: string | null;\n objectName?: string | null;\n}\n\nexport interface TinkBankAccountDto {\n accountNumber?: string | null;\n icon?: string | null;\n name?: string | null;\n}\n\nexport interface TinkGetBankAccountsApiResponse {\n accounts?: TinkBankAccountDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberCompanyContactSsnApiRequest {\n companyContactSsn?: string | null;\n}\n\nexport interface UpdateMemberCompanyContactSsnApiResponse {\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberContactDetailsApiRequest {\n alias?: string | null;\n country?: string | null;\n email?: string | null;\n firstName?: string | null;\n fullName?: string | null;\n lastName?: string | null;\n phoneNumber?: string | null;\n streetName?: string | null;\n town?: string | null;\n userIpAddress?: string | null;\n zipCode?: string | null;\n}\n\nexport interface UpdateMemberContactDetailsApiResponse {\n creditSafeVerificationResult?: CreditSafeNameVerificationResult | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberCurrencyApiRequest {\n currencyCode?: string | null;\n}\n\nexport interface UpdateMemberCurrencyApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberEmailSettingsApiRequest {\n acceptsNewsLetter: boolean;\n acceptsOfferEmails: boolean;\n acceptsUnknownDeviceOrIpEmails?: boolean | null;\n acceptsUpiInfoEmails: boolean;\n notifyBeforeWishListItemEnds: boolean;\n notifyOnFirstWinningBid: boolean;\n notifyWhenItemBecomesUnsold: boolean;\n}\n\nexport interface UpdateMemberEmailSettingsApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberLanguageApiRequest {\n languageCodeIso2?: string | null;\n userIpAddress?: string | null;\n}\n\nexport interface UpdateMemberLanguageApiResponse {\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberPublicProfileHeroImageApiRequest {\n heroImageUrl?: string | null;\n userIpAddress?: string | null;\n}\n\nexport interface UpdateMemberPublicProfileHeroImageApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberPublicProfileInformationApiRequest {\n information?: string | null;\n userIpAddress?: string | null;\n}\n\nexport interface UpdateMemberPublicProfileInformationApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberSelectedDescriptionLanguageApiRequest {\n languageCodeIso2?: string | null;\n}\n\nexport interface UpdateMemberSelectedDescriptionLanguageApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberShippingFromCountryApiRequest {\n countryCodeIso2?: string | null;\n}\n\nexport interface UpdateMemberShippingFromCountryApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberSsnApiRequest {\n ssn?: string | null;\n}\n\nexport interface UpdateMemberSsnApiResponse {\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberTaxIdentificationNumberApiRequest {\n birthDate?: string | null;\n images?: TaxIdentificationNumberImage[] | null;\n taxIdentificationNumber?: string | null;\n}\n\nexport interface UpdateMemberTaxIdentificationNumberApiResponse {\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberTranslationPreferredApiRequest {\n isAutomaticTranslationPreferred: boolean;\n}\n\nexport interface UpdateMemberTranslationPreferredApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface UpdateMemberVatNumberApiRequest {\n vatNumber?: string | null;\n}\n\nexport interface UpdateMemberVatNumberApiResponse {\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ValidateExistingPasswordForMemberApiRequest {\n existingPassword?: string | null;\n}\n\nexport interface ValidateExistingPasswordForMemberApiResponse {\n isValid: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport enum VerificationReason {\n VerificationNotNeeded = 'VerificationNotNeeded',\n NeedInitialVerification = 'NeedInitialVerification',\n NeedsVerificationFixedPriceLimitTwoMonthValidation = 'NeedsVerificationFixedPriceLimitTwoMonthValidation',\n NeedsVerificationFixedPriceLimitExpensive = 'NeedsVerificationFixedPriceLimitExpensive'\n}\n\nexport interface VerifyNonMobilePincodeApiRequest {\n pincode?: string | null;\n}\n\nexport interface VerifyNonMobilePincodeWithIdApiRequest {\n /** @format int32 */\n memberId: number;\n pincode?: string | null;\n recoveryFlowType: RecoveryFlowType;\n}\n\nexport interface VerifyPincodeApiRequest {\n pincode?: string | null;\n}\n\nexport interface VerifyPincodeApiResponse {\n hasActiveVerificationCode: boolean;\n responseStatus?: ResponseStatus | null;\n success: boolean;\n /** @format int32 */\n verificationAttempts: number;\n}\n\nexport interface VerifyPincodeWithIdApiRequest {\n /** @format int32 */\n memberId: number;\n pincode?: string | null;\n recoveryFlowType: RecoveryFlowType;\n}\n\nexport interface PublicProfileApiResponse {\n selectedDescriptionLanguageCodeIso2?: string | null;\n shippingFromCountryCodeIso2?: string | null;\n accountState: MemberAccountState;\n alias?: string | null;\n city?: string | null;\n /** @format int32 */\n combinedShippingDays: number;\n /** @format float */\n detailedSellerRatingAverage?: number | null;\n firstName?: string | null;\n hasShop: boolean;\n heroImage?: string | null;\n information?: string | null;\n isCompanyUser: boolean;\n isSwedishUser: boolean;\n /** @format int32 */\n memberId: number;\n /** @format date-time */\n memberSince: string;\n responseStatus?: ResponseStatus | null;\n shopLogoUrl?: string | null;\n /** @format int32 */\n totalRating: number;\n translatedInformation?: string | null;\n}\n\nexport interface Row {\n /** @format date-time */\n createdDate: string;\n key?: string | null;\n /** @format date-time */\n updatedDate: string;\n value?: string | null;\n}\n\nexport interface SaveFeedbackAsBuyerApiRequest {\n /** @format int32 */\n commResponsiveness?: number | null;\n comment?: string | null;\n isPositive: boolean;\n /** @format int32 */\n itemAsDescribed?: number | null;\n /**\n * @deprecated\n * @format int32\n */\n itemId: number;\n reportInr: boolean;\n /**\n * @deprecated\n * @format int32\n */\n sellerMemberId: number;\n /** @format int32 */\n shippingHandlingCharges?: number | null;\n /** @format int32 */\n shippingTime?: number | null;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface SaveFeedbackAsBuyerApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SaveFeedbackAsSellerApiRequest {\n /**\n * @deprecated\n * @format int32\n */\n buyerMemberId: number;\n comment?: string | null;\n isPositive: boolean;\n /**\n * @deprecated\n * @format int32\n */\n itemId: number;\n /** @format int32 */\n paymentTime?: number | null;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface SaveFeedbackAsSellerApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type SellerAutoFeedbackApiRequest = object;\n\nexport interface SellerAutoFeedbackApiResponse {\n /** @format date-time */\n created: string;\n criteria: SellerAutoFeedbackCriteria;\n message?: string | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type SellerAutoPaymentReminderApiRequest = object;\n\nexport interface SellerAutoPaymentReminderApiResponse {\n enabled: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface CampaignCodeItem {\n auctionId?: number[] | null;\n campaignCode?: string | null;\n /** @format int32 */\n campaignCodeId: number;\n}\n\nexport interface CommissionFeeSummaryDto {\n /** @format double */\n maxFee: number;\n /** @format double */\n maxPercentage: number;\n /** @format double */\n minFee: number;\n /** @format double */\n minPercentage: number;\n}\n\nexport interface FeatureSummaryByIdsApiResponse {\n campaignCodes?: CampaignCodeItem[] | null;\n featureSummaryList?: FeatureSummaryApiDto[] | null;\n isCompanyUser: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface FeatureSummaryDto {\n /** @format int32 */\n count: number;\n name?: string | null;\n /** @format int32 */\n price: number;\n}\n\nexport interface ItemApiDto {\n /** @format int32 */\n id: number;\n mainImageUrl?: ItemImageUrls | null;\n mainImageUrlTemplate?: string | null;\n /** @format int32 */\n price: number;\n /** @deprecated */\n selectedShipping?: SelectedShipping | null;\n shortDescription?: string | null;\n}\n\nexport interface MarkAsPaidBySellerApiRequest {\n paidConfirmed: boolean;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface MarkAsPaidBySellerApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport type MemberActiveItemsSummaryApiRequest = object;\n\nexport interface MemberActiveItemsSummaryApiResponse {\n responseStatus?: ResponseStatus | null;\n summary?: MemberActiveItemsSummaryApiDto | null;\n}\n\nexport type MemberListingFeeApiRequest = object;\n\nexport interface MemberListingFeeApiResponse {\n /** @format int32 */\n maxFreeListingsPerMonth: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MemberPickListApiResponse {\n /** @format int32 */\n hiddenCount: number;\n items?: PickListBuyerApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface MemberPickListV2ApiResponse {\n /** @format int64 */\n filterHitCount: number;\n /** @format int32 */\n hiddenCount: number;\n items?: PickListBuyerV2ApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface MemberSoldItemBuyerInfoApiResponse {\n buyerContactDetails?: ContactDetailsApiDto | null;\n buyerProfile?: PublicProfileApiDto | null;\n items?: MemberSoldItemApiDto[] | null;\n paidStatus?: string | null;\n paymentMethod?: string | null;\n paymentOptions?: PaymentOptionApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n sellerContactDetails?: ContactDetailsApiDto | null;\n /** @format double */\n totalOrderPrice: number;\n /** @format double */\n totalOrderPriceWithoutShipping: number;\n /** @format double */\n vatPercent?: number | null;\n}\n\nexport interface MemberSoldItemByTransactionIdApiResponse {\n item?: MemberSoldItemApiDto | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MemberSoldItemShippingInfoV2ApiResponse {\n buyerContactDetails?: ContactDetailsApiDto | null;\n isQuickFlowPossible: boolean;\n /** @deprecated */\n item?: ItemApiDto | null;\n items?: ItemApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n selectedShipping?: SelectedShipping | null;\n}\n\nexport interface MemberSoldItemsApiResponse {\n /** @format int32 */\n hiddenCount: number;\n items?: MemberSoldItemApiDto[] | null;\n /** @format int32 */\n notPaidCount: number;\n /** @format int32 */\n paidCount: number;\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n shippedCount: number;\n /** @format int64 */\n totalCount: number;\n}\n\nexport interface MemberSoldItemsByPurchaseOrderIdApiResponse {\n items?: MemberSoldItemApiDto[] | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport type MemberSoldItemsSummaryApiRequest = object;\n\nexport interface MemberSoldItemsSummaryApiResponse {\n responseStatus?: ResponseStatus | null;\n summary?: MemberSoldItemsSummaryApiDto | null;\n}\n\nexport type MemberStatsThisMonthApiRequest = object;\n\nexport interface MemberStatsThisMonthApiResponse {\n /** @format int32 */\n activeThisMonthCount: number;\n /** @format int32 */\n listedThisMonthCount: number;\n /** @format int32 */\n maxFreeListingsPerMonth: number;\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n soldThisMonthCount: number;\n /** @format int32 */\n unsoldThisMonthCount: number;\n}\n\nexport interface OrderInfoApiResponse {\n bookedShipping?: BookedShipping | null;\n buyerProtection?: BuyerProtectionApiDto | null;\n /** @format double */\n discountCodeAmount?: number | null;\n discounts?: DiscountDto[] | null;\n isFeedbackLeftByBuyer: boolean;\n isMarkedAsShipped: boolean;\n items?: OrderItem[] | null;\n offeredShippingOptions?: ShippingApiDto[] | null;\n paidStatus?: string | null;\n paymentMethod?: string | null;\n /** @format double */\n paymentMethodAmount?: number | null;\n paymentOptions?: PaymentOptionApiDto[] | null;\n /** @format uuid */\n purchaseOrderId: string;\n responseStatus?: ResponseStatus | null;\n selectedShipping?: ShippingApiDto | null;\n sellerContactDetails?: ContactDetailsApiDto | null;\n sellerProfile?: PublicProfileApiDto | null;\n shippingDiscount?: ShippingDiscount | null;\n /** @format double */\n totalOrderPrice: number;\n /** @format double */\n totalOrderPriceWithoutShipping: number;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface OrderItem {\n imageUrl?: string | null;\n imageUrlTemplate?: string | null;\n /** @format int32 */\n itemId: number;\n /** @format double */\n price: number;\n shortDescription?: string | null;\n /** @format date-time */\n transactionDate: string;\n}\n\nexport interface RestartItemsSummaryApiResponse {\n commission?: CommissionFeeSummaryDto | null;\n features?: FeatureSummaryDto[] | null;\n isCompany: boolean;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SelectedShipping {\n /** @format int32 */\n productId?: number | null;\n providerId?: string | null;\n}\n\nexport interface SetItemShippedApiRequest {\n /** @format uuid */\n purchaseOrderId: string;\n shipped: boolean;\n}\n\nexport interface SetItemShippedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetItemShippingBookedApiRequest {\n booked: boolean;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface SetItemShippingBookedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetTransactionItemShippedApiRequest {\n shipped: boolean;\n /** @format int32 */\n transactionId: number;\n}\n\nexport interface SetTransactionItemShippedApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ShopItemPurchaseHistoryApiResponse {\n /** @format int32 */\n categoryId: number;\n /** @format date-time */\n endDate: string;\n imageUrl?: string | null;\n imageUrlTemplate?: string | null;\n /** @format int32 */\n itemId: number;\n purchases?: ShopItemPurchase[] | null;\n responseStatus?: ResponseStatus | null;\n shortDescription?: string | null;\n userReference?: string | null;\n}\n\nexport interface SetBuyerTransactionVisibilityApiRequest {\n hidden: boolean;\n transactionIdList?: number[] | null;\n}\n\nexport interface SetBuyerTransactionVisibilityApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetItemVisibilityApiRequest {\n hidden: boolean;\n itemIds?: number[] | null;\n}\n\nexport interface SetItemVisibilityApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SetTransactionVisibilityApiRequest {\n hidden: boolean;\n /** @format uuid */\n purchaseOrderId: string;\n}\n\nexport interface SetTransactionVisibilityApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface SystemMessage {\n severity: SystemMessageSeverity;\n type: SystemMessageType;\n}\n\nexport enum SystemMessageSeverity {\n Warning = 'Warning',\n Info = 'Info'\n}\n\nexport enum SystemMessageType {\n InvoiceOverdue = 'InvoiceOverdue',\n InvoiceUnpaid = 'InvoiceUnpaid',\n PayoutFailed = 'PayoutFailed',\n PayoutReadyBankAccountMissing = 'PayoutReadyBankAccountMissing',\n BankAccountMissing = 'BankAccountMissing',\n HyperwalletPayeeVerificationRequired = 'HyperwalletPayeeVerificationRequired',\n HyperwalletPayeeVerificationUnderReview = 'HyperwalletPayeeVerificationUnderReview',\n PayoutProviderOnboardingFailed = 'PayoutProviderOnboardingFailed',\n KycQuestionnaire = 'KycQuestionnaire',\n PayoutReadyVerificationRequired = 'PayoutReadyVerificationRequired',\n OutstandingTraderaPayLicense = 'OutstandingTraderaPayLicense',\n PayoutReadyOutstandingTraderaPayLicense = 'PayoutReadyOutstandingTraderaPayLicense',\n CollectVatNumber = 'CollectVatNumber',\n CollectTin = 'CollectTin'\n}\n\nexport interface UnblockMemberApiRequest {\n /** @format int32 */\n memberIdToUnblock: number;\n}\n\nexport interface UnblockMemberApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface NewDisputePageApiResponse {\n purchaseOrder?: PurchaseOrderDto | null;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface ProfilePageApiResponse {\n accountState?: string | null;\n alias?: string | null;\n city?: string | null;\n cleanedAlias?: string | null;\n /** @format int32 */\n combinedShippingDays: number;\n /** @format float */\n detailedSellerRatingAverage?: number | null;\n existsInFavouriteSellers: boolean;\n hasShop: boolean;\n heroImageUrl?: string | null;\n inFavouriteSellers: boolean;\n intro?: string | null;\n isCompany: boolean;\n isCompanyUser: boolean;\n /** @format int32 */\n memberId: number;\n /** @format date-time */\n memberSince: string;\n /** @format int32 */\n profileMemberId: number;\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n totalRating?: number | null;\n translatedIntro?: string | null;\n}\n\nexport interface WebChangeEmailWithIdApiRequest {\n bankIdOrderRef?: string | null;\n email?: string | null;\n /** @format int32 */\n memberId: number;\n}\n\nexport enum ItemState {\n BidderAuctionRemoved = 'BidderAuctionRemoved',\n BidderBidRemoved = 'BidderBidRemoved',\n BidderEndedWon = 'BidderEndedWon',\n BidderEndedReservedPriceNotReached = 'BidderEndedReservedPriceNotReached',\n BidderEndedNotWon = 'BidderEndedNotWon',\n BidderActiveLeading = 'BidderActiveLeading',\n BidderActiveReservedPriceNotReached = 'BidderActiveReservedPriceNotReached',\n BidderActiveOverbidden = 'BidderActiveOverbidden',\n GeneralActive = 'GeneralActive',\n GeneralEnded = 'GeneralEnded',\n PurchasedNotPaid = 'PurchasedNotPaid',\n PurchasedPaid = 'PurchasedPaid',\n PurchasedDone = 'PurchasedDone',\n ShopItemActive = 'ShopItemActive',\n ShopItemEnded = 'ShopItemEnded',\n ShopItemEndedWon = 'ShopItemEndedWon',\n BuyItNowEndedWon = 'BuyItNowEndedWon',\n BuyItNowEnded = 'BuyItNowEnded',\n BuyItNowActive = 'BuyItNowActive',\n SellerActiveBids = 'SellerActiveBids',\n SellerActiveNoBids = 'SellerActiveNoBids',\n SellerReservedPriceNotReached = 'SellerReservedPriceNotReached',\n SellerSoldNotPaid = 'SellerSoldNotPaid',\n SellerSoldDone = 'SellerSoldDone',\n SellerSoldShipped = 'SellerSoldShipped',\n SellerSoldPaid = 'SellerSoldPaid',\n SellerSoldShippingBooked = 'SellerSoldShippingBooked'\n}\n\nexport interface WishListApiResponse {\n items: WishListItemCardViewModel[];\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n totalCount: number;\n}\n\nexport interface WishListItemCardViewModel {\n /** @format int32 */\n buyNowPrice: number;\n displayHighlighted: boolean;\n /** @format date-time */\n endDate: string;\n hasFreeShipping: boolean;\n imageSecondaryUrl: string;\n imageUrl: string;\n isActive: boolean;\n isLeading: boolean;\n isOverbidden: boolean;\n isWinner: boolean;\n /** @format int32 */\n itemId: number;\n itemState: ItemState;\n itemType: string;\n itemUrl: string;\n /** @format int32 */\n maxBidAmount: number;\n preferredShipping: WishListItemShippingOptionViewModel;\n /** @format int32 */\n price: number;\n sellerAlias: string;\n /** @format int32 */\n sellerMemberId: number;\n shortDescription: string;\n /** @format int32 */\n totalBids: number;\n}\n\nexport interface WishListItemShippingOptionViewModel {\n /** @format double */\n cost: number;\n type: string;\n}\n\nexport interface AddItemToWishListApiRequest {\n /** @format int32 */\n itemId: number;\n}\n\nexport interface AddItemToWishListApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface GetWishListApiResponse {\n responseStatus?: ResponseStatus | null;\n /** @format int32 */\n totalCount: number;\n wishListItems?: WishListItemDto[] | null;\n}\n\nexport type GetWishListItemIdsApiRequest = object;\n\nexport interface GetWishListItemIdsApiResponse {\n responseStatus?: ResponseStatus | null;\n wishListItemsIds?: number[] | null;\n}\n\nexport type GetWishlistItemsEndingTodayCountApiRequest = object;\n\nexport interface GetWishlistItemsEndingTodayCountApiResponse {\n /** @format int32 */\n numberOfItems: number;\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface MemberBidInfo {\n auctionRemoved: boolean;\n bidRemoved: boolean;\n /** @format int32 */\n maxBidAmount: number;\n /** @format int32 */\n memberId: number;\n reservePriceReached: boolean;\n}\n\nexport interface RemoveItemFromWishListApiResponse {\n responseStatus?: ResponseStatus | null;\n}\n\nexport interface RemoveItemsFromWishListApiRequest {\n itemIds?: number[] | null;\n}\n\nexport interface WishListItemDto {\n /** @format date-time */\n addedToWishList: string;\n /** @format int32 */\n bidCount: number;\n boughtByCurrentMember: boolean;\n /** @format int32 */\n categoryId: number;\n /** @format int32 */\n currentBidAmount: number;\n displayHighlighted: boolean;\n /** @format date-time */\n endDate: string;\n /** @format int32 */\n fixedPrice: number;\n hasCommitUpFront: boolean;\n hasEnded: boolean;\n hasReservePrice: boolean;\n isAvailableForOffers?: boolean | null;\n isBuyItNow: boolean;\n isPaid?: boolean | null;\n isShopItem: boolean;\n /** @format int32 */\n itemId: number;\n /** @format int32 */\n itemPrice?: number | null;\n /** @format int32 */\n leadingBidMemberId?: number | null;\n mainImage?: ItemImageUrls | null;\n mainImageTemplate?: string | null;\n memberBid?: MemberBidInfo | null;\n /** @format int32 */\n nextValidBidAmount?: number | null;\n /** @format int32 */\n openingBid?: number | null;\n preferredShipping?: ShippingApiDto | null;\n reservePriceReached: boolean;\n secondaryImage?: ItemImageUrls | null;\n secondaryImageTemplate?: string | null;\n sellerAlias?: string | null;\n /** @format int32 */\n sellerMemberId: number;\n /** @format int32 */\n sellerTotalRating: number;\n title?: string | null;\n /** @format date-time */\n transactionDate?: string | null;\n /** @format int32 */\n transactionType?: number | null;\n type: ItemTypeApiDto;\n}\n\nexport interface Address {\n countryCodeIso2?: string | null;\n city?: string | null;\n country?: string | null;\n street?: string | null;\n zipCode?: string | null;\n}\n\nexport interface ShippingDiscount {\n partnerProvider?: string | null;\n /** @format int32 */\n price: number;\n /** @format int32 */\n shippingProductId?: number | null;\n shippingProvider?: string | null;\n}\n\nexport enum PickListFilterPaidStatus {\n All = 'All',\n Paid = 'Paid',\n Unpaid = 'Unpaid'\n}\n\nexport enum PickListFilterShippedStatus {\n All = 'All',\n Shipped = 'Shipped',\n NotShipped = 'NotShipped'\n}\n\nexport interface ShopItemPurchase {\n buyerMemberAlias?: string | null;\n /** @format int32 */\n buyerMemberId: number;\n /** @format int32 */\n buyerTotalRating: number;\n /** @format int32 */\n categoryId: number;\n /** @format int32 */\n price: number;\n /** @format date-time */\n transactionDate: string;\n}\n\nexport interface TransactionFeedbackRemovalRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface TransactionItemShippedCreateParams {\n request?: SetTransactionItemShippedApiRequest;\n}\n\nexport interface TransactionVisibilityCreateParams {\n request?: SetTransactionVisibilityApiRequest;\n}\n\nexport interface TransactionsRequest {\n transactionIds?: number[];\n}\n\nexport interface TranslatedRequest {\n toLanguageCodeIso2?: string;\n feedbackIds?: number[];\n}\n\nexport interface TranslationPreferredUpdateParams {\n request?: UpdateMemberTranslationPreferredApiRequest;\n}\n\nexport interface UnreadNotificationsCountRequest {\n request?: GetUnreadNotificationsCountApiRequest;\n}\n\nexport interface UpiStrikeRequest {\n /** @format int32 */\n transactionId?: number;\n}\n\nexport interface UppoStrikeCreateParams {\n request?: AddUnpaidPurchaseOrderStrikeApiRequest;\n}\n\nexport interface UppoStrikeRequest {\n /** @format uuid */\n purchaseOrderId?: string;\n}\n\nexport interface ValidateExistingPasswordCreateParams {\n request?: ValidateExistingPasswordForMemberApiRequest;\n}\n\nexport interface VatNumberUpdateParams {\n request?: UpdateMemberVatNumberApiRequest;\n}\n\nexport interface VatdetailsRequest {\n request?: GetMemberVatDetailsApiRequest;\n}\n\nexport interface VerificationStatusRequest {\n request?: GetMemberVerificationStatusApiRequest;\n}\n\nexport interface VerifyCreateParams {\n request?: VerifyPayoutTransferMethodApiRequest;\n}\n\nexport interface VerifyNonmobilePincodeCreateParams {\n request?: VerifyNonMobilePincodeApiRequest;\n}\n\nexport interface VerifyNonmobilePincodeWithIdCreateParams {\n request?: VerifyNonMobilePincodeWithIdApiRequest;\n}\n\nexport interface VerifyPincodeCreateParams {\n request?: VerifyPincodeApiRequest;\n}\n\nexport interface VerifyPincodeWithIdCreateParams {\n request?: VerifyPincodeWithIdApiRequest;\n}\n\nexport interface WinnerEmailUpdateParams {\n request?: SaveWinnerEmailApiRequest;\n}\n\nexport interface WishListRequest {\n shippingCountryCodeIso2?: string;\n languageCodeIso2?: string;\n automaticTranslationPreferred?: boolean;\n statusFilter?: string;\n /** @format int32 */\n pageSize?: number;\n /** @format int32 */\n page?: number;\n}\n\nexport interface WishlistCreateParams {\n request?: AddItemToWishListApiRequest;\n}\n\nexport interface WishlistDeleteParams {\n request?: RemoveItemsFromWishListApiRequest;\n}\n\nexport interface WishlistRequest {\n statusFilter?: WishListStatusFilter;\n /** @format int32 */\n take?: number;\n /** @format int32 */\n skip?: number;\n languageCodeIso2?: string;\n}\n\nexport interface WithAliasRequest {\n alias?: string;\n}\n","import axios, {\n type AxiosError,\n type AxiosInstance,\n type AxiosResponse,\n type CancelTokenSource\n} from 'axios';\n\nimport { logger } from 'packages/logger';\nimport { isServer } from 'tradera/utils/nextjs';\nimport { getLanguage } from 'tradera/utils/language';\nimport { toLocalizedUrl } from 'tradera/utils/url';\n\n/**\n * Standardized api error codes\n */\nconst API_ERRORS = {\n IGNORE_ME: 'IGNORE_ME',\n ABORTED: 'ABORTED',\n CANCELLED: 'CANCELLED',\n NETWORK: 'NETWORK',\n TIMEOUT: 'TIMEOUT',\n VERSION_MISMATCH: 'VERSION_MISMATCH',\n LOGGED_OUT: 'LOGGED_OUT'\n};\n\nconst defaultJsonRequestHeaders = {\n // Force json response\n Accept: 'application/json',\n // For WebAPI and RequiresAuthorization to handle ajax request\n 'X-Requested-With': 'XMLHttpRequest'\n};\n\n/**\n * Standard Axios configs\n */\nconst axiosConfigs = {\n // Requests to endpoints with authentication\n authenticated: {\n // Send auth cookies\n withCredentials: true,\n headers: defaultJsonRequestHeaders\n },\n notAuthenticated: {\n // Dont send auth cookies\n withCredentials: false,\n headers: defaultJsonRequestHeaders\n }\n};\n\nconst isMissingAuthToken = (responseString: string) => {\n try {\n const responseObject = JSON.parse(responseString);\n const isMissing =\n responseObject.responseStatus.errorCode === 'MissingAuthToken';\n return isMissing;\n } catch {\n return false;\n }\n};\n\nconst isUnauthorized = (statusCode: number) => statusCode === 401;\n\nconst addAntiCacheParam = (url?: string) => {\n const antiCacheRegExp = /([?&]_=)[^&]*/;\n return antiCacheRegExp.test(url || '')\n ? url?.replace(antiCacheRegExp, '$1' + new Date().getTime())\n : url +\n (/\\?/.test(url || '') ? '&' : '?') +\n '_=' +\n new Date().getTime();\n};\n\nconst submitOriginalRequest = async (error: AxiosError) =>\n axios({\n ...error.config,\n url: addAntiCacheParam(error.config.url)\n });\n\nconst handleMissingAuthToken = async (error: AxiosError) => {\n const refreshAccessToken = async () =>\n axios.get(toLocalizedUrl('/login/state', getLanguage()));\n const handleErrorAfterRefresh = async (\n errorAfterRefreshToken: AxiosError\n ) => {\n if (isUnauthorized(errorAfterRefreshToken.request?.status)) {\n // eslint-disable-next-line better-mutation/no-mutation\n error.message = API_ERRORS.LOGGED_OUT;\n }\n return Promise.reject(error);\n };\n return refreshAccessToken()\n .then(() => submitOriginalRequest(error))\n .catch(handleErrorAfterRefresh);\n};\n\nconst handleUnauthorized = async (error: AxiosError) => {\n const checkLoginState = async () =>\n axios.get(toLocalizedUrl('/login/state', getLanguage()));\n return checkLoginState().then((response) => {\n const isLoggedIn = response.data?.isLoggedIn;\n if (isLoggedIn) {\n return submitOriginalRequest(error);\n }\n // eslint-disable-next-line better-mutation/no-mutation\n error.message = API_ERRORS.LOGGED_OUT;\n // eslint-disable-next-line promise/no-return-wrap\n return Promise.reject(error);\n });\n};\n\nconst errorResponseInterceptor = (error: AxiosError) => {\n if (isMissingAuthToken(error.request?.response)) {\n return handleMissingAuthToken(error);\n } else if (isUnauthorized(error.request?.status)) {\n return handleUnauthorized(error);\n }\n return Promise.reject(error);\n};\n\n/**\n * Create Axios instance or decorate existing instance with interceptor for expired token responses\n *\n */\nfunction axiosWithTokenRefresh(axiosInstance?: AxiosInstance) {\n let instance;\n if (axiosInstance === undefined) {\n instance = axios.create();\n } else {\n instance = axiosInstance;\n }\n instance.interceptors.response.use(\n (response) => response,\n errorResponseInterceptor\n );\n return instance;\n}\n\nconst cancelTokens: Record = {};\n\n/**\n * Create new or return existing cancellation function\n *\n * Usage:\n * const { cancel, cancelToken } = utilizeCancelToken('tokenId')\n * if (cancel) cancel();\n * axios.get('http://api.com/...', { cancelToken });\n *\n * @param {string} tokenId - A string ID shared between requests that cancel together\n */\nfunction utilizeCancelToken(tokenId: string) {\n if (isServer) {\n throw new Error(\n 'This implementation is not compatible with SSR as global properties like cancelTokens here are shared between server instances'\n );\n }\n let cancel;\n if (tokenId in cancelTokens) {\n cancel = cancelTokens[tokenId].cancel;\n }\n // eslint-disable-next-line better-mutation/no-mutation\n cancelTokens[tokenId] = axios.CancelToken.source();\n return {\n cancel,\n cancelToken: cancelTokens[tokenId].token\n };\n}\n\n/**\n * Check response version and throw error if different from current\n *\n */\nfunction checkResponseVersion(version = '12.0.0') {\n return (response: AxiosResponse) => {\n if (\n response.headers &&\n response.headers['X-Tradera-Version'] &&\n response.headers['X-Tradera-Version'] !== version\n ) {\n throw new Error(API_ERRORS.VERSION_MISMATCH);\n } else {\n return response;\n }\n };\n}\n\n/**\n * Checks redirect response for logged out user\n * This is an old solution. New solutions return a 401 response instead (see handleError).\n * Requires Axios config to include { withCredentials: true }\n *\n */\nfunction checkResponseLoggedOut() {\n return (response: AxiosResponse) => {\n if (\n response.data &&\n typeof response.data === 'string' &&\n response.data.includes('Logga in')\n ) {\n throw new Error(API_ERRORS.LOGGED_OUT);\n } else {\n return response;\n }\n };\n}\n\n/**\n * Final standardized formatting of an api response\n *\n */\nfunction finalizeResponse() {\n return (response: AxiosResponse) => {\n const { data, status } = response;\n return {\n data,\n status\n };\n };\n}\n\ntype StatusHandlers = Record;\n\n/**\n * Common network request error handling\n */\nfunction handleError(statusHandlers: StatusHandlers = {}) {\n return (error: AxiosError) => {\n const status = error.response && error.response.status;\n const message = error.message ? error.message : error.toString();\n /* eslint-disable better-mutation/no-mutation */\n if (axios.isCancel(error)) {\n error.message = API_ERRORS.CANCELLED;\n } else if (message.includes('timeout') || status === 408) {\n error.message = API_ERRORS.TIMEOUT;\n } else if (message.includes('Network')) {\n error.message = API_ERRORS.NETWORK;\n } else if (message.includes('Request aborted')) {\n error.message = API_ERRORS.ABORTED;\n } else if (status === 401) {\n error.message = API_ERRORS.LOGGED_OUT;\n } else if (status && status in statusHandlers) {\n error.message = statusHandlers[status];\n }\n throw error;\n };\n}\n\nfunction reloadOnUnauthorized(error: AxiosError) {\n switch (error.message) {\n case API_ERRORS.LOGGED_OUT:\n window.location.reload();\n break;\n default:\n throw error;\n }\n}\n\nfunction logError(error: AxiosError, scope: object) {\n switch (error.message) {\n case API_ERRORS.IGNORE_ME:\n case API_ERRORS.CANCELLED:\n case API_ERRORS.NETWORK:\n case API_ERRORS.TIMEOUT:\n break;\n default:\n logger(error, scope);\n break;\n }\n}\n\nexport {\n addAntiCacheParam,\n API_ERRORS,\n axiosConfigs,\n axiosWithTokenRefresh,\n checkResponseVersion,\n checkResponseLoggedOut,\n defaultJsonRequestHeaders,\n errorResponseInterceptor,\n finalizeResponse,\n handleError,\n logError,\n reloadOnUnauthorized,\n utilizeCancelToken\n};\n","import {\n CATEGORIZED_COOKIES,\n COOKIE_DEFAULT_CATEGORY\n} from 'tradera/constants/cookies';\nimport { GdprSettings } from 'tradera/utils/gdpr-settings';\nimport { logger } from 'packages/logger';\nimport { isServer } from 'tradera/utils/nextjs';\nimport { getCookieFromBrowser, setCookieToBrowser } from './cookie-helpers';\n\nexport class CookieUtil {\n getCookie: (key: string) => string | null | undefined;\n setCookie: (s: string) => void;\n gdpr: GdprSettings;\n constructor(\n getCookie: (key: string) => string | null | undefined,\n setCookie: (s: string) => void\n ) {\n if (!getCookie || !setCookie) {\n throw new Error('You must provide getCookie and setCookie');\n }\n this.getCookie = getCookie;\n this.setCookie = setCookie;\n this.gdpr = new GdprSettings(getCookie, setCookie);\n }\n\n segment(name: string, value?: string) {\n return value ? '; ' + name + '=' + value : '';\n }\n\n convertToExpiresStr(expires: number | string | Date) {\n let expiresStr = '';\n\n if (typeof expires === 'number') {\n expiresStr =\n expires === Infinity\n ? '; expires=Fri, 31 Dec 9999 23:59:59 GMT'\n : '; max-age=' + expires * 24 * 60 * 60;\n } else if (typeof expires === 'string') {\n expiresStr = '; expires=' + expires;\n } else if (expires instanceof Date) {\n expiresStr = '; expires=' + expires.toUTCString();\n }\n\n return expiresStr;\n }\n\n createCookie(\n cookieKey: string,\n cookieValue: string | number | boolean,\n /**\n * Expiration in number of days\n */\n expires?: number | string | Date,\n path?: string,\n domain?: string,\n secure?: boolean\n ) {\n let expiresStr = '';\n\n if (\n !cookieKey ||\n /^(?:expires|max-age|path|domain|secure)$/i.test(cookieKey)\n ) {\n return false;\n }\n\n // check gdpr for cookie category\n let category = CATEGORIZED_COOKIES[cookieKey];\n if (typeof category === 'undefined') {\n logger(`No category set for cookie ${cookieKey}`);\n category = COOKIE_DEFAULT_CATEGORY;\n }\n if (!this.gdpr.isCategoryEnabled(category)) {\n // console.info(\n // `Cookie category not enabled: ${cookieKey}, category: ${category}`\n // );\n return false;\n }\n\n // if expired set prepare date string\n if (expires) {\n expiresStr = this.convertToExpiresStr(expires);\n }\n\n if (isServer) {\n throw new Error('Setting cookie is not supported on the server');\n }\n\n this.setCookie(\n encodeURIComponent(cookieKey) +\n '=' +\n encodeURIComponent(cookieValue) +\n expiresStr +\n this.segment('domain', domain) +\n this.segment('path', path || '/') +\n (location.protocol == 'https:' || secure ? '; secure' : '')\n );\n\n return true;\n }\n\n readCookie(key: string) {\n return this.getCookie(key);\n }\n\n hasCookie(key: string) {\n return typeof this.readCookie(key) === 'string';\n }\n\n eraseCookie(key: string, path?: string, domain?: string) {\n if (!key || !this.hasCookie(key)) {\n return false;\n }\n\n if (isServer) {\n throw new Error('Setting cookie is not supported on the server');\n }\n\n this.setCookie(\n encodeURIComponent(key) +\n '=; expires=Thu, 01 Jan 1970 00:00:01 GMT' +\n this.segment('domain', domain) +\n this.segment('path', path || '/')\n );\n\n return true;\n }\n}\n\nexport default new CookieUtil(getCookieFromBrowser, setCookieToBrowser);\n","import { swedishTimeZoneDate } from 'tradera/utils/date';\n\n/**\n * NOTE: there's a hook useFormatEndDate in src/hooks/use-format-end-date.ts\n * that will help out with dayjs and translation func\n */\nexport const formatEndDate = (endDateInput, t, nowDateInput, dayjs) => {\n if (!endDateInput || !nowDateInput) return '';\n\n const endDate = swedishTimeZoneDate(endDateInput, dayjs);\n const now = swedishTimeZoneDate(nowDateInput, dayjs);\n if (endDate.isSameOrAfter(now.add(1, 'week'), 'day')) {\n return endDate.format('D MMM HH:mm');\n }\n if (endDate.isSameOrAfter(now.add(2, 'day'), 'day')) {\n return endDate.format('ddd HH:mm');\n }\n if (endDate.isSameOrAfter(now.add(1, 'day'))) {\n return `${t('vip_tomorrow')} ${endDate.format('HH:mm')}`;\n }\n if (endDate.isSameOrAfter(now.add(1, 'minute'))) {\n const hours = endDate.diff(now, 'hour');\n const minutes = endDate.diff(now, 'minute') % 60;\n const timeParts = [];\n if (hours > 0) {\n timeParts.push(t('vip_hours', { count: hours }));\n }\n if (minutes > 0) {\n timeParts.push(t('vip_minutes', { count: minutes }));\n }\n return timeParts.join(' ');\n }\n if (endDate.isAfter(now)) {\n return t('vip_less_than_1_min_left');\n }\n return t('vip_ended');\n};\n\nexport const formatNumberWithSeparators = (number, separator = '\\u2006') => {\n return number\n .toString()\n .replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1' + separator);\n};\n\n// https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\nfunction toLocaleStringSupportsLocales() {\n try {\n Number(0).toLocaleString('i');\n } catch (e) {\n return e.name === 'RangeError';\n }\n return false;\n}\n\n// https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\nfunction toLocaleStringSupportsOptions() {\n return !!(\n typeof Intl === 'object' &&\n Intl &&\n typeof Intl.NumberFormat === 'function'\n );\n}\n\nconst isLocaleFormattingSupportedInBrowser =\n toLocaleStringSupportsLocales() && toLocaleStringSupportsOptions();\n\nexport const formatSellerDsrAverage = (value, locale = 'sv-SE') => {\n return value?.toLocaleString(locale, {\n minimumFractionDigits: 1,\n maximumFractionDigits: 1\n });\n};\n\nexport const getCurrencySymbol = (locale, overrideOptions = {}) => {\n const defaultOptions = {\n style: 'currency',\n currency: 'SEK',\n currencyDisplay:\n locale.startsWith('sv') &&\n (overrideOptions.currency || 'SEK') === 'SEK' &&\n (overrideOptions.preferredCurrency || 'SEK') === 'SEK'\n ? 'symbol'\n : 'code',\n useGrouping: false,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0\n };\n return (0)\n .toLocaleString(locale, {\n ...defaultOptions,\n ...overrideOptions\n })\n .replace(/\\d/g, '')\n .trim();\n};\n\nexport const formatDateWithDayOfWeek = (dateString, locale) => {\n if (!isLocaleFormattingSupportedInBrowser) {\n return dateString;\n }\n\n const options = {\n weekday: 'long',\n year: undefined,\n month: 'long',\n day: 'numeric'\n };\n return new Intl.DateTimeFormat(locale, options).format(\n Date.parse(dateString)\n );\n};\n\nexport const formatItemId = (itemId) => {\n if (!itemId || !Number.isInteger(itemId)) return undefined;\n\n return itemId.toLocaleString('sv-SE'); // Groupings of 3 separated by spaces\n};\n\nexport const formatOrderNumber = (orderNr) =>\n formatItemId(Number.parseInt(orderNr));\n","/***\n *\n * Keep track of users' GDPR settings.\n *\n */\nimport dayjs from 'dayjs';\nimport cookie from 'cookie';\n\nimport {\n GDPR_CONSENT_COOKIE,\n COOKIE_CATEGORIES\n} from 'tradera/constants/cookies';\nimport { getCookieFromBrowser, setCookieToBrowser } from './cookie-helpers';\n\nconst createCookie = (name, value, expires) => {\n const options = {\n expires,\n httpOnly: false,\n path: '/'\n };\n return cookie.serialize(name, String(value), options);\n};\n\nexport class GdprSettings {\n constructor(getCookie, setCookie) {\n if (!getCookie || !setCookie) {\n throw new Error('You must provide getCookie and setCookie');\n }\n this.getCookie = getCookie;\n this.setCookie = setCookie;\n }\n /**\n *\n * @param {int} cookieCategory use the constant COOKIE_CATEGORIES to get different values.\n */\n isCategoryEnabled(cookieCategory) {\n if (cookieCategory === COOKIE_CATEGORIES.Essential) {\n return true;\n }\n\n const encodedConsentCookie = this.getCookie(GDPR_CONSENT_COOKIE);\n const consentCookie = decodeURI(encodedConsentCookie);\n\n if (!consentCookie || consentCookie.length === 0) {\n return true;\n }\n\n const categoryPattern = new RegExp(`,${cookieCategory}:1`);\n return categoryPattern.test(consentCookie);\n }\n\n isPerformanceEnabled() {\n return this.isCategoryEnabled(COOKIE_CATEGORIES.Performance);\n }\n\n isFunctionalEnabled() {\n return this.isCategoryEnabled(COOKIE_CATEGORIES.Functional);\n }\n\n isMarketingEnabled() {\n return this.isCategoryEnabled(COOKIE_CATEGORIES.Marketing);\n }\n\n set(performance, functional, marketing) {\n const cookieValue = [\n `${COOKIE_CATEGORIES.Essential}:1`,\n `${COOKIE_CATEGORIES.Performance}:${performance ? '1' : '0'}`,\n `${COOKIE_CATEGORIES.Functional}:${functional ? '1' : '0'}`,\n `${COOKIE_CATEGORIES.Marketing}:${marketing ? '1' : '0'}`\n ];\n const cookieString = createCookie(\n GDPR_CONSENT_COOKIE,\n cookieValue.join(','),\n dayjs().add(1, 'years').toDate()\n );\n this.setCookie(cookieString);\n }\n}\n\nexport default new GdprSettings(getCookieFromBrowser, setCookieToBrowser);\n","import omitBy from 'lodash/omitBy';\nimport mapObject from 'lodash/mapValues';\n\nexport const nullifyUndefinedProperties = (obj: Record) =>\n mapObject(obj, (value) => (typeof value === 'undefined' ? null : value));\n\ntype NonNullableProperties = {\n [K in keyof T]: Exclude;\n};\n\nexport function removePropertiesWithoutValue>(\n obj: T\n): NonNullableProperties {\n return omitBy(\n obj,\n (value) => value === null || value === undefined\n ) as NonNullableProperties;\n}\n","import qs from 'qs';\nimport HOSTS from 'tradera/constants/hosts';\nimport initData from 'tradera/legacy/static/packages/init-data';\nimport { formatNextPathnameInfo } from 'next/dist/shared/lib/router/utils/format-next-pathname-info';\nimport { getNextPathnameInfo } from 'next/dist/shared/lib/router/utils/get-next-pathname-info';\n\nimport { logger } from 'packages/logger';\nimport {\n URL_LANGUAGES,\n DEFAULT_LANGUAGE,\n SUPPORTED_LANGUAGES\n} from 'tradera/lang/constants.mjs';\nimport { removePropertiesWithoutValue } from 'tradera/utils/object';\n\n// List of SPA paths for the regex match, without initial slash\nconst SPA_REGEX_PATHS = [\n 'search',\n 'campaign',\n 'charity',\n 'categories',\n 'profile\\\\/items',\n 'brand\\\\/.+',\n // Category\n '[a-z]+[\\\\w\\\\-]+[\\\\-|_]\\\\d+'\n];\nconst SPA_PATH_REGEX = new RegExp(\n `^(/(${URL_LANGUAGES.join('|')}))?/(${SPA_REGEX_PATHS.join('|')})`\n);\n\n/**\n * Removes priceRange from query params if fromPrice or toPrice is present.\n */\nconst prunePriceRange = (queryParams: Record) => {\n if (queryParams.fromPrice || queryParams.toPrice) {\n const { priceRange, ...result } = queryParams;\n return result;\n }\n return queryParams;\n};\n\ntype FormatQueryParamsQueryParams = Record & {\n category?: string;\n categoryId?: string;\n};\n/**\n * Format query params parsed from query string\n */\nexport const formatQueryParams = (\n queryParams: FormatQueryParamsQueryParams\n) => {\n const {\n category: queryCategory,\n categoryId: queryCategoryId,\n ...rest\n } = removePropertiesWithoutValue(queryParams);\n const formattedQueryParams = prunePriceRange(rest);\n const categoryId = parseInt(queryCategory || queryCategoryId || '0', 10);\n if (categoryId > 0) {\n formattedQueryParams.categoryId = categoryId;\n }\n return formattedQueryParams;\n};\n\n/**\n * Check if url is absolute\n */\nexport const isAbsoluteUrl = (url: string): boolean =>\n new RegExp('^(?:[a-z]+:)?//', 'i').test(url);\n\n/**\n * Tests if a given url or path is an SPA link or not\n */\nexport function isSpaLink(urlOrPath: string): boolean {\n let pathname;\n if (/(^http)s?:\\/\\//i.test(urlOrPath)) {\n try {\n pathname = new URL(urlOrPath).pathname;\n } catch {\n return false;\n }\n } else {\n pathname = urlOrPath;\n }\n return SPA_PATH_REGEX.test(pathname);\n}\n\n/**\n * Takes an object and returns a new object without route parameters\n */\nexport const stripRouteParametersFromQueryParameters = (\n queryParams: Record,\n params: Record | undefined\n) => {\n if (!params) return queryParams;\n\n const excludeKeys = new Set(Object.keys(params));\n\n const filteredPairs = Object.entries(queryParams).filter(\n ([key]) => !excludeKeys.has(key)\n );\n return Object.fromEntries(filteredPairs);\n};\n\n/**\n * Takes an object and returns a new object without pagination properties\n */\nexport function stripCategoryIdFromQueryParameters<\n T extends Record\n>(queryParams: T): Omit {\n // Using object spread to exclude listed variables from 'rest'\n const { categoryId, ...rest } = queryParams;\n return rest;\n}\n\n/**\n * Removes tradera base from a url, leaving path and query\n */\nexport const stripHost = (url: string): string =>\n typeof url === 'string' && url.startsWith('http')\n ? url.replace(HOSTS.TRADERA, '')\n : url;\n\n/**\n * Takes an object and returns a new object without itm properties\n * Itm tags should no longer be used, so this method will then be obsolete\n */\nexport function stripItmFromQueryParameters>(\n queryParams: T\n): Omit {\n // Using object spread to exclude listed variables from 'rest'\n const { itm_source, itm_medium, ...rest } = queryParams;\n return rest;\n}\n\n/**\n * Takes an object and returns a new object without pagination properties\n */\nexport function stripPaginationFromQueryParameters<\n T extends Record\n>(queryParams: T): Omit {\n // Using object spread to exclude listed variables from 'rest'\n // The parameters \"spage\", \"page\" and possible \"fe\" are deprecated and should no longer be used.\n // However, it may still be useful to remove them from the query parameters here,\n // in case they are used in old links.\n const { spage, paging, page, fe, ...rest } = queryParams;\n return rest;\n}\n\n/**\n * Takes an object and returns a new object without savedQueryName properties\n */\nexport function stripSavedQueryNameFromQueryParameters<\n T extends Record\n>(queryParams: T): Omit {\n // Using object spread to exclude listed variables from 'rest'\n const { savedQueryName, ...rest } = queryParams;\n return rest;\n}\n\n/**\n * Takes an object and returns a new object without saveSearch properties\n */\nexport function stripSaveSearchNameFromQueryParameters<\n T extends Record\n>(queryParams: T): Omit {\n // Using object spread to exclude listed variables from 'rest'\n const { saveSearch, ...rest } = queryParams;\n return rest;\n}\n\n/**\n * Takes an url and adds tradera base url if it is not already an absolute url\n */\nexport const toAbsoluteUrl = (relativeUrl: string): string =>\n relativeUrl.startsWith('http')\n ? relativeUrl\n : `${HOSTS.TRADERA}${\n relativeUrl.startsWith('/') ? relativeUrl : '/' + relativeUrl\n }`;\n\n// Help TS understand that the parameter is a string\nconst isString = (str: unknown): str is string => {\n if (str === null || str === undefined || str === '' || str === false)\n return false;\n\n return true;\n};\n\n/**\n * From URL to URL with language prefix\n */\nexport function toLocalizedUrl(\n url: T,\n languageCodeIso2?: string\n): T | string {\n if (!isString(url)) {\n return url;\n }\n\n const ignoredUrls = [initData.webApiUrl, '/api/webapi/'];\n const isIgnoredUrl = ignoredUrls.find(\n (domain) => url.indexOf(domain) !== -1\n );\n if (isIgnoredUrl) {\n return url;\n }\n\n if (!languageCodeIso2) {\n logger(`Missing language code for URL ${url}`);\n return url;\n }\n\n if (url.startsWith('//')) {\n throw new Error(\n `Attempt to localize protocol relative url: ${url}. This is not supported at the moment`\n );\n }\n\n const RELATIVE_DOMAIN = 'https://example.com';\n const urlObject = new URL(url, RELATIVE_DOMAIN);\n // eslint-disable-next-line better-mutation/no-mutation\n urlObject.pathname = setLanguagePrefix(\n urlObject.pathname,\n languageCodeIso2\n );\n return urlObject.toString().replace(RELATIVE_DOMAIN, '');\n}\n\n/**\n * Creates query parameters object from search string\n */\nexport const toQueryParameters = (search: string) =>\n qs.parse(search, { ignoreQueryPrefix: true });\n\ntype ToSearchStringOptions = {\n addQueryPrefix?: boolean;\n encode?: boolean;\n skipNulls?: boolean;\n arrayFormat?: 'indices' | 'brackets' | 'repeat' | 'comma';\n};\n\n/**\n * Creates search string from all properties in object\n */\nexport const toSearchString = (\n queryParams: object,\n {\n addQueryPrefix = true,\n encode = true,\n skipNulls = true,\n arrayFormat = 'repeat' //qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) ==> 'a=b&a=c'\n }: ToSearchStringOptions = {}\n): string =>\n qs.stringify(queryParams, {\n addQueryPrefix: addQueryPrefix,\n encode: encode,\n skipNulls: skipNulls,\n arrayFormat: arrayFormat\n });\n\nconst setLanguagePrefix = (path: string, languageCodeIso2: string) => {\n // Inspired by `next/src/server/web/next-url.ts`\n const nextConfig = {\n i18n: {\n defaultLocale: DEFAULT_LANGUAGE,\n locales: SUPPORTED_LANGUAGES\n }\n };\n const pathnameInfo = getNextPathnameInfo(path, {\n nextConfig,\n parseData: true\n });\n const localizedPathname = formatNextPathnameInfo({\n ...pathnameInfo,\n defaultLocale: DEFAULT_LANGUAGE,\n locale: languageCodeIso2\n });\n return localizedPathname;\n};\n\nexport const getBackToHereRedirectUrl = () => {\n // Add random query parameter to force reload when redirecting to this url\n // and only the hash differs\n const queryParams = {\n ...qs.parse(location.search, { ignoreQueryPrefix: true }),\n forceRedirect: Math.round(Math.random() * 100000)\n };\n return (\n location.protocol +\n '//' +\n location.host +\n location.pathname +\n qs.stringify(queryParams, { addQueryPrefix: true })\n );\n};\n\nexport const replacePartInPath = (\n path: string,\n oldPart: string,\n newPart: string\n) => {\n if (path.indexOf('?') > -1) {\n throw new Error('? is not valid in argument.');\n }\n return path\n .split('/')\n .map((part) => (part === oldPart ? newPart : part))\n .join('/');\n};\n\n/**\n * Converts an API request to URLSearchParams for use in a GET request\n */\nexport const convertApiRequestToURLParams = (\n apiRequest: Record\n): URLSearchParams => {\n return Object.entries(apiRequest).reduce((acc, [key, value]) => {\n if (value !== null && value !== undefined) {\n acc.append(key, value.toString());\n }\n return acc;\n }, new URLSearchParams());\n};\n\nexport const getHeroImageUrl = (\n heroImageUrl: string,\n version: 'small' | 'medium' | 'large' = 'medium'\n) => {\n if (heroImageUrl) {\n return `https://img.tradera.net/heroimages/${version}-square/${heroImageUrl}`;\n }\n return undefined;\n};\n","export const DEFAULT_PAGE_TITLE_TRANSLATION_KEY = 'pageTitle_startPage';\n\nexport const NS_TOUCHWEB = 'touchWeb';\nexport const NS_ATTRIBUTES = 'attributes';\nexport const NS_CATEGORIES = 'categories';\nexport const NS_BACKEND = 'backend';\n\nexport const DEFAULT_LANGUAGE = 'sv';\nexport const URL_LANGUAGES = ['en', 'de', 'da', 'fr', 'nl'];\n\nexport const DEFAULT_LOCALE = 'sv-SE';\nexport const LANGUAGE_LOCALE = {\n sv: 'sv-SE',\n en: 'en-US',\n da: 'da-DK',\n de: 'de-DE',\n fr: 'fr-FR',\n nl: 'nl-NL'\n};\n\nexport const I18N_FRONTEND_NAMESPACES = [NS_TOUCHWEB, NS_ATTRIBUTES];\nexport const I18N_BACKEND_NAMESPACES = [NS_CATEGORIES, NS_BACKEND];\nexport const I18N_NAMESPACES = [\n ...I18N_FRONTEND_NAMESPACES,\n ...I18N_BACKEND_NAMESPACES\n];\nexport const NAMESPACE_PROJECTID = {\n [NS_TOUCHWEB]: '414441505e1db31fcaa776.55234720',\n [NS_ATTRIBUTES]: '9959867960be20fdc7d187.66761514',\n [NS_CATEGORIES]: '894792985d6665b8f079e1.31726015',\n [NS_BACKEND]: '916557165cc061c54ae7c8.44409330'\n};\n\nexport const SUPPORTED_LANGUAGES = [DEFAULT_LANGUAGE, ...URL_LANGUAGES];\nexport const SUPPORTED_CURRENCIES = [\n 'DKK',\n 'GBP',\n 'JPY',\n 'NOK',\n 'SEK',\n 'USD',\n 'EUR'\n];\n\nexport const TRANS_SUFFIX = 'Trans';\n\nexport const I18N_CACHE_MS = 60 * 1000;\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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","__webpack_require__.amdO = {};","// 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 not based on template\n\tif (chunkId === 0) return \"script/bundle-0.5d3665a84b.js\";\n\tif (chunkId === 6) return \"script/bundle-6.9039d22127.js\";\n\tif (chunkId === 7) return \"script/bundle-7.457bef708a.js\";\n\tif (chunkId === 13) return \"script/bundle-13.ff15fb66c0.js\";\n\tif (chunkId === 18) return \"script/bundle-18.e346aad515.js\";\n\tif (chunkId === 20) return \"script/bundle-20.35328349f7.js\";\n\tif (chunkId === 5) return \"script/bundle-5.d024edef42.js\";\n\tif (chunkId === 12) return \"script/bundle-12.8a389bc5b4.js\";\n\tif (chunkId === 17) return \"script/bundle-17.222ae4fcbf.js\";\n\tif (chunkId === 19) return \"script/bundle-19.38d55eafca.js\";\n\tif (chunkId === 23) return \"script/bundle-23.f523985340.js\";\n\tif (chunkId === 24) return \"script/bundle-24.13f9eeb152.js\";\n\tif (chunkId === 22) return \"script/bundle-22.f47bbba827.js\";\n\t// return url for filenames based on template\n\treturn \"script/chunks/chunk.\" + ({\"33\":\"basic\",\"35\":\"braintree-web-drop-in\",\"36\":\"campaign-page\",\"37\":\"category-list-page\",\"38\":\"causes-info\",\"39\":\"checkout-confirmation-page\",\"40\":\"checkout-page\",\"41\":\"collect-tin\",\"42\":\"collect-vat-number\",\"43\":\"combined-shipping\",\"45\":\"detailed-search\",\"46\":\"dis\",\"48\":\"favourite-sellers\",\"51\":\"inr\",\"52\":\"kyc-page\",\"54\":\"messages\",\"56\":\"print-page\",\"58\":\"recommendations-page\",\"59\":\"report-item-page\",\"63\":\"shippingcalculator\",\"67\":\"tradera\",\"68\":\"tradera-shop\",\"69\":\"upi\",\"70\":\"valuation-page\",\"71\":\"verify-page\"}[chunkId] || chunkId) + \".\" + {\"14\":\"52baa091d3\",\"21\":\"c334816c4f\",\"25\":\"7bbc372ea1\",\"26\":\"0ef06fb601\",\"27\":\"77ebd235ba\",\"33\":\"662bd911fc\",\"35\":\"a34f51b77e\",\"36\":\"67adb36869\",\"37\":\"61853e46b8\",\"38\":\"618360253d\",\"39\":\"1e9bd322c7\",\"40\":\"55e19f003b\",\"41\":\"f9b7ffd5a5\",\"42\":\"c0c214c1a7\",\"43\":\"6fd68e3566\",\"45\":\"3ed03da8e3\",\"46\":\"3ac7497605\",\"48\":\"6fb9fc70c5\",\"51\":\"ad58b7759d\",\"52\":\"aebc6394ed\",\"54\":\"c9a3915e72\",\"56\":\"ca09da2281\",\"58\":\"f0edc34d35\",\"59\":\"6e22d9aed1\",\"63\":\"d959ba56b0\",\"67\":\"79a10aaed0\",\"68\":\"5994612552\",\"69\":\"f18b3821ff\",\"70\":\"6604fea2cb\",\"71\":\"a7a231b1b2\",\"72\":\"8c1fdb12bc\",\"73\":\"93ad57c557\",\"74\":\"823b6c69c9\",\"75\":\"97b7d49c79\"}[chunkId] + \".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 \"style/\" + ({\"36\":\"campaign-page\",\"37\":\"category-list-page\",\"38\":\"causes-info\",\"39\":\"checkout-confirmation-page\",\"40\":\"checkout-page\",\"41\":\"collect-tin\",\"42\":\"collect-vat-number\",\"43\":\"combined-shipping\",\"45\":\"detailed-search\",\"46\":\"dis\",\"48\":\"favourite-sellers\",\"51\":\"inr\",\"52\":\"kyc-page\",\"56\":\"print-page\",\"58\":\"recommendations-page\",\"59\":\"report-item-page\",\"63\":\"shippingcalculator\",\"67\":\"tradera\",\"68\":\"tradera-shop\",\"69\":\"upi\",\"70\":\"valuation-page\"}[chunkId] || chunkId) + \".\" + {\"26\":\"971a82f727\",\"36\":\"66d5277f6a\",\"37\":\"5233c919ea\",\"38\":\"b4c894710c\",\"39\":\"59fb02290c\",\"40\":\"7d2343c779\",\"41\":\"9596e7e452\",\"42\":\"9596e7e452\",\"43\":\"d2ada5f564\",\"45\":\"6aa65ca39f\",\"46\":\"26205772f0\",\"48\":\"78bdcdb5d6\",\"51\":\"26205772f0\",\"52\":\"2647633a7e\",\"56\":\"ba7f6db782\",\"58\":\"450b42034c\",\"59\":\"031c2aeca4\",\"63\":\"86367968a2\",\"67\":\"d14f0f38c6\",\"68\":\"a607809c74\",\"69\":\"26205772f0\",\"70\":\"d38d54c87b\",\"73\":\"a48f060b47\"}[chunkId] + \".css\";\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__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// 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__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 44;","__webpack_require__.p = \"//static.tradera.net/touchweb/static/output/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t44: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"26\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"45\":1,\"46\":1,\"48\":1,\"51\":1,\"52\":1,\"56\":1,\"58\":1,\"59\":1,\"63\":1,\"67\":1,\"68\":1,\"69\":1,\"70\":1,\"73\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// 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\t44: 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__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\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\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktouchweb\"] = self[\"webpackChunktouchweb\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [2,1,3,4,8,11], () => (__webpack_require__(1945)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","utils","bind","Axios","mergeConfig","axios","createInstance","defaultConfig","context","instance","prototype","request","extend","create","instanceConfig","CanceledError","CancelToken","isCancel","VERSION","toFormData","AxiosError","Cancel","all","promises","Promise","spread","isAxiosError","module","exports","addLeadingSlash","path","charAt","stripLeadingSlash","substr","stripBasename","prefix","toLowerCase","indexOf","length","hasBasename","stripTrailingSlash","slice","createPath","location","pathname","search","hash","createLocation","state","key","currentLocation","hashIndex","searchIndex","parsePath","undefined","decodeURI","e","URIError","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","result","appendListener","fn","isActive","listener","apply","arguments","push","filter","item","notifyListeners","_len","args","Array","_key","forEach","canUseDOM","window","document","createElement","getConfirmation","message","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","props","ua","globalHistory","canUseHistory","navigator","userAgent","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_ref","_window$location","createKey","Math","random","toString","transitionManager","setState","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","n","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","href","pushState","prevIndex","nextKeys","replace","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","url","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","a","b","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","index","map","entry","nextIndex","nextEntries","splice","canGo","baseAssignValue","baseForOwn","baseIteratee","object","iteratee","value","negate","pickBy","predicate","Object","defineProperty","enumerable","get","formatNextPathnameInfo","_removetrailingslash","_addpathprefix","_addpathsuffix","_addlocale","info","addLocale","locale","buildId","defaultLocale","ignorePrefix","trailingSlash","removeTrailingSlash","addPathSuffix","addPathPrefix","basePath","endsWith","getNextPathnameInfo","_normalizelocalepath","_removepathprefix","_pathhasprefix","options","_options_nextConfig","i18n","nextConfig","pathHasPrefix","removePathPrefix","pathnameNoDataPrefix","startsWith","paths","split","join","parseData","i18nProvider","analyze","normalizeLocalePath","locales","_result_pathname","detectedLocale","_excluded","useSyncExternalStore","initializeConnect","NO_SUBSCRIPTION_ARRAY","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","childPropsFromStoreUpdate","notifyNestedSubs","current","strictEqual","mapStateToProps","mapDispatchToProps","mergeProps","pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual","forwardRef","Context","initMapStateToProps","initMapDispatchToProps","initMergeProps","shouldHandleStateChanges","Boolean","WrappedComponent","wrappedComponentName","displayName","name","selectorFactoryOptions","ConnectFunction","propsContext","reactReduxForwardedRef","ContextToUse","Consumer","isContextConsumer","contextValue","didStoreComeFromProps","store","getState","dispatch","didStoreComeFromContext","getServerState","childPropsSelector","subscription","overriddenContextValue","isMounted","latestSubscriptionCallbackError","actualChildPropsSelector","subscribeForReact","reactListener","additionalSubscribeListener","didUnsubscribe","lastThrownError","checkForUpdates","latestStoreState","newChildProps","error","onStateChange","trySubscribe","tryUnsubscribe","subscribeUpdates","effectFunc","effectArgs","dependencies","actualChildProps","err","stack","renderedWrappedComponent","ref","Provider","Connect","forwarded","createDispatchHook","useStore","useDispatch","useSyncExternalStoreWithSelector","initializeUseSelector","refEquality","createSelectorHook","useReduxContext","selector","equalityFnOrOptions","equalityFn","stabilityCheck","noopCheck","globalStabilityCheck","globalNoopCheck","wrappedSelector","useRef","useCallback","selectedState","addNestedSub","useDebugValue","useSelector","ROUTING_TYPE","useQuery","parameter","defaultValue","_searchParams$get","useLocation","navigation","useNavigation","searchParams","URLSearchParams","updateSearchParam","routing","PUSH","locationParameter","URL","set","delete","toStringOrNull","isNullOrUndefined","isServer","Error","i18nInitialized","bootLanguages","translations","touchwebTranslations","attributeTranslations","translationResources","_ref2","_slicedToArray","namespace","attributeResources","_ref3","_ref4","resources","concat","reduce","prev","_ref5","s","_objectSpread","use","initReactI18next","LanguageDetector","init","initOptions","logger","detection","order","htmlTag","html","defaultNS","NS_TOUCHWEB","ns","NS_ATTRIBUTES","fallbackLng","DEFAULT_LANGUAGE","debug","keySeparator","nsSeparator","interpolation","skipOnVariables","escapeValue","format","formatNumberWithSeparators","react","useSuspense","missingKeyLoggingConfig","createWrappedT","i18nObject","t","language","hasLoadedAllTranslations","throwOnTransSuffix","isShowingTranslationKeysEnabled","i18nKey","TRANS_SUFFIX","translation","lng","addTranslationForHydration","isQueryToggleEnabled","query","includes","useTranslator","useAppDispatch","isShowingTranslationKeysEnabledQuery","selectPreferredLanguageCode","_state$status","status","loadedLanguages","_useTranslation","useTranslation","I18N_FRONTEND_NAMESPACES","ready","wrappedT","React","_i18n$translator$extr","translator","extractFromKey","namespaces","_i18n$translator$reso","resolve","res","pluralizedKey","exactUsedKey","addTranslationKey","withTranslator","WithTranslator","_jsx","useCurrentLanguage","useUrlLocalizer","preferredLanguage","toLocalizedUrl","Trans","_state$status2","_useTranslation2","children","defaults","TransComponent","_Fragment","initData","initDataEL","getElementById","data","JSON","parse","queuedToasts","createQueue","openNextToast","async","isInProgress","nextItem","next","queueLength","getLength","toastOptions","autoClose","onClose","notifyDone","eventData","itemId","webApiClient","imageUrl","itemUrl","shortDescription","toast","ItemToast","type","_nextItem$eventData","header","messageData","headerData","MessageToast","handleNotification","ttlInMinutes","visibilityState","add","showItemOutbiddedToast","newLeadingBidAmount","showItemFirstBidToast","showItemSoldToast","price","showItemWonToast","showItemPaidToast","showItemWishListReminderToast","timeLeftMinutes","showSuccessToast","TYPE","SUCCESS","showErrorToast","ERROR","showInfoToast","INFO","useAppSelector","selectAvailableLanguages","available","selectAvailableLanguageCodesIso2","createSelector","x","languageCodeIso2","selectPreferredLanguage","preferred","_state$language","_state$language$prefe","selectIsForeignLanguageActivated","_selectPreferredLangu","selectAutomaticTranslationPreferred","_state$language$autom","automaticTranslationPreferred","selectMember","member","selectIsLoggedIn","_state$member","isLoggedIn","selectGeolocation","_state$member2","geolocation","selectMemberId","_state$member3","memberId","selectMemberAlias","_state$member4","memberAlias","selectMemberBirthdate","_state$member8","memberBirthdate","selectIsOutsideSweden","_state$member11","_state$member11$geolo","_state$member12","_state$member12$geolo","isoCode","selectMemberTown","_state$member13","memberTown","selectIsUnderage","_permissions$sellPerm","_permissions$sellPerm2","_permissions$sellPerm3","permissions","selectMemberPermissions","sellPermission","isPermitted","requirementsNotMet","RequirementTypeApi","IsOverMinimumAge","selectIsCompany","_state$member14","isCompany","selectMemberState","_state$member16","memberState","defaultCurrency","code","rate","valueDate","updatedDate","symbolSuffix","shortName","longName","decimals","resolveCurrency","enabled","currencyCode","currencies","find","currency","multiCurrencySlice","createSlice","initialState","preferredCurrency","reducers","initialize","_action$payload","payload","_action$payload$curre","setPreferredCurrency","_multiCurrencySlice$a","actions","MessagingEmailNotification","SystemMessageSeverity","API_ERRORS","IGNORE_ME","ABORTED","CANCELLED","NETWORK","TIMEOUT","VERSION_MISMATCH","LOGGED_OUT","defaultJsonRequestHeaders","Accept","axiosConfigs","authenticated","withCredentials","headers","notAuthenticated","isUnauthorized","statusCode","addAntiCacheParam","antiCacheRegExp","test","Date","getTime","submitOriginalRequest","config","errorResponseInterceptor","_error$request","_error$request2","responseString","responseStatus","errorCode","isMissingAuthToken","response","getLanguage","refreshAccessToken","then","catch","_errorAfterRefreshTok","errorAfterRefreshToken","reject","handleMissingAuthToken","checkLoginState","_response$data","handleUnauthorized","axiosWithTokenRefresh","axiosInstance","interceptors","cancelTokens","utilizeCancelToken","tokenId","cancel","source","cancelToken","token","checkResponseVersion","version","checkResponseLoggedOut","finalizeResponse","handleError","statusHandlers","reloadOnUnauthorized","reload","CookieUtil","constructor","getCookie","setCookie","gdpr","this","GdprSettings","segment","convertToExpiresStr","expires","expiresStr","Infinity","toUTCString","createCookie","cookieKey","cookieValue","domain","secure","category","CATEGORIZED_COOKIES","COOKIE_DEFAULT_CATEGORY","isCategoryEnabled","encodeURIComponent","protocol","readCookie","hasCookie","eraseCookie","getCookieFromBrowser","setCookieToBrowser","formatEndDate","endDateInput","nowDateInput","dayjs","endDate","swedishTimeZoneDate","now","isSameOrAfter","hours","diff","minutes","timeParts","count","isAfter","number","separator","Number","toLocaleString","toLocaleStringSupportsLocales","Intl","NumberFormat","formatSellerDsrAverage","minimumFractionDigits","maximumFractionDigits","getCurrencySymbol","overrideOptions","defaultOptions","style","currencyDisplay","useGrouping","trim","cookieCategory","COOKIE_CATEGORIES","Essential","encodedConsentCookie","GDPR_CONSENT_COOKIE","consentCookie","RegExp","isPerformanceEnabled","Performance","isFunctionalEnabled","Functional","isMarketingEnabled","Marketing","performance","functional","marketing","cookieString","httpOnly","cookie","String","toDate","nullifyUndefinedProperties","obj","mapObject","removePropertiesWithoutValue","omitBy","URL_LANGUAGES","formatQueryParams","queryParams","_removePropertiesWith","queryCategory","queryCategoryId","categoryId","formattedQueryParams","fromPrice","toPrice","priceRange","_objectWithoutProperties","prunePriceRange","_excluded2","parseInt","stripCategoryIdFromQueryParameters","_excluded3","stripItmFromQueryParameters","itm_source","itm_medium","_excluded4","stripPaginationFromQueryParameters","spage","paging","page","fe","_excluded5","stripSavedQueryNameFromQueryParameters","savedQueryName","_excluded6","stripSaveSearchNameFromQueryParameters","saveSearch","_excluded7","toAbsoluteUrl","relativeUrl","HOSTS","TRADERA","isString","str","webApiUrl","RELATIVE_DOMAIN","urlObject","setLanguagePrefix","toQueryParameters","qs","ignoreQueryPrefix","toSearchString","_ref3$addQueryPrefix","addQueryPrefix","_ref3$encode","encode","_ref3$skipNulls","skipNulls","_ref3$arrayFormat","arrayFormat","SUPPORTED_LANGUAGES","pathnameInfo","getBackToHereRedirectUrl","forceRedirect","round","host","replacePartInPath","oldPart","newPart","part","NS_CATEGORIES","NS_BACKEND","I18N_BACKEND_NAMESPACES","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","id","loaded","__webpack_modules__","call","m","amdO","O","chunkIds","priority","notFulfilled","i","fulfilled","j","keys","every","r","getter","__esModule","d","getPrototypeOf","mode","def","getOwnPropertyNames","definition","o","f","chunkId","u","miniCssF","g","globalThis","Function","hmd","prop","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","charset","timeout","nc","setAttribute","src","onScriptComplete","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","target","head","appendChild","Symbol","toStringTag","nmd","p","loadStylesheet","fullhref","existingLinkTags","dataHref","tag","rel","existingStyleTags","findStylesheet","oldTag","linkTag","errorType","realHref","insertBefore","nextSibling","createStylesheet","installedCssChunks","miniCss","installedChunks","installedChunkData","promise","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}