{"version":3,"sources":["pages/Account/LoginComponent.module.css","layouts/AccountLayout.js","apiclient/base.ts","apiclient/common.ts","apiclient/clients/account-api.ts","apiclient/clients/customer-api.ts","apiclient/clients/home-api.ts","apiclient/clients/pos-api.ts","apiclient/clients/receipt-api.ts","apiclient/configuration.ts","config.ts","components/PowerbyFooter.tsx","images/Powered by Marsello.png","contexts/NotyfContext.js","images/apple-logo-white.png","images/background.png","pages/Account/SignInPage.tsx","images/google-icon.png","images/f_logo_RGB-White_58.png","contexts/AccountContext.tsx","layouts/AppLayout.js","pages/Account/InstorePage.tsx","images/AndroidInstructions.png","images/AppleInstructions.png","images/close-icon.svg","pages/Home/MyCardModalComponent.tsx","components/JQueryMenuCode.tsx","components/Header.tsx","pages/Account/NotificationsPage.tsx","pages/Account/Page404.tsx","pages/Account/VerifyPage.tsx","pages/Customer/CustomersProfilePage/ManualAdjustmentModalComponent.tsx","pages/Customer/CustomersProfilePage/CustomerDetailsComponent.tsx","pages/Customer/CustomersProfilePage/RedeemRewardListComponent.tsx","pages/Customer/CustomersProfilePage/CustomersProfilePage.tsx","pages/Earn/CompleteProfileModalComponent.tsx","pages/Earn/ReferralModalComponent.tsx","images/emoji_hands.png","pages/Earn/EarnPage.tsx","images/img.png","components/JQueryCirclePercentCode.tsx","pages/Redeem/RedeemModalComponent.tsx","pages/Home/HomePage.tsx","pages/Receipt/ReceiptPage.tsx","pages/Receipt/ReceiptsPage.tsx","pages/Redeem/RedeemPage.tsx","images/arrow.png","routes.js","App.tsx","serviceWorkerRegistration.js","reportWebVitals.js","index.js"],"names":["module","exports","AccountLayout","children","Fragment","className","BASE_PATH","replace","BaseAPI","configuration","basePath","axios","globalAxios","this","RequiredError","field","msg","name","Error","DUMMY_BASE_URL","assertParamExists","functionName","paramName","paramValue","undefined","setSearchParams","url","searchParams","URLSearchParams","search","objects","object","key","Array","isArray","delete","item","append","set","toString","serializeDataIfNeeded","value","requestOptions","nonString","isJsonMime","headers","JSON","stringify","toPathString","pathname","hash","createRequestFunction","axiosArgs","axiosRequestArgs","options","request","AccountApiFp","localVarAxiosParamCreator","accountCustomerUtmTrackingUpdatePost","apiVersion","utmTrackingPostRequestModel","a","localVarUrlObj","URL","baseOptions","localVarRequestOptions","method","localVarHeaderParameter","localVarQueryParameter","headersFromBaseOptions","data","accountLoggedinGet","accountLoginProviderGet","provider","localVarPath","encodeURIComponent","String","accountLogoutGet","accountLogoutPost","accountSignInGet","accountUpdateMarketingPreferencesPost","updateMarketingPreferencesPayload","AccountApiAxiosParamCreator","localVarAxiosArgs","AccountApi","then","CustomerApiFp","customerGet","customerPost","signUpPostRequestModel","customerVerifyTokenGet","token","CustomerApiAxiosParamCreator","CustomerApi","HomeApiFp","homeCompleteCustomerProfilePost","completeProfilePostPayload","homeGetTranslationDataGet","homeRecordActivityPost","earnOptionName","HomeApiAxiosParamCreator","HomeApi","PosApiFp","apiPosCustomerCustomerIdRewardRewardIdPut","customerId","rewardId","apiPosCustomerEmailGet","email","PosApiAxiosParamCreator","PosApi","ReceiptApiFp","receiptReceiptGet","id","receiptReceiptPdfGet","orderId","receiptReceiptsGet","ReceiptApiAxiosParamCreator","ReceiptApi","Configuration","param","apiKey","username","password","accessToken","formDataCtor","mime","jsonMime","RegExp","test","toLowerCase","apiConfig","baseUrl","window","location","protocol","PowerbyFooter","href","target","style","display","justifyContent","src","marginTop","React","createContext","Notyf","duration","position","x","y","types","type","backgroundColor","icon","tagName","SignInPage","customerApi","useState","model","setModel","verificationSent","setData","unverifiedEmail","error","setError","notyf","useContext","NotyfContext","authContext","AuthContext","loginWindow","openLoginPopup","subUrl","loginUrl","open","onfocus","reload","useEffect","account","updateManifest","resData","myDynamicManifest","accountBranding","appShortName","companyName","appIconUrl","stringManifest","blob","Blob","manifestURL","createObjectURL","document","querySelector","setAttribute","signupBannerUrl","alt","defaultBanner","styles","signInFormContainer","textCenter","headerText","lineHeight24","hidden","authenticated","placeholder","requireEmail","required","onChange","event","htmlFor","color","Button","onClick","customer_id","localStorage","getItem","acceptMarketing","res","status","message","ripple","dismissible","setTimeout","refreshCustomer","catch","err","response","loginButtonContainer","variant","googleLoginButton","loginButtonGoogleLogo","facebookLoginButton","loginButtonFacebookLogo","appleLoginButton","appleIcon","loginButtonAppleLogo","acceptMarketingTermsText","rel","initialState","customer","signOut","AuthProvider","accountApi","loading","setLoading","state","setState","font","primaryFont","fontUrl","primaryFontUrl","length","fontWidget","createElement","head","appendChild","styleWidget","sheet","insertRule","buttonBackgroundColor","buttonTextColor","buttonSelectedBackgroundColor","bannerBackgroundColor","backgroundRgb","hex","result","exec","r","parseInt","g","b","hextoRgb","backgroundWithOpacity","ApplyDynamicStyle","Provider","Spinner","animation","role","AppLayout","InstorePage","useSearchParams","navigate","useNavigate","utm_source","get","utm_medium","utm_campaign","utm_id","setItem","MyCardModalComponent","props","showModalSaveToHomescreen","setShowModalSaveToHomescreen","Modal","show","onHide","closeIcon","membershipId","size","customerMobile","customerName","customerEmail","includes","navigator","platform","userAgent","iosInstructions","androidInstructions","JQueryMenuCode","jQuerycode","$","click","toggleClass","slideToggle","parent","siblings","find","removeClass","slideUp","Component","Header","parentModel","branding","setBranding","showMyCardPopup","setShowMyCardPopup","fetchData","navLogoUrl","NotificationsPage","inputs","setInputs","validated","setValidated","disableAllNotifications","subscribedNotifications","optedOutSmsMarketing","subscribedSms","optedOutEmailMarketing","subscribed","handleChange","checked","values","Form","noValidate","onSubmit","form","currentTarget","preventDefault","stopPropagation","checkValidity","Row","Group","Check","label","Col","Page404","VerifyPage","verified","setAccount","useParams","ManualAdjustmentModalComponent","pointsBalance","newPointsBalance","setNewPointsBalance","newBalance","isOpen","onEntered","closeButton","Title","firstname","Body","toLocaleString","Label","Control","pointsToGive","Feedback","sendEmail","comment","Footer","CustomerDetailsComponent","isPointsAdjustModalOpen","setIsPointsAdjustModalOpen","Card","firstName","lastName","width","height","phone","balance","tierName","gender","renderDetailsCard","updatePointsBalance","RedeemRewardListComponent","redeemCallback","posApi","rewards","RedeemReward","reward","finally","map","index","points","alignItems","disabled","renderReward","CustomersProfilePage","posAccount","setPOSAccount","setPOSContextData","setCustomer","fetchDetails","consumer","pos_getCurrentAccount","intervalId","setInterval","posContext","clearInterval","defaults","common","locationId","process","title","margin","Container","fluid","md","xl","paddingTop","paddingBottom","pos_toggleGlobalDiscount","redeemCode","pos_close","Alert","homeApi","CompleteProfileModalComponent","saving","setSaving","helperData","setHelperData","birthdate","emailAddress","customerFirstname","lastname","customerLastname","completedProfilePoints","pointsLabel","onSave","as","xs","defaultValue","controlId","max","moment","format","Select","genderTranslations","maleText","femaleText","notSpecifiedTect","ReferralModalComponent","setReferralLink","referralLink","referralPointsToEarn","referredRewardTitle","text","onCopy","FacebookShareButton","quote","referralSocialShareText","FacebookIcon","round","TwitterShareButton","TwitterIcon","WhatsappShareButton","separator","WhatsappIcon","EmailShareButton","subject","EmailIcon","LineShareButton","LineIcon","EarnPage","homepageApi","showReferralPopup","setShowReferralPopup","showCompleteProfilePopup","setShowCompleteProfilePopup","completingOption","setCompletingOption","refreshModel","RenderEarnOption","option","description","fontWeight","threshold","lastRewarded","destinationUrl","redirectUrl","completeActivity","earningPointsMessage","earnOptions","i","CustomJQueryPercentCode","backgroundBannerColor","each","$this","$dataV","$dataDeg","$round","$rotateParam","css","prop","animate","Counter","easing","step","now","Math","ceil","addClass","RedeemModalComponent","pointsRequired","rewardTitle","terms","HomePage","showRedeemPopup","setShowRedeemPopup","rewardToRedeem","setRewardToRedeem","isLoading","saveUtmsToCustomer","postModel","utmCampaign","utmId","utmMedium","utmSource","removeItem","percentProgressUntilNextReward","pointsToSpend","numPointsUntilNextReward","availableToRedeemRewardList","badgeTitle","ReceiptPage","receiptApi","receiptModel","setReceiptModel","saveUtmsToStorage","console","log","siteName","utc","orderDateAt","local","sourceOrderId","ReceiptsPage","RenderReceiptListItem","total","RedeemPage","endDate","lockedRewardList","pointsNeededToUnlockReward","percentProgressUntilUnlockReward","routes","path","element","App","content","useRoutes","titleTemplate","defaultTitle","Boolean","hostname","match","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","rootElement","getElementsByTagName","getAttribute","getElementById","ReactDOM","render","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.fe3c03a2.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"loginButtonFullWidth\":\"LoginComponent_loginButtonFullWidth__1L2cP\",\"loginButtonContainer\":\"LoginComponent_loginButtonContainer__3h1C8\",\"textCenter\":\"LoginComponent_textCenter__2OmBV\",\"headerText\":\"LoginComponent_headerText__5nZSE\",\"appleLoginButton\":\"LoginComponent_appleLoginButton__1EbJd\",\"loginButtonAppleLogo\":\"LoginComponent_loginButtonAppleLogo__6XhaY\",\"facebookLoginButton\":\"LoginComponent_facebookLoginButton__316Th\",\"loginButtonFacebookLogo\":\"LoginComponent_loginButtonFacebookLogo__nXoWL\",\"loginButtonGoogleLogo\":\"LoginComponent_loginButtonGoogleLogo__2A2G0\",\"googleLoginButton\":\"LoginComponent_googleLoginButton__1ExS4\",\"signInFormContainer\":\"LoginComponent_signInFormContainer__21DFH\",\"acceptMarketingTermsText\":\"LoginComponent_acceptMarketingTermsText__rzIQi\",\"lineHeight24\":\"LoginComponent_lineHeight24__2MqOh\",\"loginIframe\":\"LoginComponent_loginIframe__52PZJ\"};","import React, { Component } from 'react';\r\nimport { Outlet } from \"react-router-dom\";\r\n\r\nconst AccountLayout = ({children}) => {\r\n\r\n return (\r\n \r\n
\r\n {children}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AccountLayout;","/* tslint:disable */\n/* eslint-disable */\n/**\n * Marsello Manage API\n * An API to support POS integrations.\n *\n * The version of the OpenAPI document: 1.0\n * Contact: landon@marsello.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport { Configuration } from \"./configuration\";\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';\n\nexport const BASE_PATH = \"http://localhost\".replace(/\\/+$/, \"\");\n\n/**\n *\n * @export\n */\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\n/**\n *\n * @export\n * @interface RequestArgs\n */\nexport interface RequestArgs {\n url: string;\n options: AxiosRequestConfig;\n}\n\n/**\n *\n * @export\n * @class BaseAPI\n */\nexport class BaseAPI {\n protected configuration: Configuration | undefined;\n\n constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {\n if (configuration) {\n this.configuration = configuration;\n this.basePath = configuration.basePath || this.basePath;\n }\n }\n};\n\n/**\n *\n * @export\n * @class RequiredError\n * @extends {Error}\n */\nexport class RequiredError extends Error {\n name: \"RequiredError\" = \"RequiredError\";\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Marsello Manage API\n * An API to support POS integrations.\n *\n * The version of the OpenAPI document: 1.0\n * Contact: landon@marsello.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport { Configuration } from \"./configuration\";\nimport { RequiredError, RequestArgs } from \"./base\";\nimport { AxiosInstance, AxiosResponse } from 'axios';\n\n/**\n *\n * @export\n */\nexport const DUMMY_BASE_URL = 'https://example.com'\n\n/**\n *\n * @throws {RequiredError}\n * @export\n */\nexport const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) {\n if (paramValue === null || paramValue === undefined) {\n throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);\n }\n}\n\n/**\n *\n * @export\n */\nexport const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) {\n if (configuration && configuration.apiKey) {\n const localVarApiKeyValue = typeof configuration.apiKey === 'function'\n ? await configuration.apiKey(keyParamName)\n : await configuration.apiKey;\n object[keyParamName] = localVarApiKeyValue;\n }\n}\n\n/**\n *\n * @export\n */\nexport const setBasicAuthToObject = function (object: any, configuration?: Configuration) {\n if (configuration && (configuration.username || configuration.password)) {\n object[\"auth\"] = { username: configuration.username, password: configuration.password };\n }\n}\n\n/**\n *\n * @export\n */\nexport const setBearerAuthToObject = async function (object: any, configuration?: Configuration) {\n if (configuration && configuration.accessToken) {\n const accessToken = typeof configuration.accessToken === 'function'\n ? await configuration.accessToken()\n : await configuration.accessToken;\n object[\"Authorization\"] = \"Bearer \" + accessToken;\n }\n}\n\n/**\n *\n * @export\n */\nexport const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) {\n if (configuration && configuration.accessToken) {\n const localVarAccessTokenValue = typeof configuration.accessToken === 'function'\n ? await configuration.accessToken(name, scopes)\n : await configuration.accessToken;\n object[\"Authorization\"] = \"Bearer \" + localVarAccessTokenValue;\n }\n}\n\n/**\n *\n * @export\n */\nexport const setSearchParams = function (url: URL, ...objects: any[]) {\n const searchParams = new URLSearchParams(url.search);\n for (const object of objects) {\n for (const key in object) {\n if (Array.isArray(object[key])) {\n searchParams.delete(key);\n for (const item of object[key]) {\n searchParams.append(key, item);\n }\n } else {\n searchParams.set(key, object[key]);\n }\n }\n }\n url.search = searchParams.toString();\n}\n\n/**\n *\n * @export\n */\nexport const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) {\n const nonString = typeof value !== 'string';\n const needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(requestOptions.headers['Content-Type'])\n : nonString;\n return needsSerialization\n ? JSON.stringify(value !== undefined ? value : {})\n : (value || \"\");\n}\n\n/**\n *\n * @export\n */\nexport const toPathString = function (url: URL) {\n return url.pathname + url.search + url.hash\n}\n\n/**\n *\n * @export\n */\nexport const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {\n return >(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Marsello Manage API\n * An API to support POS integrations.\n *\n * The version of the OpenAPI document: 1.0\n * Contact: landon@marsello.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';\nimport { Configuration } from '../configuration';\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common';\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';\n// @ts-ignore\nimport { SignInPageViewModel } from '../models';\n// @ts-ignore\nimport { UpdateMarketingPreferencesPayload } from '../models';\n// @ts-ignore\nimport { UtmTrackingPostRequestModel } from '../models';\n/**\n * AccountApi - axios parameter creator\n * @export\n */\nexport const AccountApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {UtmTrackingPostRequestModel} [utmTrackingPostRequestModel] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountCustomerUtmTrackingUpdatePost: async (apiVersion?: string, utmTrackingPostRequestModel?: UtmTrackingPostRequestModel, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/Account/CustomerUtmTrackingUpdate`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(utmTrackingPostRequestModel, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountLoggedinGet: async (apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/Account/loggedin`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} provider \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountLoginProviderGet: async (provider: string, apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'provider' is not null or undefined\n assertParamExists('accountLoginProviderGet', 'provider', provider)\n const localVarPath = `/Account/login/{provider}`\n .replace(`{${\"provider\"}}`, encodeURIComponent(String(provider)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountLogoutGet: async (apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/Account/logout`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountLogoutPost: async (apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/Account/logout`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountSignInGet: async (apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/Account/SignIn`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {UpdateMarketingPreferencesPayload} [updateMarketingPreferencesPayload] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountUpdateMarketingPreferencesPost: async (apiVersion?: string, updateMarketingPreferencesPayload?: UpdateMarketingPreferencesPayload, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/Account/UpdateMarketingPreferences`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(updateMarketingPreferencesPayload, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * AccountApi - functional programming interface\n * @export\n */\nexport const AccountApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = AccountApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {UtmTrackingPostRequestModel} [utmTrackingPostRequestModel] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async accountCustomerUtmTrackingUpdatePost(apiVersion?: string, utmTrackingPostRequestModel?: UtmTrackingPostRequestModel, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountCustomerUtmTrackingUpdatePost(apiVersion, utmTrackingPostRequestModel, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async accountLoggedinGet(apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountLoggedinGet(apiVersion, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} provider \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async accountLoginProviderGet(provider: string, apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountLoginProviderGet(provider, apiVersion, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async accountLogoutGet(apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountLogoutGet(apiVersion, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async accountLogoutPost(apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountLogoutPost(apiVersion, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async accountSignInGet(apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountSignInGet(apiVersion, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {UpdateMarketingPreferencesPayload} [updateMarketingPreferencesPayload] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async accountUpdateMarketingPreferencesPost(apiVersion?: string, updateMarketingPreferencesPayload?: UpdateMarketingPreferencesPayload, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.accountUpdateMarketingPreferencesPost(apiVersion, updateMarketingPreferencesPayload, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * AccountApi - factory interface\n * @export\n */\nexport const AccountApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = AccountApiFp(configuration)\n return {\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {UtmTrackingPostRequestModel} [utmTrackingPostRequestModel] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountCustomerUtmTrackingUpdatePost(apiVersion?: string, utmTrackingPostRequestModel?: UtmTrackingPostRequestModel, options?: any): AxiosPromise {\n return localVarFp.accountCustomerUtmTrackingUpdatePost(apiVersion, utmTrackingPostRequestModel, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountLoggedinGet(apiVersion?: string, options?: any): AxiosPromise {\n return localVarFp.accountLoggedinGet(apiVersion, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} provider \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountLoginProviderGet(provider: string, apiVersion?: string, options?: any): AxiosPromise {\n return localVarFp.accountLoginProviderGet(provider, apiVersion, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountLogoutGet(apiVersion?: string, options?: any): AxiosPromise {\n return localVarFp.accountLogoutGet(apiVersion, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountLogoutPost(apiVersion?: string, options?: any): AxiosPromise {\n return localVarFp.accountLogoutPost(apiVersion, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountSignInGet(apiVersion?: string, options?: any): AxiosPromise {\n return localVarFp.accountSignInGet(apiVersion, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {UpdateMarketingPreferencesPayload} [updateMarketingPreferencesPayload] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n accountUpdateMarketingPreferencesPost(apiVersion?: string, updateMarketingPreferencesPayload?: UpdateMarketingPreferencesPayload, options?: any): AxiosPromise {\n return localVarFp.accountUpdateMarketingPreferencesPost(apiVersion, updateMarketingPreferencesPayload, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * AccountApi - object-oriented interface\n * @export\n * @class AccountApi\n * @extends {BaseAPI}\n */\nexport class AccountApi extends BaseAPI {\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {UtmTrackingPostRequestModel} [utmTrackingPostRequestModel] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountApi\n */\n public accountCustomerUtmTrackingUpdatePost(apiVersion?: string, utmTrackingPostRequestModel?: UtmTrackingPostRequestModel, options?: AxiosRequestConfig) {\n return AccountApiFp(this.configuration).accountCustomerUtmTrackingUpdatePost(apiVersion, utmTrackingPostRequestModel, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountApi\n */\n public accountLoggedinGet(apiVersion?: string, options?: AxiosRequestConfig) {\n return AccountApiFp(this.configuration).accountLoggedinGet(apiVersion, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} provider \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountApi\n */\n public accountLoginProviderGet(provider: string, apiVersion?: string, options?: AxiosRequestConfig) {\n return AccountApiFp(this.configuration).accountLoginProviderGet(provider, apiVersion, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountApi\n */\n public accountLogoutGet(apiVersion?: string, options?: AxiosRequestConfig) {\n return AccountApiFp(this.configuration).accountLogoutGet(apiVersion, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountApi\n */\n public accountLogoutPost(apiVersion?: string, options?: AxiosRequestConfig) {\n return AccountApiFp(this.configuration).accountLogoutPost(apiVersion, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountApi\n */\n public accountSignInGet(apiVersion?: string, options?: AxiosRequestConfig) {\n return AccountApiFp(this.configuration).accountSignInGet(apiVersion, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {UpdateMarketingPreferencesPayload} [updateMarketingPreferencesPayload] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof AccountApi\n */\n public accountUpdateMarketingPreferencesPost(apiVersion?: string, updateMarketingPreferencesPayload?: UpdateMarketingPreferencesPayload, options?: AxiosRequestConfig) {\n return AccountApiFp(this.configuration).accountUpdateMarketingPreferencesPost(apiVersion, updateMarketingPreferencesPayload, options).then((request) => request(this.axios, this.basePath));\n }\n}\n","/* tslint:disable */\r\n/* eslint-disable */\r\n/**\r\n * Marsello Manage API\r\n * An API to support POS integrations.\r\n *\r\n * The version of the OpenAPI document: 1.0\r\n * Contact: landon@marsello.com\r\n *\r\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\r\n * https://openapi-generator.tech\r\n * Do not edit the class manually.\r\n */\r\n\r\n\r\nimport globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';\r\nimport { Configuration } from '../configuration';\r\n// Some imports not used depending on template conditions\r\n// @ts-ignore\r\nimport { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common';\r\n// @ts-ignore\r\nimport { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';\r\n// @ts-ignore\r\nimport { PortalCustomerModel } from '../models';\r\n// @ts-ignore\r\nimport { SignUpPostRequestModel } from '../models';\r\n/**\r\n * CustomerApi - axios parameter creator\r\n * @export\r\n */\r\nexport const CustomerApiAxiosParamCreator = function (configuration?: Configuration) {\r\n return {\r\n /**\r\n * \r\n * @param {string} [apiVersion] The requested API version\r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n customerGet: async (apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\r\n const localVarPath = `/Customer`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n if (apiVersion !== undefined) {\r\n localVarQueryParameter['api-version'] = apiVersion;\r\n }\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} [apiVersion] The requested API version\r\n * @param {SignUpPostRequestModel} [signUpPostRequestModel] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n customerPost: async (apiVersion?: string, signUpPostRequestModel?: SignUpPostRequestModel, options: AxiosRequestConfig = {}): Promise => {\r\n const localVarPath = `/Customer`;\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n if (apiVersion !== undefined) {\r\n localVarQueryParameter['api-version'] = apiVersion;\r\n }\r\n\r\n\r\n \r\n localVarHeaderParameter['Content-Type'] = 'application/json';\r\n\r\n setSearchParams(localVarUrlObj, localVarQueryParameter);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n localVarRequestOptions.data = serializeDataIfNeeded(signUpPostRequestModel, localVarRequestOptions, configuration)\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n /**\r\n * \r\n * @param {string} token \r\n * @param {string} [apiVersion] The requested API version\r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n customerVerifyTokenGet: async (token: string, apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\r\n // verify required parameter 'token' is not null or undefined\r\n assertParamExists('customerVerifyTokenGet', 'token', token)\r\n const localVarPath = `/Customer/verify/{token}`\r\n .replace(`{${\"token\"}}`, encodeURIComponent(String(token)));\r\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\r\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\r\n let baseOptions;\r\n if (configuration) {\r\n baseOptions = configuration.baseOptions;\r\n }\r\n\r\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\r\n const localVarHeaderParameter = {} as any;\r\n const localVarQueryParameter = {} as any;\r\n\r\n if (apiVersion !== undefined) {\r\n localVarQueryParameter['api-version'] = apiVersion;\r\n }\r\n\r\n\r\n \r\n setSearchParams(localVarUrlObj, localVarQueryParameter);\r\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\r\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\r\n\r\n return {\r\n url: toPathString(localVarUrlObj),\r\n options: localVarRequestOptions,\r\n };\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * CustomerApi - functional programming interface\r\n * @export\r\n */\r\nexport const CustomerApiFp = function(configuration?: Configuration) {\r\n const localVarAxiosParamCreator = CustomerApiAxiosParamCreator(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {string} [apiVersion] The requested API version\r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async customerGet(apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.customerGet(apiVersion, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} [apiVersion] The requested API version\r\n * @param {SignUpPostRequestModel} [signUpPostRequestModel] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async customerPost(apiVersion?: string, signUpPostRequestModel?: SignUpPostRequestModel, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.customerPost(apiVersion, signUpPostRequestModel, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n /**\r\n * \r\n * @param {string} token \r\n * @param {string} [apiVersion] The requested API version\r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n async customerVerifyTokenGet(token: string, apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\r\n const localVarAxiosArgs = await localVarAxiosParamCreator.customerVerifyTokenGet(token, apiVersion, options);\r\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\r\n },\r\n }\r\n};\r\n\r\n/**\r\n * CustomerApi - factory interface\r\n * @export\r\n */\r\nexport const CustomerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\r\n const localVarFp = CustomerApiFp(configuration)\r\n return {\r\n /**\r\n * \r\n * @param {string} [apiVersion] The requested API version\r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n customerGet(apiVersion?: string, options?: any): AxiosPromise {\r\n return localVarFp.customerGet(apiVersion, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} [apiVersion] The requested API version\r\n * @param {SignUpPostRequestModel} [signUpPostRequestModel] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n customerPost(apiVersion?: string, signUpPostRequestModel?: SignUpPostRequestModel, options?: any): AxiosPromise {\r\n return localVarFp.customerPost(apiVersion, signUpPostRequestModel, options).then((request) => request(axios, basePath));\r\n },\r\n /**\r\n * \r\n * @param {string} token \r\n * @param {string} [apiVersion] The requested API version\r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n */\r\n customerVerifyTokenGet(token: string, apiVersion?: string, options?: any): AxiosPromise {\r\n return localVarFp.customerVerifyTokenGet(token, apiVersion, options).then((request) => request(axios, basePath));\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * CustomerApi - object-oriented interface\r\n * @export\r\n * @class CustomerApi\r\n * @extends {BaseAPI}\r\n */\r\nexport class CustomerApi extends BaseAPI {\r\n /**\r\n * \r\n * @param {string} [apiVersion] The requested API version\r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof CustomerApi\r\n */\r\n public customerGet(apiVersion?: string, options?: AxiosRequestConfig) {\r\n return CustomerApiFp(this.configuration).customerGet(apiVersion, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} [apiVersion] The requested API version\r\n * @param {SignUpPostRequestModel} [signUpPostRequestModel] \r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof CustomerApi\r\n */\r\n public customerPost(apiVersion?: string, signUpPostRequestModel?: SignUpPostRequestModel, options?: AxiosRequestConfig) {\r\n return CustomerApiFp(this.configuration).customerPost(apiVersion, signUpPostRequestModel, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n\r\n /**\r\n * \r\n * @param {string} token \r\n * @param {string} [apiVersion] The requested API version\r\n * @param {*} [options] Override http request option.\r\n * @throws {RequiredError}\r\n * @memberof CustomerApi\r\n */\r\n public customerVerifyTokenGet(token: string, apiVersion?: string, options?: AxiosRequestConfig) {\r\n return CustomerApiFp(this.configuration).customerVerifyTokenGet(token, apiVersion, options).then((request) => request(this.axios, this.basePath));\r\n }\r\n}\r\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Marsello Manage API\n * An API to support POS integrations.\n *\n * The version of the OpenAPI document: 1.0\n * Contact: landon@marsello.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';\nimport { Configuration } from '../configuration';\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common';\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';\n// @ts-ignore\nimport { ActivityResultModel } from '../models';\n// @ts-ignore\nimport { CompleteProfilePostPayload } from '../models';\n// @ts-ignore\nimport { TranslationData } from '../models';\n/**\n * HomeApi - axios parameter creator\n * @export\n */\nexport const HomeApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {CompleteProfilePostPayload} [completeProfilePostPayload] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n homeCompleteCustomerProfilePost: async (apiVersion?: string, completeProfilePostPayload?: CompleteProfilePostPayload, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/Home/CompleteCustomerProfile`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json';\n\n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n localVarRequestOptions.data = serializeDataIfNeeded(completeProfilePostPayload, localVarRequestOptions, configuration)\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n homeGetTranslationDataGet: async (apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/Home/GetTranslationData`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} [earnOptionName] \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n homeRecordActivityPost: async (earnOptionName?: string, apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/Home/RecordActivity`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (earnOptionName !== undefined) {\n localVarQueryParameter['earnOptionName'] = earnOptionName;\n }\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * HomeApi - functional programming interface\n * @export\n */\nexport const HomeApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = HomeApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {CompleteProfilePostPayload} [completeProfilePostPayload] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async homeCompleteCustomerProfilePost(apiVersion?: string, completeProfilePostPayload?: CompleteProfilePostPayload, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.homeCompleteCustomerProfilePost(apiVersion, completeProfilePostPayload, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async homeGetTranslationDataGet(apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.homeGetTranslationDataGet(apiVersion, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} [earnOptionName] \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async homeRecordActivityPost(earnOptionName?: string, apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.homeRecordActivityPost(earnOptionName, apiVersion, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * HomeApi - factory interface\n * @export\n */\nexport const HomeApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = HomeApiFp(configuration)\n return {\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {CompleteProfilePostPayload} [completeProfilePostPayload] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n homeCompleteCustomerProfilePost(apiVersion?: string, completeProfilePostPayload?: CompleteProfilePostPayload, options?: any): AxiosPromise {\n return localVarFp.homeCompleteCustomerProfilePost(apiVersion, completeProfilePostPayload, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n homeGetTranslationDataGet(apiVersion?: string, options?: any): AxiosPromise {\n return localVarFp.homeGetTranslationDataGet(apiVersion, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} [earnOptionName] \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n homeRecordActivityPost(earnOptionName?: string, apiVersion?: string, options?: any): AxiosPromise {\n return localVarFp.homeRecordActivityPost(earnOptionName, apiVersion, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * HomeApi - object-oriented interface\n * @export\n * @class HomeApi\n * @extends {BaseAPI}\n */\nexport class HomeApi extends BaseAPI {\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {CompleteProfilePostPayload} [completeProfilePostPayload] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof HomeApi\n */\n public homeCompleteCustomerProfilePost(apiVersion?: string, completeProfilePostPayload?: CompleteProfilePostPayload, options?: AxiosRequestConfig) {\n return HomeApiFp(this.configuration).homeCompleteCustomerProfilePost(apiVersion, completeProfilePostPayload, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof HomeApi\n */\n public homeGetTranslationDataGet(apiVersion?: string, options?: AxiosRequestConfig) {\n return HomeApiFp(this.configuration).homeGetTranslationDataGet(apiVersion, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} [earnOptionName] \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof HomeApi\n */\n public homeRecordActivityPost(earnOptionName?: string, apiVersion?: string, options?: AxiosRequestConfig) {\n return HomeApiFp(this.configuration).homeRecordActivityPost(earnOptionName, apiVersion, options).then((request) => request(this.axios, this.basePath));\n }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Marsello Manage API\n * An API to support POS integrations.\n *\n * The version of the OpenAPI document: 1.0\n * Contact: landon@marsello.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';\nimport { Configuration } from '../configuration';\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common';\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';\n// @ts-ignore\nimport { CustomerModel } from '../models';\n// @ts-ignore\nimport { RewardModel } from '../models';\n/**\n * PosApi - axios parameter creator\n * @export\n */\nexport const PosApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} customerId \n * @param {string} rewardId \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n apiPosCustomerCustomerIdRewardRewardIdPut: async (customerId: string, rewardId: string, apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'customerId' is not null or undefined\n assertParamExists('apiPosCustomerCustomerIdRewardRewardIdPut', 'customerId', customerId)\n // verify required parameter 'rewardId' is not null or undefined\n assertParamExists('apiPosCustomerCustomerIdRewardRewardIdPut', 'rewardId', rewardId)\n const localVarPath = `/Pos/customer/{customerId}/reward/{rewardId}`\n .replace(`{${\"customerId\"}}`, encodeURIComponent(String(customerId)))\n .replace(`{${\"rewardId\"}}`, encodeURIComponent(String(rewardId)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} email \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n apiPosCustomerEmailGet: async (email: string, apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\n // verify required parameter 'email' is not null or undefined\n assertParamExists('apiPosCustomerEmailGet', 'email', email)\n const localVarPath = `/Pos/customer/{email}`\n .replace(`{${\"email\"}}`, encodeURIComponent(String(email)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * PosApi - functional programming interface\n * @export\n */\nexport const PosApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = PosApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} customerId \n * @param {string} rewardId \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async apiPosCustomerCustomerIdRewardRewardIdPut(customerId: string, rewardId: string, apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.apiPosCustomerCustomerIdRewardRewardIdPut(customerId, rewardId, apiVersion, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} email \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async apiPosCustomerEmailGet(email: string, apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.apiPosCustomerEmailGet(email, apiVersion, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * PosApi - factory interface\n * @export\n */\nexport const PosApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = PosApiFp(configuration)\n return {\n /**\n * \n * @param {string} customerId \n * @param {string} rewardId \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n apiPosCustomerCustomerIdRewardRewardIdPut(customerId: string, rewardId: string, apiVersion?: string, options?: any): AxiosPromise {\n return localVarFp.apiPosCustomerCustomerIdRewardRewardIdPut(customerId, rewardId, apiVersion, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} email \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n apiPosCustomerEmailGet(email: string, apiVersion?: string, options?: any): AxiosPromise {\n return localVarFp.apiPosCustomerEmailGet(email, apiVersion, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * PosApi - object-oriented interface\n * @export\n * @class PosApi\n * @extends {BaseAPI}\n */\nexport class PosApi extends BaseAPI {\n /**\n * \n * @param {string} customerId \n * @param {string} rewardId \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PosApi\n */\n public apiPosCustomerCustomerIdRewardRewardIdPut(customerId: string, rewardId: string, apiVersion?: string, options?: AxiosRequestConfig) {\n return PosApiFp(this.configuration).apiPosCustomerCustomerIdRewardRewardIdPut(customerId, rewardId, apiVersion, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} email \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof PosApi\n */\n public apiPosCustomerEmailGet(email: string, apiVersion?: string, options?: AxiosRequestConfig) {\n return PosApiFp(this.configuration).apiPosCustomerEmailGet(email, apiVersion, options).then((request) => request(this.axios, this.basePath));\n }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Marsello Manage API\n * An API to support POS integrations.\n *\n * The version of the OpenAPI document: 1.0\n * Contact: landon@marsello.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios';\nimport { Configuration } from '../configuration';\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common';\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../base';\n// @ts-ignore\nimport { ReceiptViewModel } from '../models';\n/**\n * ReceiptApi - axios parameter creator\n * @export\n */\nexport const ReceiptApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} [id] \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n receiptReceiptGet: async (id?: string, apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/Receipt/Receipt`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (id !== undefined) {\n localVarQueryParameter['id'] = id;\n }\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} [orderId] \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n receiptReceiptPdfGet: async (orderId?: string, apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/Receipt/ReceiptPdf`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (orderId !== undefined) {\n localVarQueryParameter['orderId'] = orderId;\n }\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n receiptReceiptsGet: async (apiVersion?: string, options: AxiosRequestConfig = {}): Promise => {\n const localVarPath = `/Receipt/Receipts`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n if (apiVersion !== undefined) {\n localVarQueryParameter['api-version'] = apiVersion;\n }\n\n\n \n setSearchParams(localVarUrlObj, localVarQueryParameter);\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: toPathString(localVarUrlObj),\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * ReceiptApi - functional programming interface\n * @export\n */\nexport const ReceiptApiFp = function(configuration?: Configuration) {\n const localVarAxiosParamCreator = ReceiptApiAxiosParamCreator(configuration)\n return {\n /**\n * \n * @param {string} [id] \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async receiptReceiptGet(id?: string, apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.receiptReceiptGet(id, apiVersion, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} [orderId] \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async receiptReceiptPdfGet(orderId?: string, apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.receiptReceiptPdfGet(orderId, apiVersion, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async receiptReceiptsGet(apiVersion?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise>> {\n const localVarAxiosArgs = await localVarAxiosParamCreator.receiptReceiptsGet(apiVersion, options);\n return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);\n },\n }\n};\n\n/**\n * ReceiptApi - factory interface\n * @export\n */\nexport const ReceiptApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n const localVarFp = ReceiptApiFp(configuration)\n return {\n /**\n * \n * @param {string} [id] \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n receiptReceiptGet(id?: string, apiVersion?: string, options?: any): AxiosPromise {\n return localVarFp.receiptReceiptGet(id, apiVersion, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} [orderId] \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n receiptReceiptPdfGet(orderId?: string, apiVersion?: string, options?: any): AxiosPromise {\n return localVarFp.receiptReceiptPdfGet(orderId, apiVersion, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n receiptReceiptsGet(apiVersion?: string, options?: any): AxiosPromise> {\n return localVarFp.receiptReceiptsGet(apiVersion, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * ReceiptApi - object-oriented interface\n * @export\n * @class ReceiptApi\n * @extends {BaseAPI}\n */\nexport class ReceiptApi extends BaseAPI {\n /**\n * \n * @param {string} [id] \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ReceiptApi\n */\n public receiptReceiptGet(id?: string, apiVersion?: string, options?: AxiosRequestConfig) {\n return ReceiptApiFp(this.configuration).receiptReceiptGet(id, apiVersion, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} [orderId] \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ReceiptApi\n */\n public receiptReceiptPdfGet(orderId?: string, apiVersion?: string, options?: AxiosRequestConfig) {\n return ReceiptApiFp(this.configuration).receiptReceiptPdfGet(orderId, apiVersion, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} [apiVersion] The requested API version\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ReceiptApi\n */\n public receiptReceiptsGet(apiVersion?: string, options?: AxiosRequestConfig) {\n return ReceiptApiFp(this.configuration).receiptReceiptsGet(apiVersion, options).then((request) => request(this.axios, this.basePath));\n }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Marsello Manage API\n * An API to support POS integrations.\n *\n * The version of the OpenAPI document: 1.0\n * Contact: landon@marsello.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ConfigurationParameters {\n apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise);\n username?: string;\n password?: string;\n accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise);\n basePath?: string;\n baseOptions?: any;\n formDataCtor?: new () => any;\n}\n\nexport class Configuration {\n /**\n * parameter for apiKey security\n * @param name security name\n * @memberof Configuration\n */\n apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise);\n /**\n * parameter for basic security\n *\n * @type {string}\n * @memberof Configuration\n */\n username?: string;\n /**\n * parameter for basic security\n *\n * @type {string}\n * @memberof Configuration\n */\n password?: string;\n /**\n * parameter for oauth2 security\n * @param name security name\n * @param scopes oauth2 scope\n * @memberof Configuration\n */\n accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise);\n /**\n * override base path\n *\n * @type {string}\n * @memberof Configuration\n */\n basePath?: string;\n /**\n * base options for axios calls\n *\n * @type {any}\n * @memberof Configuration\n */\n baseOptions?: any;\n /**\n * The FormData constructor that will be used to create multipart form data\n * requests. You can inject this here so that execution environments that\n * do not support the FormData class can still run the generated client.\n *\n * @type {new () => FormData}\n */\n formDataCtor?: new () => any;\n\n constructor(param: ConfigurationParameters = {}) {\n this.apiKey = param.apiKey;\n this.username = param.username;\n this.password = param.password;\n this.accessToken = param.accessToken;\n this.basePath = param.basePath;\n this.baseOptions = param.baseOptions;\n this.formDataCtor = param.formDataCtor;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n}\n","import { Configuration } from \"./apiclient\";\r\n\r\n\r\nexport const loginUrl = process.env.NODE_ENV === \"production\" ? \"https://login.marsello.app/account/login\" : \"https://localhost:44464/account/login\"\r\n\r\n\r\nexport const apiConfig = {\r\n baseUrl: window.location.protocol,\r\n configuration: new Configuration(),\r\n};\r\n","import bannerImage from '../images/Powered by Marsello.png'\r\n\r\nexport const PowerbyFooter = () => {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n","export default \"data:image/png;base64,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\"","import React from \"react\";\r\nimport { Notyf } from \"notyf\";\r\nimport 'notyf/notyf.min.css'; // for React, Vue and Svelte\r\n\r\n\r\nexport default React.createContext(\r\n new Notyf({\r\n duration: 5000,\r\n position: {\r\n x: \"right\",\r\n y: \"top\",\r\n },\r\n types: [\r\n {\r\n type: \"default\",\r\n backgroundColor: \"#3B7DDD\",\r\n icon: {\r\n className: \"notyf__icon--success\",\r\n tagName: \"i\",\r\n },\r\n },\r\n {\r\n type: \"success\",\r\n backgroundColor: \"#28a745\",\r\n icon: {\r\n className: \"notyf__icon--success\",\r\n tagName: \"i\",\r\n },\r\n },\r\n {\r\n type: \"warning\",\r\n backgroundColor: \"#ffc107\",\r\n icon: {\r\n className: \"notyf__icon--error\",\r\n tagName: \"i\",\r\n },\r\n },\r\n {\r\n type: \"danger\",\r\n backgroundColor: \"#dc3545\",\r\n icon: {\r\n className: \"notyf__icon--error\",\r\n tagName: \"i\",\r\n },\r\n },\r\n ],\r\n })\r\n);\r\n","export default __webpack_public_path__ + \"legacy/static/media/apple-logo-white.b875e0b1.png\";","export default __webpack_public_path__ + \"legacy/static/media/background.995c7249.png\";","import React, {\r\n useContext,\r\n useEffect,\r\n useState\r\n} from 'react';\r\nimport { Button } from 'react-bootstrap';\r\nimport {\r\n CustomerApi,\r\n SignInPageViewModel, SignUpPostRequestModel\r\n} from '../../apiclient';\r\nimport { PowerbyFooter } from '../../components/PowerbyFooter';\r\nimport { apiConfig } from '../../config';\r\nimport { AuthContext } from '../../contexts/AccountContext';\r\nimport NotyfContext from '../../contexts/NotyfContext';\r\nimport appleIcon from '../../images/apple-logo-white.png';\r\nimport defaultBanner from \"../../images/background.png\";\r\nimport facebookIcon from '../../images/f_logo_RGB-White_58.png';\r\nimport googleIcon from '../../images/google-icon.png';\r\nimport styles from './LoginComponent.module.css';\r\n\r\nconst SignInPage = () => {\r\n let customerApi = new CustomerApi(apiConfig.configuration, apiConfig.baseUrl)\r\n const [model, setModel] = useState({} as SignInPageViewModel)\r\n const [data, setData] = useState({ email: \"\", verificationSent: false });\r\n const [error, setError] = useState({ unverifiedEmail: \"\" });\r\n const notyf = useContext(NotyfContext)\r\n const authContext = useContext(AuthContext)\r\n\r\n let loginWindow: Window | null = null;\r\n\r\n const openLoginPopup = (subUrl: string) => {\r\n let url = model.loginUrl + subUrl;\r\n loginWindow = window.open(url, \"loginWindow\", \"width=450,height=650directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no\")\r\n window.onfocus = function () {\r\n if (loginWindow) window.location.reload()\r\n }\r\n return true;\r\n };\r\n\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n if (authContext.account) {\r\n updateManifest(authContext.account)\r\n setModel(authContext.account)\r\n }\r\n }\r\n\r\n fetchData();\r\n }, [])\r\n\r\n const submitForm = () => {\r\n const customer_id = localStorage.getItem(\"customer_id\") ?? \"\";\r\n // Call api to create new customer\r\n customerApi\r\n .customerPost('1.0', { acceptMarketing: true, customerId: customer_id, unverifiedEmail: data.email } as SignUpPostRequestModel)\r\n .then((res) => {\r\n if (res.status === 202) {\r\n setData({...data, verificationSent: true})\r\n } else {\r\n notyf.open({\r\n type: 'success',\r\n message: 'Sign up successfully',\r\n duration: 1300,\r\n ripple: true,\r\n dismissible: true,\r\n position: {\r\n x: 'right',\r\n y: 'top',\r\n },\r\n })\r\n setTimeout(function () {\r\n authContext.refreshCustomer()\r\n }, 1400)\r\n }\r\n }).catch((err) => {\r\n setError(err?.response?.data);\r\n notyf.open({\r\n type: 'error',\r\n message: 'Sign up failed',\r\n duration: 1500,\r\n ripple: true,\r\n dismissible: true,\r\n position: {\r\n x: 'right',\r\n y: 'top',\r\n },\r\n })\r\n })\r\n }\r\n\r\n const updateManifest = (resData: SignInPageViewModel) => {\r\n\r\n var myDynamicManifest = {\r\n \"name\": \"Marsello Customer Instore Portal\",\r\n \"short_name\": resData?.accountBranding?.appShortName ?? `${resData?.companyName} loyalty`,\r\n \"start_url\": window.location.href,\r\n \"background_color\": \"#ffffff\",\r\n \"theme_color\": \"#000000\",\r\n \"icons\": [\r\n {\r\n \"src\": resData?.accountBranding?.appIconUrl ?? \"https://s3.amazonaws.com/collectapps.images.accounts/InstorePortalDefaultIcon.png\",\r\n \"sizes\": \"64x64 32x32 24x24 16x16\",\r\n \"type\": \"image/png\"\r\n }\r\n ]\r\n }\r\n const stringManifest = JSON.stringify(myDynamicManifest);\r\n const blob = new Blob([stringManifest], {type: 'application/json'});\r\n const manifestURL = URL.createObjectURL(blob);\r\n document.querySelector('#portalManifest')?.setAttribute('href', manifestURL);\r\n }\r\n\r\n const handleChange = (event: any) => {\r\n setData({ ...data, [event.target.name]: event.target.value });\r\n };\r\n\r\n\r\n\r\n return (\r\n \r\n
\r\n {model?.accountBranding?.signupBannerUrl ? (\r\n \"\"\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {(data.verificationSent) ?\r\n

Check your Email

:\r\n

\r\n Create account or login\r\n

\r\n }\r\n
\r\n
\r\n \r\n {(!authContext.authenticated && !data.verificationSent) ?\r\n
\r\n \r\n \r\n \r\n
\r\n :\r\n }\r\n {(data.verificationSent) ?\r\n
\r\n
\r\n Please check your email and click the link to start earning points.\r\n
\r\n
: <>}\r\n\r\n
\r\n By signing up you agree to our terms and accept email and SMS marketing\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SignInPage\r\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import { createContext, useEffect, useState } from \"react\";\r\nimport { Spinner } from \"react-bootstrap\";\r\nimport { AccountApi, AccountBranding, CustomerApi, PortalCustomerModel, SignInPageViewModel } from \"../apiclient\";\r\nimport { apiConfig } from \"../config\";\r\nimport SignInPage from \"../pages/Account/SignInPage\";\r\n\r\nexport interface SignInProps {\r\n authenticated: boolean,\r\n account: SignInPageViewModel | null,\r\n customer: PortalCustomerModel | null,\r\n refreshCustomer: () => void,\r\n signOut: () => void\r\n}\r\nconst initialState: SignInProps = {\r\n authenticated: false,\r\n account: null,\r\n customer: null,\r\n refreshCustomer: () => {\r\n\r\n },\r\n signOut: () => {\r\n\r\n }\r\n}\r\n\r\nconst AuthContext = createContext(initialState);\r\n\r\nfunction AuthProvider({ children }: any) {\r\n let customerApi = new CustomerApi(\r\n apiConfig.configuration,\r\n apiConfig.baseUrl\r\n );\r\n let accountApi = new AccountApi(\r\n apiConfig.configuration,\r\n apiConfig.baseUrl\r\n );\r\n const [loading, setLoading] = useState(false);\r\n const ApplyDynamicStyle = (styles: AccountBranding) => {\r\n let font = styles.primaryFont;\r\n let fontUrl = styles.primaryFontUrl;\r\n if (fontUrl == null) fontUrl = \"\";\r\n if (fontUrl.length > 0) {\r\n const fontWidget = document.createElement('link');\r\n fontWidget.rel = 'stylesheet';\r\n fontWidget.href = fontUrl;\r\n document.head.appendChild(fontWidget);\r\n }\r\n\r\n const styleWidget = document.createElement('style');\r\n document.head.appendChild(styleWidget);\r\n\r\n if (font) {\r\n styleWidget.sheet?.insertRule(`body {font-family:${font} !important}`);\r\n }\r\n\r\n const hextoRgb = (hex: string) => {\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16)\r\n } : null;\r\n }\r\n\r\n styleWidget.sheet?.insertRule(`.btn-orange {background-color: ${styles.buttonBackgroundColor}; color: ${styles.buttonTextColor}}`, 0);\r\n styleWidget.sheet?.insertRule(`.btn-orange:hover {background-color: ${styles.buttonSelectedBackgroundColor}}`, 0);\r\n styleWidget.sheet?.insertRule(`.btn-blue {background-color: ${styles.buttonSelectedBackgroundColor}; color: ${styles.buttonTextColor}}`, 0);\r\n styleWidget.sheet?.insertRule(`.btn-blue:hover {background-color: ${styles.buttonSelectedBackgroundColor};filter: brightness(80%)}`, 0);\r\n styleWidget.sheet?.insertRule(`.my_card_box {background-color: ${styles.bannerBackgroundColor};`, 0);\r\n styleWidget.sheet?.insertRule(`.my_card_text {background-color: ${styles.bannerBackgroundColor};`, 0);\r\n styleWidget.sheet?.insertRule(`.my_card_box .btn:hover {background-color: ${styles.bannerBackgroundColor}; color:${styles.buttonTextColor}; border-color:${styles.buttonTextColor}}`, 0);\r\n styleWidget.sheet?.insertRule(`.footer ul li.active a {background-color: ${styles.buttonSelectedBackgroundColor};`, 0);\r\n styleWidget.sheet?.insertRule(`.footer ul li a:hover {background-color: ${styles.buttonSelectedBackgroundColor};`, 0);\r\n styleWidget.sheet?.insertRule(`.footer ul li a:focus {background-color: ${styles.buttonSelectedBackgroundColor};`, 0);\r\n styleWidget.sheet?.insertRule(`.nav_bg nav .inner_nav>ul>li {background-color: ${styles.buttonSelectedBackgroundColor};`, 0);\r\n styleWidget.sheet?.insertRule(`.nav-icon:hover > span, .nav-icon:focus > span{background: ${styles.buttonSelectedBackgroundColor};`, 0);\r\n styleWidget.sheet?.insertRule(`.nav-icon.ml-auto.open.change > span{background: ${styles.buttonSelectedBackgroundColor};`, 0);\r\n styleWidget.sheet?.insertRule(`.reward_text{background: ${styles.bannerBackgroundColor};`, 0);\r\n styleWidget.sheet?.insertRule(`.available_redeem ul li .redeem_icon{background: ${styles.bannerBackgroundColor};`, 0);\r\n\r\n if (styles.buttonBackgroundColor) {\r\n let backgroundRgb = hextoRgb(styles.buttonBackgroundColor);\r\n if (backgroundRgb) {\r\n let backgroundWithOpacity = `rgba(${backgroundRgb.r}, ${backgroundRgb.g}, ${backgroundRgb.b}, 0.2)`;\r\n styleWidget.sheet?.insertRule(`.points_box em{background: ${backgroundWithOpacity};`, 0);\r\n }\r\n }\r\n }\r\n\r\n const refreshCustomer = () => {\r\n if (!loading) {\r\n setLoading(true);\r\n if (!state.account) {\r\n accountApi.accountSignInGet()\r\n .then(account => {\r\n customerApi.customerGet()\r\n .then(response => {\r\n if (account.data.accountBranding) ApplyDynamicStyle(account.data.accountBranding)\r\n setState({ ...state, account: account.data, authenticated: true, customer: response.data })\r\n setLoading(false);\r\n }).catch((error: any) => {\r\n if (error.response?.status === 401) {\r\n setState({ ...state, account: account.data, authenticated: false, customer: null })\r\n }\r\n else if (error.response?.status === 404) {\r\n setState({ ...state, account: account.data, authenticated: true, customer: null })\r\n }\r\n setLoading(false);\r\n })\r\n }).catch((error: any) => {\r\n setLoading(false)\r\n })\r\n } else {\r\n customerApi.customerGet()\r\n .then(response => {\r\n setState({ ...state, authenticated: true, customer: response.data })\r\n setLoading(false);\r\n }).catch((error: any) => {\r\n if (error.response?.status === 401) {\r\n setState({ ...state, authenticated: false, customer: null })\r\n }\r\n else if (error.response?.status === 404) {\r\n setState({ ...state, authenticated: true, customer: null })\r\n }\r\n setLoading(false);\r\n })\r\n }\r\n\r\n }\r\n }\r\n\r\n const signOut = () => {\r\n window.location.href = '/account/logout'\r\n }\r\n\r\n const [state, setState] = useState({ ...initialState, signOut: signOut, refreshCustomer: refreshCustomer });\r\n\r\n\r\n useEffect(() => {\r\n const initialize = () => {\r\n if (!state.customer) {\r\n refreshCustomer()\r\n }\r\n }\r\n initialize();\r\n }, [state]);\r\n\r\n\r\n return (\r\n \r\n {loading ?\r\n
\r\n \r\n
:\r\n state.customer != null ?\r\n children\r\n : /*no token*/}\r\n
\r\n );\r\n}\r\n\r\nexport { AuthContext, AuthProvider };\r\n\r\n","import React from \"react\";\r\nimport { Outlet } from \"react-router-dom\";\r\nimport { AuthProvider } from \"../contexts/AccountContext\";\r\n\r\nconst AppLayout = ({ children }) => {\r\n return (\r\n \r\n
\r\n \r\n {children}\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AppLayout;\r\n","import React, { useEffect } from 'react'\r\nimport { useSearchParams } from 'react-router-dom'\r\nimport { useNavigate } from 'react-router-dom'\r\n\r\nconst InstorePage = () => {\r\n const [searchParams] = useSearchParams()\r\n const navigate = useNavigate()\r\n\r\n let utm_source = searchParams.get('utm_source')\r\n let utm_medium = searchParams.get('utm_medium')\r\n let utm_campaign = searchParams.get('utm_campaign')\r\n let utm_id = searchParams.get('utm_id')\r\n let customer_id = searchParams.get('customer_id')\r\n\r\n const saveUtmsToStorage = () => {\r\n if (utm_source) {\r\n localStorage.setItem('utm_source', utm_source)\r\n }\r\n\r\n if (utm_medium) {\r\n localStorage.setItem('utm_medium', utm_medium)\r\n }\r\n\r\n if (utm_campaign) {\r\n localStorage.setItem('utm_campaign', utm_campaign)\r\n }\r\n\r\n if (utm_id) {\r\n localStorage.setItem('utm_id', utm_id)\r\n }\r\n\r\n if(customer_id){\r\n localStorage.setItem('customer_id', customer_id)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n saveUtmsToStorage()\r\n navigate('/')\r\n }, [])\r\n\r\n return <>\r\n}\r\n\r\nexport default InstorePage\r\n","export default __webpack_public_path__ + \"legacy/static/media/AndroidInstructions.e7a7013e.png\";","export default __webpack_public_path__ + \"legacy/static/media/AppleInstructions.ced12666.png\";","export default __webpack_public_path__ + \"legacy/static/media/close-icon.ef88e38d.svg\";","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport QRCode from \"react-qr-code\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { PortalCustomerModel } from \"../../apiclient\";\r\nimport NotyfContext from \"../../contexts/NotyfContext\";\r\n\r\nimport {\r\n MobileView\r\n} from \"react-device-detect\";\r\nimport { AuthContext } from \"../../contexts/AccountContext\";\r\nimport androidInstructions from \"../../images/AndroidInstructions.png\";\r\nimport iosInstructions from \"../../images/AppleInstructions.png\";\r\nimport closeIcon from \"../../images/close-icon.svg\";\r\n\r\nconst MyCardModalComponent = (props: any) => {\r\n const [isLoading, setLoading] = useState(true as boolean);\r\n const navigate = useNavigate();\r\n const [show, setShow] = useState(false);\r\n\r\n const [model, setModel] = useState({} as PortalCustomerModel);\r\n const notyf = useContext(NotyfContext);\r\n const authContext = useContext(AuthContext);\r\n\r\n const [showModalSaveToHomescreen, setShowModalSaveToHomescreen] = useState(\r\n false as boolean\r\n );\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n if (authContext.customer) {\r\n setModel(authContext.customer);\r\n }\r\n };\r\n\r\n fetchData();\r\n }, []);\r\n\r\n const isIOS = () => {\r\n return (\r\n [\r\n \"iPad Simulator\",\r\n \"iPhone Simulator\",\r\n \"iPod Simulator\",\r\n \"iPad\",\r\n \"iPhone\",\r\n \"iPod\",\r\n ].includes(navigator.platform) ||\r\n // iPad on iOS 13 detection\r\n (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document)\r\n );\r\n };\r\n\r\n const showInstructions = () => {\r\n props.onHide();\r\n setShowModalSaveToHomescreen(true);\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n props.onHide()}\r\n >\r\n \"\"\r\n \r\n
\r\n
\r\n

My Card

\r\n

\r\n Scan this QR code when making a purchase\r\n to earn more points!\r\n

\r\n {/* \"\" or bookmark page */}\r\n\r\n \r\n \r\n Save to phone home screen\r\n \r\n \r\n
\r\n
\r\n
\r\n {model.membershipId && (\r\n \r\n )}\r\n
\r\n \r\n {model.customerMobile}\r\n \r\n
{model.customerName}
\r\n \r\n {model.customerEmail}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n {showModalSaveToHomescreen && (\r\n setShowModalSaveToHomescreen(false)}\r\n >\r\n
\r\n setShowModalSaveToHomescreen(false)}\r\n >\r\n \"\"\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n How to save this card to your phone\r\n home screen\r\n
\r\n
\r\n

\r\n {isIOS() ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default MyCardModalComponent;\r\n","import React, {Component} from 'react'\r\nimport $ from 'jquery'\r\n\r\nexport default class JQueryMenuCode extends Component {\r\n jQuerycode = () => {\r\n \r\n $('.nav-icon').click(function () {\r\n $('body').toggleClass('open');\r\n $('.nav-icon').toggleClass('open');\r\n });\r\n // $('nav > ul > li > a').click(function () {\r\n // $('body').removeClass('open');\r\n // $('.nav-icon').removeClass('open');\r\n // });\r\n \r\n $('ul.topmenu li.menu-item-has-children').append('');\r\n $('.nav-icon').click(function () {\r\n $(this).toggleClass('change');\r\n $('nav').slideToggle();\r\n });\r\n \r\n $('li.menu-item-has-children .click_menu').click(function () {\r\n $(this).toggleClass('open2');\r\n $(this).parent('li').siblings('li').find('.click_menu').removeClass('open2');\r\n $(this).parent('li').find('.sub-menu').slideToggle();\r\n $(this).parent('li').siblings('li').find('.sub-menu').slideUp();\r\n });\r\n\r\n }\r\n\r\n componentDidMount(){\r\n this.jQuerycode()\r\n }\r\n render() {\r\n return (\r\n <>\r\n )\r\n }\r\n }\r\n ","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { AccountBranding, SignInPageViewModel } from \"../apiclient\";\r\nimport { AuthContext } from \"../contexts/AccountContext\";\r\nimport MyCardModalComponent from \"../pages/Home/MyCardModalComponent\";\r\nimport JQueryMenuCode from \"./JQueryMenuCode\";\r\n\r\nconst Header = (props:any) => {\r\n\r\n let model = props.parentModel as SignInPageViewModel;\r\n const [branding, setBranding] = useState({} as AccountBranding);\r\n const navigate = useNavigate();\r\n const [showMyCardPopup, setShowMyCardPopup] = useState(false as boolean);\r\n const authContext = useContext(AuthContext)\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n if (authContext.account?.accountBranding) setBranding(authContext.account.accountBranding)\r\n };\r\n\r\n fetchData();\r\n });\r\n\r\n const logout = () =>{\r\n authContext.signOut()\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n setShowMyCardPopup(false)} />\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { Button, Col, Form, Row, Spinner } from \"react-bootstrap\";\r\nimport {\r\n AccountApi, PortalCustomerModel, UpdateMarketingPreferencesPayload\r\n} from \"../../apiclient\";\r\nimport { apiConfig } from \"../../config\";\r\nimport NotyfContext from \"../../contexts/NotyfContext\";\r\n\r\nimport Header from \"../../components/Header\";\r\nimport { AuthContext } from \"../../contexts/AccountContext\";\r\n\r\nconst NotificationsPage = (props: any) => {\r\n let accountApi = new AccountApi(apiConfig.configuration, apiConfig.baseUrl);\r\n\r\n const authContext = useContext(AuthContext);\r\n const [model, setModel] = useState({} as PortalCustomerModel);\r\n const notyf = useContext(NotyfContext);\r\n const [inputs, setInputs] = useState({} as UpdateMarketingPreferencesPayload);\r\n const [validated, setValidated] = useState(false);\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n if (authContext.customer) {\r\n setModel(authContext.customer);\r\n\r\n setInputs({\r\n disableAllNotifications: !authContext.customer.subscribedNotifications,\r\n optedOutSmsMarketing: !authContext.customer.subscribedSms,\r\n optedOutEmailMarketing: !authContext.customer.subscribed\r\n });\r\n }\r\n };\r\n\r\n fetchData();\r\n }, []);\r\n\r\n const handleChange = (event: any) => {\r\n const target = event.target;\r\n const value =\r\n target.type === \"checkbox\" ? target.checked : target.value;\r\n const name = event.target.name;\r\n setInputs((values: UpdateMarketingPreferencesPayload) => ({\r\n ...values,\r\n [name]: value,\r\n }));\r\n };\r\n\r\n const handleSubmit = (event: any) => {\r\n const form = event.currentTarget;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (form.checkValidity() === true) {\r\n\r\n accountApi\r\n .accountUpdateMarketingPreferencesPost(\"1\", {\r\n optedOutSmsMarketing: inputs.optedOutSmsMarketing ?? false,\r\n optedOutEmailMarketing:\r\n inputs.optedOutEmailMarketing ?? false,\r\n disableAllNotifications:\r\n inputs.disableAllNotifications ?? false,\r\n } as UpdateMarketingPreferencesPayload)\r\n .then((response) => {\r\n notyf.open({\r\n type: \"success\",\r\n message: \"Marketing preferences have been saved\",\r\n duration: 2500,\r\n ripple: true,\r\n dismissible: true,\r\n position: {\r\n x: \"right\",\r\n y: \"top\",\r\n },\r\n });\r\n\r\n setValidated(false);\r\n })\r\n .catch(function (error) {\r\n notyf.open({\r\n type: \"error\",\r\n message: \"Marketing preferences have not been saved\",\r\n duration: 2500,\r\n ripple: true,\r\n dismissible: true,\r\n position: {\r\n x: \"right\",\r\n y: \"top\",\r\n },\r\n });\r\n });\r\n } else {\r\n setValidated(true);\r\n }\r\n };\r\n\r\n if (!model) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Update Your Notification Settings

\r\n

\r\n

Email address: {model.customerEmail}
\r\n {model.customerMobile &&
Mobile: {model.customerMobile}
}\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default NotificationsPage;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\n\r\nconst Page404 = () => {\r\n \r\n\r\n return (\r\n \r\n
\r\n
404
\r\n
Page not found
\r\n Back to app\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Page404;\r\n","import React, {\r\n useEffect,\r\n useState\r\n} from 'react';\r\nimport { Button, Spinner } from 'react-bootstrap';\r\nimport { useNavigate, useParams } from \"react-router-dom\";\r\nimport {\r\n AccountApi,\r\n CustomerApi,\r\n SignInPageViewModel\r\n} from '../../apiclient';\r\nimport { PowerbyFooter } from '../../components/PowerbyFooter';\r\nimport { apiConfig } from '../../config';\r\nimport styles from './LoginComponent.module.css';\r\n\r\nconst VerifyPage = () => {\r\n let customerApi = new CustomerApi(apiConfig.configuration, apiConfig.baseUrl)\r\n let accountApi = new AccountApi(apiConfig.configuration, apiConfig.baseUrl)\r\n const [data, setData] = useState({ message: \"\", verified: true});\r\n const [account, setAccount] = useState({} as SignInPageViewModel)\r\n let { token } = useParams();\r\n const navigate = useNavigate();\r\n\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n accountApi.accountSignInGet().then(res => {\r\n setAccount(res.data);\r\n }).then(() => {\r\n if (token) {\r\n customerApi\r\n .customerVerifyTokenGet(token)\r\n .then((res) => {\r\n setData({ message: \"Your email has been verified\", verified: true });\r\n }).catch((err) => {\r\n setData({ message: \"Sorry your verification failed\", verified: false });\r\n })\r\n\r\n } else {\r\n setData({ message: \"We couldn't find your verification token\", verified: false });\r\n }\r\n })\r\n }\r\n fetchData();\r\n }, [])\r\n\r\n return (\r\n \r\n {(!account) ?\r\n
\r\n \r\n
:\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Verifying

:\r\n
\r\n
\r\n {(data.message)}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
}\r\n
\r\n )\r\n}\r\n\r\nexport default VerifyPage\r\n","import React, { useContext, useState } from \"react\";\r\nimport { Button, Row } from \"react-bootstrap\";\r\nimport Form from \"react-bootstrap/Form\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport { ArrowRight } from \"react-feather\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport NotyfContext from \"../../../contexts/NotyfContext\";\r\n\r\nimport { CustomerApi } from \"../../../apiclient\";\r\nimport { apiConfig } from '../../../config';\r\nlet customersApi = new CustomerApi(apiConfig.configuration, apiConfig.baseUrl);\r\n\r\nconst ManualAdjustmentModalComponent = (props: any) => {\r\n let { customerId } = useParams();\r\n //modal + form\r\n const notyf = useContext(NotyfContext);\r\n const [inputs, setInputs] = useState(\r\n {} as any\r\n );\r\n const [validated, setValidated] = useState(false);\r\n const [newPointsBalance, setNewPointsBalance] = useState(\r\n props.pointsBalance || 0\r\n );\r\n\r\n const handleChange = (event: any) => {\r\n const target = event.target;\r\n const value =\r\n target.type === \"checkbox\" ? target.checked : target.value;\r\n const name = event.target.name;\r\n // setInputs((values: CreateManualAdjustmentViewModel) => ({\r\n // ...values,\r\n // [name]: value,\r\n // }));\r\n if (name == \"pointsToGive\") {\r\n const newBalance =\r\n parseInt(target.value) + parseInt(props.pointsBalance);\r\n\r\n\r\n setNewPointsBalance(newBalance);\r\n }\r\n };\r\n\r\n const handleSubmit = (event: any) => {\r\n const form = event.currentTarget;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n\r\n\r\n if (form.checkValidity() === true) {\r\n props.onHide();\r\n\r\n //points points adjustment\r\n // customersApi.customerCustomersProfilePagePerformManualPointsAdjustmentPost(\"1\", {\r\n // comment: inputs.comment ?? \"\",\r\n // pointsToGive: inputs.pointsToGive,\r\n // sendEmail: inputs.sendEmail,\r\n // customerId: customerId,\r\n // })\r\n // .then((response) => {\r\n // if (response) {\r\n // notyf.open({\r\n // type: \"success\",\r\n // message: \"Points have been applied\",\r\n // duration: 2500,\r\n // ripple: true,\r\n // dismissible: true,\r\n // position: {\r\n // x: \"right\",\r\n // y: \"top\",\r\n // },\r\n // });\r\n // setInputs(\r\n // {} as CreateManualAdjustmentViewModel\r\n // ); // clear model\r\n // props.updatePointsBalance(newPointsBalance);\r\n // setValidated(false);\r\n // props.onHide(); // hide modal\r\n // }\r\n // })\r\n // .catch(function (error) {\r\n\r\n // notyf.open({\r\n // type: \"error\",\r\n // message: \"Points have not been applied\",\r\n // duration: 2500,\r\n // ripple: true,\r\n // dismissible: true,\r\n // position: {\r\n // x: \"right\",\r\n // y: \"top\",\r\n // },\r\n // });\r\n // });\r\n } else {\r\n setValidated(true);\r\n }\r\n };\r\n\r\n const modalLoaded = () => {\r\n setNewPointsBalance(props.pointsBalance);\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n Adjust {props.firstname}'s points balance\r\n \r\n \r\n \r\n
\r\n \r\n {props.pointsBalance &&\r\n (\r\n props.pointsBalance as number\r\n ).toLocaleString()}\r\n pts\r\n \r\n \r\n \r\n \r\n \r\n {newPointsBalance &&\r\n newPointsBalance.toLocaleString()}{\" \"}\r\n pts\r\n \r\n
\r\n \r\n \r\n Points adjustment\r\n \r\n \r\n Points required.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Include message to the customer in points\r\n email:\r\n \r\n \r\n \r\n Required.\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ManualAdjustmentModalComponent;\r\n","import React, { useContext, useState } from \"react\";\r\nimport {\r\n Card\r\n} from \"react-bootstrap\";\r\nimport { CustomerModel } from \"../../../apiclient\";\r\nimport NotyfContext from \"../../../contexts/NotyfContext\";\r\nimport ManualAdjustmentModalComponent from \"./ManualAdjustmentModalComponent\";\r\n\r\ninterface CustomerDetailProps {\r\n customer: CustomerModel;\r\n}\r\n\r\nconst CustomerDetailsComponent = ({ customer }: CustomerDetailProps) => {\r\n const [isLoading, setLoading] = useState(true as boolean);\r\n const [isPointsAdjustModalOpen, setIsPointsAdjustModalOpen] = useState(false);\r\n const [isEditCustomerDetailsModalOpen, setIsEditCustomerDetailsModalOpen] = useState(false);\r\n const [isCreateNoteModalOpen, setIsCreateNoteModalOpen] = useState(false);\r\n const [isMarketingPreferencesModalOpen, setIsMarketingPreferencesModalOpen] = useState(false);\r\n const [isUpdateVipTierModalOpen, setIsUpdateVipTierModalOpen] = useState(false);\r\n const [model, setModel] = useState(customer);\r\n const notyf = useContext(NotyfContext);\r\n\r\n const showEditCustomerDetailsModal = () => {\r\n setIsEditCustomerDetailsModalOpen(true);\r\n };\r\n\r\n const showAdjustPointsModal = () => {\r\n setIsPointsAdjustModalOpen(true);\r\n };\r\n\r\n const showMarketingPreferencesModal = () => {\r\n setIsMarketingPreferencesModalOpen(true);\r\n };\r\n\r\n const updatePointsBalance = (newBalance: number) => {\r\n model.balance = newBalance;\r\n setModel({\r\n ...model,\r\n balance: newBalance,\r\n });\r\n };\r\n\r\n const renderDetailsCard = () => {\r\n return (\r\n \r\n\r\n \r\n \r\n {model.firstName + \" \" + model.lastName}\r\n
{model.email}
\r\n
{model.phone}
\r\n

\r\n {model.balance &&\r\n model.balance.toLocaleString()}{\" \"}\r\n {\"points\"}\r\n

\r\n {/*
\r\n \r\n \r\n Adjust points balance\r\n \r\n \r\n Marketing preferences\r\n \r\n\r\n \r\n
*/}\r\n
\r\n\r\n
\r\n\r\n {/* {model.customTags && model.customTags.length > 0 && (\r\n <>\r\n \r\n Tags\r\n\r\n {model.customTags &&\r\n model.customTags.map((tag) => (\r\n \r\n {tag}\r\n \r\n ))}\r\n \r\n
\r\n \r\n )} */}\r\n \r\n {/* \r\n Details{\" \"}\r\n \r\n Edit\r\n \r\n */}\r\n\r\n
    \r\n
  • \r\n \r\n Tier:\r\n \r\n
    \r\n \r\n {model.tierName ?? \"Member\"}\r\n \r\n
    \r\n
  • \r\n {model.gender && (\r\n <>\r\n
  • \r\n \r\n Gender:\r\n \r\n
    \r\n \r\n {model.gender}\r\n \r\n
    \r\n
  • \r\n \r\n )}\r\n {/*
  • \r\n \r\n Total orders:\r\n \r\n
    \r\n \r\n {model.totalOrders &&\r\n model.totalOrders.toLocaleString()}\r\n \r\n
    \r\n
  • \r\n
  • \r\n \r\n Total spent:\r\n \r\n
    \r\n \r\n {model.totalSpent}\r\n \r\n
    \r\n
  • \r\n
  • \r\n \r\n Average order:\r\n \r\n
    \r\n \r\n {model.avgSpentPerOrder}\r\n \r\n
    \r\n
  • */}\r\n
\r\n
\r\n {/*
\r\n \r\n \r\n Marketing{\" \"}\r\n \r\n Edit\r\n \r\n \r\n\r\n
    \r\n
  • \r\n \r\n Segment:\r\n \r\n
    \r\n \r\n {model.segmentText}\r\n \r\n
    \r\n
  • \r\n
  • \r\n \r\n Email subscriber:\r\n \r\n
    \r\n \r\n {model.acceptMarketing}\r\n \r\n
    \r\n
  • \r\n
  • \r\n \r\n Sms subscriber:\r\n \r\n
    \r\n \r\n {model.acceptSmsMarketing}\r\n \r\n
    \r\n
  • \r\n {model.formCustomFields &&\r\n model.formCustomFields.length > 0 && (\r\n <>\r\n
  • \r\n \r\n Custom form fields:\r\n \r\n
    \r\n
      \r\n {model.formCustomFields &&\r\n model.formCustomFields.map(\r\n (field) => (\r\n
    • \r\n \r\n {field.key}:{\" \"}\r\n {\r\n field.value\r\n }\r\n \r\n
    • \r\n )\r\n )}\r\n
    \r\n
    \r\n
  • \r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n Loyalty{\" \"}\r\n \r\n Edit\r\n \r\n \r\n\r\n
    \r\n
  • \r\n \r\n Loyalty member:\r\n \r\n
    \r\n \r\n {model.loyaltyDefinition}\r\n \r\n
    \r\n
  • \r\n
  • \r\n \r\n Tier:\r\n \r\n
    \r\n \r\n {model.tierName}\r\n \r\n
    \r\n
  • \r\n
  • \r\n \r\n Current loyalty balance:\r\n \r\n
    \r\n \r\n {model.pointsBalance &&\r\n model.pointsBalance.toLocaleString()}{\" \"}\r\n {model.pointsLabel ?? \"points\"}\r\n \r\n
    \r\n
  • \r\n
  • \r\n \r\n Total {model.pointsLabel ?? \"points\"} collected:\r\n \r\n
    \r\n \r\n {model.totalPointsCollected &&\r\n model.totalPointsCollected.toLocaleString()}{\" \"}\r\n {model.pointsLabel ?? \"points\"}\r\n \r\n
    \r\n
  • \r\n
  • \r\n \r\n Member since:\r\n \r\n
    \r\n \r\n {moment.utc(model.createdAt).local().format('Do MMM YYYY')}\r\n \r\n
    \r\n
  • \r\n
  • \r\n \r\n Last visited:\r\n \r\n
    \r\n \r\n\r\n {model.lastVisited !== null ?\r\n moment.utc(model.lastVisited).local().format('Do MMM YYYY')\r\n : \"Never\"}\r\n \r\n
    \r\n
  • \r\n
\r\n
*/}\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n {/*
{JSON.stringify(props?.posContextData, null, 2)}
*/}\r\n {/*
{JSON.stringify(props?.posAccount, null, 2)}
*/}\r\n {\r\n renderDetailsCard()\r\n }\r\n setIsPointsAdjustModalOpen(false)}\r\n pointsBalance={model.balance}\r\n firstname={model.firstName}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default CustomerDetailsComponent;\r\n","import React, { useContext, useState } from \"react\";\r\nimport { Button, Card } from \"react-bootstrap\";\r\nimport {\r\n CustomerModel,\r\n PosApi,\r\n RewardModel\r\n} from \"../../../apiclient\";\r\nimport { apiConfig } from \"../../../config\";\r\nimport NotyfContext from \"../../../contexts/NotyfContext\";\r\ninterface RedeemRewardListProps {\r\n customer: CustomerModel;\r\n redeemCallback: (reward: RewardModel) => boolean;\r\n}\r\n\r\nconst RedeemRewardListComponent = ({ customer, redeemCallback }: RedeemRewardListProps) => {\r\n let posApi = new PosApi(apiConfig.configuration, apiConfig.baseUrl + \"/api\");\r\n const [isLoading, setLoading] = useState(true);\r\n const rewards = customer.rewards ?? [];\r\n const notyf = useContext(NotyfContext);\r\n\r\n const RedeemReward = async (reward: RewardModel) => {\r\n if (customer?.id && reward?.id) {\r\n setLoading(true);\r\n posApi.apiPosCustomerCustomerIdRewardRewardIdPut(customer.id, reward.id)\r\n .then(response => redeemCallback(reward))\r\n .catch(error => {\r\n notyf.open({\r\n type: \"error\",\r\n message: \"Sorry something went wrong, please try again\",\r\n duration: 5000,\r\n ripple: true,\r\n dismissible: true,\r\n position: {\r\n x: \"right\",\r\n y: \"top\",\r\n },\r\n });\r\n }).finally(() => setLoading(false));\r\n }\r\n }\r\n\r\n const renderReward = (reward: RewardModel, index: number) => {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

{reward.points}

\r\n Points Cost\r\n
\r\n
\r\n
\r\n
\r\n
{reward.name}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n {\r\n \r\n \r\n Rewards\r\n \r\n \r\n
\r\n {rewards && rewards.map((reward, index) =>\r\n renderReward(reward, index)\r\n )}\r\n
\r\n
\r\n\r\n
\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default RedeemRewardListComponent;\r\n","import axios from \"axios\";\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\nimport { Alert, Col, Container, Row, Spinner } from \"react-bootstrap\";\r\nimport { Helmet } from \"react-helmet-async\";\r\nimport { CustomerModel, PosApi, RewardModel } from \"../../../apiclient\";\r\nimport { apiConfig } from \"../../../config\";\r\nimport NotyfContext from \"../../../contexts/NotyfContext\";\r\nimport CustomerDetailsComponent from \"./CustomerDetailsComponent\";\r\nimport RedeemRewardListComponent from \"./RedeemRewardListComponent\";\r\n\r\ndeclare const posContext: any;\r\n\r\n/* LSK related context variables */\r\ndeclare global {\r\n interface Window {\r\n webkit: any;\r\n pos_getCurrentAccount: (func: any) => void;\r\n pos_getAvailableDiscounts: (func: any) => void;\r\n pos_toggleGlobalDiscount: (code: string, func: any) => void;\r\n pos_setConsumer: (consumer: any) => void;\r\n pos_close: () => void;\r\n }\r\n}\r\n\r\ninterface POSAccount {\r\n data?: POSAccountData;\r\n}\r\ninterface POSAccountData {\r\n consumer?: Customer;\r\n}\r\ninterface Customer {\r\n consumer?: string;\r\n firstName?: string;\r\n lastName?: string;\r\n email?: string;\r\n phoneNumber1?: string;\r\n}\r\n\r\nconst CustomersProfilePage = () => {\r\n const notyf = useContext(NotyfContext);\r\n const [posAccount, setPOSAccount] = useState({});\r\n const [posContextData, setPOSContextData] = useState({});\r\n const [loading, setLoading] = useState(true);\r\n const [customer, setCustomer] = useState();\r\n let posApi = new PosApi(apiConfig.configuration, apiConfig.baseUrl + \"/api\");\r\n\r\n // This is the testing redeem callback, for kseries we will set the callback to do the discount.\r\n // Then for other integrations we just need to set what the redeem callback does after a successful redeem on the api.\r\n let redeemCallback = (reward: RewardModel) => {\r\n if (window.pos_toggleGlobalDiscount) {\r\n window.pos_toggleGlobalDiscount(reward.redeemCode as string, () => { });\r\n window.pos_close();\r\n }\r\n else if(process.env.NODE_ENV !== \"production\") {\r\n alert(\"Please copy paste this code into your POS\" + reward.redeemCode);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n useEffect(() => {\r\n const fetchDetails = async () => {\r\n if (posAccount?.data?.consumer?.email) {\r\n try {\r\n let response = await posApi.apiPosCustomerEmailGet(posAccount?.data?.consumer?.email);\r\n setCustomer(response.data);\r\n setLoading(false);\r\n } catch (error) {\r\n notyf.open({\r\n type: \"error\",\r\n message: \"Sorry something went wrong, please try again\",\r\n duration: 5000,\r\n ripple: true,\r\n dismissible: true,\r\n position: {\r\n x: \"right\",\r\n y: \"top\",\r\n },\r\n });\r\n setLoading(false);\r\n }\r\n }\r\n };\r\n setLoading(true);\r\n // This part is for kseries but we can make methods to detect the provider and customer email for other integrations\r\n if (window.pos_getCurrentAccount) {\r\n window.pos_getCurrentAccount((response: POSAccount) => {\r\n setPOSAccount(response);\r\n });\r\n\r\n const intervalId = setInterval(() => {\r\n if (posContext) {\r\n clearInterval(intervalId); // Clearing the interval when posContext is available\r\n\r\n setPOSContextData(posContext);\r\n axios.defaults.headers.common[\"x-marsello-site\"] = posContext.locationId;\r\n // in here we would set an api key or header for our api calls to tell us which provider we are using\r\n fetchDetails();\r\n }\r\n }, 10);\r\n\r\n } else if (process.env.NODE_ENV !== \"production\") {\r\n axios.defaults.headers.common[\"x-marsello-site\"] = \"965276719906818\";\r\n setPOSAccount({ data: { consumer: { email: \"rukshan+lsk_user1@marsello.com\" } } })\r\n setPOSContextData({ businessId: \"965276719906818\" });\r\n\r\n fetchDetails();\r\n }\r\n }, [posAccount?.data?.consumer?.email]);\r\n\r\n return (\r\n \r\n \r\n
\r\n {/*
{JSON.stringify(posContext, null, 2)}
*/}\r\n \r\n {loading ?\r\n
\r\n

Loyalty Profile

\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n :\r\n (customer != null) ?\r\n
\r\n

Loyalty Profile

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n :\r\n \r\n
\r\n No customer attached! Please select a customer to view loyalty profile from Marsello.\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CustomersProfilePage;\r\n","import moment from \"moment\";\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\nimport { Col, Row } from \"react-bootstrap\";\r\nimport Form from \"react-bootstrap/Form\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport {\r\n CompleteProfilePostPayload,\r\n HomeApi,\r\n PortalCustomerModel,\r\n TranslationData\r\n} from \"../../apiclient\";\r\nimport { apiConfig } from \"../../config\";\r\nimport { AuthContext } from \"../../contexts/AccountContext\";\r\nimport NotyfContext from \"../../contexts/NotyfContext\";\r\nimport closeIcon from \"../../images/close-icon.svg\";\r\n\r\nlet homeApi = new HomeApi(apiConfig.configuration, apiConfig.baseUrl);\r\n\r\nconst CompleteProfileModalComponent = (props: any) => {\r\n //modal + form\r\n const notyf = useContext(NotyfContext);\r\n const authContext = useContext(AuthContext)\r\n const [inputs, setInputs] = useState({} as CompleteProfilePostPayload);\r\n const [validated, setValidated] = useState(false);\r\n const [saving, setSaving] = useState(false);\r\n const [model, setModel] = useState({} as PortalCustomerModel);\r\n const [helperData, setHelperData] = useState({} as TranslationData);\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n if (authContext.customer != null) {\r\n var parentModel = authContext.customer\r\n setModel(parentModel);\r\n\r\n setInputs({\r\n birthdate: parentModel.birthdate,\r\n phone: parentModel.customerMobile,\r\n emailAddress: parentModel.customerEmail,\r\n firstname: parentModel.customerFirstname,\r\n lastname: parentModel.customerLastname,\r\n gender: parentModel.gender,\r\n } as CompleteProfilePostPayload);\r\n\r\n }\r\n };\r\n\r\n const fetchHelperData = () => {\r\n homeApi.homeGetTranslationDataGet('1').then(res => {\r\n setHelperData(res.data);\r\n })\r\n }\r\n\r\n fetchData();\r\n fetchHelperData();\r\n }, []);\r\n\r\n const handleChange = (event: any) => {\r\n const target = event.target;\r\n const value =\r\n target.type === \"checkbox\" ? target.checked : target.value;\r\n\r\n const name = event.target.name;\r\n setInputs((values: CompleteProfilePostPayload) => ({\r\n ...values,\r\n [name]: value,\r\n }));\r\n };\r\n\r\n const handleSubmit = (event: any) => {\r\n const form = event.currentTarget;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (form.checkValidity() === true) {\r\n setSaving(true);\r\n homeApi\r\n .homeCompleteCustomerProfilePost(\"1\", {\r\n firstname: inputs.firstname ?? \"\",\r\n lastname: inputs.lastname ?? \"\",\r\n emailAddress: model.customerEmail ?? \"\",\r\n phone: inputs.phone ?? \"\",\r\n gender: inputs.gender ?? \"\",\r\n birthdate: inputs.birthdate ?? \"\",\r\n } as CompleteProfilePostPayload)\r\n .then(() => {\r\n notyf.open({\r\n type: \"success\",\r\n message: `You earned ${model.completedProfilePoints} ${model.pointsLabel} for completing your profile`,\r\n duration: 2500,\r\n ripple: true,\r\n dismissible: true,\r\n position: {\r\n x: \"right\",\r\n y: \"top\",\r\n },\r\n });\r\n setValidated(false);\r\n setSaving(false);\r\n\r\n props.onSave();\r\n })\r\n .catch(function () {\r\n notyf.open({\r\n type: \"error\",\r\n message: \"Profile details have not been saved\",\r\n duration: 2500,\r\n ripple: true,\r\n dismissible: true,\r\n position: {\r\n x: \"right\",\r\n y: \"top\",\r\n },\r\n });\r\n\r\n setSaving(false);\r\n });\r\n } else {\r\n setValidated(true);\r\n setSaving(false);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n props.onHide()}\r\n >\r\n \"\"\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Complete profile to earn {model.completedProfilePoints} {model.pointsLabel}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n First name\r\n \r\n \r\n \r\n Please provide a valid firstname.\r\n \r\n \r\n \r\n \r\n Last name\r\n \r\n \r\n \r\n Please provide a valid lastname.\r\n \r\n \r\n \r\n \r\n \r\n Mobile\r\n \r\n \r\n Please provide a valid mobile number.\r\n \r\n \r\n \r\n \r\n \r\n \r\n Birthdate\r\n \r\n \r\n \r\n Please provide a valid\r\n birthdate.\r\n \r\n \r\n \r\n Gender\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {saving ? (\r\n \r\n Saving...\r\n \r\n ) : (\r\n \r\n Save\r\n \r\n )}\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default CompleteProfileModalComponent;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\r\nimport { useNavigate } from \"react-router-dom\";\r\n\r\nimport {\r\n EmailIcon, EmailShareButton, FacebookIcon, FacebookShareButton, LineIcon, LineShareButton, TwitterIcon, TwitterShareButton, WhatsappIcon, WhatsappShareButton\r\n} from \"react-share\";\r\nimport { PortalCustomerModel } from \"../../apiclient\";\r\nimport { AuthContext } from \"../../contexts/AccountContext\";\r\nimport NotyfContext from \"../../contexts/NotyfContext\";\r\nimport closeIcon from \"../../images/close-icon.svg\";\r\nimport emojihands from \"../../images/emoji_hands.png\";\r\n\r\n\r\n\r\nconst style = {\r\n background: 'linear-gradient(45deg, #FE6B8B 30%, #FF8E53 90%)',\r\n borderRadius: 3,\r\n border: 0,\r\n color: 'white',\r\n padding: '0 30px',\r\n boxShadow: '0 3px 5px 2px rgba(255, 105, 135, .3)',\r\n};\r\n\r\n\r\nconst ReferralModalComponent = (props: any) => {\r\n\r\n const [isLoading, setLoading] = useState(true as boolean);\r\n const navigate = useNavigate();\r\n const [show, setShow] = useState(false);\r\n const [referralLink, setReferralLink] = useState('' as string);\r\n\r\n const handleClose = () => setShow(false);\r\n const [model, setModel] = useState({} as PortalCustomerModel);\r\n const authContext = useContext(AuthContext)\r\n const notyf = useContext(NotyfContext);\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n if (authContext.customer != null) {\r\n setModel(authContext.customer);\r\n setReferralLink(model?.referralLink || \"\");\r\n }\r\n };\r\n\r\n fetchData();\r\n }, []);\r\n\r\n // const copyToClipboard = () =>{\r\n // const el = textInput;\r\n // el.current.focus();\r\n // el.current.select();\r\n // document.execCommand(\"copy\");\r\n // notyf.open({\r\n // type: \"success\",\r\n // message: \"Copied to clipboard\",\r\n // duration: 2500,\r\n // ripple: true,\r\n // dismissible: true,\r\n // position: {\r\n // x: \"right\",\r\n // y: \"top\",\r\n // },\r\n // });\r\n // }\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \"\"\r\n

Earn {model.referralPointsToEarn} {model.pointsLabel}

\r\n\r\n

Each time a friend signs up through your referral link, they'll get {model.referredRewardTitle}, and you'll receive {model.referralPointsToEarn} {model.pointsLabel}!

\r\n
\r\n
\r\n
\r\n \r\n\r\n { notyf.open({ type: \"success\", message: \"Copied to clipboard\", duration: 2500 })}>\r\n \r\n }\r\n
\r\n
\r\n
\r\n Copy and paste this link to share with friends anywhere\r\n {model.referralLink &&
\r\n
    \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n {/*
  • \r\n \r\n \r\n \r\n
  • */}\r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
\r\n\r\n
}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n );\r\n};\r\n\r\nexport default ReferralModalComponent;\r\n","export default \"data:image/png;base64,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\"","import moment from \"moment\";\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\nimport { Spinner } from \"react-bootstrap\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { EarnActivityModel, HomeApi, PortalCustomerModel } from \"../../apiclient\";\r\nimport Header from \"../../components/Header\";\r\n//import { DashboardApi, RecentActivityComponentViewModel } from \"../../apiclient\";\r\nimport { apiConfig } from \"../../config\";\r\nimport { AuthContext } from \"../../contexts/AccountContext\";\r\nimport NotyfContext from \"../../contexts/NotyfContext\";\r\nimport tadaIcon from \"../../images/img.png\";\r\nimport MyCardModalComponent from \"../Home/MyCardModalComponent\";\r\nimport CompleteProfileModalComponent from \"./CompleteProfileModalComponent\";\r\nimport ReferralModalComponent from \"./ReferralModalComponent\";\r\n\r\n\r\n\r\nconst EarnPage = (props: any) => {\r\n let homepageApi = new HomeApi(\r\n apiConfig.configuration,\r\n apiConfig.baseUrl\r\n );\r\n\r\n const authContext = useContext(AuthContext);\r\n\r\n const [showReferralPopup, setShowReferralPopup] = useState(false as boolean);\r\n const [showMyCardPopup, setShowMyCardPopup] = useState(false as boolean);\r\n const [showCompleteProfilePopup, setShowCompleteProfilePopup] = useState(false as boolean);\r\n const [model, setModel] = useState({} as PortalCustomerModel);\r\n const [completingOption, setCompletingOption] = useState(\"\" as string);\r\n const navigate = useNavigate();\r\n const notyf = useContext(NotyfContext);\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n if (authContext.customer) {\r\n setModel(authContext.customer);\r\n }\r\n };\r\n\r\n fetchData();\r\n }, []);\r\n\r\n\r\n\r\n if (!model) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n const completeActivity = (option: EarnActivityModel) => {\r\n setCompletingOption(option?.id ?? '');\r\n\r\n homepageApi.homeRecordActivityPost((option.id as string | undefined))\r\n .then(response => {\r\n if (response.data?.destinationUrl) {\r\n var redirectUrl = response.data.destinationUrl;\r\n if (redirectUrl) {\r\n window.location.href = redirectUrl\r\n }\r\n refreshModel();\r\n } else {\r\n notyf.open({\r\n type: \"error\",\r\n message: \"An error occurred. Please try again\",\r\n duration: 5000,\r\n ripple: true,\r\n dismissible: true,\r\n position: {\r\n x: \"right\",\r\n y: \"top\",\r\n },\r\n });\r\n }\r\n\r\n setCompletingOption('');\r\n\r\n })\r\n\r\n }\r\n\r\n const refreshModel = () => {\r\n authContext.refreshCustomer()\r\n }\r\n\r\n const completeProfileSaved = () => {\r\n // hide modal\r\n setShowCompleteProfilePopup(false);\r\n authContext.refreshCustomer()\r\n }\r\n\r\n const RenderEarnOption = (option: EarnActivityModel) => {\r\n if (option.id?.includes(\"tier\")) {\r\n return (\r\n
\r\n {option.title} Tier\r\n
Earn {option.description}
Unlock at {option.threshold?.toLocaleString()} {model.pointsLabel}
\r\n
\r\n );\r\n } else if (option.lastRewarded) {\r\n return (\r\n
\r\n +{option.points} {model.pointsLabel}\r\n

{option.title}

\r\n
{option.points} {model.pointsLabel} earned on {moment(option.lastRewarded).format('DD MMM, yyyy')} \"\"
\r\n
\r\n );\r\n }\r\n else if (option.id == \"profile-completed\") {\r\n return (\r\n \r\n );\r\n }\r\n else if (option.id == \"birthday\") {\r\n return (\r\n
\r\n +{option.points} {model.pointsLabel}\r\n

{option.title}\r\n {model.birthdate &&

{option.description}
}\r\n

\r\n {!model.birthdate && setShowCompleteProfilePopup(true)} className=\"btn btn-orange\" data-bs-toggle=\"modal\" data-bs-target=\"#referral_popup\">Earn +{option.points} {model.pointsLabel}}\r\n
\r\n );\r\n } else if (option.id == \"referral\" && model.referralLink) {\r\n return (\r\n \r\n );\r\n }\r\n else {\r\n return (\r\n
\r\n +{option.points} {model.pointsLabel}\r\n

{option.title}

\r\n {completingOption == option.id ? (\r\n Loading..\r\n ) : (\r\n completeActivity(option)} className=\"btn btn-orange\" data-bs-toggle=\"modal\" data-bs-target=\"#referral_popup\">Earn +{option.points} {model.pointsLabel}\r\n )}\r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Earn Points

\r\n
\r\n +{model.earningPointsMessage}\r\n

Scan your card at point of purchase to earn {model.earningPointsMessage} spent

\r\n setShowMyCardPopup(true)} className=\"btn btn-orange\" data-bs-toggle=\"modal\" data-bs-target=\"#my_card\">Show my card\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {model.earnOptions && model.earnOptions.map((option: EarnActivityModel, i: number) => (\r\n
\r\n {RenderEarnOption(option)}\r\n
\r\n ))}\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n setShowReferralPopup(false)} />\r\n setShowMyCardPopup(false)} />\r\n setShowCompleteProfilePopup(false)} onSave={completeProfileSaved} />\r\n \r\n );\r\n};\r\n\r\nexport default EarnPage;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAARCAIAAABfOGuuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAhxJREFUeNpi+I8N9Pf3r1+//j9uwIDGf//+fUFBAYOEPAOPwPnz54nVZm9vz2Dtw9C4DKgzISFh//79BLTdv3+/oaGBAQgalzMEZYIYQP08AkBxTG0sDDDg4ODA/EcKxFo3jcEtCqiBgYcfiD58+MCAAZjgLKC0sUYYiBVXyXB0iwDLB4UbSw0kBD9+/Lhx40ZHR8fAwECEEXB7gUHHz88PEgKGR1ylgq1GQyWIpyRtycnOHyXK4S3EDgxhLH4DKtrQpdVfoARyIQMD0HJf20aINjl2Jn5mRgMDA2BQo2irr69P8Bb/f8IWiObXqgFV2+inADUDVU9T4QNqA5K63CxAZUDFjCCtYCAgIHBwipLWDxCXVZd37xlJl5xVQHamJBdIMwvjxz//gdo6Hn9pnDEXGpILFiwwVGbQV+X5/+3v/x9/gSLOJs+Bdha03b789feRT79t+Fgvf/0jx8EMCTyobUBHF/p9j/cWh5gy4Zd/AuteAcYvjXMeNsx5FODDcOEyg7yCPTCSgCoDAgJAth04cODjqxvx3mbwyDBgvgfUA2Ko8UCj5yPD/IYGoDYIlwXiwgSYPdCoZ7588NyHBVtfrT/yAxgxDx48iE9WgOsBAkZggAoKCn7YY8nPA/Xnwq0vJ6x8+v6nCDBNApM1MKgwUwkDUBvIDXssH6w3bUiRE+BlAabm+fPn/8cLGCAxBjEiPj4eT2ZBBgABBgC60sugH6lGawAAAABJRU5ErkJggg==\"","import React, {Component} from 'react'\r\nimport $ from 'jquery'\r\nimport {CirclePercentProps} from '../models/Home/HomepageModels'\r\n\r\n\r\nexport default class CustomJQueryPercentCode extends Component {\r\n constructor(props: CirclePercentProps){\r\n super(props);\r\n }\r\n jQuerycode = () => {\r\n let backgroundBannerColor = this.props.backgroundBannerColor;\r\n $(\".circle_percent\").each(function() {\r\n var $this = $(this),\r\n $dataV = $this.data(\"percent\"),\r\n $dataDeg = $dataV * 3.6,\r\n $round = $this.find(\".round_per\"),\r\n $rotateParam = $dataDeg + 180;\r\n $round.css(\"transform\", \"rotate(\" + $rotateParam + \"deg)\");\t\r\n $this.append(`
`);\r\n $this.prop('Counter', 0).animate({Counter: $dataV},\r\n {\r\n duration: 2000, \r\n easing: 'swing', \r\n step: function (now) {\r\n $this.find(\".percent_text\").text(Math.ceil(now)+\"%\");\r\n }\r\n });\r\n if($dataV >= 51){\r\n $round.css(\"transform\", \"rotate(\" + 360 + \"deg)\");\r\n setTimeout(function(){\r\n $this.addClass(\"percent_more\");\r\n },1000);\r\n setTimeout(function(){\r\n $round.css(\"transform\", \"rotate(\" + $rotateParam + \"deg)\");\r\n },1000);\r\n } \r\n });\r\n\r\n }\r\n\r\n componentDidMount(){\r\n this.jQuerycode()\r\n }\r\n render() {\r\n return (\r\n <>\r\n )\r\n }\r\n }\r\n ","import React, { useContext } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport QRCode from \"react-qr-code\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { HomePageRewardListItem } from \"../../apiclient\";\r\nimport NotyfContext from \"../../contexts/NotyfContext\";\r\nimport closeIcon from \"../../images/close-icon.svg\";\r\n\r\n\r\nconst RedeemModalComponent = (props: any) => {\r\n\r\n let model = props.reward as HomePageRewardListItem;\r\n let membershipId = props.membershipId as string;\r\n const navigate = useNavigate();\r\n\r\n const handleClose = () => {\r\n props.onHide();\r\n }\r\n\r\n const notyf = useContext(NotyfContext);\r\n\r\n\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \"\"\r\n \r\n
\r\n
\r\n
\r\n {membershipId && }\r\n
\r\n

{model.redeemCode}

\r\n

\r\n Present this code to staff to find your profile and redeem reward\r\n

\r\n
\r\n
\r\n {\r\n (model.pointsRequired ?? 0) > 0 &&\r\n

\r\n {model.pointsRequired} {model.pointsLabel}\r\n

\r\n }\r\n

{model.rewardTitle}

\r\n

\r\n {model.terms}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default RedeemModalComponent;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { AccountApi, AccountBranding, HomePageRewardListItem, PortalCustomerModel, UtmTrackingPostRequestModel } from \"../../apiclient\";\r\nimport Header from \"../../components/Header\";\r\nimport JQueryCirclePercentCode from \"../../components/JQueryCirclePercentCode\";\r\nimport { apiConfig } from \"../../config\";\r\nimport { AuthContext } from \"../../contexts/AccountContext\";\r\nimport RedeemModalComponent from \"../Redeem/RedeemModalComponent\";\r\nimport MyCardModalComponent from \"./MyCardModalComponent\";\r\n\r\nconst HomePage = () => {\r\n let accountApi = new AccountApi(apiConfig.configuration, apiConfig.baseUrl);\r\n const authContext = useContext(AuthContext);\r\n const [model, setModel] = useState({} as PortalCustomerModel);\r\n const [branding, setBranding] = useState({} as AccountBranding);\r\n const [showMyCardPopup, setShowMyCardPopup] = useState(false as boolean);\r\n const [showRedeemPopup, setShowRedeemPopup] = useState(false as boolean);\r\n const [rewardToRedeem, setRewardToRedeem] = useState(\r\n {} as HomePageRewardListItem\r\n );\r\n const [isLoading, setLoading] = useState(true);\r\n const navigate = useNavigate();\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n if (authContext.account?.accountBranding) setBranding(authContext.account.accountBranding)\r\n if (authContext.customer) {\r\n setModel(authContext.customer);\r\n saveUtmsToCustomer(authContext.customer);\r\n }\r\n setLoading(false);\r\n };\r\n\r\n fetchData();\r\n });\r\n\r\n const saveUtmsToCustomer = (customer: PortalCustomerModel) => {\r\n let utm_source = localStorage.getItem(\"utm_source\") ?? \"\";\r\n let utm_medium = localStorage.getItem(\"utm_medium\") ?? \"\";\r\n let utm_campaign = localStorage.getItem(\"utm_campaign\") ?? \"\";\r\n let utm_id = localStorage.getItem(\"utm_id\") ?? \"\";\r\n if (customer && utm_source) {\r\n var postModel = {\r\n customerId: customer.customerId,\r\n utmCampaign: utm_campaign,\r\n utmId: utm_id,\r\n utmMedium: utm_medium,\r\n utmSource: utm_source,\r\n emailAddress: customer.customerEmail\r\n } as UtmTrackingPostRequestModel;\r\n accountApi\r\n .accountCustomerUtmTrackingUpdatePost(\"1\", postModel)\r\n .then((response) => {\r\n if (response) {\r\n localStorage.removeItem(\"utm_source\");\r\n localStorage.removeItem(\"utm_medium\");\r\n localStorage.removeItem(\"utm_campaign\");\r\n localStorage.removeItem(\"utm_id\");\r\n localStorage.removeItem(\"customer_id\");\r\n }\r\n })\r\n .catch(function (error) { });\r\n }\r\n };\r\n\r\n const selectRewardToRedeem = (selectedReward: HomePageRewardListItem) => {\r\n setRewardToRedeem(selectedReward);\r\n setShowRedeemPopup(true);\r\n };\r\n\r\n const redeemModelOnHide = () => {\r\n setShowRedeemPopup(false);\r\n };\r\n\r\n if (isLoading) {\r\n return <>\r\n }\r\n return (\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{model.customerName}

\r\n {model.tierName &&\r\n \r\n {model.tierName}\r\n \r\n }\r\n
    \r\n
  • \r\n \r\n
    \r\n
    \r\n
    \r\n
\r\n \r\n
  • \r\n
    \r\n

    \r\n {model.pointsToSpend?.toLocaleString()}\r\n

    \r\n \r\n {model.pointsLabel} to spend\r\n \r\n

    \r\n {\r\n model.numPointsUntilNextReward\r\n }{\" \"}\r\n points till you unlock your\r\n next reward\r\n

    \r\n
    \r\n
  • \r\n \r\n setShowMyCardPopup(true)}\r\n >\r\n Show my card\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n {model.availableToRedeemRewardList &&\r\n model.availableToRedeemRewardList.length > 0 && (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n {model.availableToRedeemRewardList.map(\r\n (reward, i) => (\r\n \r\n
      \r\n \r\n {\r\n reward.badgeTitle\r\n }\r\n \r\n

      \r\n {\r\n reward.pointsRequired\r\n }{\" \"}\r\n \r\n {\r\n reward.pointsLabel\r\n }\r\n \r\n

      \r\n

      \r\n {\r\n reward.rewardTitle\r\n }{\" \"}\r\n

      \r\n \r\n selectRewardToRedeem(\r\n reward\r\n )\r\n }\r\n className=\"btn btn-orange\"\r\n >\r\n Redeem\r\n \r\n
      \r\n
      \r\n \r\n )\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n navigate(\"/\")}\r\n className=\"btn btn-grey\"\r\n >\r\n Home\r\n \r\n
    • \r\n
    • \r\n navigate(\"/earn\")}\r\n className=\"btn btn-grey\"\r\n >\r\n Earn\r\n \r\n
    • \r\n
    • \r\n navigate(\"/redeem\")}\r\n className=\"btn btn-grey\"\r\n >\r\n Redeem\r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n setShowMyCardPopup(false)}\r\n />\r\n {rewardToRedeem && (\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default HomePage;\r\n","import moment from \"moment\";\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\nimport { Spinner } from \"react-bootstrap\";\r\nimport { useParams, useSearchParams } from \"react-router-dom\";\r\nimport {\r\n ReceiptApi,\r\n ReceiptViewModel,\r\n SignInPageViewModel\r\n} from \"../../apiclient\";\r\nimport { PowerbyFooter } from \"../../components/PowerbyFooter\";\r\nimport { apiConfig } from \"../../config\";\r\nimport { AuthContext } from \"../../contexts/AccountContext\";\r\nimport NotyfContext from \"../../contexts/NotyfContext\";\r\nimport defaultBanner from \"../../images/background.png\";\r\nimport styles from \"../Account/LoginComponent.module.css\";\r\n\r\nconst ReceiptPage = () => {\r\n let receiptApi = new ReceiptApi(apiConfig.configuration, apiConfig.baseUrl);\r\n const [receiptModel, setReceiptModel] = useState({} as ReceiptViewModel);\r\n const [model, setModel] = useState({} as SignInPageViewModel);\r\n const [isLoading, setLoading] = useState(true as boolean);\r\n const notyf = useContext(NotyfContext);\r\n const authContext = useContext(AuthContext);\r\n let { id } = useParams();\r\n\r\n const [searchParams] = useSearchParams();\r\n let utm_source = searchParams.get(\"utm_source\");\r\n let utm_medium = searchParams.get(\"utm_medium\");\r\n let utm_campaign = searchParams.get(\"utm_campaign\");\r\n let utm_id = searchParams.get(\"utm_id\");\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n receiptApi\r\n .receiptReceiptGet(id)\r\n .then((response) => {\r\n setReceiptModel(response.data);\r\n setLoading(false);\r\n })\r\n .catch((error: any) => {\r\n notyf.open({\r\n type: \"error\",\r\n message: \"Sorry something went wrong, please try again\",\r\n duration: 5000,\r\n ripple: true,\r\n dismissible: true,\r\n position: {\r\n x: \"right\",\r\n y: \"top\",\r\n },\r\n });\r\n setLoading(false);\r\n });\r\n if(authContext.account) setModel(authContext.account);\r\n\r\n };\r\n\r\n fetchData();\r\n saveUtmsToStorage();\r\n }, []);\r\n\r\n const saveUtmsToStorage = () => {\r\n console.log(\"utm_source\", utm_source);\r\n if (utm_source) {\r\n localStorage.setItem(\"utm_source\", utm_source);\r\n }\r\n\r\n if (utm_medium) {\r\n localStorage.setItem(\"utm_medium\", utm_medium);\r\n }\r\n\r\n if (utm_campaign) {\r\n localStorage.setItem(\"utm_campaign\", utm_campaign);\r\n }\r\n\r\n if (utm_id) {\r\n localStorage.setItem(\"utm_id\", utm_id);\r\n }\r\n };\r\n\r\n if (isLoading) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {isLoading ? (\r\n <>\r\n ) : (\r\n \r\n
    \r\n {model.accountBranding?.signupBannerUrl ? (\r\n \"\"\r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Receipt #{receiptModel.title}

    \r\n
    \r\n {receiptModel.siteName}\r\n
    \r\n
    \r\n {moment\r\n .utc(receiptModel.orderDateAt)\r\n .local()\r\n .format(\r\n \"MMMM Do YYYY | h:mm:ss A z\"\r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n View receipt\r\n \r\n
    \r\n
    \r\n {!authContext.customer ? (\r\n
    \r\n
    \r\n \r\n Back to home\r\n \r\n
    \r\n
    \r\n ) : (\r\n <>\r\n \r\n \r\n {model.accountBranding?.headerText}\r\n \r\n
    \r\n
    \r\n \r\n Sign-up\r\n \r\n
    \r\n \r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ReceiptPage;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { Spinner } from \"react-bootstrap\";\r\n//import { DashboardApi, RecentActivityComponentViewModel } from \"../../apiclient\";\r\nimport moment from \"moment\";\r\nimport {\r\n CustomerModel,\r\n ReceiptApi,\r\n ReceiptViewModel\r\n} from \"../../apiclient\";\r\nimport { apiConfig } from \"../../config\";\r\n\r\nimport Header from \"../../components/Header\";\r\nimport { AuthContext } from \"../../contexts/AccountContext\";\r\n\r\nconst ReceiptsPage = (props: any) => {\r\n let receiptApi = new ReceiptApi(apiConfig.configuration, apiConfig.baseUrl);\r\n\r\n const authContext = useContext(AuthContext);\r\n const [model, setModel] = useState({} as CustomerModel);\r\n const [inputs, setInputs] = useState([] as ReceiptViewModel[]);\r\n\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n if (authContext.customer) {\r\n setModel(authContext.customer);\r\n\r\n receiptApi\r\n .receiptReceiptsGet()\r\n .then((response) => {\r\n console.log(response.data);\r\n setInputs(response.data);\r\n });\r\n }\r\n };\r\n\r\n fetchData();\r\n }, []);\r\n\r\n const RenderReceiptListItem = (option: ReceiptViewModel) =>{\r\n if(option.provider === \"Kounta\"){\r\n return (\r\n \r\n
    \r\n
    #{option.title}
    \r\n Total: ${option.total?.toLocaleString()}\r\n
    \r\n

    {moment\r\n .utc(option.orderDateAt)\r\n .local()\r\n .format(\"MMMM Do YYYY, h:mm:ss A z\")}

    \r\n
    \r\n );\r\n }\r\n else{\r\n return (\r\n <>\r\n
    \r\n
    #{option.title}
    \r\n Total: ${option.total?.toLocaleString()}\r\n
    \r\n

    {moment\r\n .utc(option.orderDateAt)\r\n .local()\r\n .format(\"MMMM Do YYYY, h:mm:ss A z\")}

    \r\n \r\n );\r\n }\r\n };\r\n\r\n if (!model) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Receipts

    \r\n {inputs && inputs.map((option:ReceiptViewModel, i:number) =>(\r\n\r\n
    \r\n {RenderReceiptListItem(option)}\r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ReceiptsPage;\r\n","import moment from 'moment';\r\nimport React, { useContext, useEffect, useState } from \"react\";\r\nimport { Spinner } from \"react-bootstrap\";\r\nimport { useNavigate, useSearchParams } from \"react-router-dom\";\r\nimport { HomePageRewardListItem, PortalCustomerModel } from \"../../apiclient/models\";\r\nimport Header from \"../../components/Header\";\r\nimport { AuthContext } from \"../../contexts/AccountContext\";\r\nimport arrowIcon from \"../../images/arrow.png\";\r\nimport RedeemModalComponent from \"./RedeemModalComponent\";\r\n\r\nconst RedeemPage = () => {\r\n const [showRedeemPopup, setShowRedeemPopup] = useState(false as boolean);\r\n const [rewardToRedeem, setRewardToRedeem] = useState({} as HomePageRewardListItem);\r\n const [model, setModel] = useState({} as PortalCustomerModel);\r\n const navigate = useNavigate();\r\n const authContext = useContext(AuthContext);\r\n const [searchParams] = useSearchParams();\r\n\r\n useEffect(() => {\r\n const fetchData = () => {\r\n if (authContext.customer) {\r\n setModel(authContext.customer);\r\n\r\n // Check if a rewardId is present, and use it if so\r\n var rewardId = searchParams.get(\"rewardId\");\r\n var reward = authContext.customer.availableToRedeemRewardList?.find(item => item.rewardId == rewardId);\r\n if (reward != null) {\r\n setRewardToRedeem(reward);\r\n setShowRedeemPopup(true);\r\n }\r\n }\r\n };\r\n fetchData();\r\n }, []);\r\n\r\n if (!model) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n const selectRewardToRedeem = (selectedReward: HomePageRewardListItem) => {\r\n setRewardToRedeem(selectedReward);\r\n setShowRedeemPopup(true);\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    You have {model.pointsToSpend?.toLocaleString()} {model.pointsLabel} to spend

    \r\n
    \r\n {model.availableToRedeemRewardList && model.availableToRedeemRewardList.length > 0 &&\r\n
    \r\n

    Available to redeem

    \r\n
      \r\n {model.availableToRedeemRewardList.map((reward, i) => (\r\n\r\n
    • selectRewardToRedeem(reward)} key={'reward' + i} className=\"d-flex align-items-center\">\r\n
      \r\n {reward.pointsRequired == 0 ? \"Gift\" : reward.pointsRequired}\r\n
      \r\n
      \r\n

      {reward.rewardTitle}

      \r\n
      {reward.endDate &&\r\n <>Expires: {moment(reward.endDate).format(\"DD MMM, yyyy\")}\r\n }
      \r\n
      \r\n \"\"\r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n }\r\n\r\n {model.lockedRewardList && model.lockedRewardList.length > 0 &&\r\n
    \r\n

    To be unlocked

    \r\n
      \r\n {model.lockedRewardList.map((reward, i) => (\r\n
    • \r\n
      \r\n {reward.pointsRequired}\r\n
      \r\n
      \r\n

      {reward.rewardTitle}

      \r\n

      {reward.pointsNeededToUnlockReward} points needed to unlock reward

      \r\n
      \r\n
      \r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {rewardToRedeem && setShowRedeemPopup(false)} />}\r\n \r\n );\r\n};\r\n\r\nexport default RedeemPage;\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAANCAIAAAAboLhvAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALRJREFUeNp0kMEKwjAQRGsuBprmV/QQQcEI+t9WtEIPxqJ+RvHStDHpSSetmAq6kMu83Z3ZRNbadJtVlX5+F1Gna1ned+lR6zoaFBGzCefMuRasqU0AlNL1ZslYDJZluXPuDfDA5GpO6VjrBnM9G8Gnb4FHp7bYjB3ks5TzRIhp19EgUQCYUOrSdTAkIj/3wNUDuB32+VD1qaCi15gHUkm56FUPivMNblD9NUkcTv/3Vy8BBgDiRIwQdDxDxgAAAABJRU5ErkJggg==\"","import AccountLayout from \"./layouts/AccountLayout\";\r\nimport AppLayout from \"./layouts/AppLayout\";\r\nimport InstorePage from \"./pages/Account/InstorePage\";\r\nimport NotificationsPage from \"./pages/Account/NotificationsPage\";\r\nimport Page404 from \"./pages/Account/Page404\";\r\nimport VerifyPage from \"./pages/Account/VerifyPage\";\r\nimport CustomersProfilePage from \"./pages/Customer/CustomersProfilePage/CustomersProfilePage\";\r\nimport CompleteProfilePage from \"./pages/Earn/CompleteProfileModalComponent\";\r\nimport EarnPage from \"./pages/Earn/EarnPage\";\r\nimport HomePage from \"./pages/Home/HomePage\";\r\nimport ReceiptPage from \"./pages/Receipt/ReceiptPage\";\r\nimport ReceiptsPage from \"./pages/Receipt/ReceiptsPage\";\r\nimport RedeemPage from \"./pages/Redeem/RedeemPage\";\r\n\r\n\r\n\r\nconst routes = [\r\n {\r\n path: \"/\",\r\n element: ,\r\n children: [\r\n {\r\n path: \"\",\r\n element: ,\r\n },\r\n {\r\n path: \"/home\",\r\n element: ,\r\n },\r\n {\r\n path: \"/earn\",\r\n element: ,\r\n },\r\n {\r\n path: \"/redeem\",\r\n element: ,\r\n },\r\n\r\n {\r\n path: \"/completeprofile\",\r\n element: ,\r\n },\r\n {\r\n path: \"/notifications\",\r\n element: ,\r\n },\r\n {\r\n path: \"/receipts\",\r\n element: ,\r\n }\r\n ],\r\n },\r\n {\r\n path: \"/receipt/:id\",\r\n element: \r\n },\r\n {\r\n path: \"/instore\",\r\n element: ,\r\n },\r\n {\r\n path: \"/verify/:token\",\r\n element: ,\r\n },\r\n {\r\n path: \"/pos/kseries/\",\r\n element: ,\r\n children: [\r\n {\r\n path: \"\",\r\n element: \r\n }\r\n ]\r\n },\r\n {\r\n path: \"*\",\r\n element: ,\r\n },\r\n];\r\n\r\nexport default routes;\r\n","// import React, { Component } from 'react';\r\n// import { Route } from 'react-router';\r\n// import { Layout } from './components/Layout';\r\n// import { Home } from './components/Home';\r\n// import { FetchData } from './components/FetchData';\r\n// import { Counter } from './components/Counter';\r\n\r\n// import './custom.css'\r\n\r\n// export default class App extends Component {\r\n// static displayName = App.name;\r\n\r\n// render () {\r\n// return (\r\n// \r\n// \r\n// \r\n// \r\n// \r\n// );\r\n// }\r\n// }\r\n\r\nimport React from \"react\";\r\nimport { Helmet, HelmetProvider } from \"react-helmet-async\";\r\nimport { useRoutes } from \"react-router-dom\";\r\nimport \"./custom.css\";\r\nimport routes from \"./routes\";\r\n\r\n\r\nconst App = () => {\r\n const content = useRoutes(routes);\r\n return (\r\n \r\n \r\n {content}\r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n//export default aiTrackedComponent(App);\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://cra.link/PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://cra.link/PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://cra.link/PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","const reportWebVitals = (onPerfEntry) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement); \r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://cra.link/PWA\r\nserviceWorkerRegistration.unregister();\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}