{"version":3,"file":"coopse.script.8843.156d0a21.chunk.js","mappings":"8MAkDA,EAvBoC,CAChCA,EACAC,IAEe,IAAmBC,sBAC9B,CACIC,QAAS,GAAGC,EAAA,EAAUC,aAAaC,cAAcC,4BACjDC,OAAQ,CACJ,cAAe,MAEnBC,QAAS,CACLC,OAAQ,mBACR,iBAAkB,OAClB,4BACIN,EAAA,EAAUC,aAAaC,cAAcK,uBACzCC,cAAeZ,EAAc,UAAUA,SAAgBa,IAG/DZ,G,UC7BD,MAAMa,EAAgB,qBAsMvBC,EACFC,I,MAEA,OAAuC,OAAb,QAAtB,EAAAA,EAASA,SAASC,YAAI,eAAEC,SACjB,QACHF,EAASA,SAASC,KAAKE,MACvBH,EAASA,SAASC,KAAKC,OAAOE,aAI/B,QAAuB,mDAAoD,MAAM,EAGtFC,EACFL,I,QAEA,IAAIM,EAAM,KAEV,GAA0B,QAAtB,EAAAN,EAASA,SAASC,YAAI,eAAEM,MACxB,OAAQP,EAASA,SAASC,KAAKM,OAC3B,IAAK,oBACDD,EAAM,gDACN,MACJ,IAAK,oBACDA,EAAM,2BACN,MACJ,IAAK,0BACDA,EACI,iFACJ,MACJ,IAAK,sBACDA,EACI,kGACJ,MACJ,QACIA,EAAM,kBAKlB,OAAIA,GACO,QAAuBA,EAA2B,QAAtB,EAAAN,EAASA,SAASC,YAAI,eAAEM,QAGxD,QAAuB,kBAAkB,EAG9CC,EACFR,I,QAEA,GAA0B,QAAtB,EAAAA,EAASA,SAASC,YAAI,eAAEQ,UAAW,CACnC,IAAIH,EAAM,KAEV,OAAQN,EAASA,SAASC,KAAKQ,WAC3B,KAAK,GACL,KAAK,GACDH,EACI,8FACJ,MACJ,KAAK,GACDA,EACI,wFACJ,MACJ,KAAK,GACDA,EAAM,mDACN,MACJ,KAAK,GACL,KAAK,GACDA,EACI,mFACJ,MACJ,KAAK,GACDA,EACI,kFACJ,MACJ,KAAK,IACDA,EAAM,4EACN,MACJ,KAAK,GACDA,EAAM,qDACN,MACJ,KAAK,GACDA,EACI,mFACJ,MACJ,KAAK,IACL,KAAK,IACDA,EACI,+EACJ,MACJ,KAAK,IACDA,EAAM,wCACN,MACJ,KAAK,IACDA,EAAM,+DACN,MACJ,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,IACDA,EAAM,8DAMd,GAAIA,EACA,OAAO,QAAuBA,EAAKN,EAASA,SAASC,KAAKQ,UAAUL,WAE5E,CAEA,GAA0B,QAAtB,EAAAJ,EAASA,SAASC,YAAI,eAAEC,OAAQ,CAChC,IAAII,EAAM,KAEV,OAAQN,EAASA,SAASE,QACtB,KAAK,IACDI,EAAM,uBACN,MACJ,KAAK,IACDA,EAAM,gDACN,MACJ,KAAK,IACDA,EAAM,8DACN,MACJ,QACIA,EAAM,+CAId,GAAIA,EACA,OAAO,QAAuBA,EAAKN,EAASA,SAASC,KAAKQ,UAAUL,WAE5E,CAEA,OAAO,IAAI,EAWTM,EACFV,I,MAEA,GAA0B,QAAtB,EAAAA,EAASA,SAASC,YAAI,eAAEC,OAAQ,CAChC,IAAII,EAAM,KAEV,OAAQN,EAASA,SAASC,KAAKC,QAC3B,KAAK,IACDI,EAAM,sBACN,MACJ,KAAK,IACDA,EAAM,iBACN,MACJ,KAAK,IACDA,EAAM,wBACN,MACJ,KAAK,IACDA,EAAM,0CAMd,GAAIA,EACA,OAAO,QAAuBA,EAAKN,EAASA,SAASC,KAAKC,OAAOE,WAEzE,CAEA,OAAO,IAAI,EAiBTO,EACFX,I,MAEA,GAA0B,QAAtB,EAAAA,EAASA,SAASC,YAAI,eAAEC,OAAQ,CAChC,IAAII,EAAM,KAEV,OAAQN,EAASA,SAASC,KAAKC,QAC3B,KAAK,IACDI,EAAM,sBACN,MACJ,KAAK,IACDA,EAAM,iBACN,MACJ,KAAK,IACDA,EAAM,0BACN,MACJ,KAAK,IACL,KAAK,IACDA,EAAM,0CAMd,GAAIA,EACA,OAAO,QAAuBA,EAAKN,EAASA,SAASC,KAAKC,OAAOE,WAEzE,CAEA,OAAO,IAAI,EAyDFQ,EA1YyB,CAClCC,EACAC,KACmC,0CACnC,IAMI,aALqB,EAA4BD,EAAO,CACpDd,IACDgB,KAAK,sBAAuBD,EAAS,CACpCtB,OAAQ,CAAE,cAAe,SAEfS,MAAQ,EAC1B,CAAE,MAAOM,GACL,MAAMS,EAAMT,EACZ,GAAIS,EAAIC,MAAqB,QAAbD,EAAIC,KAEhB,MAAO,GAGX,MAAMV,CACV,CACJ,IAsXaK,EAjXuB,CAChCC,EACAC,EACAI,KACmC,0CACnC,IACI,MAAMC,EAAWD,EAASE,cACpBC,EAAYH,EAASI,WAAa,EAQxC,aANqB,EAA4BT,EAAO,CACpDd,IACDgB,KAAK,uBAAuBI,KAAYE,IAAaP,EAAS,CAC7DtB,OAAQ,CAAE,cAAe,SAGfS,MAAQ,EAC1B,CAAE,MAAOM,GACL,MAAMS,EAAMT,EACZ,GAAIS,EAAIC,MAAqB,QAAbD,EAAIC,KAEhB,MAAO,GAGX,MAAMV,CACV,CACJ,ICxGMgB,EAA0BC,GACV,IAAdA,EACO,wBAEO,IAAdA,EACO,wBAEO,IAAdA,EACO,iBAEO,IAAdA,EACO,qBAEO,IAAdA,EACO,gBAEO,IAAdA,EACO,eAEO,IAAdA,EACO,uBAEO,IAAdA,EACO,uBAEO,IAAdA,EACO,qBAEO,KAAdA,EACO,eAEO,KAAdA,EACO,uBAEO,KAAdA,EACO,wBAEO,KAAdA,EACO,iBAEO,KAAdA,EACO,iBAGJ,SAoHLC,EAA4D,CAAC,EA4FnE,MAvBsB,CAClBC,kBAjR6BC,IAAmB,0CAChD,MAAMC,QAAiB,EAAAC,EAAA,MACvB,MDiBsB,EAAOF,EAAgBd,KAAkB,0CAO/D,aANqB,EAA4BA,GAAOiB,IACpD,mBAAmBH,IACnB,CACInC,OAAQ,CAAE,cAAe,SAGnBS,IAClB,ICzBWW,CAAqCe,EAAQC,EAASf,MACjE,IA+QIkB,oBA7QwB,KAAY,0CACpC,MAAMH,QAAiB,EAAAC,EAAA,MAEvB,aDyC+BhB,EC1C6Be,EAASf,OD0CF,0C,MAEnE,OAAkB,QAAX,SADc,EAA4BA,GAAOiB,IArC9B,oBAsCZ7B,YAAI,eAAE+B,qBAAqB,CAC7C,KAH4B,IAAOnB,CCxCnC,IA0QIoB,oBAxQwB,KAAY,0CACpC,MAAML,QAAiB,EAAAC,EAAA,MAEvB,aDkB+BhB,ECnB8Be,EAASf,ODmBO,0C,MAG7E,OAAkB,QAAX,SADG,EAA4BA,GAAOiB,IAAuB,yBACtD7B,YAAI,eAAEiC,OACxB,KAJ4B,IAAOrB,CCjBnC,IAqQIsB,gBAnQoB,KAAY,0CAChC,MAAMP,QAAiB,EAAAC,EAAA,MAEvB,aDqC2BhB,ECtCmCe,EAASf,ODsCP,0CAIhE,aAHqB,EAA4BA,GAAOiB,IAAI,iBAAkB,CAC1EtC,OAAQ,CAAE,cAAe,SAEfS,IAClB,KALwB,IAAOY,CCpC/B,IAgQIuB,sBA9P0B,KAAY,0CACtC,MAAMR,QAAiB,EAAAC,EAAA,MAEvB,aDyCiChB,EC1CyCe,EAASf,OD0CR,0CAI3E,aAHqB,EAA4BA,GAAOiB,IAtDxB,0BAsDkD,CAC9EtC,OAAQ,CAAE,cAAe,SAEfS,IAClB,KAL8B,IAAOY,CCxCrC,IA2PIwB,8BAzPkC,KAAY,0CAC9C,MAAMT,QAAiB,EAAAC,EAAA,MAIvB,aD2CyChB,EC7CrCe,EAASf,OD6CwE,0CAIrF,aAHqB,EAA4BA,GAAOiB,IAAI,yBAA0B,CAClFtC,OAAQ,CAAE,cAAe,SAEfS,IAClB,KALsC,IAAOY,CC1C7C,IAoPIyB,iBAlPqB,KAAY,0CACjC,MAAMV,QAAiB,EAAAC,EAAA,MAEvB,aD+C4BhB,EChDoCe,EAASf,ODgDA,0CAIzE,aAHqB,EAA4BA,GAAOiB,IAAI,yBAA0B,CAClFtC,OAAQ,CAAE,cAAe,SAEfS,IAClB,KALyB,IAAOY,CC9ChC,IA+OI0B,uBAnF2B,KAAY,0CACvC,MAAMX,QAAiB,EAAAC,EAAA,MAEvB,aDpBkChB,ECmB0Ce,EAASf,ODnBN,0CAI/E,aAHqB,EAA4BA,GAAOiB,IAAI,wBAAyB,CACjFtC,OAAQ,CAAE,cAAe,SAEfS,IAClB,KAL+B,IAAOY,CCqBtC,IAgFI2B,sCA9L0C,CAC1CtB,EACAuB,EACAC,EACAC,KACC,0CACD,MAAMf,QAAiB,EAAAC,EAAA,MAEvB,GAAIY,EAAQ,CACR,MAAM3B,EAAmC,CACrC8B,KAAM1B,EACN2B,GAAIJ,EACJC,KAAMA,QAAAA,EAAQ,EACdC,KAAMA,QAAAA,EAAQ,EACdG,OAAQ,gBAYZ,aARUlC,EAAiDgB,EAASf,MAAOC,IACzEiC,KAAKC,GACI,OAAP,wBACOA,GAAK,CACRC,oBAAqB1B,EAAuByB,EAAMxB,cAK9D,CAEA,MAAMV,EAA+B,CACjC4B,KAAMA,QAAAA,EAAQ,EACdC,KAAMA,QAAAA,EAAQ,EACdG,OAAQ,gBAWZ,aARUlC,EAA+CgB,EAASf,MAAOC,EAASI,IAChF6B,KAAKC,GACI,OAAP,wBACOA,GAAK,CACRC,oBAAqB1B,EAAuByB,EAAMxB,cAK9D,IAmJI0B,4BAjJgC,CAChChC,EACAuB,EACAC,EACAC,KACC,0CACD,MAAMf,QAAiB,EAAAC,EAAA,MACvB,GAAIY,EAAQ,CACR,MAAM3B,EAAmC,CACrC8B,KAAM1B,EACN2B,GAAIJ,EACJC,KAAMA,QAAAA,EAAQ,EACdC,KAAMA,QAAAA,EAAQ,EACdG,OAAQ,0BAWZ,aARUlC,EAAiDgB,EAASf,MAAOC,IACzEiC,KAAKC,GACI,OAAP,wBACOA,GAAK,CACRC,oBAAqB1B,EAAuByB,EAAMxB,cAK9D,CAGA,MAAMV,EAA+B,CACjC4B,KAAMA,QAAAA,EAAQ,EACdC,KAAMA,QAAAA,EAAQ,EACdG,OAAQ,0BAWZ,aARUlC,EAA+CgB,EAASf,MAAOC,EAASI,IAChF6B,KAAKC,GACI,OAAP,wBACOA,GAAK,CACRC,oBAAqB1B,EAAuByB,EAAMxB,cAK9D,IAuGI2B,uCApG2C,CAC3CjC,EACAwB,EACAC,KACC,0CAED,MDrCwC,EACxC9B,EACAK,EACAwB,EACAC,KACwC,0CACxC,IACI,MAAMxB,EAAWD,EAASE,cACpBC,EAAYH,EAASI,WAAa,EAQxC,aANqB,EAA4BT,EAAO,CACpDd,IACD+B,IAAI,0BAA0BX,KAAYE,IAAa,CACtD7B,OAAQ,CAAE,cAAe,KAAMmD,KAAMA,QAAAA,EAAQ,EAAGD,KAAMA,QAAAA,EAAQ,MAGpDzC,IAClB,CAAE,MAAOM,GACL,MAAMS,EAAMT,EACZ,GAAIS,EAAIC,MAAqB,QAAbD,EAAIC,KAEhB,MAAO,GAGX,MAAMV,CACV,CACJ,ICWWK,QADgB,EAAAiB,EAAA,OAEVhB,MACTK,EACAwB,EACAC,EAER,IAyFIS,kBA/E6BC,IAAe,0CAC5C,GAAI5B,EAAe4B,GACf,OAAO5B,EAAe4B,GAG1B,MAAMzB,QAAiB,EAAAC,EAAA,MACjByB,ODxBgB,EAAOD,EAAYxC,KAAmD,0CAI5F,aAHqB,EAA4BA,GAAOiB,IACpD,oBAAoByB,UAAUF,OAEpBpD,IAClB,ICmB0BW,CAAqCyC,EAAIzB,EAASf,OAExE,OADAY,EAAe4B,GAAMC,EACdA,CACX,IAuEIE,cArEkB,CAAOC,EAAiBC,KAA6C,0CACvF,MAAM9B,QAAiB,EAAAC,EAAA,MAMvB,YD7BkB,EAClB4B,EACAC,EACA7C,KACiC,0CACjC,MAAM8C,QAAe,EAA4B9C,EAAO,CACpDL,IACDO,KAAK,qBAAqB0C,IAAWC,GAExC,UACU,SAAyBE,OAAO,kBAE1C,CAAE,SAAO,CACT,OAAOD,EAAO1D,IAClB,ICUwBW,CAChB6C,EACAC,EACA9B,EAASf,MAGjB,IA8DIgD,kBA5DsB,KAAY,0CAClC,MAAMjC,QAAiB,EAAAC,EAAA,MAEjBiC,QD2H0BjD,EC3HoCe,EAASf,OD2HS,0CAKtF,aAJqB,EAA4BA,EAAO,CAACH,IAAgCoB,IACrFhC,IAGUG,IAClB,KAN6B,IAAOY,EC1HhC,OAA+B,KAAxBiD,aAAa,EAAbA,EAAeC,MAAa,KAAO,KAC9C,IAwDIC,oBAtDwB,KAAY,0CACpC,MAAMpC,QAAiB,EAAAC,EAAA,MAEvB,aD2J+BhB,EC5Jce,EAASf,OD4JL,0CAIjD,aAHqB,EAA4BA,EAAO,CAACF,IAAiCI,KACtFjB,IAEUG,IAClB,MChKW,ED2JiB,IAAOY,CC1JnC,IAmDIoD,sBAjD0B,KAAY,0CACtC,MAAMrC,QAAiB,EAAAC,EAAA,MAEvB,aD4JiChB,EC7Jce,EAASf,OD6JL,0CAInD,aAHqB,EAA4BA,EAAO,CACpDF,IACDiD,OAAO9D,IACIG,IAClB,MCjKW,ED4JmB,IAAOY,CC3JrC,IA8CIqD,kBA5CsB,KAAY,0CAClC,MAAMtC,QAAiB,EAAAC,EAAA,MACjBsC,QD8LuBtD,EC9L4Be,EAASf,OD8LnB,0CAI/C,aAHqB,EAA4BA,GAAOiB,IACpD,+BAEU7B,IAClB,KAL0B,IAAOY,EC7L7B,OAAc,OAAVsD,EACO,GAEJA,CACX,IAsCIC,oBApC+Bf,IAAe,0CAC9C,MAAMzB,QAAiB,EAAAC,EAAA,MAEvB,YD2LwB,EAAOwB,EAAYxC,KAAkB,0CAE7D,aADM,EAA4BA,GAAO+C,OAAO,8BAA8BP,MACvE,CACX,IC/L0BzC,CAAuCyC,EAAIzB,EAASf,MAE9E,IAiCIwD,mBA/B8BC,IAA2B,0CACzD,MAAM1C,QAAiB,EAAAC,EAAA,MAEvB,YD8LuB,EAAOyC,EAAwBzD,KAAkB,0CACxE,MAAMC,EAAqC,CAAEyD,qBAAsBD,GASnE,aARM,EAA4BzD,EAAO,CAACR,IAA+BU,KACrE,uBACAD,EACA,CACItB,OAAQ,CAAE,cAAe,SAI1B,CACX,IC1M0BoB,CAAsC0D,EAAgB1C,EAASf,MAEzF,IA4BI2D,mBA1BuB,KAAY,0CACnC,MAAM5C,QAAiB,EAAAC,EAAA,MACjB4C,QDnOwB5D,ECmOsCe,EAASf,ODnOH,0CAE1E,aADuB,EAA4BA,GAAOiB,IAAI,6BAC9C7B,IACpB,KAH2B,IAAOY,ECoO9B,OAAO4D,aAAe,EAAfA,EAAiBC,YAC5B,I","sources":["webpack:///./src/microApps/common/api/clients/directLoyaltyAxiosClient.ts","webpack:///./src/microApps/common/api/loyalty/externalLoyaltyApi.ts","webpack:///./src/microApps/common/flow/loyaltyFlow.ts"],"sourcesContent":["import type { AxiosInstance } from 'axios';\n\nimport { appConfig } from '../../../../appConfig';\nimport axiosClientFactory from './clientFactory';\nimport type { CustomErrorInterceptor } from './localApiAxiosErrorInterceptors';\n\nexport type ApiLoyaltyException = {\n    errorCode: number;\n    status: string;\n};\nexport type ApiLoyaltyAutoCheckException = {\n    detail: string;\n    status: number;\n    title: string;\n};\nexport type ApiLoyaltyMember20Exception = {\n    title: string;\n    status: number;\n    detail: string;\n};\nexport type ApiHouseholdMemberException = {\n    title: string;\n    status: number;\n    detail: string;\n    error: string;\n};\n\nconst getDirectLoyaltyAxiosClient = <TApiError = unknown>(\n    accessToken: string,\n    errorInterceptors?: CustomErrorInterceptor<TApiError>[],\n): AxiosInstance => {\n    const client = axiosClientFactory.createDirectApiClient(\n        {\n            baseURL: `${appConfig.coopSettings.serviceAccess.extApimUrl}loyalty/account`,\n            params: {\n                'api-version': 'v1',\n            },\n            headers: {\n                Accept: 'application/json',\n                'Ocp-Apim-Trace': 'true',\n                'Ocp-Apim-Subscription-Key':\n                    appConfig.coopSettings.serviceAccess.extApimSubscriptionKey,\n                Authorization: accessToken ? `Bearer ${accessToken}` : undefined,\n            },\n        },\n        errorInterceptors,\n    );\n    return client;\n};\n\nexport default getDirectLoyaltyAxiosClient;\n","/* eslint-disable @typescript-eslint/no-throw-literal */\nimport type {\n    MonetaryTransactionHistory,\n    TransactionHistoryApi,\n} from '../../../myCoop/myPoints/models';\nimport { createDefaultException } from '../../exceptions/exceptionUtils';\nimport type {\n    ApiHouseholdMemberException,\n    ApiLoyaltyAutoCheckException,\n    ApiLoyaltyException,\n    ApiLoyaltyMember20Exception,\n} from '../clients/directLoyaltyAxiosClient';\nimport getDirectLoyaltyAxiosClient from '../clients/directLoyaltyAxiosClient';\nimport getLocalApiAxiosClient from '../clients/localApiAxiosClient';\nimport type { CustomErrorInterceptor } from '../clients/localApiAxiosErrorInterceptors';\n\nexport const voucherApiUrl = '/voucher/automatic';\nexport const eligibleApiUrl = 'points/eligible';\nexport const previousPointsApiUrl = 'points/summary/previous';\n\n/**\n * Point that expires within the given number of months\n */\nconst getExpiringPoints = async (months: number, token: string) => {\n    const result = await getDirectLoyaltyAxiosClient(token).get<ExpiringPointsResponse[]>(\n        `points/expiring/${months}`,\n        {\n            params: { 'api-version': 'v1' },\n        },\n    );\n    return result.data;\n};\n\n/**\n * Household members, including self\n */\nconst getHouseholdMembers = async (token: string): Promise<HouseholdMember[]> => {\n    const result =\n        await getDirectLoyaltyAxiosClient(token).get<HouseholdResponse>('membership/household');\n    return result.data?.members;\n};\n\n/**\n * Associations\n */\nconst getMembershipNames = async (token: string): Promise<MembershipNames> => {\n    const response = await getDirectLoyaltyAxiosClient(token).get(`membership/associations/`);\n    return response.data;\n};\n\n/**\n * Eligible for bonus - if user is ok to get and use bonus points\n */\nconst getEligibleForBonus = async (token: string): Promise<boolean> => {\n    const result = await getDirectLoyaltyAxiosClient(token).get(eligibleApiUrl);\n    return result.data?.eligibleForPoints || false;\n};\n\n/**\n * Total bonus\n */\nconst getPointBalance = async (token: string): Promise<ApiBonus> => {\n    const result = await getDirectLoyaltyAxiosClient(token).get('points/balance', {\n        params: { 'api-version': 'v3' },\n    });\n    return result.data;\n};\n\n/**\n * Previouss Monthly Bonus\n */\nconst getPreviousMonthBonus = async (token: string): Promise<ApiBonusGroup> => {\n    const result = await getDirectLoyaltyAxiosClient(token).get(previousPointsApiUrl, {\n        params: { 'api-version': 'v3' },\n    });\n    return result.data;\n};\n\n/**\n * Point matrix\n */\nconst getPointsMatrixStructureLevel = async (token: string): Promise<ApiPointsMatrix> => {\n    const result = await getDirectLoyaltyAxiosClient(token).get('points/matrix?levels=5', {\n        params: { 'api-version': 'v3' },\n    });\n    return result.data;\n};\n\n/**\n * Point summary / Current Month\n */\nconst getPointsSummary = async (token: string): Promise<ApiPointsSummary> => {\n    const result = await getDirectLoyaltyAxiosClient(token).get('points/summary/current', {\n        params: { 'api-version': 'v3' },\n    });\n    return result.data;\n};\n\n/**\n * Get transaction history by dates\n */\nconst getTransactionsHistoryByDates = async (\n    token: string,\n    request: DateTransactionsRequest,\n): Promise<TransactionHistoryApi[]> => {\n    try {\n        const result = await getDirectLoyaltyAxiosClient(token, [\n            transactionResponseInterceptor,\n        ]).post('points/transactions', request, {\n            params: { 'api-version': 'v3' },\n        });\n        return result.data || [];\n    } catch (error) {\n        const err = error as { code?: string };\n        if (err.code && err.code === '204') {\n            // If there is no transactions found, return empty array\n            return [];\n        }\n\n        throw error;\n    }\n};\n\n/**\n * Get transaction history for entire month\n */\nconst getMonthTransactionsHistory = async (\n    token: string,\n    request: TransactionsRequest,\n    fromDate: Date,\n): Promise<TransactionHistoryApi[]> => {\n    try {\n        const fromYear = fromDate.getFullYear();\n        const fromMonth = fromDate.getMonth() + 1;\n\n        const result = await getDirectLoyaltyAxiosClient(token, [\n            transactionResponseInterceptor,\n        ]).post(`points/transactions/${fromYear}/${fromMonth}`, request, {\n            params: { 'api-version': 'v3' },\n        });\n\n        return result.data || [];\n    } catch (error) {\n        const err = error as { code?: string };\n        if (err.code && err.code === '204') {\n            // If there is no transactions found, return empty array\n            return [];\n        }\n\n        throw error;\n    }\n};\n\n/**\n * Purchase history - Köphistorik\n */\nconst getMonthMonetaryTransactionsHistory = async (\n    token: string,\n    fromDate: Date,\n    page?: number,\n    size?: number,\n): Promise<MonetaryTransactionHistory[]> => {\n    try {\n        const fromYear = fromDate.getFullYear();\n        const fromMonth = fromDate.getMonth() + 1;\n\n        const result = await getDirectLoyaltyAxiosClient(token, [\n            transactionResponseInterceptor,\n        ]).get(`points/purchasehistory/${fromYear}/${fromMonth}`, {\n            params: { 'api-version': 'v3', size: size ?? 5, page: page ?? 0 },\n        });\n\n        return result.data;\n    } catch (error) {\n        const err = error as { code?: string };\n        if (err.code && err.code === '404') {\n            // If there is no transactions found, return empty array\n            return [];\n        }\n\n        throw error;\n    }\n};\n\nconst getPointsSummaryYearly = async (token: string): Promise<ApiPointsSummary> => {\n    const result = await getDirectLoyaltyAxiosClient(token).get('points/summary/yearly', {\n        params: { 'api-version': 'v3' },\n    });\n    return result.data;\n};\n\nconst getVoucherDetails = async (id: string, token: string): Promise<VoucherDetailsResponse> => {\n    const result = await getDirectLoyaltyAxiosClient(token).get(\n        `/voucher/details/${encodeURI(id)}`,\n    );\n    return result.data;\n};\n\nconst purchaseOffer = async (\n    offerId: number,\n    specialCredentials: PurchaseOfferRequest,\n    token: string,\n): Promise<PurchaseOfferResponse> => {\n    const result = await getDirectLoyaltyAxiosClient(token, [\n        purchaseOfferResponseInterceptor,\n    ]).post(`/voucher/purchase/${offerId}`, specialCredentials);\n\n    try {\n        await getLocalApiAxiosClient().delete('/myPoints/cache');\n        // eslint-disable-next-line no-empty\n    } catch {}\n    return result.data;\n};\n\nconst transactionResponseInterceptor: CustomErrorInterceptor<ApiLoyaltyMember20Exception> = (\n    response,\n) => {\n    if (response.response.data?.status === 404) {\n        return createDefaultException(\n            response.response.data.title,\n            response.response.data.status.toString(),\n        );\n    }\n\n    return createDefaultException('Något gick fel när transaktionerna skulle hämtas', '500');\n};\n\nconst addMemberResponseInterceptor: CustomErrorInterceptor<ApiHouseholdMemberException> = (\n    response,\n) => {\n    let msg = null;\n\n    if (response.response.data?.error) {\n        switch (response.response.data.error) {\n            case 'INVALID_INPUT_SSN':\n                msg = 'Personnumret är felaktigt eller i fel format.';\n                break;\n            case 'INVALID_INPUT_AGE':\n                msg = 'Personen är under 18 år.';\n                break;\n            case 'INVALID_INPUT_HOUSEHOLD':\n                msg =\n                    'Den här medlemmen existerar redan i ett hushåll. Vänligen kontakta kundtjänst.';\n                break;\n            case 'FORBIDDEN_NOT_OWNER':\n                msg =\n                    'Något blev fel. Hushållstrukturen är felaktig. Vänligen kontakta kundservice om felet kvarstår.';\n                break;\n            default:\n                msg = 'Något blev fel.';\n                break;\n        }\n    }\n\n    if (msg) {\n        return createDefaultException(msg, response.response.data?.error);\n    }\n\n    return createDefaultException('Något blev fel.');\n};\n\nconst purchaseOfferResponseInterceptor: CustomErrorInterceptor<ApiLoyaltyException> = (\n    response,\n) => {\n    if (response.response.data?.errorCode) {\n        let msg = null;\n\n        switch (response.response.data.errorCode) {\n            case 10:\n            case 30:\n                msg =\n                    'Något gick fel när kundbilden skulle hämtas, vänligen kontakta kundservice. Felkod LMS_1030';\n                break;\n            case 20:\n                msg =\n                    'Poängvaran kunde inte hittas i systemet. Vänligen kontakta kundservice. Felkod LMS_20';\n                break;\n            case 40:\n                msg = 'Ej tillräckligt med poäng för att ta poängvaran.';\n                break;\n            case 50:\n            case 60:\n                msg =\n                    'Koderna för den här poängvaran är tillfälligt slut, vänligen försök igen senare.';\n                break;\n            case 70:\n                msg =\n                    'Något gick fel med sas-växlilngen, vänligen kontakta kundservice. Felkod SAS_70';\n                break;\n            case 190:\n                msg = 'Något gick fel med växlingen, vänligen försök igen senare. Felkod SAS_190';\n                break;\n            case 80:\n                msg = 'Max antal köp av denna poängvara är redan uppnådd.';\n                break;\n            case 90:\n                msg =\n                    'Något gick fel med växlingen. Se över ditt Nordic Choice konto. Felkod NORDIC_90';\n                break;\n            case 130:\n            case 200:\n                msg =\n                    'Något gick fel med växlingen, vänligen försök igen senare. Felkod NORDIC_130';\n                break;\n            case 100:\n                msg = 'Kvitto på uttaget kunde inte skickas.';\n                break;\n            case 110:\n                msg = 'Något gick fel, vänligen försök igen senare. Felkod ADOB_110';\n                break;\n            case 120:\n            case 140:\n            case 150:\n            case 170:\n            case 180:\n            case 210:\n            case 220:\n            case 230:\n            case 240:\n                msg = 'Något gick fel, vänligen försök igen senare. Felkod LMS_120';\n                break;\n            default:\n                break;\n        }\n\n        if (msg) {\n            return createDefaultException(msg, response.response.data.errorCode.toString());\n        }\n    }\n\n    if (response.response.data?.status) {\n        let msg = null;\n\n        switch (response.response.status) {\n            case 400:\n                msg = 'Felaktiga uppgifter.';\n                break;\n            case 404:\n                msg = 'Produkten finns för tillfället inte på lager.';\n                break;\n            case 504:\n                msg = 'Tjänsten kunde inte nås för tillfället. Försök igen senare.';\n                break;\n            default:\n                msg = 'Något gick fel, vänligen försök igen senare.';\n                break;\n        }\n\n        if (msg) {\n            return createDefaultException(msg, response.response.data.errorCode.toString());\n        }\n    }\n\n    return null;\n};\n\nconst getAutoVoucherStatus = async (token: string): Promise<AutoVoucherStatusResponse> => {\n    const result = await getDirectLoyaltyAxiosClient(token, [autoStatusResponseInterceptor]).get(\n        voucherApiUrl,\n    );\n\n    return result.data;\n};\n\nconst autoStatusResponseInterceptor: CustomErrorInterceptor<ApiLoyaltyAutoCheckException> = (\n    response,\n) => {\n    if (response.response.data?.status) {\n        let msg = null;\n\n        switch (response.response.data.status) {\n            case 400:\n                msg = 'Felaktiga uppgifter';\n                break;\n            case 401:\n                msg = 'Accessproblem.';\n                break;\n            case 404:\n                msg = 'Autocheck är avstängd'; // THIS IS OK, NOT AN ERROR\n                break;\n            case 504:\n                msg = 'Tjänsten kunde inte nås för tillfället.';\n                break;\n            default:\n                break;\n        }\n\n        if (msg) {\n            return createDefaultException(msg, response.response.data.status.toString());\n        }\n    }\n\n    return null;\n};\n\nconst activateAutoVoucher = async (token: string) => {\n    const result = await getDirectLoyaltyAxiosClient(token, [toggleCheckResponseInterceptor]).post(\n        voucherApiUrl,\n    );\n    return result.data;\n};\n\nconst deactivateAutoVoucher = async (token: string) => {\n    const result = await getDirectLoyaltyAxiosClient(token, [\n        toggleCheckResponseInterceptor,\n    ]).delete(voucherApiUrl);\n    return result.data;\n};\n\nconst toggleCheckResponseInterceptor: CustomErrorInterceptor<ApiLoyaltyAutoCheckException> = (\n    response,\n) => {\n    if (response.response.data?.status) {\n        let msg = null;\n\n        switch (response.response.data.status) {\n            case 400:\n                msg = 'Felaktiga uppgifter';\n                break;\n            case 401:\n                msg = 'Accessproblem.';\n                break;\n            case 403:\n                msg = 'Accessproblem (bankid).';\n                break;\n            case 404:\n            case 504:\n                msg = 'Tjänsten kunde inte nås för tillfället.';\n                break;\n            default:\n                break;\n        }\n\n        if (msg) {\n            return createDefaultException(msg, response.response.data.status.toString());\n        }\n    }\n\n    return null;\n};\n\nconst getConnectedCards = async (token: string) => {\n    const result = await getDirectLoyaltyAxiosClient(token).get<CardResponse[]>(\n        'membership/connected-cards',\n    );\n    return result.data;\n};\n\nconst deleteConnectedCard = async (id: string, token: string) => {\n    await getDirectLoyaltyAxiosClient(token).delete(`membership/connected-cards/${id}`);\n    return true;\n};\n\n/**\n * Add household member\n * (Order extracard)\n */\nconst addHouseholdMember = async (personalNumber: string, token: string) => {\n    const request: AddHouseholdMemberRequest = { socialSecurityNumber: personalNumber };\n    await getDirectLoyaltyAxiosClient(token, [addMemberResponseInterceptor]).post(\n        'membership/household',\n        request,\n        {\n            params: { 'api-version': 'v1' },\n        },\n    );\n\n    return true;\n};\n\nexport interface AutoVoucherStatusResponse {\n    // householdmmid: number;\n    mmid: number;\n    // lastPurchasedVoucherValue: number;\n    // createdAt: Date;\n    // updatedAt: Date;\n}\n\nexport interface AutoVoucherStatus {\n    status: 'On' | 'Off';\n}\nexport interface ApiBonusGroup {\n    pointEarnings: number;\n    monetaryEarnings: number;\n}\n\nexport interface ApiBonus {\n    points: number;\n    monetaryWorth: number;\n}\n\nexport interface ApiAutoCheckStatus {\n    mmid: number;\n}\n\nexport const externalLoyaltyApi = {\n    getExpiringPoints,\n    getVoucherDetails,\n    getPreviousMonthBonus,\n    getPointsMatrixStructureLevel,\n    getPointsSummary,\n    getPointsSummaryYearly,\n    getTransactionsHistoryByDates,\n    getMonthTransactionsHistory,\n    getMonthMonetaryTransactionsHistory,\n    getPointBalance,\n    purchaseOffer,\n    getHouseholdMembers,\n    getMembershipNames,\n    getEligibleForBonus,\n    getAutoVoucherStatus,\n    activateAutoVoucher,\n    deactivateAutoVoucher,\n    getConnectedCards,\n    deleteConnectedCard,\n    addHouseholdMember,\n};\n","import type { TransactionHistory, TransactionHistoryApi } from '../../myCoop/myPoints/models';\nimport { getAuthToken } from '../api/auth/getAuthToken';\nimport { externalLoyaltyApi } from '../api/loyalty/externalLoyaltyApi';\n\nconst getExpiringPoints = async (months: number) => {\n    const identity = await getAuthToken();\n    return externalLoyaltyApi.getExpiringPoints(months, identity.token);\n};\n\nconst getEligibleForBonus = async () => {\n    const identity = await getAuthToken();\n    const result = await externalLoyaltyApi.getEligibleForBonus(identity.token);\n    return result;\n};\n\nconst getHouseholdMembers = async () => {\n    const identity = await getAuthToken();\n    const details = await externalLoyaltyApi.getHouseholdMembers(identity.token);\n    return details;\n};\n\nconst getPointBalance = async () => {\n    const identity = await getAuthToken();\n    const pointBalance = await externalLoyaltyApi.getPointBalance(identity.token);\n    return pointBalance;\n};\n\nconst getPreviousMonthBonus = async () => {\n    const identity = await getAuthToken();\n    const previousMonthBonus = await externalLoyaltyApi.getPreviousMonthBonus(identity.token);\n    return previousMonthBonus;\n};\n\nconst getPointsMatrixStructureLevel = async () => {\n    const identity = await getAuthToken();\n    const pointsMatrixStructureLevel = await externalLoyaltyApi.getPointsMatrixStructureLevel(\n        identity.token,\n    );\n    return pointsMatrixStructureLevel;\n};\n\nconst getPointsSummary = async () => {\n    const identity = await getAuthToken();\n    const pointsSummary = await externalLoyaltyApi.getPointsSummary(identity.token);\n    return pointsSummary;\n};\n\nconst getPointTypeTranslated = (pointType: number) => {\n    if (pointType === 1) {\n        return 'CoopStorePointsEarned';\n    }\n    if (pointType === 2) {\n        return 'PaymentPointsInternal';\n    }\n    if (pointType === 3) {\n        return 'CampaignPoints';\n    }\n    if (pointType === 4) {\n        return 'GamificationPoints';\n    }\n    if (pointType === 5) {\n        return 'PartnerPoints';\n    }\n    if (pointType === 6) {\n        return 'ManualPoints';\n    }\n    if (pointType === 7) {\n        return 'HouseholdChangeMerge';\n    }\n    if (pointType === 8) {\n        return 'CoopStorePointsSpent';\n    }\n    if (pointType === 9) {\n        return 'PartnerPointsSpent';\n    }\n    if (pointType === 10) {\n        return 'ExpirePoints';\n    }\n    if (pointType === 11) {\n        return 'HouseholdChangeSplit';\n    }\n    if (pointType === 12) {\n        return 'PaymentPointsExternal';\n    }\n    if (pointType === 13) {\n        return 'ExchangePoints';\n    }\n    if (pointType === 14) {\n        return 'CoopXtraPoints';\n    }\n\n    return 'NotSet';\n};\n\n// Poänguttag\nconst getPointWithdrawalTransactionsHistory = async (\n    fromDate: Date,\n    toDate?: Date,\n    page?: number,\n    size?: number,\n) => {\n    const identity = await getAuthToken();\n\n    if (toDate) {\n        const request: DateTransactionsRequest = {\n            from: fromDate,\n            to: toDate,\n            page: page ?? 0,\n            size: size ?? 5,\n            filter: 'POINT_USAGES',\n        };\n\n        const history: TransactionHistory[] = (\n            await externalLoyaltyApi.getTransactionsHistoryByDates(identity.token, request)\n        ).map((trans: TransactionHistoryApi) => {\n            return {\n                ...trans,\n                pointTypeTranslated: getPointTypeTranslated(trans.pointType),\n            };\n        });\n\n        return history;\n    }\n\n    const request: TransactionsRequest = {\n        page: page ?? 0,\n        size: size ?? 5,\n        filter: 'POINT_USAGES',\n    };\n    const monthTrans: TransactionHistory[] = (\n        await externalLoyaltyApi.getMonthTransactionsHistory(identity.token, request, fromDate)\n    ).map((trans: TransactionHistoryApi) => {\n        return {\n            ...trans,\n            pointTypeTranslated: getPointTypeTranslated(trans.pointType),\n        };\n    });\n\n    return monthTrans;\n};\n\nconst getPointTransactionsHistory = async (\n    fromDate: Date,\n    toDate?: Date,\n    page?: number,\n    size?: number,\n) => {\n    const identity = await getAuthToken();\n    if (toDate) {\n        const request: DateTransactionsRequest = {\n            from: fromDate,\n            to: toDate,\n            page: page ?? 0,\n            size: size ?? 5,\n            filter: 'POINT_PURCHASE_HISTORY',\n        };\n        const history: TransactionHistory[] = (\n            await externalLoyaltyApi.getTransactionsHistoryByDates(identity.token, request)\n        ).map((trans: TransactionHistoryApi) => {\n            return {\n                ...trans,\n                pointTypeTranslated: getPointTypeTranslated(trans.pointType),\n            };\n        });\n\n        return history;\n    }\n\n    // If no toDate, then this current month\n    const request: TransactionsRequest = {\n        page: page ?? 0,\n        size: size ?? 5,\n        filter: 'POINT_PURCHASE_HISTORY',\n    };\n    const history: TransactionHistory[] = (\n        await externalLoyaltyApi.getMonthTransactionsHistory(identity.token, request, fromDate)\n    ).map((trans: TransactionHistoryApi) => {\n        return {\n            ...trans,\n            pointTypeTranslated: getPointTypeTranslated(trans.pointType),\n        };\n    });\n\n    return history;\n};\n\n// Köphistorik\nconst getMonetaryPurchaseTransactionsHistory = async (\n    fromDate: Date,\n    page?: number,\n    size?: number,\n) => {\n    const identity = await getAuthToken();\n    return externalLoyaltyApi.getMonthMonetaryTransactionsHistory(\n        identity.token,\n        fromDate,\n        page,\n        size,\n    );\n};\n\nconst getPointsSummaryYearly = async () => {\n    const identity = await getAuthToken();\n    const pointsSummaryYearly = await externalLoyaltyApi.getPointsSummaryYearly(identity.token);\n    return pointsSummaryYearly;\n};\n\nconst cachedVouchers: { [key: string]: VoucherDetailsResponse } = {};\n\nconst getVoucherDetails = async (id: string) => {\n    if (cachedVouchers[id]) {\n        return cachedVouchers[id];\n    }\n\n    const identity = await getAuthToken();\n    const voucher = await externalLoyaltyApi.getVoucherDetails(id, identity.token);\n    cachedVouchers[id] = voucher;\n    return voucher;\n};\n\nconst purchaseOffer = async (offerId: number, specialCredentials: PurchaseOfferRequest) => {\n    const identity = await getAuthToken();\n    const offer = await externalLoyaltyApi.purchaseOffer(\n        offerId,\n        specialCredentials,\n        identity.token,\n    );\n    return offer;\n};\n\nconst autoVoucherStatus = async () => {\n    const identity = await getAuthToken();\n    // If voucher has mmid, then it is on\n    const voucherResult = await externalLoyaltyApi.getAutoVoucherStatus(identity.token);\n    return voucherResult?.mmid !== 0 ? 'On' : 'Off';\n};\n\nconst activateAutoVoucher = async () => {\n    const identity = await getAuthToken();\n    await externalLoyaltyApi.activateAutoVoucher(identity.token);\n    return true;\n};\n\nconst deactivateAutoVoucher = async () => {\n    const identity = await getAuthToken();\n    await externalLoyaltyApi.deactivateAutoVoucher(identity.token);\n    return true;\n};\n\nconst getConnectedCards = async () => {\n    const identity = await getAuthToken();\n    const cards = await externalLoyaltyApi.getConnectedCards(identity.token);\n    if (cards === null) {\n        return [];\n    }\n    return cards;\n};\n\nconst deleteConnectedCard = async (id: string) => {\n    const identity = await getAuthToken();\n    const success = await externalLoyaltyApi.deleteConnectedCard(id, identity.token);\n    return success;\n};\n\nconst addHouseholdMember = async (personalNumber: string) => {\n    const identity = await getAuthToken();\n    const success = await externalLoyaltyApi.addHouseholdMember(personalNumber, identity.token);\n    return success;\n};\n\nconst getMembershipNames = async () => {\n    const identity = await getAuthToken();\n    const membershipNames = await externalLoyaltyApi.getMembershipNames(identity.token);\n    return membershipNames?.associations;\n};\n\nconst pointshopFlow = {\n    getExpiringPoints,\n    getEligibleForBonus,\n    getHouseholdMembers,\n    getPointBalance,\n    getPreviousMonthBonus,\n    getPointsMatrixStructureLevel,\n    getPointsSummary,\n    getPointsSummaryYearly,\n    getPointWithdrawalTransactionsHistory,\n    getPointTransactionsHistory,\n    getMonetaryPurchaseTransactionsHistory,\n    getVoucherDetails,\n    purchaseOffer,\n    autoVoucherStatus,\n    activateAutoVoucher,\n    deactivateAutoVoucher,\n    getConnectedCards,\n    deleteConnectedCard,\n    addHouseholdMember,\n    getMembershipNames,\n};\n\nexport default pointshopFlow;\n"],"names":["accessToken","errorInterceptors","createDirectApiClient","baseURL","appConfig","coopSettings","serviceAccess","extApimUrl","params","headers","Accept","extApimSubscriptionKey","Authorization","undefined","voucherApiUrl","transactionResponseInterceptor","response","data","status","title","toString","addMemberResponseInterceptor","msg","error","purchaseOfferResponseInterceptor","errorCode","autoStatusResponseInterceptor","toggleCheckResponseInterceptor","externalLoyaltyApi","token","request","post","err","code","fromDate","fromYear","getFullYear","fromMonth","getMonth","getPointTypeTranslated","pointType","cachedVouchers","getExpiringPoints","months","identity","getAuthToken","get","getEligibleForBonus","eligibleForPoints","getHouseholdMembers","members","getPointBalance","getPreviousMonthBonus","getPointsMatrixStructureLevel","getPointsSummary","getPointsSummaryYearly","getPointWithdrawalTransactionsHistory","toDate","page","size","from","to","filter","map","trans","pointTypeTranslated","getPointTransactionsHistory","getMonetaryPurchaseTransactionsHistory","getVoucherDetails","id","voucher","encodeURI","purchaseOffer","offerId","specialCredentials","result","delete","autoVoucherStatus","voucherResult","mmid","activateAutoVoucher","deactivateAutoVoucher","getConnectedCards","cards","deleteConnectedCard","addHouseholdMember","personalNumber","socialSecurityNumber","getMembershipNames","membershipNames","associations"],"sourceRoot":""}