@phygitallabs/tapquest-core 6.7.9 → 6.7.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +35 -3
- package/dist/index.d.ts +35 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/modules/data-tracking/GtagConsentSync.tsx +62 -15
- package/src/modules/data-tracking/GtagGtmScriptToggle.tsx +73 -0
- package/src/modules/data-tracking/hooks/index.ts +133 -67
- package/src/modules/data-tracking/index.ts +2 -1
- package/src/modules/session-replay/providers/SessionReplayProvider.tsx +6 -6
- package/src/providers/ServicesProvider.tsx +132 -132
package/dist/index.d.mts
CHANGED
|
@@ -1018,21 +1018,53 @@ declare const sortLocationsByIndex: <T extends {
|
|
|
1018
1018
|
declare const filterLocationsByProperty: <T extends Record<string, any>>(locations: T[], propertyName: keyof T, value: boolean) => T[];
|
|
1019
1019
|
|
|
1020
1020
|
/**
|
|
1021
|
-
*
|
|
1022
|
-
*
|
|
1021
|
+
* Syncs cookie consent to GA, GTM, PostHog, OpenReplay, and Google AdSense.
|
|
1022
|
+
* - On mount: sets gtag/GTM consent default to denied.
|
|
1023
|
+
* - When analytics allowed: grants analytics_storage (GA/GTM), opts in PostHog, starts OpenReplay.
|
|
1024
|
+
* - When advertising allowed: grants ad_storage, ad_user_data, ad_personalization (AdSense).
|
|
1025
|
+
* Must be used under PhygitalConsentProvider; for OpenReplay also under SessionReplayProvider.
|
|
1023
1026
|
* Renders nothing.
|
|
1024
1027
|
*/
|
|
1025
1028
|
declare function GtagConsentSync(): null;
|
|
1026
1029
|
|
|
1030
|
+
/** Detect if gtag/GTM scripts are present in the DOM */
|
|
1031
|
+
declare function detectGtagGtmInDom(): {
|
|
1032
|
+
gtag: boolean;
|
|
1033
|
+
gtm: boolean;
|
|
1034
|
+
any: boolean;
|
|
1035
|
+
gtagScripts: HTMLScriptElement[];
|
|
1036
|
+
gtmScripts: HTMLScriptElement[];
|
|
1037
|
+
};
|
|
1038
|
+
interface GtagGtmScriptToggleProps {
|
|
1039
|
+
/** When true, scripts stay. When false, detected GA/GTM scripts are removed from DOM. */
|
|
1040
|
+
enabled?: boolean;
|
|
1041
|
+
}
|
|
1042
|
+
/**
|
|
1043
|
+
* Detects GA/GTM scripts in the DOM and removes them when enabled is false.
|
|
1044
|
+
* When enabled is true, does nothing (scripts remain if already in the page).
|
|
1045
|
+
* No config: only detect and toggle (remove) based on condition.
|
|
1046
|
+
* Renders nothing.
|
|
1047
|
+
*/
|
|
1048
|
+
declare function GtagGtmScriptToggle({ enabled }: GtagGtmScriptToggleProps): null;
|
|
1049
|
+
/** Reads consent from PhygitalConsentProvider; removes GA/GTM scripts when analytics not allowed. */
|
|
1050
|
+
declare function GtagGtmScriptToggleFromConsent(): react_jsx_runtime.JSX.Element;
|
|
1051
|
+
|
|
1027
1052
|
declare global {
|
|
1028
1053
|
interface Window {
|
|
1029
1054
|
dataLayer: unknown[];
|
|
1055
|
+
gtag?: GtagConsent;
|
|
1030
1056
|
}
|
|
1031
1057
|
}
|
|
1058
|
+
type GtagConsent = (command: "consent", action: "default" | "update", params: Record<string, string>) => void;
|
|
1032
1059
|
declare function useDataTracking(): {
|
|
1033
1060
|
trackEvent: (eventName: string, eventData: Record<string, any>, useTools?: ("gtm" | "ga" | "posthog")[]) => void;
|
|
1034
1061
|
trackUserIdentify: (userInfo: Record<string, any>) => void;
|
|
1035
1062
|
trackLogoutEvent: () => void;
|
|
1063
|
+
toggleGA: () => void;
|
|
1064
|
+
toggleGTM: () => void;
|
|
1065
|
+
togglePostHog: () => void;
|
|
1066
|
+
toggleOpenReplay: () => void;
|
|
1067
|
+
toggleGoogleAdSense: () => void;
|
|
1036
1068
|
};
|
|
1037
1069
|
|
|
1038
1070
|
/**
|
|
@@ -1207,4 +1239,4 @@ declare const useAchivementPlusRewardModel: ({ campaignId, }: UseAchivementPlusR
|
|
|
1207
1239
|
isLoading: boolean;
|
|
1208
1240
|
};
|
|
1209
1241
|
|
|
1210
|
-
export { ALLOWED_ORIGINS, type APIVersionType, type AchievementActionType, type AchievementTrackingContextValue, AchievementTrackingProvider, type AchievementTrackingProviderProps, AchievementType, type AchievementWithProgress, type AuthCallbacks, AuthProvider, type AuthProviderProps$1 as AuthProviderProps, type AuthResponse, type AuthService, CALLBACK_URL, type CampaignByProjectIdModel, type CampaignLocationSummary, type CampaignLocationSummaryQueryOptions, type ClaimUserRewardPayload, type ClaimUserRewardRequest, type ClaimUserRewardResponse, type CreateModelGroupRewardRequest, type CreateModelGroupRewardResponse, type CreateRewardGroupRequest, type CreateRewardGroupResponse, type CreateRewardModelRequest, type CreateRewardModelResponse, type CreateUserRewardRequest, type CreateUserRewardResponse, Environment, type EnvironmentType, type FirebaseConfig, type GetManyRewardGroupsRequest, type GetManyRewardModelsRequest, type GetManyRewardModelsResponse, type GetManyUserRewardsRequest, type GetManyUserRewardsResponse, type GetOneRewardGroupRequest, type GetOneRewardModelRequest, type GetOneRewardModelResponse, type GetOneUserRewardRequest, type GetOneUserRewardResponse, GtagConsentSync, NotificationProvider, type OpenReplayConfig, RewardClaimStatus, type RewardFilter, type RewardGroup, type RewardModelFilter, type RewardNotifyTheme, type RewardRule, type ScanChipData, type ScanChipResponse, SessionReplayProvider, type SessionReplayProviderProps, type SignInProvider, TapquestCoreProvider, TaskType, type TrackerAction, TrackerContext, type TrackerContextValue, type TrackerState, type TrackingEventName, type UpdateRewardGroupRequest, type UpdateRewardModelRequest, type UpdateRewardModelResponse, type UpdateUserRewardRequest, type UpdateUserRewardResponse, type UseAuthReturn, type UseGoogleLoginOptions, type UseGoogleLoginReturn, type UseManyAchievementWithProgressParams, type UseManyAchievementWithProgressReturn, type UserCheckinLocationRanking, type UserData$1 as UserData, UserRole, accessTokenKey, checkDeviceUid, chipAuthTokenKey, convertSnakeToCamel, decodeJWTToken, deviceUIDKey, filterLocationsByProperty, generateDeviceId, getAccessToken, getActionsFromAchievementRule, getChipAuthToken, getDeviceUid, getLocationIdsFromAchievementRule, getRefreshToken, getRetryAttemptsRefreshToken, getSessionUserId, getSurveyIdsFromAchievementRule, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchievementTracking, useAchivementPlusRewardModel, useAuth, useAuthStore, useClearAchievementProgressCache, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, useTokenRefresher, userInfoKey };
|
|
1242
|
+
export { ALLOWED_ORIGINS, type APIVersionType, type AchievementActionType, type AchievementTrackingContextValue, AchievementTrackingProvider, type AchievementTrackingProviderProps, AchievementType, type AchievementWithProgress, type AuthCallbacks, AuthProvider, type AuthProviderProps$1 as AuthProviderProps, type AuthResponse, type AuthService, CALLBACK_URL, type CampaignByProjectIdModel, type CampaignLocationSummary, type CampaignLocationSummaryQueryOptions, type ClaimUserRewardPayload, type ClaimUserRewardRequest, type ClaimUserRewardResponse, type CreateModelGroupRewardRequest, type CreateModelGroupRewardResponse, type CreateRewardGroupRequest, type CreateRewardGroupResponse, type CreateRewardModelRequest, type CreateRewardModelResponse, type CreateUserRewardRequest, type CreateUserRewardResponse, Environment, type EnvironmentType, type FirebaseConfig, type GetManyRewardGroupsRequest, type GetManyRewardModelsRequest, type GetManyRewardModelsResponse, type GetManyUserRewardsRequest, type GetManyUserRewardsResponse, type GetOneRewardGroupRequest, type GetOneRewardModelRequest, type GetOneRewardModelResponse, type GetOneUserRewardRequest, type GetOneUserRewardResponse, GtagConsentSync, GtagGtmScriptToggle, GtagGtmScriptToggleFromConsent, type GtagGtmScriptToggleProps, NotificationProvider, type OpenReplayConfig, RewardClaimStatus, type RewardFilter, type RewardGroup, type RewardModelFilter, type RewardNotifyTheme, type RewardRule, type ScanChipData, type ScanChipResponse, SessionReplayProvider, type SessionReplayProviderProps, type SignInProvider, TapquestCoreProvider, TaskType, type TrackerAction, TrackerContext, type TrackerContextValue, type TrackerState, type TrackingEventName, type UpdateRewardGroupRequest, type UpdateRewardModelRequest, type UpdateRewardModelResponse, type UpdateUserRewardRequest, type UpdateUserRewardResponse, type UseAuthReturn, type UseGoogleLoginOptions, type UseGoogleLoginReturn, type UseManyAchievementWithProgressParams, type UseManyAchievementWithProgressReturn, type UserCheckinLocationRanking, type UserData$1 as UserData, UserRole, accessTokenKey, checkDeviceUid, chipAuthTokenKey, convertSnakeToCamel, decodeJWTToken, detectGtagGtmInDom, deviceUIDKey, filterLocationsByProperty, generateDeviceId, getAccessToken, getActionsFromAchievementRule, getChipAuthToken, getDeviceUid, getLocationIdsFromAchievementRule, getRefreshToken, getRetryAttemptsRefreshToken, getSessionUserId, getSurveyIdsFromAchievementRule, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchievementTracking, useAchivementPlusRewardModel, useAuth, useAuthStore, useClearAchievementProgressCache, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, useTokenRefresher, userInfoKey };
|
package/dist/index.d.ts
CHANGED
|
@@ -1018,21 +1018,53 @@ declare const sortLocationsByIndex: <T extends {
|
|
|
1018
1018
|
declare const filterLocationsByProperty: <T extends Record<string, any>>(locations: T[], propertyName: keyof T, value: boolean) => T[];
|
|
1019
1019
|
|
|
1020
1020
|
/**
|
|
1021
|
-
*
|
|
1022
|
-
*
|
|
1021
|
+
* Syncs cookie consent to GA, GTM, PostHog, OpenReplay, and Google AdSense.
|
|
1022
|
+
* - On mount: sets gtag/GTM consent default to denied.
|
|
1023
|
+
* - When analytics allowed: grants analytics_storage (GA/GTM), opts in PostHog, starts OpenReplay.
|
|
1024
|
+
* - When advertising allowed: grants ad_storage, ad_user_data, ad_personalization (AdSense).
|
|
1025
|
+
* Must be used under PhygitalConsentProvider; for OpenReplay also under SessionReplayProvider.
|
|
1023
1026
|
* Renders nothing.
|
|
1024
1027
|
*/
|
|
1025
1028
|
declare function GtagConsentSync(): null;
|
|
1026
1029
|
|
|
1030
|
+
/** Detect if gtag/GTM scripts are present in the DOM */
|
|
1031
|
+
declare function detectGtagGtmInDom(): {
|
|
1032
|
+
gtag: boolean;
|
|
1033
|
+
gtm: boolean;
|
|
1034
|
+
any: boolean;
|
|
1035
|
+
gtagScripts: HTMLScriptElement[];
|
|
1036
|
+
gtmScripts: HTMLScriptElement[];
|
|
1037
|
+
};
|
|
1038
|
+
interface GtagGtmScriptToggleProps {
|
|
1039
|
+
/** When true, scripts stay. When false, detected GA/GTM scripts are removed from DOM. */
|
|
1040
|
+
enabled?: boolean;
|
|
1041
|
+
}
|
|
1042
|
+
/**
|
|
1043
|
+
* Detects GA/GTM scripts in the DOM and removes them when enabled is false.
|
|
1044
|
+
* When enabled is true, does nothing (scripts remain if already in the page).
|
|
1045
|
+
* No config: only detect and toggle (remove) based on condition.
|
|
1046
|
+
* Renders nothing.
|
|
1047
|
+
*/
|
|
1048
|
+
declare function GtagGtmScriptToggle({ enabled }: GtagGtmScriptToggleProps): null;
|
|
1049
|
+
/** Reads consent from PhygitalConsentProvider; removes GA/GTM scripts when analytics not allowed. */
|
|
1050
|
+
declare function GtagGtmScriptToggleFromConsent(): react_jsx_runtime.JSX.Element;
|
|
1051
|
+
|
|
1027
1052
|
declare global {
|
|
1028
1053
|
interface Window {
|
|
1029
1054
|
dataLayer: unknown[];
|
|
1055
|
+
gtag?: GtagConsent;
|
|
1030
1056
|
}
|
|
1031
1057
|
}
|
|
1058
|
+
type GtagConsent = (command: "consent", action: "default" | "update", params: Record<string, string>) => void;
|
|
1032
1059
|
declare function useDataTracking(): {
|
|
1033
1060
|
trackEvent: (eventName: string, eventData: Record<string, any>, useTools?: ("gtm" | "ga" | "posthog")[]) => void;
|
|
1034
1061
|
trackUserIdentify: (userInfo: Record<string, any>) => void;
|
|
1035
1062
|
trackLogoutEvent: () => void;
|
|
1063
|
+
toggleGA: () => void;
|
|
1064
|
+
toggleGTM: () => void;
|
|
1065
|
+
togglePostHog: () => void;
|
|
1066
|
+
toggleOpenReplay: () => void;
|
|
1067
|
+
toggleGoogleAdSense: () => void;
|
|
1036
1068
|
};
|
|
1037
1069
|
|
|
1038
1070
|
/**
|
|
@@ -1207,4 +1239,4 @@ declare const useAchivementPlusRewardModel: ({ campaignId, }: UseAchivementPlusR
|
|
|
1207
1239
|
isLoading: boolean;
|
|
1208
1240
|
};
|
|
1209
1241
|
|
|
1210
|
-
export { ALLOWED_ORIGINS, type APIVersionType, type AchievementActionType, type AchievementTrackingContextValue, AchievementTrackingProvider, type AchievementTrackingProviderProps, AchievementType, type AchievementWithProgress, type AuthCallbacks, AuthProvider, type AuthProviderProps$1 as AuthProviderProps, type AuthResponse, type AuthService, CALLBACK_URL, type CampaignByProjectIdModel, type CampaignLocationSummary, type CampaignLocationSummaryQueryOptions, type ClaimUserRewardPayload, type ClaimUserRewardRequest, type ClaimUserRewardResponse, type CreateModelGroupRewardRequest, type CreateModelGroupRewardResponse, type CreateRewardGroupRequest, type CreateRewardGroupResponse, type CreateRewardModelRequest, type CreateRewardModelResponse, type CreateUserRewardRequest, type CreateUserRewardResponse, Environment, type EnvironmentType, type FirebaseConfig, type GetManyRewardGroupsRequest, type GetManyRewardModelsRequest, type GetManyRewardModelsResponse, type GetManyUserRewardsRequest, type GetManyUserRewardsResponse, type GetOneRewardGroupRequest, type GetOneRewardModelRequest, type GetOneRewardModelResponse, type GetOneUserRewardRequest, type GetOneUserRewardResponse, GtagConsentSync, NotificationProvider, type OpenReplayConfig, RewardClaimStatus, type RewardFilter, type RewardGroup, type RewardModelFilter, type RewardNotifyTheme, type RewardRule, type ScanChipData, type ScanChipResponse, SessionReplayProvider, type SessionReplayProviderProps, type SignInProvider, TapquestCoreProvider, TaskType, type TrackerAction, TrackerContext, type TrackerContextValue, type TrackerState, type TrackingEventName, type UpdateRewardGroupRequest, type UpdateRewardModelRequest, type UpdateRewardModelResponse, type UpdateUserRewardRequest, type UpdateUserRewardResponse, type UseAuthReturn, type UseGoogleLoginOptions, type UseGoogleLoginReturn, type UseManyAchievementWithProgressParams, type UseManyAchievementWithProgressReturn, type UserCheckinLocationRanking, type UserData$1 as UserData, UserRole, accessTokenKey, checkDeviceUid, chipAuthTokenKey, convertSnakeToCamel, decodeJWTToken, deviceUIDKey, filterLocationsByProperty, generateDeviceId, getAccessToken, getActionsFromAchievementRule, getChipAuthToken, getDeviceUid, getLocationIdsFromAchievementRule, getRefreshToken, getRetryAttemptsRefreshToken, getSessionUserId, getSurveyIdsFromAchievementRule, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchievementTracking, useAchivementPlusRewardModel, useAuth, useAuthStore, useClearAchievementProgressCache, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, useTokenRefresher, userInfoKey };
|
|
1242
|
+
export { ALLOWED_ORIGINS, type APIVersionType, type AchievementActionType, type AchievementTrackingContextValue, AchievementTrackingProvider, type AchievementTrackingProviderProps, AchievementType, type AchievementWithProgress, type AuthCallbacks, AuthProvider, type AuthProviderProps$1 as AuthProviderProps, type AuthResponse, type AuthService, CALLBACK_URL, type CampaignByProjectIdModel, type CampaignLocationSummary, type CampaignLocationSummaryQueryOptions, type ClaimUserRewardPayload, type ClaimUserRewardRequest, type ClaimUserRewardResponse, type CreateModelGroupRewardRequest, type CreateModelGroupRewardResponse, type CreateRewardGroupRequest, type CreateRewardGroupResponse, type CreateRewardModelRequest, type CreateRewardModelResponse, type CreateUserRewardRequest, type CreateUserRewardResponse, Environment, type EnvironmentType, type FirebaseConfig, type GetManyRewardGroupsRequest, type GetManyRewardModelsRequest, type GetManyRewardModelsResponse, type GetManyUserRewardsRequest, type GetManyUserRewardsResponse, type GetOneRewardGroupRequest, type GetOneRewardModelRequest, type GetOneRewardModelResponse, type GetOneUserRewardRequest, type GetOneUserRewardResponse, GtagConsentSync, GtagGtmScriptToggle, GtagGtmScriptToggleFromConsent, type GtagGtmScriptToggleProps, NotificationProvider, type OpenReplayConfig, RewardClaimStatus, type RewardFilter, type RewardGroup, type RewardModelFilter, type RewardNotifyTheme, type RewardRule, type ScanChipData, type ScanChipResponse, SessionReplayProvider, type SessionReplayProviderProps, type SignInProvider, TapquestCoreProvider, TaskType, type TrackerAction, TrackerContext, type TrackerContextValue, type TrackerState, type TrackingEventName, type UpdateRewardGroupRequest, type UpdateRewardModelRequest, type UpdateRewardModelResponse, type UpdateUserRewardRequest, type UpdateUserRewardResponse, type UseAuthReturn, type UseGoogleLoginOptions, type UseGoogleLoginReturn, type UseManyAchievementWithProgressParams, type UseManyAchievementWithProgressReturn, type UserCheckinLocationRanking, type UserData$1 as UserData, UserRole, accessTokenKey, checkDeviceUid, chipAuthTokenKey, convertSnakeToCamel, decodeJWTToken, detectGtagGtmInDom, deviceUIDKey, filterLocationsByProperty, generateDeviceId, getAccessToken, getActionsFromAchievementRule, getChipAuthToken, getDeviceUid, getLocationIdsFromAchievementRule, getRefreshToken, getRetryAttemptsRefreshToken, getSessionUserId, getSurveyIdsFromAchievementRule, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchievementTracking, useAchivementPlusRewardModel, useAuth, useAuthStore, useClearAchievementProgressCache, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, useTokenRefresher, userInfoKey };
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {useUserCampaignAction,useUploadMedia,useUpdateMyProfile,useSyncCheckin,useSendEmail,usePGLCoreService,useOneUserCampaign,useOneMemory,useMyProfile,useManyUserActionLocations,useManyMemory,useManyLocations,useUserCampaignsCompletedLocation,useOneLocation,useInfiniteMemories,useCreateMemory,useCreateClickButtonActionLog,useChipScanStory,useCancelUserRewardsRequest,useOneCampaign,resetMemoriesQuery,memoriesKey,locationQueryKeys,UserSourceType,CampaignState,useManyAchievementProgressByDevice,userService,PGLCoreServiceProvider}from'@phygitallabs/api-core';export{CampaignState,UserSourceType,locationQueryKeys,memoriesKey,resetMemoriesQuery,useOneCampaign as useCampaignDetail,useCancelUserRewardsRequest,useChipScanStory,useCreateClickButtonActionLog,useCreateMemory,useInfiniteMemories,useOneLocation as useLocationDetail,useUserCampaignsCompletedLocation as useLocationProgress,useManyLocations as useLocationsList,useManyMemory,useManyUserActionLocations,useMyProfile,useOneMemory,useOneUserCampaign,usePGLCoreService,useSendEmail,useSyncCheckin,useUpdateMyProfile,useUploadMedia,useUserCampaignAction}from'@phygitallabs/api-core';import {useUserAchievementAction,useOneAchievement,useManyChildrenAchievements,useManyAchievementsRewardModels,useManyAchievementsByLocation,useManyAchievements,useManyAchievementProgress,useAchievementProgress,AchievementServiceProvider,AchievementRuleActionType,useAchievementService}from'@phygitallabs/achievement';export{AchievementRuleActionType,AchievementServiceProvider,useAchievementProgress,useManyAchievementProgress as useManyAchievementProgressCore,useManyAchievements,useManyAchievementsByLocation,useManyAchievementsRewardModels,useManyChildrenAchievements,useOneAchievement,useUserAchievementAction}from'@phygitallabs/achievement';import {useQueryClient,useQuery}from'@tanstack/react-query';import {createContext,useCallback,useEffect,useReducer,useContext,useRef,useMemo,useState}from'react';import {usePhygitalConsent,PhygitalConsentProvider,CookieConsentBanner}from'@phygitallabs/phygital-consent';export{CookieConsentBanner,PhygitalConsentProvider,usePhygitalConsent}from'@phygitallabs/phygital-consent';import ne from'posthog-js';import {v4}from'uuid';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import*as _n from'@phygitallabs/notification-api';import {useWebSocket,useTCVNotificationRewardHandler,usePageVisibility,useNotificationStore,useNotificationRewardHandler,useDefaultServicePostPoll,useDefaultServiceGetPollStats,NotificationProvider}from'@phygitallabs/notification-api';export{useDefaultServiceGetPollStats,useDefaultServicePostPoll,useNotificationRewardHandler,useNotificationStore,usePageVisibility,useTCVNotificationRewardHandler,useWebSocket}from'@phygitallabs/notification-api';import {useV1ListRewards,useUpdateRewardModel,useManyUserRewards,useListRewardModels,useGetUserRewards,useGetRewardModel,useDeleteRewardModel,useCreateRewardModel,useCreateModelGroupReward,useClearUserRewardCache,useClaimUserReward,CmentityRewardType,useRewardService,RewardServiceProvider}from'@phygitallabs/reward';export{CmentityRewardType,useClaimUserReward,useClearUserRewardCache,useCreateModelGroupReward,useCreateRewardModel,useDeleteRewardModel,useGetRewardModel,useGetUserRewards,useListRewardModels,useManyUserRewards,useUpdateRewardModel,useV1ListRewards}from'@phygitallabs/reward';import {tokenStorage,authService,verifyCodeService,AuthenticationProvider,useAuthenticationHeaders}from'@phygitallabs/authentication';import {create}from'zustand';import {immer}from'zustand/middleware/immer';import {devtools,persist,subscribeWithSelector,createJSONStorage}from'zustand/middleware';import {jwtDecode}from'jwt-decode';import {wrapTextWithFont,useGenerateThaocamvienCertificate,useGenerateTemplateCertificate,useGenerateFansipanCertificate,useCreateCertificateWithMask,useCreateCertificateAnonymous,useCreateCertificate,useAddFrame,useGenerateCertificateService,GenerateCertificateServiceProvider}from'@phygitallabs/generate-certificate';export{useAddFrame,useCreateCertificate,useCreateCertificateAnonymous,useCreateCertificateWithMask,useGenerateFansipanCertificate,useGenerateTemplateCertificate,useGenerateThaocamvienCertificate,wrapTextWithFont}from'@phygitallabs/generate-certificate';import {parse,fileToBase64,cn,getFromLS,setToLS}from'@phygitallabs/helpers';export{cn,fileToBase64,parse}from'@phygitallabs/helpers';import Uo from'axios';var ir=Object.defineProperty;var Tt=Object.getOwnPropertyDescriptor;var St=Object.getOwnPropertyNames;var It=Object.prototype.hasOwnProperty;var Oe=(e,n)=>{for(var t in n)ir(e,t,{get:n[t],enumerable:true});},nr=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of St(n))!It.call(e,o)&&o!==t&&ir(e,o,{get:()=>n[o],enumerable:!(r=Tt(n,o))||r.enumerable});return e},m=(e,n,t)=>(nr(e,n,"default"),t);var Me={};Oe(Me,{ALLOWED_ORIGINS:()=>re,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementTrackingProvider:()=>qe,AchievementType:()=>J,AuthProvider:()=>Y,CALLBACK_URL:()=>ee,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,CookieConsentBanner:()=>CookieConsentBanner,Environment:()=>tr,GtagConsentSync:()=>X,NotificationProvider:()=>se,PhygitalConsentProvider:()=>PhygitalConsentProvider,RewardClaimStatus:()=>je,SessionReplayProvider:()=>$,TapquestCoreProvider:()=>gt,TaskType:()=>Xe,TrackerContext:()=>N,UserSourceType:()=>UserSourceType,accessTokenKey:()=>b,checkDeviceUid:()=>V,chipAuthTokenKey:()=>G,cn:()=>cn,convertSnakeToCamel:()=>L,decodeJWTToken:()=>Ae,deviceUIDKey:()=>D,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>er,generateDeviceId:()=>Ne,getAccessToken:()=>Sr,getActionsFromAchievementRule:()=>z,getChipAuthToken:()=>Cr,getDeviceUid:()=>K,getLocationIdsFromAchievementRule:()=>sr,getRefreshToken:()=>xr,getRetryAttemptsRefreshToken:()=>kr,getSessionUserId:()=>Or,getSurveyIdsFromAchievementRule:()=>ar,getUserInfo:()=>Lr,httpMaxRetries:()=>Z,isAchievementCompleted:()=>W,isBrowser:()=>oe,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>O,removeAccessToken:()=>Er,removeChipAuthToken:()=>wr,removeDeviceUid:()=>Pr,removeRefreshToken:()=>Ur,removeUserInfo:()=>br,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>E,setAccessToken:()=>Ir,setChipAuthToken:()=>te,setDeviceUid:()=>Be,setRefreshToken:()=>_r,setRetryAttemptsRefreshToken:()=>Tr,setUserInfo:()=>Mr,sortLocationsByIndex:()=>Ze,transformProtoUserData:()=>ve,useAchievementProgress:()=>useAchievementProgress,useAchievementTracking:()=>He,useAchivementPlusRewardModel:()=>Le,useAddFrame:()=>useAddFrame,useAuth:()=>_,useAuthStore:()=>v,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>De,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateClickButtonActionLog:()=>useCreateClickButtonActionLog,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>ie,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>we,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>gr,useManyAchievementProgressCore:()=>useManyAchievementProgress,useManyAchievements:()=>useManyAchievements,useManyAchievementsByLocation:()=>useManyAchievementsByLocation,useManyAchievementsRewardModels:()=>useManyAchievementsRewardModels,useManyChildrenAchievements:()=>useManyChildrenAchievements,useManyMemory:()=>useManyMemory,useManyUserActionLocations:()=>useManyUserActionLocations,useManyUserRewards:()=>useManyUserRewards,useMyProfile:()=>useMyProfile,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,useOneAchievement:()=>useOneAchievement,useOneMemory:()=>useOneMemory,useOneUserCampaign:()=>useOneUserCampaign,usePGLCoreService:()=>usePGLCoreService,usePageVisibility:()=>usePageVisibility,usePhygitalConsent:()=>usePhygitalConsent,useScanChip:()=>rt,useSendEmail:()=>useSendEmail,useSessionReplay:()=>q,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>B,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>M,wrapTextWithFont:()=>wrapTextWithFont});var h={};Oe(h,{ALLOWED_ORIGINS:()=>re,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementTrackingProvider:()=>qe,AchievementType:()=>J,AuthProvider:()=>Y,CALLBACK_URL:()=>ee,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,CookieConsentBanner:()=>CookieConsentBanner,Environment:()=>tr,GtagConsentSync:()=>X,NotificationProvider:()=>se,PhygitalConsentProvider:()=>PhygitalConsentProvider,RewardClaimStatus:()=>je,SessionReplayProvider:()=>$,TapquestCoreProvider:()=>gt,TaskType:()=>Xe,TrackerContext:()=>N,UserSourceType:()=>UserSourceType,accessTokenKey:()=>b,checkDeviceUid:()=>V,chipAuthTokenKey:()=>G,cn:()=>cn,convertSnakeToCamel:()=>L,decodeJWTToken:()=>Ae,deviceUIDKey:()=>D,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>er,generateDeviceId:()=>Ne,getAccessToken:()=>Sr,getActionsFromAchievementRule:()=>z,getChipAuthToken:()=>Cr,getDeviceUid:()=>K,getLocationIdsFromAchievementRule:()=>sr,getRefreshToken:()=>xr,getRetryAttemptsRefreshToken:()=>kr,getSessionUserId:()=>Or,getSurveyIdsFromAchievementRule:()=>ar,getUserInfo:()=>Lr,httpMaxRetries:()=>Z,isAchievementCompleted:()=>W,isBrowser:()=>oe,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>O,removeAccessToken:()=>Er,removeChipAuthToken:()=>wr,removeDeviceUid:()=>Pr,removeRefreshToken:()=>Ur,removeUserInfo:()=>br,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>E,setAccessToken:()=>Ir,setChipAuthToken:()=>te,setDeviceUid:()=>Be,setRefreshToken:()=>_r,setRetryAttemptsRefreshToken:()=>Tr,setUserInfo:()=>Mr,sortLocationsByIndex:()=>Ze,transformProtoUserData:()=>ve,useAchievementProgress:()=>useAchievementProgress,useAchievementTracking:()=>He,useAchivementPlusRewardModel:()=>Le,useAddFrame:()=>useAddFrame,useAuth:()=>_,useAuthStore:()=>v,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>De,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateClickButtonActionLog:()=>useCreateClickButtonActionLog,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>ie,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>we,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>gr,useManyAchievementProgressCore:()=>useManyAchievementProgress,useManyAchievements:()=>useManyAchievements,useManyAchievementsByLocation:()=>useManyAchievementsByLocation,useManyAchievementsRewardModels:()=>useManyAchievementsRewardModels,useManyChildrenAchievements:()=>useManyChildrenAchievements,useManyMemory:()=>useManyMemory,useManyUserActionLocations:()=>useManyUserActionLocations,useManyUserRewards:()=>useManyUserRewards,useMyProfile:()=>useMyProfile,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,useOneAchievement:()=>useOneAchievement,useOneMemory:()=>useOneMemory,useOneUserCampaign:()=>useOneUserCampaign,usePGLCoreService:()=>usePGLCoreService,usePageVisibility:()=>usePageVisibility,usePhygitalConsent:()=>usePhygitalConsent,useScanChip:()=>rt,useSendEmail:()=>useSendEmail,useSessionReplay:()=>q,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>B,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>M,wrapTextWithFont:()=>wrapTextWithFont});function De(){let e=useQueryClient();return {clearCache:useCallback(t=>{let{refetchActive:r=true,refetchInactive:o=false}=t||{};e.invalidateQueries({predicate:i=>{let s=i.queryKey;return s.includes("achievementProgressMany")||s.includes("achievementProgress")||s.includes("deviceUidAchievementProgressMany")},refetchType:r?o?"all":"active":"none"}),console.log("\u{1F504} Achievement progress cache cleared");},[e])}}var sr=e=>{if(!e.rule)return [];let n=[];return Object.values(e.rule).forEach(t=>{t.rules&&t.rules.forEach(r=>{r.filter&&Object.values(r.filter).forEach(o=>{o.filters&&o.filters.forEach(i=>{i.label==="location_id"&&i.value&&(Array.isArray(i.value)?n.push(...i.value):n.push(i.value));});});});}),Array.from(new Set(n))},ar=e=>{if(!e.rule)return [];let n=[];return Object.values(e.rule).forEach(t=>{t.rules&&t.rules.forEach(r=>{r.filter&&Object.values(r.filter).forEach(o=>{o.filters&&o.filters.forEach(i=>{i.label==="survey_id"&&i.value&&(Array.isArray(i.value)?n.push(...i.value):n.push(i.value));});});});}),Array.from(new Set(n))},z=e=>{if(!(e!=null&&e.rule))return [];let n=[];return Object.values((e==null?void 0:e.rule)||{}).forEach(t=>{var r;t!=null&&t.rules&&((r=t==null?void 0:t.rules)==null||r.forEach(o=>{o!=null&&o.action&&n.push(o==null?void 0:o.action);}));}),Array.from(new Set(n))},W=e=>e.isCompleted||e.overallPercentage===100;function L(e){if(e==null)return e;if(Array.isArray(e))return e.map(n=>L(n));if(typeof e=="object"&&e.constructor===Object){let n={};for(let t in e)if(e.hasOwnProperty(t)){let r=t.replace(/_([a-z])/g,(o,i)=>i.toUpperCase());n[r]=L(e[t]);}return n}return e}var gr=(e,n)=>{let t=!!e.userId,r=t?{achievementIds:e.achievementIds,userId:e.userId,applicationId:e.applicationId}:{achievement_ids:e.achievementIds,device_uid:e.deviceUid,applicationId:e.applicationId};return t?useManyAchievementProgress(r,{...n,select:o=>o.map(i=>({...i,isCompleted:W(i)}))}):useManyAchievementProgressByDevice(r,{...n,select:o=>L(o).map(s=>({...s,isCompleted:W(s)}))})};var J=(i=>(i.DEFAULT="default",i.MULTIPLE_CHECK_INS="multiple_check_ins",i.RANDOM_CHECK_INS="random_check_ins",i.GROUP_MISSION="group_mission",i.SURVEY="survey",i))(J||{});var Ar={analytics_storage:"denied",ad_storage:"denied"},Rr={analytics_storage:"granted"};function X(){var t;let n=(t=usePhygitalConsent().isAnalyticsAllowed)!=null?t:false;return useEffect(()=>{if(typeof window=="undefined")return;let r=window;r.dataLayer=r.dataLayer||[];let o=r.gtag;typeof o=="function"?o("consent","default",{...Ar}):r.dataLayer.push(["consent","default",{...Ar}]);},[]),useEffect(()=>{if(!n||typeof window=="undefined")return;let r=window,o=r.gtag;typeof o=="function"?o("consent","update",{...Rr}):Array.isArray(r.dataLayer)&&r.dataLayer.push(["consent","update",{...Rr}]);},[n]),null}var M="phygital-user-info",b="accessToken",O="refreshToken",Z=3,E="retryAttemptsRefreshToken",D="Device-UID",G="chip-auth-token",ee="https://s3-sgn10.fptcloud.com/nomion-assets/platform/callback.html",re=["https://s3-sgn10.fptcloud.com","https://accounts.google.com/"];var Ne=async()=>{try{return await Mt()}catch(e){return console.error("Error generating device fingerprint:",e),v4()}},Mt=async()=>{let e=new Date().toISOString(),n=[navigator.userAgent,navigator.language,screen.width,screen.height,screen.colorDepth,Intl.DateTimeFormat().resolvedOptions().timeZone,navigator.platform,navigator.hardwareConcurrency,e].join("::"),r=new TextEncoder().encode(n),o=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(o)).map(a=>a.toString(16).padStart(2,"0")).join("")};var K=()=>typeof window=="undefined"?null:localStorage.getItem(D),Be=e=>{typeof window!="undefined"&&localStorage.setItem(D,e);},Pr=()=>{typeof window!="undefined"&&localStorage.removeItem(D);},V=async()=>{let e=K();return e||(e=await Ne(),Be(e)),e},Cr=()=>typeof window=="undefined"?null:localStorage.getItem(G),te=e=>{typeof window!="undefined"&&localStorage.setItem(G,e);},wr=()=>{typeof window!="undefined"&&localStorage.removeItem(G);},kr=()=>typeof window=="undefined"?null:localStorage.getItem(E),Tr=e=>{typeof window!="undefined"&&localStorage.setItem(E,e);},Sr=()=>typeof window=="undefined"?null:localStorage.getItem(b),Ir=e=>{typeof window!="undefined"&&localStorage.setItem(b,e);},Er=()=>{typeof window!="undefined"&&localStorage.removeItem(b);},xr=()=>typeof window=="undefined"?null:localStorage.getItem(O),_r=e=>{typeof window!="undefined"&&localStorage.setItem(O,e);},Ur=()=>{typeof window!="undefined"&&localStorage.removeItem(O);},Lr=()=>{if(typeof window=="undefined")return null;let e=localStorage.getItem(M);if(!e)return null;try{return JSON.parse(e)}catch(n){return console.error("Failed to parse stored user data:",n),null}},Mr=e=>{typeof window!="undefined"&&localStorage.setItem(M,JSON.stringify(e));},br=()=>{typeof window!="undefined"&&localStorage.removeItem(M);};var Or=e=>e||K(),oe=()=>typeof window!="undefined";var N=createContext(null);function Nt(){return v4()}async function Bt(e){var n,t,r,o,i,s,a;try{let c=(await import('@openreplay/tracker')).default,l=e!=null&&e.userIdEnabled&&(e!=null&&e.getUserId)?e.getUserId:Nt,d={projectKey:(e==null?void 0:e.projectKey)||process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY,ingestPoint:e==null?void 0:e.ingestPoint,captureExceptions:(n=e.captureExceptions)!=null?n:!0,capturePerformance:(t=e.capturePerformance)!=null?t:!0,network:e.network||{capturePayload:!0,sanitizer:u=>u},console:e.console||{levels:["error","warn","log"]},obscureTextEmails:(r=e.obscureTextEmails)!=null?r:!0,obscureTextNumbers:(o=e.obscureTextNumbers)!=null?o:!1,obscureInputEmails:(i=e.obscureInputEmails)!=null?i:!0,__DISABLE_SECURE_MODE:(a=e.__DISABLE_SECURE_MODE)!=null?a:typeof process!="undefined"&&((s=process.env)==null?void 0:s.NODE_ENV)==="development"},p=new c(d);if(e!=null&&e.userIdEnabled){let u=l();p.setUserID(u),console.log("User ID set:",u);}return console.log("OpenReplay tracker initialized"),console.log("Project Key:",d.projectKey),console.log("Ingest Point:",d.ingestPoint),p}catch(c){throw console.error("Failed to create tracker:",c),c}}function Ft(e,n){let{debug:t=false}=e.config;switch(n.type){case "init":return !e.tracker&&oe()?!e.config.projectKey&&!process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY?(console.warn(t,"Project key not found. Skipping session replay initialization."),e):{...e,tracker:Bt(e.config)}:e;case "start":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.start(),console.log(t,"Session replay tracker started");}).catch(r=>{console.error("Failed to start tracker:",r);}):console.warn(t,"Tracker not initialized. Call initTracker() first."),e;case "setUserId":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.setUserID(n.payload),console.log(t,"User ID updated:",n.payload);}).catch(r=>{console.error("Failed to set user ID:",r);}):console.warn(t,"Tracker not initialized. Call initTracker() first."),e;case "setMetadata":return e.tracker?Promise.resolve(e.tracker).then(r=>{var o;(o=Object.entries(n.payload||{}))==null||o.forEach(([i,s])=>{r.setMetadata(i,s);}),console.log(t,"Metadata updated:",n.payload.metadata);}).catch(r=>{console.error("Failed to set metadata:",r);}):console.warn(t,"Tracker not initialized. Call initTracker() first."),e;default:return e}}var $=({children:e,config:n={}})=>{let[,t]=useReducer(Ft,{tracker:null,config:n}),r=()=>t({type:"init"}),o=()=>t({type:"start"}),i=a=>t({type:"setUserId",payload:a}),s=a=>t({type:"setMetadata",payload:a});return useEffect(()=>{r(),o();},[]),jsx(N.Provider,{value:{initTracker:r,startTracking:o,setUserId:i,setMetadata:s},children:e})};function q(){let e=useContext(N);if(!e)throw new Error("useSessionReplay must be used within a SessionReplayProvider. Make sure your component is wrapped with <SessionReplayProvider>.");return e}var Vt=(e,n)=>{try{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:e,...n});}catch(t){console.error(t);}},$t=(e,n)=>{if(typeof gtag!="function"){console.error("gtag is not a function");return}gtag("event",e,n);},qt=(e,n)=>{ne.capture(e,n);};function ie(){var a;let{setUserId:e,setMetadata:n}=q(),r=(a=usePhygitalConsent().isAnalyticsAllowed)!=null?a:false;return {trackEvent:(c,l,d)=>{console.log("trackEvent ",c,l),d=d||["gtm"],d.includes("gtm")&&typeof window!="undefined"&&Vt(c,l),d.includes("ga")&&r&&typeof gtag=="function"&&$t(c,l),d.includes("posthog")&&typeof ne=="function"&&qt(c,l);},trackUserIdentify:c=>{ne.identify(c.email,{email:c.email,name:c.name,avatar:c.avatar,uid:c.uid}),e(c.id),n({user_email:c.email});},trackLogoutEvent:()=>{ne.capture("user_signed_out");}}}var f={};Oe(f,{NotificationProvider:()=>se,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,usePageVisibility:()=>usePageVisibility,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useWebSocket:()=>useWebSocket});m(f,_n);var Ht={dev:{API_BASE_URL:"https://backend-dev.nomion.io",API_BASE_CORE_URL:"https://backend-dev.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend-dev.nomion.io/achievement",API_REWARD_URL:"https://backend-dev.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc-dev.nomion.io/api",API_CONSENT_URL:"https://backend-dev.nomion.io/consent",API_NOTIFICATION_SOCKET_URL:"https://backend-dev.nomion.io/notification-ws/ws"},staging:{API_BASE_URL:"https://backend-staging.nomion.io",API_BASE_CORE_URL:"https://backend-staging.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend-staging.nomion.io/achievement",API_REWARD_URL:"https://backend-staging.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc-staging.nomion.io/api",API_CONSENT_URL:"https://backend-staging.nomion.io/consent",API_NOTIFICATION_SOCKET_URL:"https://backend-staging.nomion.io/notification-ws/ws"},production:{API_BASE_URL:"https://backend.nomion.io",API_BASE_CORE_URL:"https://backend.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend.nomion.io/achievement",API_REWARD_URL:"https://backend.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc.nomion.io/api",API_CONSENT_URL:"https://backend.nomion.io/consent",API_NOTIFICATION_SOCKET_URL:"https://backend.nomion.io/notification-ws/ws"}},S=Ht;var se=({children:e,autoConnect:n=true,environment:t="dev",user:r,onWebSocketOpen:o,onWebSocketClose:i,onWebSocketMessage:s})=>{var c,l;let a=(c=S[t])==null?void 0:c.API_NOTIFICATION_SOCKET_URL;return jsx(NotificationProvider,{userUid:r==null?void 0:r.id,accessToken:(l=r==null?void 0:r.accessToken)!=null?l:null,webSocketUrl:a,autoConnect:n,onWebSocketOpen:o,onWebSocketClose:i,onWebSocketMessage:s,children:e})};var Gr=createContext(void 0);function qe({children:e,achievements:n}){let{trackEvent:t}=ie(),r=useRef(new Set),{challenges:o,quests:i}=useMemo(()=>{let d=[],p=[];return n.forEach(u=>{u.type==="group_mission"?p.push(u):d.push(u);}),{challenges:d,quests:p}},[n]);useEffect(()=>{let d=useNotificationStore.subscribe(p=>{var U;let u=p.notifications;if(u.length===0)return;let g=u[u.length-1];if(!((U=g==null?void 0:g.data)!=null&&U.achievement))return;let C=`${g.data.achievement.id}_${Date.now()}`;if(r.current.has(C))return;r.current.add(C);let R=g.data.achievement;if(R.type==="group_mission")t("quest_complete",{quest_id:R.id,quest_name:R.name});else {let k=z(R)[0]||"unknown";t("challenge_complete",{challenge_id:R.id,challenge_name:R.name,challenge_type:k});}});return ()=>{d();}},[t]);let s=useCallback(d=>{let p=o.filter(u=>z(u).includes(d));if(p.length===0){console.error(`[AchievementTracking] No achievement found for action: ${d}`);return}p.forEach(u=>{t("challenge_start",{challenge_id:u.id,challenge_name:u.name,challenge_type:d});});},[o,t]),a=useCallback(()=>{if(i.length===0){console.error("[AchievementTracking] No quests found");return}i.forEach(d=>{t("quest_start",{quest_id:d.id,quest_name:d.name});});},[i,t]),c=n.length>0,l={trackChallengeStart:s,trackQuestStart:a,isReady:c};return jsx(Gr.Provider,{value:l,children:e})}function He(){let e=useContext(Gr);if(!e)throw new Error("useAchievementTracking must be used within AchievementTrackingProvider");return e}var je=(o=>(o.NOT_CLAIMED="not_claimed",o.CLAIMED="claimed",o.IN_PROGRESS="in_progress",o.FAILED="failed",o))(je||{});m(h,f);var co={user:null,isSignedIn:false,isInitialized:false,isLoading:false,error:null,cleanupFunctions:{},eventCallbacks:{}},v=create()(devtools(persist(subscribeWithSelector(immer((e,n)=>({...co,actions:{setIsLoading:t=>e(r=>{r.isLoading=t;}),setCleanupFunctions:t=>e(r=>{r.cleanupFunctions={...r.cleanupFunctions,...t};}),addEventCallbacks:t=>(e(r=>{r.eventCallbacks={...r.eventCallbacks,...t};}),()=>{e(r=>{r.eventCallbacks={...r.eventCallbacks,...t};});}),signInWithEmail:async(t,r)=>{var i,s,a,c;let{eventCallbacks:o}=n();e(l=>{l.isLoading=true,l.error=null;});try{let l=await authService.signIn({email:t,password:r});return (i=l==null?void 0:l.data)!=null&&i.idToken&&((s=l==null?void 0:l.data)!=null&&s.refreshToken)&&(tokenStorage.setTokens({idToken:l.data.idToken,refreshToken:l.data.refreshToken}),e(d=>{d.isSignedIn=!0;}),(a=o.onLoginSuccess)==null||a.call(o,l.data.idToken)),l}catch(l){let d=l instanceof Error?l.message:"Login failed";throw e(p=>{p.error=d;}),(c=o.onLoginError)==null||c.call(o,new Error(d)),l}finally{e(l=>{l.isLoading=false;});}},signInWithGoogle:async()=>{var r;let{eventCallbacks:t}=n();try{let o=ee;return await authService.getOAuthSignInUrl(o)}catch(o){let i=o instanceof Error?o.message:"Google sign in failed";throw e(s=>{s.error=i;}),(r=t.onLoginError)==null||r.call(t,new Error(i)),o}},signUpWithEmail:async(t,r)=>{var i,s;let{eventCallbacks:o}=n();e(a=>{a.isLoading=true,a.error=null;});try{let a=await authService.signUp({email:t,password:r});return a.data&&((i=o.onSignupSuccess)==null||i.call(o)),a}catch(a){let c=a instanceof Error?a.message:"Signup failed";throw e(l=>{l.error=c;}),(s=o.onSignupError)==null||s.call(o,new Error(c)),a}finally{e(a=>{a.isLoading=false,a.user=null,a.isSignedIn=false;});}},signOut:async()=>{var o,i,s,a,c,l;let{eventCallbacks:t,cleanupFunctions:r}=n();e(d=>{d.isLoading=true,d.error=null;});try{e(u=>{u.user=null,u.isSignedIn=!1,u.error=null;});let d=tokenStorage.getRefreshToken();if(tokenStorage.isTokenExpired()||!d){tokenStorage.clearTokens();return}await authService.logout({refreshToken:d}),tokenStorage.clearTokens();try{(o=r.clearQueryCache)==null||o.call(r),(i=r.clearOrganization)==null||i.call(r),(s=r.clearCustomData)==null||s.call(r),(a=r.clearHeaders)==null||a.call(r);}catch(u){console.warn("Error during logout cleanup:",u);}(c=t.onLogoutSuccess)==null||c.call(t);}catch(d){console.log(d);let p=d instanceof Error?d.message:"Logout failed";throw e(u=>{u.error=p;}),(l=t.onLogoutError)==null||l.call(t,new Error(p)),d}finally{e(d=>{d.isLoading=false;});}},sendPasswordResetEmail:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{await verifyCodeService.forgotPassword({email:t});}catch(r){let o=r instanceof Error?r.message:"Failed to send reset email";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},resetPassword:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.resetPassword(t)}catch(r){let o=r instanceof Error?r.message:"Failed to reset password";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},changePassword:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.changePassword(t)}catch(r){throw r}finally{e(r=>{r.isLoading=false;});}},verifyEmailCode:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.verifyEmail(t)}catch(r){let o=r instanceof Error?r.message:"Failed to send reset email";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},sendVerifyCode:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.sendVerifyCode(t)}catch(r){let o=r instanceof Error?r.message:"Failed to send verify code";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},refreshToken:async t=>{var o,i,s,a,c;let r=await authService.refreshToken({refreshToken:(o=t!=null?t:tokenStorage.getRefreshToken())!=null?o:""});return (i=r.data)!=null&&i.idToken&&((s=r.data)!=null&&s.refreshToken)&&tokenStorage.setTokens({idToken:(a=r.data)==null?void 0:a.idToken,refreshToken:(c=r.data)==null?void 0:c.refreshToken}),r},clearError:()=>e(t=>{t.error=null;}),setUser:t=>e(r=>{r.user=t;}),setIsSignedIn:t=>e(r=>{r.isSignedIn=t;}),setIsInitialized:t=>e(r=>{r.isInitialized=t;}),patchUser:t=>e(r=>{r.user?r.user={...r.user,...t}:r.user=t;}),initialize:()=>{e(t=>{let r=tokenStorage.getAuthToken();t.isSignedIn=!!r,t.isInitialized=true;});},syncAuthState:()=>{e(t=>{var i,s,a,c;let r=tokenStorage.getAuthToken(),o=t.isSignedIn;t.isSignedIn=!!r,o!==t.isSignedIn&&(t.isSignedIn?(s=(i=t.eventCallbacks)==null?void 0:i.onAuthStateChange)==null||s.call(i,t.user,true):(c=(a=t.eventCallbacks)==null?void 0:a.onAuthStateChange)==null||c.call(a,null,false));});}}}))),{version:1,name:"auth-store",storage:createJSONStorage(()=>localStorage),partialize:e=>({isSignedIn:e.isSignedIn,user:e.user})}))),_=()=>{let e=v(s=>s.user),n=v(s=>s.isSignedIn),t=v(s=>s.isInitialized),r=v(s=>s.isLoading),o=v(s=>s.error),i=v(s=>s.actions);return {user:e,isSignedIn:n,isInitialized:t,isLoading:r,error:o,...i}};var ve=(e,n)=>{let t={...e},r={};try{r=jwtDecode(n);}catch(o){console.warn("Failed to decode token in transformUserData:",o);}return t.exp=r.exp||0,t.accessToken=n||"",t.roles=(r==null?void 0:r.roles)||["USER"],t.account_type=(r==null?void 0:r.account_type)||0,t.picture=e.picture||"",t},Ae=e=>{try{return jwtDecode(e)}catch(n){return console.warn("Failed to decode token in decodeJWTToken:",n),null}};function B(){let{refreshToken:e,signOut:n}=_(),t=async()=>{try{if(!tokenStorage.isTokenExpired())return;await e();}catch(r){console.error("Failed to refresh token:",r),n();}};useQuery({queryKey:["refresh-token"],queryFn:()=>t(),refetchInterval:1800*1e3,refetchIntervalInBackground:false,refetchOnWindowFocus:true,retry:false,enabled:!!tokenStorage.getAuthToken()});}var Ao=()=>{let{updateHeaders:e}=useAuthenticationHeaders(),{updateHeaders:n,coreApi:t}=usePGLCoreService(),{updateHeaders:r}=useAchievementService(),{updateHeaders:o}=useRewardService(),{updateHeaders:i}=useGenerateCertificateService();return useEffect(()=>{v.getState().actions.initialize();let s=tokenStorage.getAuthToken();if(s){e({Authorization:`Bearer ${s}`}),n({Authorization:`Bearer ${s}`}),r({Authorization:`Bearer ${s}`}),o({Authorization:`Bearer ${s}`}),i({Authorization:`Bearer ${s}`});let{user:d}=v.getState();d&&d.accessToken!==s&&v.getState().actions.setUser({...d,accessToken:s});}let a=v.getState().isSignedIn,c=v.subscribe(d=>[d.isSignedIn,d.user],async([d])=>{var p,u;if(d!==a)if(a=d,d){let g=tokenStorage.getAuthToken();if(g){e({Authorization:`Bearer ${g}`}),n({Authorization:`Bearer ${g}`}),r({Authorization:`Bearer ${g}`}),o({Authorization:`Bearer ${g}`}),i({Authorization:`Bearer ${g}`});try{let P=await userService(t).getMyProfile(),k=ve(P,g);v.getState().actions.setUser(k);}catch{v.getState().actions.signOut();}}let{eventCallbacks:C,user:R}=v.getState();(p=C==null?void 0:C.onAuthStateChange)==null||p.call(C,R,true);}else {e({}),n({}),r({Authorization:""}),o({Authorization:""}),i({Authorization:""});let{eventCallbacks:g}=v.getState();(u=g==null?void 0:g.onAuthStateChange)==null||u.call(g,null,false);}}),l=tokenStorage.addTokenChangeListener(async()=>{let{isSignedIn:d,user:p}=v.getState();if(d){let u=tokenStorage.getAuthToken();u?(e({Authorization:`Bearer ${u}`}),n({Authorization:`Bearer ${u}`}),r({Authorization:`Bearer ${u}`}),o({Authorization:`Bearer ${u}`}),i({Authorization:`Bearer ${u}`}),p&&p.accessToken!==u&&v.getState().actions.setUser({...p,accessToken:u})):(v.getState().actions.signOut(),e({}),n({}),r({Authorization:""}),o({Authorization:""}),i({Authorization:""}));}});return ()=>{c(),l();}},[e,n,r,o,i,t]),null},Ro=()=>(B(),null),Y=({children:e,baseURL:n,queryClient:t})=>jsxs(AuthenticationProvider,{axiosConfig:{headers:{"Content-Type":"application/json"}},baseURL:n,queryClient:t,children:[jsx(Ao,{}),jsx(Ro,{}),e]});function we(e={}){let{onSuccess:n,onError:t,onPopupBlocked:r,onPopupClosed:o}=e,{signInWithGoogle:i,refreshToken:s,setIsSignedIn:a,setIsLoading:c,isLoading:l}=_(),[d,p]=useState(null),u=useRef(null),g=useRef(false),C=useRef(null),R=useRef(null),U=useCallback(async w=>{var T,I;if(w)try{let A=await s(w);if((T=A.data)!=null&&T.idToken&&((I=A.data)!=null&&I.refreshToken)){tokenStorage.setTokens({idToken:A.data.idToken,refreshToken:A.data.refreshToken});let y=Ae(A.data.idToken);a(!0),c(!1),n==null||n(y);}}catch(A){let y=A instanceof Error?A.message:"Token refresh failed";R.current=y,t==null||t(y),c(false);}},[s,a,c,n,t]),P=useCallback(()=>{C.current&&(clearInterval(C.current),C.current=null),g.current=false;},[]),k=useCallback(w=>{var I;let T=re.concat((I=window==null?void 0:window.location)==null?void 0:I.origin);if(w.origin!=="*"&&!T.includes(w.origin)){console.warn("Rejected message from untrusted origin:",w.origin);return}if(!w.data||typeof w.data!="object"){console.warn("Invalid message data received");return}if(w.data.type==="LOGIN_SUCCESS"){let{refreshToken:A}=w.data;A&&U(A),g.current=true,P();}else if(w.data.type==="LOGIN_ERROR"){let A=w.data.error||"Login failed";R.current=A,t==null||t(A),c(false),g.current=true,P();}},[U,c,P,t]);useEffect(()=>{(async()=>{try{let T=await i();p(T.statusMessage||"");}catch(T){console.error("error",T),p("");}})();},[]);let be=useCallback(()=>{let I=window.screenX+(window.outerWidth-500)/2,A=window.screenY+(window.outerHeight-600)/2;try{if(d===null)return;if(d===""){let y="Google sign in failed. Please try again later.";R.current=y,t==null||t(y);return}if(R.current=null,c(!0),u.current=window.open(d,"oauthPopup",`width=500,height=600,left=${I},top=${A},resizable,scrollbars`),!u.current){c(!1);let y="Popup blocked. Please allow popups for this site.";R.current=y,r==null||r(),t==null||t(y);return}C.current=setInterval(()=>{if(u.current&&u.current.closed&&(C.current&&(clearInterval(C.current),C.current=null),!g.current)){let y="Authentication popup was closed";R.current=y,o==null||o(),t==null||t(y),c(!1);}},500);}catch(y){let or=y instanceof Error?y.message:"Google sign in failed";R.current=or,t==null||t(or),c(false);}},[i,c,k,t,r,o,d]);return useEffect(()=>(window.addEventListener("message",k),()=>{window.removeEventListener("message",k);}),[k]),useEffect(()=>()=>{P();},[P]),{signIn:be,isLoading:l,error:R.current}}function rt({token:e,id:n,onScanChipError:t}){let{updateHeaders:r}=usePGLCoreService();useEffect(()=>{if(e){let c={"Chip-Authorization":e};te(e),r(c);}},[e,r]);let{data:o,isLoading:i,isError:s,isSuccess:a}=useChipScanStory({token:e,id:n});return useEffect(()=>{s&&(t==null||t());},[s,t]),o?{data:{externalUrl:o==null?void 0:o.external_url,campaignDetail:o==null?void 0:o.project,locationDetail:o==null?void 0:o.location,scanCounter:o==null?void 0:o.scan_counter,campaignId:o==null?void 0:o.campaign_id,chipModelId:o==null?void 0:o.chip_model_id,organizationId:o==null?void 0:o.organization_id,projectId:o==null?void 0:o.project_id,locationId:o==null?void 0:o.location_id,chipUid:o==null?void 0:o.uid},isLoading:i,isError:s,isSuccess:a}:{data:null,isLoading:i,isError:s,isSuccess:a}}var Xe=(o=>(o.CHECK_IN="check_in",o.CREATE_MEMORY="create_memory",o.FILL_FORM="fill_form",o.SHARE="share",o))(Xe||{});var Ze=e=>[...e].sort((n,t)=>{var r,o;return ((r=n.index)!=null?r:0)-((o=t.index)!=null?o:0)}),er=(e,n,t)=>e.filter(r=>r[n]===t);var ft=({children:e,queryClient:n,apiConfig:t={environment:"dev",version:"v1"}})=>{let{signOut:r,refreshToken:o}=_(),{environment:i,version:s}=t,[a,c]=useState(null),[l,d]=useState("");return useEffect(()=>{(async()=>{let u=await V();d(u);})();},[]),useEffect(()=>{(async()=>{try{let u=await V();c({queryClient:n,axiosConfig:{headers:{"Content-Type":"application/json","Device-UID":u}},responseInterceptors:{onFulfilled:P=>P,onRejected:async P=>{var w,T,I;let k=P.config,be=tokenStorage.getAuthToken();if(((w=P.response)==null?void 0:w.status)===401&&!k._retry){let A=parseInt(getFromLS(E)||"0",10);if(A>=3)return await r(),setToLS(E,0),Promise.reject(P);if(setToLS(E,`${A+1}`),k._retry=!0,be)try{let y=await o();if((T=y==null?void 0:y.data)!=null&&T.idToken)return k.headers.Authorization=`Bearer ${(I=y==null?void 0:y.data)==null?void 0:I.idToken}`,Uo(k)}catch(y){return console.error("Failed to refresh token:",y),await r(),Promise.reject(y)}}}},requestInterceptors:{onFulfilled:P=>P,onRejected:P=>Promise.reject(P)},useDevTool:!0});}catch(u){console.error(u);}})();},[n]),a?jsx(PGLCoreServiceProvider,{...a,baseURL:`${S[i].API_BASE_URL}/${s}`,baseCoreURL:`${S[i].API_BASE_CORE_URL}/${s}`,children:jsx(RewardServiceProvider,{...a,baseURL:`${S[i].API_REWARD_URL}/v1`,children:jsx(AchievementServiceProvider,{...a,baseURL:`${S[i].API_ACHIEVEMENT_URL}/${s}`,children:jsx(GenerateCertificateServiceProvider,{...a,baseURL:`${S[i].API_GENERATE_CERTIFICATE_URL}/v1`,children:jsxs(PhygitalConsentProvider,{...a,deviceId:l,baseURL:`${S[i].API_CONSENT_URL}/v1`,axiosConfig:{headers:{"Content-Type":"application/json"}},children:[jsx(X,{}),e]})})})})}):jsx(Fragment,{})};var gt=({children:e,queryClient:n,apiConfig:t})=>{let{environment:r}=t,o=useMemo(()=>{let i=process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY;if(i)return {projectKey:i,ingestPoint:process.env.NEXT_PUBLIC_OPENREPLAY_INGEST_POINT,debug:process.env.NODE_ENV==="development",captureExceptions:true,capturePerformance:true,obscureTextEmails:true,obscureInputEmails:true}},[]);return jsx($,{config:o,children:jsx(ft,{queryClient:n,apiConfig:t,children:jsx(Y,{baseURL:`${S[r].API_BASE_URL}`,queryClient:n,children:e})})})};function No(e,n){if(!(n!=null&&n.reward_models))return [];let t=n.reward_models;return e.map((r,o)=>{var a,c;let i=((a=t[o])==null?void 0:a[0])||null,s=((c=r.subAchievementIds)==null?void 0:c.map((l,d)=>{var u,g;let p=((g=t[o*(((u=r.subAchievementIds)==null?void 0:u.length)||0)+d+1])==null?void 0:g[0])||null;return {id:l,reward_model:p}}))||[];return {id:r.id,name:r.name,reward_model:i,subAchievements:s}})}var Bo=({campaignId:e})=>{let{data:n,isLoading:t}=useManyAchievements({"filter.labels":{campaign_id:e},"filter.type":"group_mission","pagination.limit":200},{enabled:!!e}),r=useMemo(()=>n!=null&&n.data?n.data.map(c=>c.groupRewardId).filter(c=>c!==void 0):[],[n==null?void 0:n.data]),{mutate:o,data:i,isPending:s}=useCreateModelGroupReward();return useEffect(()=>{r.length>0&&o({group_reward_ids:r});},[r,o]),{mappedAchievements:useMemo(()=>!(i!=null&&i.data)||!(n!=null&&n.data)?[]:No(n.data,i.data),[i,n==null?void 0:n.data]),isLoading:t||s}},Le=Bo;var tr=(r=>(r.DEV="dev",r.STAGING="staging",r.PRODUCTION="production",r))(tr||{});m(Me,h);
|
|
2
|
-
export{
|
|
1
|
+
import {useUserCampaignAction,useUploadMedia,useUpdateMyProfile,useSyncCheckin,useSendEmail,usePGLCoreService,useOneUserCampaign,useOneMemory,useMyProfile,useManyUserActionLocations,useManyMemory,useManyLocations,useUserCampaignsCompletedLocation,useOneLocation,useInfiniteMemories,useCreateMemory,useCreateClickButtonActionLog,useChipScanStory,useCancelUserRewardsRequest,useOneCampaign,resetMemoriesQuery,memoriesKey,locationQueryKeys,UserSourceType,CampaignState,useManyAchievementProgressByDevice,userService,PGLCoreServiceProvider}from'@phygitallabs/api-core';export{CampaignState,UserSourceType,locationQueryKeys,memoriesKey,resetMemoriesQuery,useOneCampaign as useCampaignDetail,useCancelUserRewardsRequest,useChipScanStory,useCreateClickButtonActionLog,useCreateMemory,useInfiniteMemories,useOneLocation as useLocationDetail,useUserCampaignsCompletedLocation as useLocationProgress,useManyLocations as useLocationsList,useManyMemory,useManyUserActionLocations,useMyProfile,useOneMemory,useOneUserCampaign,usePGLCoreService,useSendEmail,useSyncCheckin,useUpdateMyProfile,useUploadMedia,useUserCampaignAction}from'@phygitallabs/api-core';import {useUserAchievementAction,useOneAchievement,useManyChildrenAchievements,useManyAchievementsRewardModels,useManyAchievementsByLocation,useManyAchievements,useManyAchievementProgress,useAchievementProgress,AchievementServiceProvider,AchievementRuleActionType,useAchievementService}from'@phygitallabs/achievement';export{AchievementRuleActionType,AchievementServiceProvider,useAchievementProgress,useManyAchievementProgress as useManyAchievementProgressCore,useManyAchievements,useManyAchievementsByLocation,useManyAchievementsRewardModels,useManyChildrenAchievements,useOneAchievement,useUserAchievementAction}from'@phygitallabs/achievement';import {useQueryClient,useQuery}from'@tanstack/react-query';import {createContext,useCallback,useReducer,useContext,useEffect,useRef,useMemo,useState}from'react';import {usePhygitalConsent,PhygitalConsentProvider,CookieConsentBanner}from'@phygitallabs/phygital-consent';export{CookieConsentBanner,PhygitalConsentProvider,usePhygitalConsent}from'@phygitallabs/phygital-consent';import M from'posthog-js';import {v4}from'uuid';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import*as Qn from'@phygitallabs/notification-api';import {useWebSocket,useTCVNotificationRewardHandler,usePageVisibility,useNotificationStore,useNotificationRewardHandler,useDefaultServicePostPoll,useDefaultServiceGetPollStats,NotificationProvider}from'@phygitallabs/notification-api';export{useDefaultServiceGetPollStats,useDefaultServicePostPoll,useNotificationRewardHandler,useNotificationStore,usePageVisibility,useTCVNotificationRewardHandler,useWebSocket}from'@phygitallabs/notification-api';import {useV1ListRewards,useUpdateRewardModel,useManyUserRewards,useListRewardModels,useGetUserRewards,useGetRewardModel,useDeleteRewardModel,useCreateRewardModel,useCreateModelGroupReward,useClearUserRewardCache,useClaimUserReward,CmentityRewardType,useRewardService,RewardServiceProvider}from'@phygitallabs/reward';export{CmentityRewardType,useClaimUserReward,useClearUserRewardCache,useCreateModelGroupReward,useCreateRewardModel,useDeleteRewardModel,useGetRewardModel,useGetUserRewards,useListRewardModels,useManyUserRewards,useUpdateRewardModel,useV1ListRewards}from'@phygitallabs/reward';import {tokenStorage,authService,verifyCodeService,AuthenticationProvider,useAuthenticationHeaders}from'@phygitallabs/authentication';import {create}from'zustand';import {immer}from'zustand/middleware/immer';import {devtools,persist,subscribeWithSelector,createJSONStorage}from'zustand/middleware';import {jwtDecode}from'jwt-decode';import {wrapTextWithFont,useGenerateThaocamvienCertificate,useGenerateTemplateCertificate,useGenerateFansipanCertificate,useCreateCertificateWithMask,useCreateCertificateAnonymous,useCreateCertificate,useAddFrame,useGenerateCertificateService,GenerateCertificateServiceProvider}from'@phygitallabs/generate-certificate';export{useAddFrame,useCreateCertificate,useCreateCertificateAnonymous,useCreateCertificateWithMask,useGenerateFansipanCertificate,useGenerateTemplateCertificate,useGenerateThaocamvienCertificate,wrapTextWithFont}from'@phygitallabs/generate-certificate';import {parse,fileToBase64,cn,getFromLS,setToLS}from'@phygitallabs/helpers';export{cn,fileToBase64,parse}from'@phygitallabs/helpers';import Ko from'axios';var cr=Object.defineProperty;var xt=Object.getOwnPropertyDescriptor;var Ut=Object.getOwnPropertyNames;var Lt=Object.prototype.hasOwnProperty;var De=(e,n)=>{for(var t in n)cr(e,t,{get:n[t],enumerable:true});},ar=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of Ut(n))!Lt.call(e,o)&&o!==t&&cr(e,o,{get:()=>n[o],enumerable:!(r=xt(n,o))||r.enumerable});return e},m=(e,n,t)=>(ar(e,n,"default"),t);var Oe={};De(Oe,{ALLOWED_ORIGINS:()=>oe,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementTrackingProvider:()=>Qe,AchievementType:()=>ee,AuthProvider:()=>Z,CALLBACK_URL:()=>te,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,CookieConsentBanner:()=>CookieConsentBanner,Environment:()=>ir,GtagConsentSync:()=>se,GtagGtmScriptToggle:()=>We,GtagGtmScriptToggleFromConsent:()=>Fr,NotificationProvider:()=>de,PhygitalConsentProvider:()=>PhygitalConsentProvider,RewardClaimStatus:()=>Je,SessionReplayProvider:()=>j,TapquestCoreProvider:()=>wt,TaskType:()=>rr,TrackerContext:()=>B,UserSourceType:()=>UserSourceType,accessTokenKey:()=>D,checkDeviceUid:()=>H,chipAuthTokenKey:()=>z,cn:()=>cn,convertSnakeToCamel:()=>G,decodeJWTToken:()=>Ce,detectGtagGtmInDom:()=>Nr,deviceUIDKey:()=>F,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>or,generateDeviceId:()=>ze,getAccessToken:()=>kr,getActionsFromAchievementRule:()=>K,getChipAuthToken:()=>Cr,getDeviceUid:()=>$,getLocationIdsFromAchievementRule:()=>dr,getRefreshToken:()=>Er,getRetryAttemptsRefreshToken:()=>Tr,getSessionUserId:()=>Gr,getSurveyIdsFromAchievementRule:()=>ur,getUserInfo:()=>Lr,httpMaxRetries:()=>re,isAchievementCompleted:()=>V,isBrowser:()=>ie,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>N,removeAccessToken:()=>_r,removeChipAuthToken:()=>Pr,removeDeviceUid:()=>Rr,removeRefreshToken:()=>Ur,removeUserInfo:()=>br,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>x,setAccessToken:()=>Ir,setChipAuthToken:()=>ne,setDeviceUid:()=>Be,setRefreshToken:()=>xr,setRetryAttemptsRefreshToken:()=>Sr,setUserInfo:()=>Mr,sortLocationsByIndex:()=>tr,transformProtoUserData:()=>Re,useAchievementProgress:()=>useAchievementProgress,useAchievementTracking:()=>Ye,useAchivementPlusRewardModel:()=>Ge,useAddFrame:()=>useAddFrame,useAuth:()=>L,useAuthStore:()=>v,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>Ne,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateClickButtonActionLog:()=>useCreateClickButtonActionLog,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>ce,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>ke,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>Ar,useManyAchievementProgressCore:()=>useManyAchievementProgress,useManyAchievements:()=>useManyAchievements,useManyAchievementsByLocation:()=>useManyAchievementsByLocation,useManyAchievementsRewardModels:()=>useManyAchievementsRewardModels,useManyChildrenAchievements:()=>useManyChildrenAchievements,useManyMemory:()=>useManyMemory,useManyUserActionLocations:()=>useManyUserActionLocations,useManyUserRewards:()=>useManyUserRewards,useMyProfile:()=>useMyProfile,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,useOneAchievement:()=>useOneAchievement,useOneMemory:()=>useOneMemory,useOneUserCampaign:()=>useOneUserCampaign,usePGLCoreService:()=>usePGLCoreService,usePageVisibility:()=>usePageVisibility,usePhygitalConsent:()=>usePhygitalConsent,useScanChip:()=>st,useSendEmail:()=>useSendEmail,useSessionReplay:()=>b,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>W,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>O,wrapTextWithFont:()=>wrapTextWithFont});var y={};De(y,{ALLOWED_ORIGINS:()=>oe,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementTrackingProvider:()=>Qe,AchievementType:()=>ee,AuthProvider:()=>Z,CALLBACK_URL:()=>te,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,CookieConsentBanner:()=>CookieConsentBanner,Environment:()=>ir,GtagConsentSync:()=>se,GtagGtmScriptToggle:()=>We,GtagGtmScriptToggleFromConsent:()=>Fr,NotificationProvider:()=>de,PhygitalConsentProvider:()=>PhygitalConsentProvider,RewardClaimStatus:()=>Je,SessionReplayProvider:()=>j,TapquestCoreProvider:()=>wt,TaskType:()=>rr,TrackerContext:()=>B,UserSourceType:()=>UserSourceType,accessTokenKey:()=>D,checkDeviceUid:()=>H,chipAuthTokenKey:()=>z,cn:()=>cn,convertSnakeToCamel:()=>G,decodeJWTToken:()=>Ce,detectGtagGtmInDom:()=>Nr,deviceUIDKey:()=>F,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>or,generateDeviceId:()=>ze,getAccessToken:()=>kr,getActionsFromAchievementRule:()=>K,getChipAuthToken:()=>Cr,getDeviceUid:()=>$,getLocationIdsFromAchievementRule:()=>dr,getRefreshToken:()=>Er,getRetryAttemptsRefreshToken:()=>Tr,getSessionUserId:()=>Gr,getSurveyIdsFromAchievementRule:()=>ur,getUserInfo:()=>Lr,httpMaxRetries:()=>re,isAchievementCompleted:()=>V,isBrowser:()=>ie,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>N,removeAccessToken:()=>_r,removeChipAuthToken:()=>Pr,removeDeviceUid:()=>Rr,removeRefreshToken:()=>Ur,removeUserInfo:()=>br,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>x,setAccessToken:()=>Ir,setChipAuthToken:()=>ne,setDeviceUid:()=>Be,setRefreshToken:()=>xr,setRetryAttemptsRefreshToken:()=>Sr,setUserInfo:()=>Mr,sortLocationsByIndex:()=>tr,transformProtoUserData:()=>Re,useAchievementProgress:()=>useAchievementProgress,useAchievementTracking:()=>Ye,useAchivementPlusRewardModel:()=>Ge,useAddFrame:()=>useAddFrame,useAuth:()=>L,useAuthStore:()=>v,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>Ne,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateClickButtonActionLog:()=>useCreateClickButtonActionLog,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>ce,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>ke,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>Ar,useManyAchievementProgressCore:()=>useManyAchievementProgress,useManyAchievements:()=>useManyAchievements,useManyAchievementsByLocation:()=>useManyAchievementsByLocation,useManyAchievementsRewardModels:()=>useManyAchievementsRewardModels,useManyChildrenAchievements:()=>useManyChildrenAchievements,useManyMemory:()=>useManyMemory,useManyUserActionLocations:()=>useManyUserActionLocations,useManyUserRewards:()=>useManyUserRewards,useMyProfile:()=>useMyProfile,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,useOneAchievement:()=>useOneAchievement,useOneMemory:()=>useOneMemory,useOneUserCampaign:()=>useOneUserCampaign,usePGLCoreService:()=>usePGLCoreService,usePageVisibility:()=>usePageVisibility,usePhygitalConsent:()=>usePhygitalConsent,useScanChip:()=>st,useSendEmail:()=>useSendEmail,useSessionReplay:()=>b,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>W,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>O,wrapTextWithFont:()=>wrapTextWithFont});function Ne(){let e=useQueryClient();return {clearCache:useCallback(t=>{let{refetchActive:r=true,refetchInactive:o=false}=t||{};e.invalidateQueries({predicate:i=>{let s=i.queryKey;return s.includes("achievementProgressMany")||s.includes("achievementProgress")||s.includes("deviceUidAchievementProgressMany")},refetchType:r?o?"all":"active":"none"}),console.log("\u{1F504} Achievement progress cache cleared");},[e])}}var dr=e=>{if(!e.rule)return [];let n=[];return Object.values(e.rule).forEach(t=>{t.rules&&t.rules.forEach(r=>{r.filter&&Object.values(r.filter).forEach(o=>{o.filters&&o.filters.forEach(i=>{i.label==="location_id"&&i.value&&(Array.isArray(i.value)?n.push(...i.value):n.push(i.value));});});});}),Array.from(new Set(n))},ur=e=>{if(!e.rule)return [];let n=[];return Object.values(e.rule).forEach(t=>{t.rules&&t.rules.forEach(r=>{r.filter&&Object.values(r.filter).forEach(o=>{o.filters&&o.filters.forEach(i=>{i.label==="survey_id"&&i.value&&(Array.isArray(i.value)?n.push(...i.value):n.push(i.value));});});});}),Array.from(new Set(n))},K=e=>{if(!(e!=null&&e.rule))return [];let n=[];return Object.values((e==null?void 0:e.rule)||{}).forEach(t=>{var r;t!=null&&t.rules&&((r=t==null?void 0:t.rules)==null||r.forEach(o=>{o!=null&&o.action&&n.push(o==null?void 0:o.action);}));}),Array.from(new Set(n))},V=e=>e.isCompleted||e.overallPercentage===100;function G(e){if(e==null)return e;if(Array.isArray(e))return e.map(n=>G(n));if(typeof e=="object"&&e.constructor===Object){let n={};for(let t in e)if(e.hasOwnProperty(t)){let r=t.replace(/_([a-z])/g,(o,i)=>i.toUpperCase());n[r]=G(e[t]);}return n}return e}var Ar=(e,n)=>{let t=!!e.userId,r=t?{achievementIds:e.achievementIds,userId:e.userId,applicationId:e.applicationId}:{achievement_ids:e.achievementIds,device_uid:e.deviceUid,applicationId:e.applicationId};return t?useManyAchievementProgress(r,{...n,select:o=>o.map(i=>({...i,isCompleted:V(i)}))}):useManyAchievementProgressByDevice(r,{...n,select:o=>G(o).map(s=>({...s,isCompleted:V(s)}))})};var ee=(i=>(i.DEFAULT="default",i.MULTIPLE_CHECK_INS="multiple_check_ins",i.RANDOM_CHECK_INS="random_check_ins",i.GROUP_MISSION="group_mission",i.SURVEY="survey",i))(ee||{});var O="phygital-user-info",D="accessToken",N="refreshToken",re=3,x="retryAttemptsRefreshToken",F="Device-UID",z="chip-auth-token",te="https://s3-sgn10.fptcloud.com/nomion-assets/platform/callback.html",oe=["https://s3-sgn10.fptcloud.com","https://accounts.google.com/"];var ze=async()=>{try{return await Dt()}catch(e){return console.error("Error generating device fingerprint:",e),v4()}},Dt=async()=>{let e=new Date().toISOString(),n=[navigator.userAgent,navigator.language,screen.width,screen.height,screen.colorDepth,Intl.DateTimeFormat().resolvedOptions().timeZone,navigator.platform,navigator.hardwareConcurrency,e].join("::"),r=new TextEncoder().encode(n),o=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(o)).map(a=>a.toString(16).padStart(2,"0")).join("")};var $=()=>typeof window=="undefined"?null:localStorage.getItem(F),Be=e=>{typeof window!="undefined"&&localStorage.setItem(F,e);},Rr=()=>{typeof window!="undefined"&&localStorage.removeItem(F);},H=async()=>{let e=$();return e||(e=await ze(),Be(e)),e},Cr=()=>typeof window=="undefined"?null:localStorage.getItem(z),ne=e=>{typeof window!="undefined"&&localStorage.setItem(z,e);},Pr=()=>{typeof window!="undefined"&&localStorage.removeItem(z);},Tr=()=>typeof window=="undefined"?null:localStorage.getItem(x),Sr=e=>{typeof window!="undefined"&&localStorage.setItem(x,e);},kr=()=>typeof window=="undefined"?null:localStorage.getItem(D),Ir=e=>{typeof window!="undefined"&&localStorage.setItem(D,e);},_r=()=>{typeof window!="undefined"&&localStorage.removeItem(D);},Er=()=>typeof window=="undefined"?null:localStorage.getItem(N),xr=e=>{typeof window!="undefined"&&localStorage.setItem(N,e);},Ur=()=>{typeof window!="undefined"&&localStorage.removeItem(N);},Lr=()=>{if(typeof window=="undefined")return null;let e=localStorage.getItem(O);if(!e)return null;try{return JSON.parse(e)}catch(n){return console.error("Failed to parse stored user data:",n),null}},Mr=e=>{typeof window!="undefined"&&localStorage.setItem(O,JSON.stringify(e));},br=()=>{typeof window!="undefined"&&localStorage.removeItem(O);};var Gr=e=>e||$(),ie=()=>typeof window!="undefined";var B=createContext(null);function Bt(){return v4()}async function Wt(e){var n,t,r,o,i,s,a;try{let u=(await import('@openreplay/tracker')).default,p=e!=null&&e.userIdEnabled&&(e!=null&&e.getUserId)?e.getUserId:Bt,c={projectKey:(e==null?void 0:e.projectKey)||process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY,ingestPoint:e==null?void 0:e.ingestPoint,captureExceptions:(n=e.captureExceptions)!=null?n:!0,capturePerformance:(t=e.capturePerformance)!=null?t:!0,network:e.network||{capturePayload:!0,sanitizer:d=>d},console:e.console||{levels:["error","warn","log"]},obscureTextEmails:(r=e.obscureTextEmails)!=null?r:!0,obscureTextNumbers:(o=e.obscureTextNumbers)!=null?o:!1,obscureInputEmails:(i=e.obscureInputEmails)!=null?i:!0,__DISABLE_SECURE_MODE:(a=e.__DISABLE_SECURE_MODE)!=null?a:typeof process!="undefined"&&((s=process.env)==null?void 0:s.NODE_ENV)==="development"},g=new u(c);if(e!=null&&e.userIdEnabled){let d=p();g.setUserID(d),console.log("User ID set:",d);}return console.log("OpenReplay tracker initialized"),console.log("Project Key:",c.projectKey),console.log("Ingest Point:",c.ingestPoint),g}catch(u){throw console.error("Failed to create tracker:",u),u}}function qt(e,n){let{debug:t=false}=e.config;switch(n.type){case "init":return !e.tracker&&ie()?!e.config.projectKey&&!process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY?(console.warn(t,"Project key not found. Skipping session replay initialization."),e):{...e,tracker:Wt(e.config)}:e;case "start":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.start(),console.log(t,"Session replay tracker started");}).catch(r=>{console.error("Failed to start tracker:",r);}):console.warn(t,"Tracker not initialized. Call initTracker() first."),e;case "setUserId":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.setUserID(n.payload),console.log(t,"User ID updated:",n.payload);}).catch(r=>{console.error("Failed to set user ID:",r);}):console.warn(t,"Tracker not initialized. Call initTracker() first."),e;case "setMetadata":return e.tracker?Promise.resolve(e.tracker).then(r=>{var o;(o=Object.entries(n.payload||{}))==null||o.forEach(([i,s])=>{r.setMetadata(i,s);}),console.log(t,"Metadata updated:",n.payload.metadata);}).catch(r=>{console.error("Failed to set metadata:",r);}):console.warn(t,"Tracker not initialized. Call initTracker() first."),e;default:return e}}var j=({children:e,config:n={}})=>{let[,t]=useReducer(qt,{tracker:null,config:n}),r=()=>t({type:"init"}),o=()=>t({type:"start"}),i=a=>t({type:"setUserId",payload:a}),s=a=>t({type:"setMetadata",payload:a});return jsx(B.Provider,{value:{initTracker:r,startTracking:o,setUserId:i,setMetadata:s},children:e})};function b(){let e=useContext(B);if(!e)throw new Error("useSessionReplay must be used within a SessionReplayProvider. Make sure your component is wrapped with <SessionReplayProvider>.");return e}var Or={analytics_storage:"denied",ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied"},jt={analytics_storage:"granted"},Qt={ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted"};function Dr(e){if(typeof window=="undefined")return;let n=window;typeof n.gtag=="function"?n.gtag("consent","update",e):(n.dataLayer=n.dataLayer||[],n.dataLayer.push(["consent","update",e]));}function se(){var i,s;let e=usePhygitalConsent(),n=(i=e.isAnalyticsAllowed)!=null?i:false,t=(s=e.isAdvertisingAllowed)!=null?s:false,{initTracker:r,startTracking:o}=b();return useEffect(()=>{if(typeof window=="undefined")return;let a=window;a.dataLayer=a.dataLayer||[],typeof a.gtag=="function"?a.gtag("consent","default",{...Or}):a.dataLayer.push(["consent","default",{...Or}]);},[]),useEffect(()=>{n&&Dr({...jt});},[n]),useEffect(()=>{t&&Dr({...Qt});},[t]),useEffect(()=>{if(!n)return;let a=M;typeof a.opt_in_capturing=="function"&&a.opt_in_capturing();},[n]),useEffect(()=>{n&&(r(),o());},[n,r,o]),null}var Xt='script[src*="googletagmanager.com"], script[src*="google-analytics.com"], script[src*="gtag/js"]',Zt='script[src*="googletagmanager.com/gtm.js"]',eo='script[src*="gtag/js"], script[src*="googletagmanager.com/gtag"]';function Nr(){if(typeof document=="undefined")return {gtag:false,gtm:false,any:false,gtagScripts:[],gtmScripts:[]};let e=Array.from(document.querySelectorAll(eo)),n=Array.from(document.querySelectorAll(Zt));return {gtag:e.length>0,gtm:n.length>0,any:e.length>0||n.length>0,gtagScripts:e,gtmScripts:n}}function We({enabled:e=false}){return useEffect(()=>{if(typeof document!="undefined"&&!e){document.querySelectorAll(Xt).forEach(r=>{var o;(o=r.parentNode)==null||o.removeChild(r);});let t=window;t.dataLayer&&Array.isArray(t.dataLayer)&&(t.dataLayer.length=0),t.gtag=void 0;}},[e]),null}function Fr(){var t;let n=(t=usePhygitalConsent().isAnalyticsAllowed)!=null?t:false;return jsx(We,{enabled:n})}var ae={analytics_storage:"granted"},zr={ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted"},oo=(e,n)=>{try{if(typeof window=="undefined")return;window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:e,...n});}catch(t){console.error(t);}},no=(e,n)=>{if(typeof window=="undefined")return;let t=window;typeof t.gtag=="function"&&t.gtag("event",e,n);},io=(e,n)=>{M.capture(e,n);};function ce(){var w,k;let{initTracker:e,startTracking:n,setUserId:t,setMetadata:r}=b(),o=usePhygitalConsent(),i=(w=o.isAnalyticsAllowed)!=null?w:false,s=(k=o.isAdvertisingAllowed)!=null?k:false;return {trackEvent:(l,R,E)=>{var C;E=E||["gtm"],E.includes("gtm")&&typeof window!="undefined"&&oo(l,R),E.includes("ga")&&i&&no(l,R),E.includes("posthog")&&i&&typeof((C=M)==null?void 0:C.capture)=="function"&&io(l,R);},trackUserIdentify:l=>{var R;i&&(typeof((R=M)==null?void 0:R.identify)=="function"&&M.identify(l.email,{email:l.email,name:l.name,avatar:l.avatar,uid:l.uid}),t(l.id),r({user_email:l.email}));},trackLogoutEvent:()=>{var l;i&&typeof((l=M)==null?void 0:l.capture)=="function"&&M.capture("user_signed_out");},toggleGA:()=>{if(!i||typeof window=="undefined")return;let l=window;typeof l.gtag=="function"?l.gtag("consent","update",{...ae}):Array.isArray(l.dataLayer)&&l.dataLayer.push(["consent","update",{...ae}]);},toggleGTM:()=>{if(!i||typeof window=="undefined")return;let l=window;typeof l.gtag=="function"?l.gtag("consent","update",{...ae}):(l.dataLayer=l.dataLayer||[],l.dataLayer.push(["consent","update",{...ae}]));},togglePostHog:()=>{i&&typeof M.opt_in_capturing=="function"&&M.opt_in_capturing();},toggleOpenReplay:()=>{i&&(e(),n());},toggleGoogleAdSense:()=>{if(!s||typeof window=="undefined")return;let l=window;typeof l.gtag=="function"?l.gtag("consent","update",{...zr}):Array.isArray(l.dataLayer)&&l.dataLayer.push(["consent","update",{...zr}]);}}}var h={};De(h,{NotificationProvider:()=>de,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,usePageVisibility:()=>usePageVisibility,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useWebSocket:()=>useWebSocket});m(h,Qn);var so={dev:{API_BASE_URL:"https://backend-dev.nomion.io",API_BASE_CORE_URL:"https://backend-dev.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend-dev.nomion.io/achievement",API_REWARD_URL:"https://backend-dev.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc-dev.nomion.io/api",API_CONSENT_URL:"https://backend-dev.nomion.io/consent",API_NOTIFICATION_SOCKET_URL:"https://backend-dev.nomion.io/notification-ws/ws"},staging:{API_BASE_URL:"https://backend-staging.nomion.io",API_BASE_CORE_URL:"https://backend-staging.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend-staging.nomion.io/achievement",API_REWARD_URL:"https://backend-staging.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc-staging.nomion.io/api",API_CONSENT_URL:"https://backend-staging.nomion.io/consent",API_NOTIFICATION_SOCKET_URL:"https://backend-staging.nomion.io/notification-ws/ws"},production:{API_BASE_URL:"https://backend.nomion.io",API_BASE_CORE_URL:"https://backend.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend.nomion.io/achievement",API_REWARD_URL:"https://backend.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc.nomion.io/api",API_CONSENT_URL:"https://backend.nomion.io/consent",API_NOTIFICATION_SOCKET_URL:"https://backend.nomion.io/notification-ws/ws"}},I=so;var de=({children:e,autoConnect:n=true,environment:t="dev",user:r,onWebSocketOpen:o,onWebSocketClose:i,onWebSocketMessage:s})=>{var u,p;let a=(u=I[t])==null?void 0:u.API_NOTIFICATION_SOCKET_URL;return jsx(NotificationProvider,{userUid:r==null?void 0:r.id,accessToken:(p=r==null?void 0:r.accessToken)!=null?p:null,webSocketUrl:a,autoConnect:n,onWebSocketOpen:o,onWebSocketClose:i,onWebSocketMessage:s,children:e})};var Wr=createContext(void 0);function Qe({children:e,achievements:n}){let{trackEvent:t}=ce(),r=useRef(new Set),{challenges:o,quests:i}=useMemo(()=>{let c=[],g=[];return n.forEach(d=>{d.type==="group_mission"?g.push(d):c.push(d);}),{challenges:c,quests:g}},[n]);useEffect(()=>{let c=useNotificationStore.subscribe(g=>{var k;let d=g.notifications;if(d.length===0)return;let f=d[d.length-1];if(!((k=f==null?void 0:f.data)!=null&&k.achievement))return;let T=`${f.data.achievement.id}_${Date.now()}`;if(r.current.has(T))return;r.current.add(T);let w=f.data.achievement;if(w.type==="group_mission")t("quest_complete",{quest_id:w.id,quest_name:w.name});else {let R=K(w)[0]||"unknown";t("challenge_complete",{challenge_id:w.id,challenge_name:w.name,challenge_type:R});}});return ()=>{c();}},[t]);let s=useCallback(c=>{let g=o.filter(d=>K(d).includes(c));if(g.length===0){console.error(`[AchievementTracking] No achievement found for action: ${c}`);return}g.forEach(d=>{t("challenge_start",{challenge_id:d.id,challenge_name:d.name,challenge_type:c});});},[o,t]),a=useCallback(()=>{if(i.length===0){console.error("[AchievementTracking] No quests found");return}i.forEach(c=>{t("quest_start",{quest_id:c.id,quest_name:c.name});});},[i,t]),u=n.length>0,p={trackChallengeStart:s,trackQuestStart:a,isReady:u};return jsx(Wr.Provider,{value:p,children:e})}function Ye(){let e=useContext(Wr);if(!e)throw new Error("useAchievementTracking must be used within AchievementTrackingProvider");return e}var Je=(o=>(o.NOT_CLAIMED="not_claimed",o.CLAIMED="claimed",o.IN_PROGRESS="in_progress",o.FAILED="failed",o))(Je||{});m(y,h);var Co={user:null,isSignedIn:false,isInitialized:false,isLoading:false,error:null,cleanupFunctions:{},eventCallbacks:{}},v=create()(devtools(persist(subscribeWithSelector(immer((e,n)=>({...Co,actions:{setIsLoading:t=>e(r=>{r.isLoading=t;}),setCleanupFunctions:t=>e(r=>{r.cleanupFunctions={...r.cleanupFunctions,...t};}),addEventCallbacks:t=>(e(r=>{r.eventCallbacks={...r.eventCallbacks,...t};}),()=>{e(r=>{r.eventCallbacks={...r.eventCallbacks,...t};});}),signInWithEmail:async(t,r)=>{var i,s,a,u;let{eventCallbacks:o}=n();e(p=>{p.isLoading=true,p.error=null;});try{let p=await authService.signIn({email:t,password:r});return (i=p==null?void 0:p.data)!=null&&i.idToken&&((s=p==null?void 0:p.data)!=null&&s.refreshToken)&&(tokenStorage.setTokens({idToken:p.data.idToken,refreshToken:p.data.refreshToken}),e(c=>{c.isSignedIn=!0;}),(a=o.onLoginSuccess)==null||a.call(o,p.data.idToken)),p}catch(p){let c=p instanceof Error?p.message:"Login failed";throw e(g=>{g.error=c;}),(u=o.onLoginError)==null||u.call(o,new Error(c)),p}finally{e(p=>{p.isLoading=false;});}},signInWithGoogle:async()=>{var r;let{eventCallbacks:t}=n();try{let o=te;return await authService.getOAuthSignInUrl(o)}catch(o){let i=o instanceof Error?o.message:"Google sign in failed";throw e(s=>{s.error=i;}),(r=t.onLoginError)==null||r.call(t,new Error(i)),o}},signUpWithEmail:async(t,r)=>{var i,s;let{eventCallbacks:o}=n();e(a=>{a.isLoading=true,a.error=null;});try{let a=await authService.signUp({email:t,password:r});return a.data&&((i=o.onSignupSuccess)==null||i.call(o)),a}catch(a){let u=a instanceof Error?a.message:"Signup failed";throw e(p=>{p.error=u;}),(s=o.onSignupError)==null||s.call(o,new Error(u)),a}finally{e(a=>{a.isLoading=false,a.user=null,a.isSignedIn=false;});}},signOut:async()=>{var o,i,s,a,u,p;let{eventCallbacks:t,cleanupFunctions:r}=n();e(c=>{c.isLoading=true,c.error=null;});try{e(d=>{d.user=null,d.isSignedIn=!1,d.error=null;});let c=tokenStorage.getRefreshToken();if(tokenStorage.isTokenExpired()||!c){tokenStorage.clearTokens();return}await authService.logout({refreshToken:c}),tokenStorage.clearTokens();try{(o=r.clearQueryCache)==null||o.call(r),(i=r.clearOrganization)==null||i.call(r),(s=r.clearCustomData)==null||s.call(r),(a=r.clearHeaders)==null||a.call(r);}catch(d){console.warn("Error during logout cleanup:",d);}(u=t.onLogoutSuccess)==null||u.call(t);}catch(c){console.log(c);let g=c instanceof Error?c.message:"Logout failed";throw e(d=>{d.error=g;}),(p=t.onLogoutError)==null||p.call(t,new Error(g)),c}finally{e(c=>{c.isLoading=false;});}},sendPasswordResetEmail:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{await verifyCodeService.forgotPassword({email:t});}catch(r){let o=r instanceof Error?r.message:"Failed to send reset email";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},resetPassword:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.resetPassword(t)}catch(r){let o=r instanceof Error?r.message:"Failed to reset password";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},changePassword:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.changePassword(t)}catch(r){throw r}finally{e(r=>{r.isLoading=false;});}},verifyEmailCode:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.verifyEmail(t)}catch(r){let o=r instanceof Error?r.message:"Failed to send reset email";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},sendVerifyCode:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.sendVerifyCode(t)}catch(r){let o=r instanceof Error?r.message:"Failed to send verify code";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},refreshToken:async t=>{var o,i,s,a,u;let r=await authService.refreshToken({refreshToken:(o=t!=null?t:tokenStorage.getRefreshToken())!=null?o:""});return (i=r.data)!=null&&i.idToken&&((s=r.data)!=null&&s.refreshToken)&&tokenStorage.setTokens({idToken:(a=r.data)==null?void 0:a.idToken,refreshToken:(u=r.data)==null?void 0:u.refreshToken}),r},clearError:()=>e(t=>{t.error=null;}),setUser:t=>e(r=>{r.user=t;}),setIsSignedIn:t=>e(r=>{r.isSignedIn=t;}),setIsInitialized:t=>e(r=>{r.isInitialized=t;}),patchUser:t=>e(r=>{r.user?r.user={...r.user,...t}:r.user=t;}),initialize:()=>{e(t=>{let r=tokenStorage.getAuthToken();t.isSignedIn=!!r,t.isInitialized=true;});},syncAuthState:()=>{e(t=>{var i,s,a,u;let r=tokenStorage.getAuthToken(),o=t.isSignedIn;t.isSignedIn=!!r,o!==t.isSignedIn&&(t.isSignedIn?(s=(i=t.eventCallbacks)==null?void 0:i.onAuthStateChange)==null||s.call(i,t.user,true):(u=(a=t.eventCallbacks)==null?void 0:a.onAuthStateChange)==null||u.call(a,null,false));});}}}))),{version:1,name:"auth-store",storage:createJSONStorage(()=>localStorage),partialize:e=>({isSignedIn:e.isSignedIn,user:e.user})}))),L=()=>{let e=v(s=>s.user),n=v(s=>s.isSignedIn),t=v(s=>s.isInitialized),r=v(s=>s.isLoading),o=v(s=>s.error),i=v(s=>s.actions);return {user:e,isSignedIn:n,isInitialized:t,isLoading:r,error:o,...i}};var Re=(e,n)=>{let t={...e},r={};try{r=jwtDecode(n);}catch(o){console.warn("Failed to decode token in transformUserData:",o);}return t.exp=r.exp||0,t.accessToken=n||"",t.roles=(r==null?void 0:r.roles)||["USER"],t.account_type=(r==null?void 0:r.account_type)||0,t.picture=e.picture||"",t},Ce=e=>{try{return jwtDecode(e)}catch(n){return console.warn("Failed to decode token in decodeJWTToken:",n),null}};function W(){let{refreshToken:e,signOut:n}=L(),t=async()=>{try{if(!tokenStorage.isTokenExpired())return;await e();}catch(r){console.error("Failed to refresh token:",r),n();}};useQuery({queryKey:["refresh-token"],queryFn:()=>t(),refetchInterval:1800*1e3,refetchIntervalInBackground:false,refetchOnWindowFocus:true,retry:false,enabled:!!tokenStorage.getAuthToken()});}var Lo=()=>{let{updateHeaders:e}=useAuthenticationHeaders(),{updateHeaders:n,coreApi:t}=usePGLCoreService(),{updateHeaders:r}=useAchievementService(),{updateHeaders:o}=useRewardService(),{updateHeaders:i}=useGenerateCertificateService();return useEffect(()=>{v.getState().actions.initialize();let s=tokenStorage.getAuthToken();if(s){e({Authorization:`Bearer ${s}`}),n({Authorization:`Bearer ${s}`}),r({Authorization:`Bearer ${s}`}),o({Authorization:`Bearer ${s}`}),i({Authorization:`Bearer ${s}`});let{user:c}=v.getState();c&&c.accessToken!==s&&v.getState().actions.setUser({...c,accessToken:s});}let a=v.getState().isSignedIn,u=v.subscribe(c=>[c.isSignedIn,c.user],async([c])=>{var g,d;if(c!==a)if(a=c,c){let f=tokenStorage.getAuthToken();if(f){e({Authorization:`Bearer ${f}`}),n({Authorization:`Bearer ${f}`}),r({Authorization:`Bearer ${f}`}),o({Authorization:`Bearer ${f}`}),i({Authorization:`Bearer ${f}`});try{let l=await userService(t).getMyProfile(),R=Re(l,f);v.getState().actions.setUser(R);}catch{v.getState().actions.signOut();}}let{eventCallbacks:T,user:w}=v.getState();(g=T==null?void 0:T.onAuthStateChange)==null||g.call(T,w,true);}else {e({}),n({}),r({Authorization:""}),o({Authorization:""}),i({Authorization:""});let{eventCallbacks:f}=v.getState();(d=f==null?void 0:f.onAuthStateChange)==null||d.call(f,null,false);}}),p=tokenStorage.addTokenChangeListener(async()=>{let{isSignedIn:c,user:g}=v.getState();if(c){let d=tokenStorage.getAuthToken();d?(e({Authorization:`Bearer ${d}`}),n({Authorization:`Bearer ${d}`}),r({Authorization:`Bearer ${d}`}),o({Authorization:`Bearer ${d}`}),i({Authorization:`Bearer ${d}`}),g&&g.accessToken!==d&&v.getState().actions.setUser({...g,accessToken:d})):(v.getState().actions.signOut(),e({}),n({}),r({Authorization:""}),o({Authorization:""}),i({Authorization:""}));}});return ()=>{u(),p();}},[e,n,r,o,i,t]),null},Mo=()=>(W(),null),Z=({children:e,baseURL:n,queryClient:t})=>jsxs(AuthenticationProvider,{axiosConfig:{headers:{"Content-Type":"application/json"}},baseURL:n,queryClient:t,children:[jsx(Lo,{}),jsx(Mo,{}),e]});function ke(e={}){let{onSuccess:n,onError:t,onPopupBlocked:r,onPopupClosed:o}=e,{signInWithGoogle:i,refreshToken:s,setIsSignedIn:a,setIsLoading:u,isLoading:p}=L(),[c,g]=useState(null),d=useRef(null),f=useRef(false),T=useRef(null),w=useRef(null),k=useCallback(async C=>{var S,_;if(C)try{let P=await s(C);if((S=P.data)!=null&&S.idToken&&((_=P.data)!=null&&_.refreshToken)){tokenStorage.setTokens({idToken:P.data.idToken,refreshToken:P.data.refreshToken});let A=Ce(P.data.idToken);a(!0),u(!1),n==null||n(A);}}catch(P){let A=P instanceof Error?P.message:"Token refresh failed";w.current=A,t==null||t(A),u(false);}},[s,a,u,n,t]),l=useCallback(()=>{T.current&&(clearInterval(T.current),T.current=null),f.current=false;},[]),R=useCallback(C=>{var _;let S=oe.concat((_=window==null?void 0:window.location)==null?void 0:_.origin);if(C.origin!=="*"&&!S.includes(C.origin)){console.warn("Rejected message from untrusted origin:",C.origin);return}if(!C.data||typeof C.data!="object"){console.warn("Invalid message data received");return}if(C.data.type==="LOGIN_SUCCESS"){let{refreshToken:P}=C.data;P&&k(P),f.current=true,l();}else if(C.data.type==="LOGIN_ERROR"){let P=C.data.error||"Login failed";w.current=P,t==null||t(P),u(false),f.current=true,l();}},[k,u,l,t]);useEffect(()=>{(async()=>{try{let S=await i();g(S.statusMessage||"");}catch(S){console.error("error",S),g("");}})();},[]);let E=useCallback(()=>{let _=window.screenX+(window.outerWidth-500)/2,P=window.screenY+(window.outerHeight-600)/2;try{if(c===null)return;if(c===""){let A="Google sign in failed. Please try again later.";w.current=A,t==null||t(A);return}if(w.current=null,u(!0),d.current=window.open(c,"oauthPopup",`width=500,height=600,left=${_},top=${P},resizable,scrollbars`),!d.current){u(!1);let A="Popup blocked. Please allow popups for this site.";w.current=A,r==null||r(),t==null||t(A);return}T.current=setInterval(()=>{if(d.current&&d.current.closed&&(T.current&&(clearInterval(T.current),T.current=null),!f.current)){let A="Authentication popup was closed";w.current=A,o==null||o(),t==null||t(A),u(!1);}},500);}catch(A){let sr=A instanceof Error?A.message:"Google sign in failed";w.current=sr,t==null||t(sr),u(false);}},[i,u,R,t,r,o,c]);return useEffect(()=>(window.addEventListener("message",R),()=>{window.removeEventListener("message",R);}),[R]),useEffect(()=>()=>{l();},[l]),{signIn:E,isLoading:p,error:w.current}}function st({token:e,id:n,onScanChipError:t}){let{updateHeaders:r}=usePGLCoreService();useEffect(()=>{if(e){let u={"Chip-Authorization":e};ne(e),r(u);}},[e,r]);let{data:o,isLoading:i,isError:s,isSuccess:a}=useChipScanStory({token:e,id:n});return useEffect(()=>{s&&(t==null||t());},[s,t]),o?{data:{externalUrl:o==null?void 0:o.external_url,campaignDetail:o==null?void 0:o.project,locationDetail:o==null?void 0:o.location,scanCounter:o==null?void 0:o.scan_counter,campaignId:o==null?void 0:o.campaign_id,chipModelId:o==null?void 0:o.chip_model_id,organizationId:o==null?void 0:o.organization_id,projectId:o==null?void 0:o.project_id,locationId:o==null?void 0:o.location_id,chipUid:o==null?void 0:o.uid},isLoading:i,isError:s,isSuccess:a}:{data:null,isLoading:i,isError:s,isSuccess:a}}var rr=(o=>(o.CHECK_IN="check_in",o.CREATE_MEMORY="create_memory",o.FILL_FORM="fill_form",o.SHARE="share",o))(rr||{});var tr=e=>[...e].sort((n,t)=>{var r,o;return ((r=n.index)!=null?r:0)-((o=t.index)!=null?o:0)}),or=(e,n,t)=>e.filter(r=>r[n]===t);var vt=({children:e,queryClient:n,apiConfig:t={environment:"dev",version:"v1"}})=>{let{signOut:r,refreshToken:o}=L(),{environment:i,version:s}=t,[a,u]=useState(null),[p,c]=useState("");return useEffect(()=>{(async()=>{let d=await H();c(d);})();},[]),useEffect(()=>{(async()=>{try{let d=await H();u({queryClient:n,axiosConfig:{headers:{"Content-Type":"application/json","Device-UID":d}},responseInterceptors:{onFulfilled:l=>l,onRejected:async l=>{var C,S,_;let R=l.config,E=tokenStorage.getAuthToken();if(((C=l.response)==null?void 0:C.status)===401&&!R._retry){let P=parseInt(getFromLS(x)||"0",10);if(P>=3)return await r(),setToLS(x,0),Promise.reject(l);if(setToLS(x,`${P+1}`),R._retry=!0,E)try{let A=await o();if((S=A==null?void 0:A.data)!=null&&S.idToken)return R.headers.Authorization=`Bearer ${(_=A==null?void 0:A.data)==null?void 0:_.idToken}`,Ko(R)}catch(A){return console.error("Failed to refresh token:",A),await r(),Promise.reject(A)}}}},requestInterceptors:{onFulfilled:l=>l,onRejected:l=>Promise.reject(l)},useDevTool:!0});}catch(d){console.error(d);}})();},[n]),a?jsx(PGLCoreServiceProvider,{...a,baseURL:`${I[i].API_BASE_URL}/${s}`,baseCoreURL:`${I[i].API_BASE_CORE_URL}/${s}`,children:jsx(RewardServiceProvider,{...a,baseURL:`${I[i].API_REWARD_URL}/v1`,children:jsx(AchievementServiceProvider,{...a,baseURL:`${I[i].API_ACHIEVEMENT_URL}/${s}`,children:jsx(GenerateCertificateServiceProvider,{...a,baseURL:`${I[i].API_GENERATE_CERTIFICATE_URL}/v1`,children:jsxs(PhygitalConsentProvider,{...a,deviceId:p,baseURL:`${I[i].API_CONSENT_URL}/v1`,axiosConfig:{headers:{"Content-Type":"application/json"}},children:[jsx(se,{}),e]})})})})}):jsx(Fragment,{})};var wt=({children:e,queryClient:n,apiConfig:t})=>{let{environment:r}=t,o=useMemo(()=>{let i=process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY;if(i)return {projectKey:i,ingestPoint:process.env.NEXT_PUBLIC_OPENREPLAY_INGEST_POINT,debug:process.env.NODE_ENV==="development",captureExceptions:true,capturePerformance:true,obscureTextEmails:true,obscureInputEmails:true}},[]);return jsx(j,{config:o,children:jsx(vt,{queryClient:n,apiConfig:t,children:jsx(Z,{baseURL:`${I[r].API_BASE_URL}`,queryClient:n,children:e})})})};function Jo(e,n){if(!(n!=null&&n.reward_models))return [];let t=n.reward_models;return e.map((r,o)=>{var a,u;let i=((a=t[o])==null?void 0:a[0])||null,s=((u=r.subAchievementIds)==null?void 0:u.map((p,c)=>{var d,f;let g=((f=t[o*(((d=r.subAchievementIds)==null?void 0:d.length)||0)+c+1])==null?void 0:f[0])||null;return {id:p,reward_model:g}}))||[];return {id:r.id,name:r.name,reward_model:i,subAchievements:s}})}var Xo=({campaignId:e})=>{let{data:n,isLoading:t}=useManyAchievements({"filter.labels":{campaign_id:e},"filter.type":"group_mission","pagination.limit":200},{enabled:!!e}),r=useMemo(()=>n!=null&&n.data?n.data.map(u=>u.groupRewardId).filter(u=>u!==void 0):[],[n==null?void 0:n.data]),{mutate:o,data:i,isPending:s}=useCreateModelGroupReward();return useEffect(()=>{r.length>0&&o({group_reward_ids:r});},[r,o]),{mappedAchievements:useMemo(()=>!(i!=null&&i.data)||!(n!=null&&n.data)?[]:Jo(n.data,i.data),[i,n==null?void 0:n.data]),isLoading:t||s}},Ge=Xo;var ir=(r=>(r.DEV="dev",r.STAGING="staging",r.PRODUCTION="production",r))(ir||{});m(Oe,y);
|
|
2
|
+
export{oe as ALLOWED_ORIGINS,Qe as AchievementTrackingProvider,ee as AchievementType,Z as AuthProvider,te as CALLBACK_URL,ir as Environment,se as GtagConsentSync,We as GtagGtmScriptToggle,Fr as GtagGtmScriptToggleFromConsent,de as NotificationProvider,Je as RewardClaimStatus,j as SessionReplayProvider,wt as TapquestCoreProvider,rr as TaskType,B as TrackerContext,D as accessTokenKey,H as checkDeviceUid,z as chipAuthTokenKey,G as convertSnakeToCamel,Ce as decodeJWTToken,Nr as detectGtagGtmInDom,F as deviceUIDKey,or as filterLocationsByProperty,ze as generateDeviceId,kr as getAccessToken,K as getActionsFromAchievementRule,Cr as getChipAuthToken,$ as getDeviceUid,dr as getLocationIdsFromAchievementRule,Er as getRefreshToken,Tr as getRetryAttemptsRefreshToken,Gr as getSessionUserId,ur as getSurveyIdsFromAchievementRule,Lr as getUserInfo,re as httpMaxRetries,V as isAchievementCompleted,ie as isBrowser,N as refreshTokenKey,_r as removeAccessToken,Pr as removeChipAuthToken,Rr as removeDeviceUid,Ur as removeRefreshToken,br as removeUserInfo,x as retryAttemptsRefreshToken,Ir as setAccessToken,ne as setChipAuthToken,Be as setDeviceUid,xr as setRefreshToken,Sr as setRetryAttemptsRefreshToken,Mr as setUserInfo,tr as sortLocationsByIndex,Re as transformProtoUserData,Ye as useAchievementTracking,Ge as useAchivementPlusRewardModel,L as useAuth,v as useAuthStore,Ne as useClearAchievementProgressCache,ce as useDataTracking,ke as useGoogleLogin,Ar as useManyAchievementProgress,st as useScanChip,b as useSessionReplay,W as useTokenRefresher,O as userInfoKey};//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|