{"version":3,"file":"react/js/main-749a6420.f67c485a2eb62b4cca2e.js","mappings":"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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///webpack/runtime/create fake namespace object","webpack:///webpack/runtime/load script","webpack:///./src/utilities/Guid.tsx","webpack:///./src/utilities/StringUtils.tsx","webpack:///./src/utilities/UrlUtils.tsx","webpack:///./src/utilities/Utils.tsx","webpack:///./src/utilities/imageUtils.tsx","webpack:///./src/validators/UserAddressValidator.tsx","webpack:///./src/validators/UserChangePasswordValidator.tsx","webpack:///./src/validators/UserInformationValidator.tsx","webpack:///./src/validators/UserPasswordResetValidator.tsx","webpack:///./src/validators/UserPaymentInformationValidator.tsx","webpack:///./src/validators/UserProfileValidator.tsx","webpack:///./src/validators/UserRegisterValidator.tsx","webpack:///webpack/bootstrap","webpack:///webpack/runtime/amd options","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/get mini-css chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/node module decorator","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/jsonp chunk loading","webpack:///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 = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\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 = \"app-gui:\";\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};","const emptyGuidValue =\r\n '00000000-0000-0000-0000-000000000000';\r\n\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nexport class Guid {\r\n Value: string;\r\n\r\n constructor(\r\n value: string = '00000000-0000-0000-0000-000000000000',\r\n ) {\r\n this.Value = Guid.Normalize(\r\n value && value.length && value.length > 0\r\n ? value\r\n : emptyGuidValue,\r\n 'lowercase',\r\n );\r\n }\r\n\r\n IsEmpty = () => {\r\n return Guid.IsEmptyGuid(this.Value);\r\n };\r\n\r\n static preValidate = (value: string): boolean => {\r\n const regex =\r\n /^(?[a-fA-F\\d]{8})-?(?[a-fA-F\\d]{4})-?(?[a-fA-F\\d]{4})-?(?[a-fA-F\\d]{4})-?(?[a-fA-F\\d]{12})$/;\r\n\r\n return regex.test(value);\r\n };\r\n\r\n static NewGuid(): Guid {\r\n return new Guid(uuidv4());\r\n }\r\n\r\n static NewGuid2(): Guid {\r\n const value: string =\r\n 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\r\n /[xy]/g,\r\n function (c) {\r\n const r =\r\n (Math.random() *\r\n 16) |\r\n 0,\r\n v =\r\n c == 'x'\r\n ? r\r\n : (r &\r\n 0x3) |\r\n 0x8;\r\n\r\n return v.toString(16);\r\n },\r\n );\r\n\r\n return new Guid(value);\r\n }\r\n\r\n static Normalize = (\r\n uuid: string,\r\n changeCase:\r\n | 'upperCase'\r\n | 'lowercase'\r\n | 'ignore' = 'ignore',\r\n ): string => {\r\n if (!this.preValidate(uuid)) {\r\n throw new Error(\r\n 'Invalid GUID/UUID format',\r\n );\r\n }\r\n\r\n let normalizedUuid = uuid.replace(/-/g, '');\r\n\r\n switch (changeCase) {\r\n case 'upperCase':\r\n normalizedUuid =\r\n normalizedUuid.toUpperCase();\r\n break;\r\n\r\n case 'lowercase':\r\n normalizedUuid =\r\n normalizedUuid.toLowerCase();\r\n break;\r\n }\r\n\r\n return [\r\n normalizedUuid.slice(0, 8),\r\n normalizedUuid.slice(8, 12),\r\n normalizedUuid.slice(12, 16),\r\n normalizedUuid.slice(16, 20),\r\n normalizedUuid.slice(20),\r\n ].join('-');\r\n };\r\n\r\n static IsEmptyGuid(value: string): boolean {\r\n return (\r\n this.Normalize(value, 'lowercase') ===\r\n emptyGuidValue\r\n );\r\n }\r\n\r\n static Empty(): Guid {\r\n return new Guid(emptyGuidValue);\r\n }\r\n}\r\n","import { isNullOrUndefined } from \"./Utils\";\r\n\r\nexport const toCamelCase = (\r\n value: string,\r\n firstLetterCase: 'UpperCase' | 'LowerCase' | 'Unchanged' | undefined = 'Unchanged'\r\n): string | undefined =>\r\n{\r\n if (isNullOrUndefined(value))\r\n {\r\n return value;\r\n }\r\n\r\n const words = value.trim().split(/\\s+/); // Remove leading/trailing whitespaces and split by one or more spaces\r\n\r\n const transformedWords = words.map((word, index) =>\r\n {\r\n if (index === 0)\r\n {\r\n if (firstLetterCase === 'LowerCase')\r\n {\r\n return word.toLowerCase();\r\n }\r\n\r\n if (firstLetterCase === 'UpperCase')\r\n {\r\n return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\r\n }\r\n\r\n return word;\r\n }\r\n\r\n return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\r\n });\r\n\r\n return transformedWords.join(''); // Join all the words back into a single string\r\n};\r\n\r\nexport const toKebabCase = (value: string): string | undefined =>\r\n{\r\n if (isNullOrUndefined(value))\r\n {\r\n return value;\r\n }\r\n\r\n const words = value.trim().toLowerCase().split(/\\s+/); // Remove leading/trailing whitespaces, convert to lowercase, and split by one or more spaces\r\n\r\n return words.join('-'); // Join all the words with hyphens\r\n};\r\n\r\nexport const toTitleCase = (value: string): string | undefined =>\r\n{\r\n if (isNullOrUndefined(value))\r\n {\r\n return value;\r\n }\r\n\r\n const words = value.trim().split(/\\s+/); // Remove leading/trailing whitespaces and split by one or more spaces\r\n\r\n const transformedWords = words.map(word =>\r\n {\r\n return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\r\n });\r\n\r\n return transformedWords.join(' '); // Join all the words back into a single string with spaces\r\n};\r\n\r\nexport const slugify = (title: string): string => {\r\n if (!title) {\r\n return \"\";\r\n }\r\n\r\n const cleanedTitle = title.replace(/[^\\w\\s-]/g, \"\").trim();\r\n\r\n const lowerCaseTitle = cleanedTitle.toLowerCase();\r\n\r\n return lowerCaseTitle.replace(/[\\s-]+/g, \"_\");\r\n}","export const appendQueryParams = (url: string, params: Record = {}): string =>\r\n{\r\n const urlObj = new URL(url, window.location.origin);\r\n\r\n Object.keys(params).forEach(key => urlObj.searchParams.append(key, `${params[key]}`));\r\n\r\n return urlObj.toString();\r\n};\r\n","export const getDefaultValue = (\r\n source: any,\r\n defaultValue: any,\r\n) => {\r\n if (isNullOrUndefined(source)) {\r\n return defaultValue;\r\n }\r\n\r\n return source;\r\n};\r\n\r\nexport const isNullOrUndefined = (source: any) => {\r\n if (source == null || source == undefined) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const isNullOrUndefinedOrEmpty = (\r\n source: string | null | undefined,\r\n) => {\r\n if (\r\n isNullOrUndefined(source) ||\r\n source?.trim() === ''\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const notNullOrUndefined = (source: any) => {\r\n return !isNullOrUndefined(source);\r\n};\r\n\r\nexport const notNullOrUndefinedOrEmpty = (\r\n source: string | null | undefined,\r\n) => {\r\n return !isNullOrUndefinedOrEmpty(source);\r\n};\r\n\r\nexport const isValidArray = (source: any) => {\r\n if (Array.isArray(source) && source.length > 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const getNumberValueOrDefault = (\r\n value: number | undefined,\r\n defaultValue: number,\r\n): number => {\r\n if (isNullOrUndefined(value)) {\r\n return defaultValue;\r\n }\r\n\r\n return value as number;\r\n};\r\n\r\nexport const htmlDecode = (\r\n input: string,\r\n): string | null => {\r\n const e = document.createElement('div');\r\n\r\n e.innerHTML = input;\r\n\r\n if (e.childNodes.length === 0) {\r\n return null;\r\n }\r\n\r\n return e.innerHTML;\r\n};\r\n\r\nexport const zeroPad = (num: number, places: number) => {\r\n return String(num).padStart(places, '0');\r\n};\r\n\r\nexport const getNestedValue = (obj: any, path: string): any => {\r\n return path.split('.').reduce((prev, curr) => {\r\n return prev && prev[curr] !== undefined ? prev[curr] : undefined;\r\n }, obj);\r\n}","import {appendQueryParams} from \"./UrlUtils\";\r\n\r\nexport const loadImageAsBase64 = async (url: string): Promise =>\r\n{\r\n try\r\n {\r\n const response = await fetch(url);\r\n\r\n if (!response.ok)\r\n {\r\n throw new Error('Network response was not ok');\r\n }\r\n\r\n const blob = await response.blob();\r\n\r\n return new Promise((resolve, reject) =>\r\n {\r\n const reader = new FileReader();\r\n\r\n reader.onloadend = () =>\r\n {\r\n resolve(reader.result as string);\r\n };\r\n reader.onerror = reject;\r\n reader.readAsDataURL(blob);\r\n });\r\n } catch (error)\r\n {\r\n if (error instanceof Error)\r\n {\r\n throw new Error('Failed to load image as base64: ' + error.message);\r\n } else\r\n {\r\n throw new Error('Failed to load image as base64: Unknown error');\r\n }\r\n }\r\n};\r\n\r\nexport const getImageFullUrl = (baseUrl: string, width: number, height: number) =>\r\n{\r\n const imgWidth = Math.max(width, 1);\r\n const imgHeight = Math.max(height, 1);\r\n\r\n return appendQueryParams(baseUrl, {width: Math.round(imgWidth), height: Math.round(imgHeight)});\r\n};","import * as yup from 'yup';\r\nimport { IUserAddress } from '../types/UserInformationTypes';\r\n\r\n// Define the type for CountryCode\r\nexport type CountryCode = 'US' | 'GB' | 'CA' | string;\r\n\r\n// Define the interface for RegexPatterns\r\nexport interface RegexPatterns\r\n{\r\n [ key: string ]: RegExp;\r\n}\r\n\r\n// Regular expressions for validating postal codes for different countries\r\nexport const regexPatterns: RegexPatterns = {\r\n US: /^\\d{5}(?:[-\\s]\\d{4})?$/,\r\n GB: /^[A-Z]{1,2}[0-9R][0-9A-Z]? ?[0-9][A-Z]{2}$/,\r\n UK: /^[A-Z]{1,2}[0-9R][0-9A-Z]? ?[0-9][A-Z]{2}$/, // UK alias for GB\r\n CA: /^[A-Za-z]\\d[A-Za-z][ -]?\\d[A-Za-z]\\d$/\r\n};\r\n\r\n// Function to validate postal code based on country\r\nconst validatePostalCode = (country: CountryCode, value?: string): boolean =>\r\n{\r\n if (!value)\r\n {\r\n return false; // If no value, validation fails\r\n }\r\n\r\n // Fallback to regex patterns for specific countries\r\n const regex = regexPatterns[ country ];\r\n\r\n if (regex)\r\n {\r\n return regex.test(value);\r\n }\r\n\r\n return false; // If no validation passed\r\n};\r\n\r\n// Function to validate postal code for all supported countries\r\nconst validatePostalCodeForAllCountries = (value?: string): boolean =>\r\n{\r\n return (\r\n validatePostalCode('US', value) ||\r\n validatePostalCode('GB', value) ||\r\n validatePostalCode('CA', value)\r\n );\r\n};\r\n\r\n// Define the validation schema using yup\r\nconst UserAddressValidator = yup.object({\r\n addressLine1: yup.string().required('Address Line 1 is required'),\r\n city: yup.string().required('City is required'),\r\n state: yup.string().required('State is required'),\r\n postalCode: yup.string()\r\n .required('Postal code is required')\r\n .test('isValidPostalCode', 'Postal code is not valid', validatePostalCodeForAllCountries),\r\n // country: yup.string().required('Country is required')\r\n});\r\n\r\nconst validateUserInformation = (addressInfo: IUserAddress): boolean =>\r\n{\r\n return validateUserAddressWithErrors(addressInfo).isValid;\r\n}\r\n\r\n// Function to validate address information\r\nconst validateUserAddressWithErrors = (addressInfo: IUserAddress): { isValid: boolean; errors: string[] | null } =>\r\n{\r\n try\r\n {\r\n // Validate the addressInfo object synchronously\r\n UserAddressValidator.validateSync(addressInfo, { abortEarly: false });\r\n\r\n return { isValid: true, errors: null };\r\n }\r\n catch (validationError)\r\n {\r\n // Handle validation errors\r\n if (validationError instanceof yup.ValidationError)\r\n {\r\n return { isValid: false, errors: validationError.errors };\r\n }\r\n\r\n // Handle other potential errors\r\n return { isValid: false, errors: [ 'An unexpected error occurred during validation' ] };\r\n }\r\n};\r\n\r\nexport default {\r\n validate: validateUserInformation,\r\n validateWithErrors: validateUserAddressWithErrors,\r\n schema: UserAddressValidator\r\n};\r\n","import * as yup from 'yup';\r\nimport { IRestApiUpdatePasswordRequestDTO } from '../stores/api/Generated/Entities/RestApiUpdatePasswordRequestDTO';\r\n\r\nconst UserChangePasswordSchema = yup.object({\r\n email: yup.string().email('Enter a valid email').required('Email is required'),\r\n oldPassword: yup.string().required('Old Password is required'),\r\n newPassword: yup.string().required('Password is required')\r\n .min(12, 'Password must be at least 12 characters long')\r\n .matches(/[A-Z]/, 'Password must include at least one uppercase letter')\r\n .matches(/[a-z]/, 'Password must include at least one lowercase letter')\r\n .matches(/[0-9]/, 'Password must include at least one number')\r\n .matches(/[$#!?*@]/, 'Password must include at least one special character ($, #, !, ?, *, or @)')\r\n .test(\r\n 'password-complexity',\r\n 'Password must include uppercase, lowercase, number, and special character',\r\n (value) => {\r\n return [/[A-Z]/, /[a-z]/, /[0-9]/, /[$#!?*@]/].every((pattern) => pattern.test(value));\r\n }\r\n ),\r\n confirmPassword: yup.string()\r\n .required('Please confirm your password')\r\n .oneOf([yup.ref('newPassword')], 'Passwords must match')\r\n});\r\n\r\nconst validateUserChangePassword = (updatePasswordRequestDTO: IRestApiUpdatePasswordRequestDTO): boolean => {\r\n return validateUserChangePasswordWithErrors(updatePasswordRequestDTO).isValid;\r\n}\r\n\r\nconst validateUserChangePasswordWithErrors = (updatePasswordRequestDTO: IRestApiUpdatePasswordRequestDTO) => {\r\n try {\r\n // Validate the userInfo object synchronously\r\n UserChangePasswordSchema.validateSync(updatePasswordRequestDTO, { abortEarly: false });\r\n\r\n return { isValid: true, errors: null };\r\n\r\n } catch (validationError) {\r\n // Handle validation errors\r\n if (validationError instanceof yup.ValidationError) {\r\n return { isValid: false, errors: validationError.errors };\r\n }\r\n\r\n // Handle other potential errors\r\n return { isValid: false, errors: ['An unexpected error occurred during validation'] };\r\n }\r\n};\r\n\r\nexport default {\r\n validate: validateUserChangePassword,\r\n validateWithErrors: validateUserChangePasswordWithErrors,\r\n schema: UserChangePasswordSchema\r\n};\r\n","import * as yup from 'yup';\r\nimport { IUserInformation } from '../types/UserInformationTypes';\r\n\r\n// Regular expression to validate phone numbers with extensions and different separators\r\nexport const phoneRegex = /^(\\+?\\d{1,4}?[\\s.-]?)?(\\(?\\d{3}\\)?[\\s.-]?)?[\\d\\s.-]{3,4}[\\s.-]?[\\d\\s.-]{4,6}(\\s?(x|ext|extension|:)\\s?\\d{1,5})?$/i;\r\n\r\nconst UserInformationSchema = yup.object({\r\n firstName: yup.string().required('First Name is required'),\r\n lastName: yup.string().required('Last Name is required'),\r\n email: yup.string().email('Enter a valid email').required('Email is required'),\r\n phone: yup.string().matches(phoneRegex, 'Phone number is not valid')\r\n});\r\n\r\nconst validateUserInformation = (userInfo: IUserInformation): boolean =>\r\n{\r\n return validateUserInformationWithErrors(userInfo).isValid;\r\n}\r\n\r\nconst validateUserInformationWithErrors = (userInfo: IUserInformation) =>\r\n{\r\n try\r\n {\r\n // Validate the userInfo object synchronously\r\n UserInformationSchema.validateSync(userInfo, { abortEarly: false });\r\n\r\n return { isValid: true, errors: null };\r\n\r\n } catch (validationError)\r\n {\r\n // Handle validation errors\r\n if (validationError instanceof yup.ValidationError)\r\n {\r\n return { isValid: false, errors: validationError.errors };\r\n }\r\n\r\n // Handle other potential errors\r\n return { isValid: false, errors: [ 'An unexpected error occurred during validation' ] };\r\n }\r\n};\r\n\r\nexport default {\r\n validate: validateUserInformation,\r\n validateWithErrors: validateUserInformationWithErrors,\r\n schema: UserInformationSchema\r\n};\r\n","import * as yup from 'yup';\r\nimport { IRestApiUpdatePasswordRequestDTO } from '../stores/api/Generated/Entities/RestApiUpdatePasswordRequestDTO';\r\n\r\nconst UserPasswordResetSchema = yup.object({\r\n newPassword: yup.string()\r\n .min(8, 'Password must be at least 8 characters long')\r\n .matches(/\\d/, 'Password must contain at least one digit')\r\n .matches(/\\W/, 'Password must contain at least one non-alphanumeric character')\r\n .matches(/[A-Z]/, 'Password must contain at least one uppercase letter')\r\n .matches(/[a-z]/, 'Password must contain at least one lowercase letter')\r\n .test('password-unique-chars', 'Password must contain at least 4 unique characters', (value) =>\r\n {\r\n const uniqueChars = value ? [ ...new Set(value.split('')) ] : [];\r\n return uniqueChars.length >= 4;\r\n })\r\n .required('Password is required'),\r\n\r\n confirmPassword: yup.string()\r\n .required('Please confirm your password')\r\n .oneOf([ yup.ref('newPassword') ], 'Passwords must match')\r\n});\r\n\r\nconst validateUserPasswordReset = (updatePasswordRequestDTO: IRestApiUpdatePasswordRequestDTO): boolean =>\r\n{\r\n return validateUserPasswordResetWithErrors(updatePasswordRequestDTO).isValid;\r\n}\r\n\r\nconst validateUserPasswordResetWithErrors = (updatePasswordRequestDTO: IRestApiUpdatePasswordRequestDTO) =>\r\n{\r\n try\r\n {\r\n // Validate the userInfo object synchronously\r\n UserPasswordResetSchema.validateSync(updatePasswordRequestDTO, { abortEarly: false });\r\n\r\n return { isValid: true, errors: null };\r\n\r\n } catch (validationError)\r\n {\r\n // Handle validation errors\r\n if (validationError instanceof yup.ValidationError)\r\n {\r\n return { isValid: false, errors: validationError.errors };\r\n }\r\n\r\n // Handle other potential errors\r\n return { isValid: false, errors: [ 'An unexpected error occurred during validation' ] };\r\n }\r\n};\r\n\r\nexport default {\r\n validate: validateUserPasswordReset,\r\n validateWithErrors: validateUserPasswordResetWithErrors,\r\n schema: UserPasswordResetSchema\r\n};\r\n","import * as yup from 'yup';\r\nimport cardValidator from 'card-validator';\r\n\r\nimport { IUserPaymentInformation } from '../types/UserInformationTypes';\r\n\r\n\r\n// Custom validation method for card number\r\nconst cardNumberValidation = (value: string) =>\r\n{\r\n const cardNumberValidation = cardValidator.number(value);\r\n return cardNumberValidation.isValid;\r\n};\r\n\r\nconst cardExpiryMonthValidation = (value: number | string) =>\r\n{\r\n const incrementedValue = (Number(value) + 1).toString();\r\n const expiryValidation = cardValidator.expirationMonth(incrementedValue);\r\n\r\n return expiryValidation.isValid;\r\n};\r\n\r\nconst cardExpiryYearValidation = (value: number | string) =>\r\n{\r\n const expiryValidation = cardValidator.expirationYear(value);\r\n\r\n return expiryValidation.isValid;\r\n};\r\n\r\n// Custom validation method for CVV\r\nconst cardCVVValidation = (value: number | string) =>\r\n{\r\n const cvvValidation = cardValidator.cvv(value);\r\n return cvvValidation.isValid;\r\n};\r\n\r\nconst UserPaymentInformationSchema = yup.object().shape({\r\n name: yup.string().required('Cardholder Name is required'),\r\n number: yup.string()\r\n .required('Card number is required')\r\n .test('test-card-number', 'Card number is invalid', value => cardNumberValidation(value || '')),\r\n expiryMonth: yup.string()\r\n .required('Expiry month is required')\r\n .test('test-expiry-month', 'Expiry month is invalid', value => cardExpiryMonthValidation(value || '')),\r\n expiryYear: yup.string()\r\n .required('Expiry Year is required')\r\n .test('test-expiry-year', 'Expiry year is invalid', value => cardExpiryYearValidation(value || '')),\r\n verificationCode: yup.string()\r\n .required('CVV is required')\r\n .test('test-cvv', 'CVV is invalid', value => cardCVVValidation(value || ''))\r\n});\r\n\r\nconst validateUserPaymentInformation = (paymentInfo: IUserPaymentInformation): boolean =>\r\n{\r\n return validateUserPaymentInformationWithErrors(paymentInfo).isValid;\r\n}\r\n\r\nconst validateUserPaymentInformationWithErrors = (paymentInfo: IUserPaymentInformation) =>\r\n{\r\n try\r\n {\r\n // Validate the userInfo object synchronously\r\n UserPaymentInformationSchema.validateSync(paymentInfo.creditCard, { abortEarly: false });\r\n\r\n return { isValid: true, errors: null };\r\n\r\n } catch (validationError)\r\n {\r\n // Handle validation errors\r\n if (validationError instanceof yup.ValidationError)\r\n {\r\n return { isValid: false, errors: validationError.errors };\r\n }\r\n\r\n // Handle other potential errors\r\n return { isValid: false, errors: [ 'An unexpected error occurred during validation' ] };\r\n }\r\n};\r\n\r\nexport default {\r\n validate: validateUserPaymentInformation,\r\n validateWithErrors: validateUserPaymentInformationWithErrors,\r\n schema: UserPaymentInformationSchema\r\n};\r\n","import * as Yup from 'yup';\r\n\r\nimport { IRestApiApplicationUser } from '../stores/api/Generated/Entities/RestApiApplicationUser';\r\n\r\nimport UserAddressValidator from './UserAddressValidator';\r\nimport UserInformationValidator from './UserInformationValidator';\r\n\r\nconst userProfileSchema = Yup.object().shape({\r\n information: UserInformationValidator.schema,\r\n addresses: Yup.object().shape({\r\n primary: UserAddressValidator.schema,\r\n billing: UserAddressValidator.schema,\r\n shipping: UserAddressValidator.schema,\r\n }),\r\n});\r\n\r\nconst validateUserProfile = (userProfile: IRestApiApplicationUser): boolean => {\r\n return validateUserProfileWithErrors(userProfile).isValid;\r\n}\r\n\r\nconst validateUserProfileWithErrors = (userProfile: IRestApiApplicationUser): { isValid: boolean; errors: string[] | null } => {\r\n try {\r\n // Validate the addressInfo object synchronously\r\n userProfileSchema.validateSync(userProfile, { abortEarly: false });\r\n\r\n return { isValid: true, errors: null };\r\n }\r\n catch (validationError) {\r\n // Handle validation errors\r\n if (validationError instanceof Yup.ValidationError) {\r\n return { isValid: false, errors: validationError.errors };\r\n }\r\n\r\n // Handle other potential errors\r\n return { isValid: false, errors: ['An unexpected error occurred during validation'] };\r\n }\r\n};\r\n\r\nexport default {\r\n validate: validateUserProfile,\r\n validateWithErrors: validateUserProfileWithErrors,\r\n schema: userProfileSchema\r\n};\r\n","import * as Yup from 'yup';\r\n\r\nimport { IRestApiRegisterUserDTO } from '../stores/api/Generated/Entities/RestApiRegisterUserDTO';\r\n\r\nimport UserInformationValidator from './UserInformationValidator';\r\n\r\n\r\nconst userRegisterSchema = Yup.object().shape({\r\n password: Yup.string().required('Password is required')\r\n .min(12, 'Password must be at least 12 characters long')\r\n .matches(/[A-Z]/, 'Password must include at least one uppercase letter')\r\n .matches(/[a-z]/, 'Password must include at least one lowercase letter')\r\n .matches(/[0-9]/, 'Password must include at least one number')\r\n .matches(/[$#!?*@]/, 'Password must include at least one special character ($, #, !, ?, *, or @)')\r\n .test(\r\n 'password-complexity',\r\n 'Password must include uppercase, lowercase, number, and special character',\r\n (value) => {\r\n return [/[A-Z]/, /[a-z]/, /[0-9]/, /[$#!?*@]/].every((pattern) => pattern.test(value));\r\n }\r\n ),\r\n confirmPassword: Yup.string()\r\n .required('Please confirm your password')\r\n .oneOf([Yup.ref('password')], 'Passwords must match'),\r\n userInformation: UserInformationValidator.schema,\r\n});\r\n\r\nconst validateUserRegister = (userProfile: IRestApiRegisterUserDTO): boolean => {\r\n return validateUserRegisterWithErrors(userProfile).isValid;\r\n}\r\n\r\nconst validateUserRegisterWithErrors = (userRegister: IRestApiRegisterUserDTO): { isValid: boolean; errors: string[] | null } => {\r\n try {\r\n // Validate the addressInfo object synchronously\r\n userRegisterSchema.validateSync(userRegister, { abortEarly: false });\r\n\r\n return { isValid: true, errors: null };\r\n }\r\n catch (validationError) {\r\n // Handle validation errors\r\n if (validationError instanceof Yup.ValidationError) {\r\n return { isValid: false, errors: validationError.errors };\r\n }\r\n\r\n // Handle other potential errors\r\n return { isValid: false, errors: ['An unexpected error occurred during validation'] };\r\n }\r\n};\r\n\r\nexport default {\r\n validate: validateUserRegister,\r\n validateWithErrors: validateUserRegisterWithErrors,\r\n schema: userRegisterSchema\r\n};\r\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 based on template\n\treturn \"react/js/\" + chunkId + \".\" + \"047a4be7b8cf18236336\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// 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__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7566: 0,\n\t5784: 0,\n\t6201: 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(!/^(5784|6201)$/.test(chunkId)) {\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} else installedChunks[chunkId] = 0;\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 = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkapp_gui\"] = self[\"webpackChunkapp_gui\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// 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, [2101,7254,4057,374,6528,8671,3358,1942,9307,2858,4516,9174,6612,5536,3246,2376,4872,999,118,4716,2430,4822,225,9207,6691,7401,3067,5007,3943,7601,8619,7776,5732,445,6725,2335,9533,8863,7125,9475,9851,4236,6305,4979,4559,386,8357,7583,2019,1713,9726,1196,2770,1602,7216,9119,1933,4611,5113,8351,5947,7090,4413,6900,6266,5243,8375,5419,4520,5918,4440,2983,5784,3611,4152,3373,6952,6107,7124,8762,8709,2738,5952,6407,1331,2049,6899,5027,4667,9691,5481,2029,6122,8152,9016,7074,266,7446,3428,6201,6492,8036,8500,1994,2558,981,9591,221,8586,5236], () => (__webpack_require__(32195)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","emptyGuidValue","Guid","Value","constructor","value","this","Normalize","length","IsEmpty","IsEmptyGuid","static","test","NewGuid","NewGuid2","replace","c","r","Math","random","toString","uuid","changeCase","preValidate","Error","normalizedUuid","toUpperCase","toLowerCase","slice","join","Empty","toCamelCase","firstLetterCase","trim","split","map","word","index","charAt","slugify","title","appendQueryParams","url","params","urlObj","URL","window","location","origin","Object","keys","forEach","key","searchParams","append","isNullOrUndefined","source","undefined","isNullOrUndefinedOrEmpty","notNullOrUndefined","notNullOrUndefinedOrEmpty","getNestedValue","obj","path","reduce","prev","curr","getImageFullUrl","baseUrl","width","height","imgWidth","max","imgHeight","round","regexPatterns","US","GB","UK","CA","validatePostalCode","country","regex","UserAddressValidator","addressLine1","required","city","state","postalCode","validateUserAddressWithErrors","addressInfo","validateSync","abortEarly","isValid","errors","validationError","validate","validateWithErrors","schema","UserChangePasswordSchema","email","oldPassword","newPassword","min","matches","every","pattern","confirmPassword","oneOf","validateUserChangePasswordWithErrors","updatePasswordRequestDTO","UserInformationSchema","firstName","lastName","phone","validateUserInformationWithErrors","userInfo","UserPasswordResetSchema","Set","validateUserPasswordResetWithErrors","UserPaymentInformationSchema","shape","name","number","cardNumberValidation","expiryMonth","incrementedValue","Number","cardExpiryMonthValidation","expiryYear","cardExpiryYearValidation","verificationCode","cardCVVValidation","validateUserPaymentInformationWithErrors","paymentInfo","creditCard","userProfileSchema","information","addresses","primary","billing","shipping","validateUserProfileWithErrors","userProfile","userRegisterSchema","password","userInformation","validateUserRegisterWithErrors","userRegister","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","id","loaded","__webpack_modules__","call","m","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","splice","n","getter","__esModule","d","a","getPrototypeOf","t","mode","then","ns","create","def","current","indexOf","getOwnPropertyNames","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","l","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","p","installedChunks","installedChunkData","promise","resolve","reject","error","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}