{"version":3,"mappings":"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","names":["useAppDispatch","useDispatch","useAppSelector","useSelector","useAuth","state","SvgKwaleeLogoHand","props","React.createElement","wave","keyframes","fadeIn","StyledLogo","styled","KwaleeLogoHand","theme","FadeIn","Loading","variant","jsx","Box","Typography","LoadingDialog","label","maxWidth","Dialog","jsxs","DialogContent","withBackendHandling","baseQuery","args","api","extraOptions","adjustedArgs","newFormData","key","value","cloneDeep","auth","SUPPORTED_LANGUAGES","LANGUAGES","getCurrentLocale","allowedLocales","pathLocale","getPathWithLocale","locale","pathname","addLocaleToUrl","url","urlObj","fetchBaseQuery","headers","TAGS","createApi","graphqlRequestBaseQuery","getState","error","response","_a","initialState","slice","createSlice","action","options","rest","notification","enqueueSnackbar","closeSnackbar","removeSnackbar","selectNotifications","isExpiredToken","mutex","Mutex","withTokenRefresh","result","handleLogout","release","refreshResult","refresh","i18next","graphqlBaseQuery","externalClient","CognitoIdentityProviderClient","internalClient","providers","authenticate","email","password","provider","command","InitiateAuthCommand","refreshAuth","token","scope","register","isInvited","utm","SignUpCommand","getTokens","code","params","verifyEmail","username","ConfirmSignUpCommand","changePassword","accessToken","currPassword","newPassword","ChangePasswordCommand","forgotPassword","ForgotPasswordCommand","confirmForgotPassword","ConfirmForgotPasswordCommand","resendVerificationEmail","ResendConfirmationCodeCommand","persistConfig","storage","reducer","general","persistReducer","setNavigationOpen","selectIsNavigationOpen","setTheme","selectTheme","USER_STATUSES","USER_STATUS_COLOR_MAP","acc","userStatus","USER_STATUS_TITLE_MAP","USER_ACTIONS","USER_ACTIONS2","PRODUCTION","PRODUCT","BUSINESS_DEVELOPMENT","DEVELOPER","DESIGNER","PRODUCT_TOOLS","PUBLISHING_MANAGER","ADMIN","PRODUCT_MARKETING_MANAGER","CREATIVE_TEAM","USER_ROLES","hasModulePermission","module","hasModuleRoutePermission","hasInternalModuleRoutePermission","hasUnityTestPermission","callInternalCognitoRegister","AccessToken","IdToken","submitHybrid","data","submitHybridFiles","getMediaPreSignedURL","name","hasInternalReadOnlyAccess","designation","HITSEEKER_EVENT_KEYS","isMxPannelKeyPresent","HITSEEKER_EVENT","config","mixpanel","e","eventKey","properties","id","builder","isAnyOf","login","googleAuth","createAsyncThunk","dispatch","rejectWithValue","setEmail","setScope","setLoginProvider","logout","shouldShowToast","graphApi","restApi","ReactGA","cognitoRegister","tokens","authenticationResult","b64","info","updatePassword","hasRefreshed","NotAuthorizedException","err","forgotenPassword","resetPassword","setLoggedInUser","selectIsAuthenticating","selectIsAuthenticated","selectLoginProvider","GetOrganisationsDocument","GetOrganisationsListDocument","GetLoggedInUserDocument","GetUsersDocument","GetAllUsersListDocument","GetAllInternalUsersListDocument","GetAllUsersNameDocument","GetUsersCountDocument","GetPermissionModulesDocument","UpdateUserPermissionsDocument","UpdateUserProjectsDocument","UpdatePermissionModuleDocument","GetUserDocument","CreateInternalRoleDocument","ArchiveInternalRoleDocument","GetInternalRolesDocument","GetOrganisationNameByIdDocument","injectedRtkApi","build","variables","useGetOrganisationsQuery","useLazyGetOrganisationsQuery","useGetOrganisationsListQuery","useLazyGetOrganisationsListQuery","useGetLoggedInUserQuery","useLazyGetLoggedInUserQuery","useGetUsersQuery","useLazyGetUsersQuery","useGetAllUsersListQuery","useLazyGetAllUsersListQuery","useGetAllInternalUsersListQuery","useLazyGetAllInternalUsersListQuery","useGetAllUsersNameQuery","useLazyGetAllUsersNameQuery","useGetUsersCountQuery","useLazyGetUsersCountQuery","useGetPermissionModulesQuery","useLazyGetPermissionModulesQuery","useUpdateUserPermissionsMutation","useUpdateUserProjectsMutation","useUpdatePermissionModuleMutation","useGetUserQuery","useLazyGetUserQuery","useCreateInternalRoleMutation","useArchiveInternalRoleMutation","useGetInternalRolesQuery","useLazyGetInternalRolesQuery","useGetOrganisationNameByIdQuery","useLazyGetOrganisationNameByIdQuery","generatedApi","currentArg","previousArg","_","queryFulfilled","permission","__","RESTRICTED_USER_STATUSES","RESTRICTED_ERROR_MESSAGES","AuthorisationRoute","children","useTranslation","isAuthenticated","isLoadingUser","isError","loggedInUserData","isUserRestricted","isUserUnauthorised","useEffect","Navigate","API_HANDLERS","graphqlApi","API_REDUCERS","store","configureStore","notifier","getDefaultMiddleware","FLUSH","REHYDRATE","PAUSE","PERSIST","PURGE","REGISTER","storePersistor","persistStore","ProtectedRoute","hasPermission","redirectTo","location","useLocation","returnPath","CreateNewThread","lazy","__vitePreload","route","GetCategoryAndPriorityListDocument","GetThreadListDocument","GetThreadsDocument","GetPriorityDocument","GetThreadSubjectDocument","GetThreadChatDocument","GetChatItemDocument","GetCategoryAndPriorityIdListDocument","GetCategoryDocument","GetPrioritiesDocument","GetParentCategoriesAndPrioritiesListDocument","CreatePriorityAdminDocument","UpdatePriorityAdminDocument","CreateCategoryAdminDocument","UpdateCategoryAdminDocument","AssignUnAssignDiscussionForumThreadToInternalUserDocument","useGetCategoryAndPriorityListQuery","useLazyGetCategoryAndPriorityListQuery","useGetThreadListQuery","useLazyGetThreadListQuery","useGetThreadsQuery","useLazyGetThreadsQuery","useGetPriorityQuery","useLazyGetPriorityQuery","useGetThreadSubjectQuery","useLazyGetThreadSubjectQuery","useGetThreadChatQuery","useLazyGetThreadChatQuery","useGetChatItemQuery","useLazyGetChatItemQuery","useGetCategoryAndPriorityIdListQuery","useLazyGetCategoryAndPriorityIdListQuery","useGetCategoryQuery","useLazyGetCategoryQuery","useGetPrioritiesQuery","useLazyGetPrioritiesQuery","useGetParentCategoriesAndPrioritiesListQuery","useLazyGetParentCategoriesAndPrioritiesListQuery","useCreatePriorityAdminMutation","useUpdatePriorityAdminMutation","useCreateCategoryAdminMutation","useUpdateCategoryAdminMutation","useAssignUnAssignDiscussionForumThreadToInternalUserMutation","arg","GetThreadSubject","ThreadChatList","title","parsedParams","getter","_b","DiscussionForum","DiscussionForumIndex","createThreadRoute","ThreadChatRoute","MyOrganisation","AllOrganisations","AllUsers","Profile","GetMainFolderIdDocument","GetFolderListDocument","GetFolderTitleDocument","GetFileListDocument","GetStorageSpaceDocument","FolderAndFileByIdDocument","GetAdminRootFolderListDocument","SearchFolderAndFileDocument","useGetMainFolderIdQuery","useGetFolderListQuery","useGetFolderTitleQuery","useGetFileListQuery","useGetStorageSpaceQuery","useFolderAndFileByIdQuery","useSearchFolderAndFileQuery","useGetAdminRootFolderListQuery","GetMainFolderId","GetFolderList","GetFolderTitle","GetFileList","GetStorageSpace","FolderAndFileById","FolderView","n","FileManagement","FileManagementIndex","folderRoute","GetGameDocument","GetFeedbackGamesListDocument","GetGamesCountDocument","GetGameDetailsDocument","GetLatestGamesDocument","GetGameFeedbackAreasDocument","GetGameFeedbackThreadsDocument","GetGameFeedbackChatDocument","GetGameTitleDocument","GetGameListFilterDocument","GetGameListWithStoreUrlDocument","GetGameTagsDocument","GetGameStagesDocument","GetGamesGridListDocument","GetGameWithByteBrewDocument","GetGameCreativeManagementDocument","GetDashboardMetricCountDocument","GetKwaleeSdkGameIdDocument","useGetGameQuery","useLazyGetGameQuery","useGetFeedbackGamesListQuery","useLazyGetFeedbackGamesListQuery","useGetGamesCountQuery","useLazyGetGamesCountQuery","useGetGameDetailsQuery","useLazyGetGameDetailsQuery","useGetLatestGamesQuery","useLazyGetLatestGamesQuery","useGetGameFeedbackAreasQuery","useLazyGetGameFeedbackAreasQuery","useGetGameFeedbackThreadsQuery","useLazyGetGameFeedbackThreadsQuery","useGetGameFeedbackChatQuery","useLazyGetGameFeedbackChatQuery","useGetGameTitleQuery","useLazyGetGameTitleQuery","useGetGameListFilterQuery","useLazyGetGameListFilterQuery","useGetGameListWithStoreUrlQuery","useLazyGetGameListWithStoreUrlQuery","useGetGameTagsQuery","useLazyGetGameTagsQuery","useGetGameStagesQuery","useLazyGetGameStagesQuery","useGetGamesGridListQuery","useLazyGetGamesGridListQuery","useGetGameWithByteBrewQuery","useLazyGetGameWithByteBrewQuery","useGetGameCreativeManagementQuery","useLazyGetGameCreativeManagementQuery","useGetDashboardMetricCountQuery","useLazyGetDashboardMetricCountQuery","useGetKwaleeSdkGameIdQuery","useLazyGetKwaleeSdkGameIdQuery","queryArgs","page_no","created_at_range","page_size","restArgs","cachedData","newData","feedbackChatItemIdMap","chat","res","GetGame","GetFeedbackGamesList","GetGameDetails","GetGamesCount","GetLatestGames","GetGameFeedbackAreas","GetGameFeedbackThreads","GetGameFeedbackChat","GetGameTitle","GetGameTags","ByteBrewForm","ManageCustomEvents","ByteBrewGames","CustomEvents","Outlet","GameDetails","redirect","customEventsRoute","GameSDKstep","GameSDKValidate","SubmissionIndex","EditGame","gameSDKroute","gameSDKvalidateRoute","KwaleeFeedback","GetCpiListDocument","RequestChangesHistoryDocument","GetCpiFormDetailByIdDocument","GetCpiDetailsDocument","GetCpiByIdDocument","GetCpiTestTitleDocument","GetCpiVideosDocument","GetAdAccountsDocument","useGetCpiListQuery","useRequestChangesHistoryQuery","useGetCpiFormDetailByIdQuery","useGetCpiByIdQuery","useGetCpiVideosQuery","useGetCpiDetailsQuery","useGetAdAccountsQuery","useLazyGetCpiListQuery","GetCpiTestTitle","Statistics","FormCPI","CpiList","viewStatsRoute","cpiFormRoute","GameKeyIndex","CreativeManagementLayout","MyGamesPage","gameDetailsRoute","submissionRoute","kwaleeFeedbackRoute","gameKeyRoute","cpiListRoute","creativeManagementRoute","CampaignGoals","UpdateCampaign","UnityTest","unityGoalRoute","unityCampaignRoute","GetCategoryListDocument","GetCategoryTitleDocument","GetCategoryTitleWithParentDocument","UpdateCategoryWeightDocument","CreateCategoryDocument","UpdateCategoryDocument","DeleteCategoryDocument","GetFurtherReadingDocument","GetArticlesDocument","GetHomeArticlesDocument","GetCategoriesIdNameDocument","GetArticleDocument","GetArticleTitleWithParentDocument","GetArticlesIdNameDocument","CreateArticleDocument","UpdateArticleContentsDocument","UpdateArticleWeightDocument","DeleteArticleDocument","useGetCategoryListQuery","useLazyGetCategoryListQuery","useGetCategoryTitleQuery","useLazyGetCategoryTitleQuery","useGetCategoryTitleWithParentQuery","useLazyGetCategoryTitleWithParentQuery","useUpdateCategoryWeightMutation","useCreateCategoryMutation","useUpdateCategoryMutation","useDeleteCategoryMutation","useGetFurtherReadingQuery","useLazyGetFurtherReadingQuery","useGetArticlesQuery","useLazyGetArticlesQuery","useGetHomeArticlesQuery","useLazyGetHomeArticlesQuery","useGetCategoriesIdNameQuery","useLazyGetCategoriesIdNameQuery","useGetArticleQuery","useLazyGetArticleQuery","useGetArticleTitleWithParentQuery","useLazyGetArticleTitleWithParentQuery","useGetArticlesIdNameQuery","useLazyGetArticlesIdNameQuery","useCreateArticleMutation","useUpdateArticleContentsMutation","useUpdateArticleWeightMutation","useDeleteArticleMutation","GetCategoryList","GetCategoryTitle","UpdateCategoryWeight","CreateCategory","UpdateCategory","DeleteCategory","GetFurtherReading","GetArticles","GetArticle","CreateArticle","UpdateArticleContents","UpdateArticleWeight","DeleteArticle","GetHomeArticles","GetCategoryTitleWithParent","GetArticleTitleWithParent","getMappedArticlesIds","article","categoryId","articleId","parentCategoryGetter","childCategoryGetter","parentCategoryResponse","childCategoryResponse","_c","_f","_e","_d","_j","_i","_h","_g","_n","_m","_l","_k","KnowledgeBaseArticle","KnowledgeBaseArticleView","KnowledgeBaseArticleCreate","KnowledgeBaseArticleEdit","KnowledgeBaseCategory","articleRoutes","KnowledgeBase","KnowledgeBaseIndex","categoryRoute","Analytics","Notification","ManageAdAccount","HomeIndex","PageTitleProvider","matches","useMatches","useLayoutEffect","lastMatch","match","GoogleAnalyticsProvider","SvgSomethingWrong","SvgNewBuildFrame","SomethingWentWrong","t","useRouteError","Fragment","NewReleaseFrameIcon","Button","SomethingWentWrongImage","SvgAppMaintenance","HitSeekerLogo","HitSeekerLogoDark","HitSeekerArLogo","HitSeekerArLogoDark","AppMaintenance","i18n","lightModeLogo","darkModeLogo","useTheme","Divider","AppMaintenanceFrame","Refresh","Layout","OnboardingLayout","Login","AdminLogin","Register","RegisterSuccess","Auth","VerifyEmail","ForgotPassword","OrganisationSetup","HybridSubmission","PageNotFound","App","useMemo","createBrowserRouter","router","routerBasePath","moment","AuthenticatedRoute","homeRoute","analytics","knowledgeBaseRoute","fileManagementRoute","discussionForumRoute","myOrganisationRoute","allOrganisationsRoute","profileRoute","gamesRoute","unityTest","notificationRoute","facebookAdAccountRoute","allUsersRoute","allInternalUsersRoute","Suspense","RouterProvider","SvgNotificationError","SvgNotificationInfo","SvgNotificationSuccess","SvgNotificationWarning","StyledIconButton","IconButton","Icon","style","className","SuccessIcon","ErrorIcon","InfoIcon","WarningIcon","NotifierComponent","forwardRef","ref","message","notificationTitle","other","isMobileDevice","useMediaQuery","newTitle","handleCloseSnackbar","SnackbarContent","Paper","CancelIcon","displayed","Notifier","SnackbarProvider","NotificationRenderer","notifications","useSnackbar","storeDisplayed","removeDisplayed","k","dismissed","event","reason","ownerState","alpha","Checkbox","checkboxClasses","CssBaseline","Radio","radioClasses","Select","Tabs","Tab","defaultOverrides","TypographyEn","TypographyAr","Tooltip","TooltipAr","getTooltipOverrides","TableCell","TableCellAr","getTableCellOverrides","InputLabel","InputLabelAr","getInputLabelOverrides","typography","baseTheme","TextField","justifyContent","alignItems","flexDirection","light","createTheme","dark","merge","blue","purple","green","orange","rtlCache","createCache","prefixer","rtlPlugin","ltrCache","Theme","prefersDarkMode","selectedTheme","isInternalUser","organisationData","organisation","ThemeProvider","CacheProvider","Backend","LanguageDetector","initReactI18next","Sentry.init","Sentry.browserTracingIntegration","Sentry.replayIntegration","ReactDOM","React","Provider","PersistGate"],"sources":["../../src/app/hooks.ts","../../src/assets/KwaleeLogoHand.svg?react","../../src/components/Loading.tsx","../../src/app/services/rest/api/withBackendHandling.ts","../../src/constants/i18n.ts","../../src/util/i18n.ts","../../src/app/services/rest/api/baseQuery.ts","../../src/app/services/rest/api.ts","../../src/app/services/graphql/api/graphqlBaseQuery.ts","../../src/features/notifier/notifierSlice.ts","../../src/app/services/graphql/api/withTokenRefresh.ts","../../src/app/services/graphql/api.ts","../../src/features/auth/cognito.ts","../../src/features/general/generalSlice.ts","../../src/pages/MyOrganisation/Users/constants.ts","../../src/util/permissions.ts","../../src/util/hitseekerEvents.ts","../../src/features/auth/authSlice.ts","../../src/features/userManagement/UserManagement.generated.ts","../../src/features/userManagement/UserManagement.ts","../../src/components/AuthorisedRoute.tsx","../../src/app/store.ts","../../src/components/ProtectedRoute.tsx","../../src/pages/DiscussionForum/CreateThread/route.tsx","../../src/features/discussionForum/discussionForum.generated.ts","../../src/features/discussionForum/discussionForum.ts","../../src/pages/DiscussionForum/ThreadChat/route.tsx","../../src/pages/DiscussionForum/route.tsx","../../src/pages/MyOrganisation/route.tsx","../../src/pages/AllOrganisations/route.tsx","../../src/pages/AllUsers/route.tsx","../../src/pages/InternalUsers/route.tsx","../../src/pages/Profile/route.tsx","../../src/features/fileManangement/fileManagement.generated.ts","../../src/features/fileManangement/fileManagement.ts","../../src/pages/FileManagement/Folder/route.tsx","../../src/pages/FileManagement/route.tsx","../../src/features/game/Game.generated.ts","../../src/features/game/Game.ts","../../src/pages/Games/CustomEvents/route.tsx","../../src/pages/Games/GameDetails/route.tsx","../../src/pages/Games/Submission/GameSDK/route.tsx","../../src/pages/Games/Submission/ValidateSDK/route.tsx","../../src/pages/Games/Submission/route.tsx","../../src/pages/Games/Feedback/route.tsx","../../src/features/cpiTest/cpiTest.generated.ts","../../src/features/cpiTest/cpiTest.ts","../../src/pages/Games/CPI/Statistics/route.tsx","../../src/pages/Games/CPI/Form/route.tsx","../../src/pages/Games/CPI/route.tsx","../../src/pages/Games/GameKeys/route.tsx","../../src/pages/CreativeManagement/route.tsx","../../src/pages/Games/route.tsx","../../src/pages/UnityTest/CampaignGoals/route.tsx","../../src/pages/UnityTest/CampaignUpdate/route.tsx","../../src/pages/UnityTest/route.tsx","../../src/features/knowledgeBase/KnowledgeBase.generated.ts","../../src/features/knowledgeBase/KnowledgeBase.ts","../../src/pages/KnowledgeBase/Article/route.tsx","../../src/pages/KnowledgeBase/Category/route.tsx","../../src/pages/KnowledgeBase/route.tsx","../../src/pages/Analytics/route.tsx","../../src/pages/AppNotifications/route.tsx","../../src/pages/FacebookAdAccount/route.tsx","../../src/pages/Home/route.tsx","../../src/providers/PageTitleProvider.tsx","../../src/providers/GoogleAnalyticsProvider.tsx","../../src/assets/SomethingWrong.svg?react","../../src/assets/new-build-frame.svg?react","../../src/components/SomethingWentWrong.tsx","../../src/assets/AppMaintenance.svg?react","../../src/assets/HitseekerLogoPrimary.png","../../src/assets/HitseekerLogoPrimaryDark.png","../../src/assets/HitseekerArLogo.png","../../src/assets/HitseekerArLogoDark.png","../../src/components/AppMaintenance.tsx","../../src/App.tsx","../../src/assets/notification_error.svg?react","../../src/assets/notification_info.svg?react","../../src/assets/notification_success.svg?react","../../src/assets/notification_warning.svg?react","../../src/components/Notifier/NotifierComponent.tsx","../../src/components/Notifier/Notifier.tsx","../../src/theme/variant/Button.ts","../../src/theme/variant/Checkbox.ts","../../src/theme/variant/CssBaseline.ts","../../src/theme/variant/IconButton.ts","../../src/theme/variant/Paper.ts","../../src/theme/variant/Radio.ts","../../src/theme/variant/Select.ts","../../src/theme/variant/Tabs.ts","../../src/theme/variant/TextField.ts","../../src/theme/variant/TypographyEn.ts","../../src/theme/variant/TypographyAr.ts","../../src/theme/variant/Tooltip.ts","../../src/theme/variant/TableCell.ts","../../src/theme/variant/InputLabel.ts","../../src/theme/variant/base.ts","../../src/theme/variant/light/index.ts","../../src/theme/variant/dark/index.ts","../../src/theme/variant/blue/index.ts","../../src/theme/variant/purple/index.ts","../../src/theme/variant/green/index.ts","../../src/theme/variant/orange/index.ts","../../src/theme/Theme.tsx","../../src/app/i18n.ts","../../src/main.tsx"],"sourcesContent":["import { TypedUseSelectorHook, useDispatch, useSelector } from \"react-redux\"\nimport type { RootState, AppDispatch } from \"./store\"\n\n// Use throughout your app instead of plain `useDispatch` and `useSelector`\nexport const useAppDispatch: () => AppDispatch = useDispatch\nexport const useAppSelector: TypedUseSelectorHook = useSelector\n\nexport const useAuth = () => useAppSelector((state) => state.auth)\n","import * as React from \"react\";\nconst SvgKwaleeLogoHand = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 61, height: 52, viewBox: \"0 0 61 52\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#clip0_15_36)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M48.9554 27.2589C49.0709 28.3162 49.1397 29.381 49.3125 30.4294C49.6351 32.3892 49.9978 34.3432 50.3823 36.2924C50.7394 38.1003 50.6573 39.872 50.0285 41.6072C49.6521 42.6453 48.9495 43.3998 47.9163 43.8792C47.1945 44.2143 46.5273 44.6625 45.8057 44.9979C45.4717 45.1531 45.0689 45.1802 44.6925 45.2299C44.1817 45.2975 44.1319 45.3394 44.0365 45.837C43.9791 46.1359 43.875 46.4259 43.8032 46.7225C43.7711 46.8556 43.7678 46.9954 43.75 47.1321C43.4993 49.0495 42.6571 50.6058 40.8312 51.4861C40.3468 51.7196 39.7611 51.767 39.2143 51.8545C38.3629 51.991 37.5046 52.1141 36.6563 51.8195C36.5703 51.7898 36.4793 51.7699 36.399 51.7298C35.1247 51.0887 33.7504 50.743 32.3611 50.4705C29.825 49.9734 27.8074 48.6761 26.13 46.7842C24.8318 45.3193 23.4958 43.886 22.1591 42.4547C21.1654 41.3904 20.1349 40.3593 19.1378 39.2988C18.6487 38.7785 18.1668 38.2293 18.0304 37.5091C17.7654 36.1101 18.07 35.5374 19.2135 34.6952C19.4162 34.5459 19.6288 34.4094 19.8317 34.2603C20.2612 33.9446 20.44 33.4954 20.378 32.9998C20.261 32.0619 20.374 31.1562 20.6412 30.2594C20.7943 29.7449 20.9438 29.2293 21.1011 28.716C21.371 27.8364 21.8245 27.0624 22.5912 26.5195C23.2706 26.0383 23.4847 25.3521 23.6303 24.6059C23.917 23.1351 23.1997 22.0113 22.2766 20.9999C21.5272 20.1784 20.673 19.4493 19.881 18.6638C19.5821 18.3677 19.3103 18.0407 19.0598 17.704C18.921 17.5177 18.8577 17.279 18.7484 17.0698C18.6815 16.9421 18.6211 16.7792 18.5083 16.7112C17.717 16.2343 17.1792 15.525 16.6434 14.8111C16.5894 14.7392 16.535 14.6666 16.4895 14.5895C16.0623 13.8637 15.4939 13.2713 14.8042 12.7741C14.2068 12.3433 13.7314 11.8055 13.517 11.0815C13.4907 10.9927 13.392 10.9138 13.3089 10.8539C11.7489 9.72879 10.2562 8.53894 9.31229 6.82782C9.02686 6.31007 8.71446 5.78643 9.07948 5.17686C9.4889 4.49271 10.0332 4.0281 10.8848 3.9179C11.9565 3.7795 12.8505 4.05805 13.5822 4.83029C14.1276 5.40553 14.6634 5.98975 15.1999 6.57308C15.5527 6.95658 15.8055 7.39889 15.9055 7.90657C15.9768 8.26886 16.1766 8.53913 16.4799 8.71161C17.1043 9.06648 17.5347 9.60302 17.9764 10.1365C18.6485 10.9474 19.3423 11.7415 19.9996 12.5641C20.2072 12.8238 20.3336 13.1476 20.485 13.4481C20.6061 13.6882 20.6893 13.9368 21.022 13.9988C21.1495 14.0224 21.2745 14.1661 21.3599 14.2836C22.0195 15.1902 22.7158 16.0762 23.3043 17.0259C23.6622 17.6036 23.848 18.2836 24.112 18.9172C24.288 19.3397 24.4637 19.762 24.6421 20.1833C24.8199 20.6027 25.1317 20.9103 25.5039 21.1661C25.9216 21.4535 26.2307 21.4526 26.5864 21.0913C27.1253 20.5436 27.7613 20.1371 28.4632 19.8437C28.9414 19.6439 29.4522 19.4434 29.9607 19.4063C30.8468 19.3418 31.7548 19.3136 32.6314 19.4303C34.4441 19.6715 35.2315 21.0205 35.2241 22.647C35.2201 23.5041 34.8616 24.272 34.5128 25.0317C34.0891 25.9548 33.631 26.8631 33.1853 27.7766C32.7692 28.63 32.149 29.2807 31.2736 29.7075C30.4938 30.0875 29.7377 30.5134 28.9698 30.917C28.6681 31.0755 28.3722 31.2493 28.0576 31.3783C27.722 31.5161 27.3701 31.5099 27.0169 31.3954C26.6713 31.2832 26.3223 31.1505 25.9654 31.1122C25.6578 31.0792 25.3126 31.1054 25.0276 31.2148C24.6313 31.3667 24.5787 31.7626 24.8737 32.0683C25.2856 32.4949 25.7205 32.8417 26.3914 32.5406C26.6831 32.4099 27.1037 32.7142 27.1971 33.1016C27.2417 33.2873 27.2629 33.5208 27.1869 33.6845C26.8677 34.3704 26.5282 35.0493 26.1519 35.7063C26.0259 35.9266 25.7702 36.0763 25.5697 36.2538C25.5178 36.2997 25.4327 36.316 25.3931 36.3677C25.2834 36.5113 25.1134 36.6683 25.1165 36.8166C25.1189 36.9135 25.3706 37.0493 25.5307 37.0884C25.7831 37.1503 26.0536 37.1727 26.315 37.164C26.9901 37.1418 27.6322 37.2799 28.2311 37.562C29.4177 38.1211 30.5863 38.7158 31.7687 39.2832C32.1031 39.4434 32.4501 39.5932 32.8076 39.69C33.6028 39.9054 34.2637 40.3226 34.8526 40.8742C35.0798 41.0872 35.3189 41.291 35.5715 41.4732C35.8137 41.6482 36.0702 41.8469 36.3946 41.6161C36.7433 41.3681 36.9137 40.9973 36.7617 40.6263C36.6122 40.2618 36.4056 39.9146 36.1868 39.5833C35.3448 38.3064 34.6076 36.9757 34.3567 35.4614C34.2633 34.8991 34.3567 34.2893 34.4582 33.7169C34.6642 32.5552 34.9521 31.4076 35.1695 30.2476C35.2846 29.6337 35.2763 28.9966 35.405 28.3864C35.6179 27.3775 36.0212 26.434 36.6272 25.5843C36.8598 25.2586 37.1639 25.0242 37.5642 24.9094C37.7866 24.8455 38.0006 24.7484 38.21 24.6494C38.4905 24.5167 38.7416 24.5573 39.0222 24.6782C39.6688 24.9566 40.3169 25.248 40.9925 25.4384C41.3497 25.5392 41.7808 25.5032 42.1516 25.4175C42.8348 25.2594 43.4198 25.3908 43.9418 25.8206C44.1346 25.9793 44.3189 26.0169 44.5558 25.9525C45.306 25.7483 46.0551 25.5362 46.8133 25.365C47.8575 25.1293 48.7276 25.6014 48.9568 26.514C49.0163 26.7508 48.9996 27.0061 49.0179 27.253C48.9969 27.255 48.9762 27.2569 48.9554 27.2589Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M26.0041 11.1002C25.7372 10.8931 25.516 10.746 25.3241 10.5682C24.3292 9.64683 23.5192 8.58116 22.8155 7.4346C22.7895 7.39196 22.75 7.35435 22.7348 7.30865C22.6504 7.05546 22.6278 6.7592 22.4744 6.55784C22.3243 6.36106 22.0339 6.27229 21.8207 6.11597C20.8802 5.42657 20.2824 4.46172 19.6742 3.50885C19.5046 3.24297 19.326 2.96159 19.2502 2.66313C19.0265 1.78199 19.3822 1.08148 20.0795 0.539677C21.1525 -0.294221 22.6573 -0.158238 23.5726 0.923388C24.1716 1.63091 24.757 2.38656 25.1534 3.21083C25.5111 3.95444 25.9016 4.60752 26.4876 5.20922C27.3742 6.11988 27.8915 7.29269 28.4918 8.39769C28.7719 8.91304 29.0641 9.42247 29.1193 10.0294C29.1329 10.1799 29.3013 10.3231 29.414 10.4571C29.7411 10.8463 30.1328 11.1953 30.397 11.621C31.1695 12.8657 31.756 14.193 32.0173 15.6402C32.2242 16.7863 31.7782 17.229 30.6592 17.3236C30.2247 17.3603 29.8884 17.2328 29.6065 16.871C28.9673 16.05 28.2561 15.2814 27.6379 14.4462C27.261 13.937 26.9571 13.3623 26.7107 12.7801C26.5874 12.4889 26.5292 12.2086 26.2574 11.9869C25.9671 11.7499 25.9037 11.3966 26.0041 11.1002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.46102 10.9162C5.81423 11.0251 6.19042 11.0894 6.51667 11.2508C7.74177 11.8566 8.76151 12.7091 9.55871 13.81C9.83546 14.192 10.0216 14.5991 9.97862 15.0873C9.97103 15.1733 10.0531 15.3221 10.1298 15.3517C11.0325 15.698 11.7521 16.3015 12.401 16.9711C13.0985 17.6909 13.7407 18.4647 14.3744 19.2405C14.603 19.5203 14.7539 19.8666 14.9072 20.1974C15.0053 20.4095 15.1219 20.5481 15.3529 20.642C15.5878 20.7371 15.8172 20.8903 15.9931 21.0709C16.5245 21.6164 17.0241 22.192 17.5453 22.7472C17.9782 23.2084 18.3102 23.6934 18.2055 24.3708C18.0841 25.1535 17.5441 25.5058 16.7734 25.276C15.5884 24.9226 14.5089 24.4147 13.7504 23.3943C13.4982 23.0552 13.1605 22.8041 12.7502 22.6405C12.5519 22.5616 12.3588 22.4169 12.2201 22.2553C11.0659 20.9089 9.73641 19.74 8.40003 18.5762C8.07891 18.2965 7.71435 18.0388 7.60328 17.5869C7.59146 17.5389 7.5076 17.4862 7.44918 17.4742C6.95906 17.3745 6.58576 17.0968 6.25573 16.7466C5.54706 15.9947 4.81787 15.2607 4.13509 14.4872C3.74975 14.0507 3.44804 13.5518 3.50246 12.9223C3.58764 11.9353 4.46515 10.8983 5.46102 10.9162Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M2.40324 26.3288C3.21671 26.3647 3.9236 26.7156 4.62736 27.0685C5.66651 27.5896 6.53371 28.3089 7.21163 29.2462C7.28856 29.3524 7.40898 29.4497 7.53117 29.4998C7.92273 29.6605 8.3199 29.8107 8.72348 29.9397C9.60609 30.2223 10.4367 30.6094 11.2043 31.1186C11.4074 31.2534 11.557 31.4638 11.7406 31.6299C11.8186 31.7004 11.9134 31.7794 12.0119 31.798C12.8364 31.9536 13.4999 32.4148 14.1523 32.8862C14.4513 33.102 14.7116 33.3728 14.9704 33.6369C15.0714 33.7402 15.1481 33.886 15.1851 34.0253C15.2505 34.2703 15.2636 34.5266 15.0301 34.7105C14.8163 34.8786 14.5668 34.888 14.3455 34.7538C13.7626 34.4001 13.0999 34.2994 12.4584 34.1204C12.1607 34.0373 11.902 33.8239 11.6211 33.6779C11.5029 33.6164 11.3548 33.5098 11.2522 33.5375C10.6809 33.6914 10.1344 33.5974 9.62306 33.3698C8.47108 32.8576 7.33582 32.309 6.19389 31.775C5.75081 31.1309 4.93935 31.2947 4.34306 30.9678C3.59405 30.5572 2.76784 30.2812 2.02373 29.8637C1.20046 29.4017 0.702526 28.6758 0.622916 27.7192C0.591236 27.339 0.760722 27.0478 1.06398 26.8206C1.46001 26.5243 1.8841 26.3057 2.40324 26.3288Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M51.1306 12.2349C51.0087 13.4808 50.9597 14.7388 50.7439 15.9688C50.5396 17.1339 50.0316 18.219 49.4378 19.2547C49.2545 19.5746 48.97 19.6839 48.6196 19.6479C47.9765 19.5814 47.3508 19.4229 46.8297 19.0446C46.625 18.8959 46.4603 18.611 46.4051 18.3609C46.0864 16.9185 45.876 15.4568 46.0767 13.9819C46.2251 12.8902 46.4767 11.8154 47.0047 10.822C47.1662 10.5181 47.3771 10.3266 47.7281 10.2503C47.9267 10.2072 48.1183 10.0896 48.2885 9.97131C48.6732 9.70371 49.0925 9.56837 49.5623 9.54496C50.0798 9.51937 50.431 9.74131 50.6674 10.1803C51.0139 10.8245 51.1292 11.5099 51.1306 12.2349Z\", fill: \"currentColor\" })), /* @__PURE__ */ React.createElement(\"path\", { d: \"M54.658 0.597827C54.658 0.409827 54.647 0.225126 54.625 0.0425262C54.624 0.0367262 54.619 0.0322266 54.614 0.0322266H51.045C51.039 0.0322266 51.034 0.0366262 51.033 0.0425262C51.012 0.225126 51 0.409827 51 0.597827C51 0.780427 51.011 0.955127 51.032 1.13753C51.033 1.14313 51.037 1.14783 51.043 1.14783H52.258C52.264 1.14783 52.269 1.15293 52.269 1.15923V4.89753C52.269 4.90333 52.274 4.90843 52.279 4.90893C52.462 4.92963 52.638 4.94053 52.822 4.94053C53.01 4.94053 53.196 4.92913 53.379 4.90733C53.385 4.90663 53.389 4.90173 53.389 4.89593V1.15923C53.389 1.15293 53.395 1.14783 53.401 1.14783H54.615C54.621 1.14783 54.626 1.14313 54.627 1.13753C54.647 0.955227 54.658 0.780427 54.658 0.597827Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M56.3768 4.8964C56.3768 4.9022 56.3728 4.9069 56.3668 4.9076C56.1628 4.9294 55.9558 4.9408 55.7458 4.9408C55.5418 4.9408 55.3468 4.9299 55.1438 4.9094C55.1368 4.9087 55.1328 4.9034 55.1328 4.8973L55.4078 0.0441999C55.4078 0.0385999 55.4118 0.0338997 55.4178 0.0334997C55.6268 0.0115997 55.8388 0 56.0538 0C56.2648 0 56.4658 0.0110997 56.6758 0.0320997C56.6798 0.0324997 56.6838 0.0353 56.6848 0.0393L57.5758 2.2741C57.5798 2.2836 57.5928 2.2836 57.5968 2.2741L58.5048 0.0408993C58.5058 0.0369993 58.5098 0.0342 58.5138 0.0337C58.7238 0.0116 58.9368 0 59.1528 0C59.3628 0 59.5628 0.0109 59.7718 0.0316C59.7778 0.0323 59.7818 0.0368995 59.7828 0.0424995L60.0338 4.8954C60.0338 4.9015 60.0298 4.9068 60.0238 4.9075C59.8198 4.9294 59.6138 4.9408 59.4038 4.9408C59.1988 4.9408 59.0038 4.9299 58.7998 4.9091C58.7938 4.9087 58.7898 4.904 58.7898 4.8984L58.6368 2.492C58.6368 2.4803 58.6208 2.4773 58.6158 2.488L57.9228 3.9986C57.9208 4.0023 57.9178 4.0048 57.9128 4.0053C57.7648 4.0188 57.6258 4.0258 57.4728 4.0258C57.3238 4.0258 57.1918 4.019 57.0428 4.0063C57.0388 4.006 57.0348 4.003 57.0328 3.999L56.4738 2.5169C56.4698 2.5052 56.4528 2.508 56.4518 2.5206L56.3768 4.8964Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"clip0_15_36\" }, /* @__PURE__ */ React.createElement(\"rect\", { width: 52, height: 52, fill: \"transparent\" }))));\nexport default SvgKwaleeLogoHand;\n","import KwaleeLogoHand from \"@/assets/KwaleeLogoHand.svg?react\"\nimport {\n Box,\n Breakpoint,\n Dialog,\n DialogContent,\n keyframes,\n styled,\n Typography,\n} from \"@mui/material\"\n\nconst wave = keyframes`\n 0% {\n transform: rotate(0.0deg)\n }\n 10% {\n transform: rotate(14.0deg)\n }\n 20% {\n transform: rotate(-8.0deg)\n }\n 30% {\n transform: rotate(14.0deg)\n }\n 40% {\n transform: rotate(-4.0deg)\n }\n 50% {\n transform: rotate(10.0deg)\n }\n /* Reset for the last half to pause */\n 60% {\n transform: rotate(0.0deg)\n }\n 100% {\n transform: rotate(0.0deg)\n }\n`\n\nconst fadeIn = keyframes`\n 0% {\n opacity: 0;\n }\n 66% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n`\n\nexport const StyledLogo = styled(KwaleeLogoHand)(({ theme }) => ({\n color:\n theme.palette.mode === \"light\"\n ? theme.palette.primary.contrastText\n : theme.palette.kwalee.main,\n animation: `${wave} 2.5s infinite`,\n transformOrigin: \"70% 70%\",\n}))\n\nconst FadeIn = styled(\"div\")({\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n animation: `${fadeIn} 3s`,\n})\n\ntype LoadingProps = {\n variant?: \"primary\" | \"background\"\n}\n\nexport default function Loading({ variant = \"primary\" }: LoadingProps) {\n return (\n \n theme.palette.mode === \"dark\"\n ? theme.palette.background.default\n : variant === \"primary\"\n ? theme.palette.primary.main\n : theme.palette.background.default\n }\n >\n \n \n \n theme.palette.mode === \"light\"\n ? theme.palette.primary.contrastText\n : theme.palette.primary.main\n }\n mt={2}\n ml={1}\n >\n Loading\n \n \n \n )\n}\n\nexport const LoadingDialog = ({\n label = \"Uploading...\",\n maxWidth = \"sm\",\n}: {\n label?: string\n maxWidth?: false | Breakpoint | undefined\n}) => (\n \n \n \n \n {label}\n \n \n \n)\n","import {\n BaseQueryArg,\n BaseQueryExtraOptions,\n} from \"@reduxjs/toolkit/dist/query/baseQueryTypes\"\nimport { BaseQueryFn, FetchArgs } from \"@reduxjs/toolkit/dist/query/react\"\nimport { BaseQueryApi } from \"@reduxjs/toolkit/src/query/baseQueryTypes\"\nimport merge from \"lodash.merge\"\nimport cloneDeep from \"lodash.clonedeep\"\nimport { RootState } from \"@/app/store\"\n\nconst withBackendHandling =\n (baseQuery: BaseQuery) =>\n async (\n args: BaseQueryArg,\n api: BaseQueryApi,\n extraOptions: BaseQueryExtraOptions,\n ) => {\n // Setup ready to modify args\n let adjustedArgs: FetchArgs\n\n // noinspection SuspiciousTypeOfGuard\n if (typeof args === \"string\") {\n adjustedArgs = { url: args }\n } else {\n adjustedArgs = { ...args }\n }\n\n // Clone FormData if needed\n if (adjustedArgs.body instanceof FormData) {\n const newFormData = new FormData()\n for (const [key, value] of adjustedArgs.body.entries()) {\n newFormData.append(key, value)\n }\n adjustedArgs.body = newFormData\n }\n\n if (adjustedArgs.params) {\n // Clone params if exist\n adjustedArgs.params = cloneDeep(adjustedArgs.params)\n } else {\n // Initialise params\n adjustedArgs.params = {}\n }\n\n // Initialise headers\n adjustedArgs.headers = new Headers(adjustedArgs.headers ?? ({} as any))\n\n const state = api.getState() as RootState\n\n if (!adjustedArgs.headers.has(\"Authorisation\")) {\n const auth = state.auth.authenticationResult\n if (auth && auth.AccessToken && auth.IdToken) {\n adjustedArgs.headers.set(\"Authorisation\", `Bearer ${auth.AccessToken}`)\n adjustedArgs.headers.set(\"X-IDENTITY\", auth.IdToken)\n }\n }\n\n // Stringify any objects/arrays in params\n for (const [key, value] of Object.entries(adjustedArgs.params!)) {\n if (typeof value === \"object\" && value !== null) {\n adjustedArgs.params![key] = JSON.stringify(value)\n }\n }\n\n // Make request\n return baseQuery(adjustedArgs, api, extraOptions)\n }\n\nexport default withBackendHandling\n\nfunction getFromRequest(field: string, args: FetchArgs) {\n if (args.body) {\n if (args.body instanceof FormData && args.body.has(field)) {\n return args.body.get(field)\n } else if (typeof args.body === \"string\") {\n const params = new URLSearchParams(args.body)\n if (params.has(field)) {\n return params.get(field)\n }\n } else if (typeof args.body === \"object\" && args.body[field]) {\n return args.body[field]\n }\n }\n\n if (args.params && args.params[field]) {\n return args.params[field]\n }\n\n return undefined\n}\n\nfunction addToRequest(fieldsToAdd: Record, args: FetchArgs) {\n const requestHasBody = !!args.method && args.method !== \"GET\"\n if (!requestHasBody) {\n // No body, so add to params\n\n args.params = merge(args.params, fieldsToAdd)\n\n return\n }\n\n // Body exists, so add to body where possible\n\n if (args.body instanceof FormData) {\n // Body is FormData\n\n for (const [key, value] of Object.entries(fieldsToAdd)) {\n if (typeof value === \"object\") {\n args.params![key] = value\n }\n\n args.body.append(key, value)\n }\n } else if (typeof args.body === \"string\") {\n // Body is URLSearchParams\n\n const params = new URLSearchParams(args.body)\n for (const [key, value] of Object.entries(fieldsToAdd)) {\n if (typeof value === \"object\") {\n args.params![key] = value\n }\n\n params.append(key, value)\n }\n\n args.body = params.toString()\n } else if (args.body) {\n // Body is JSON\n\n args.body = merge(cloneDeep(args.body), fieldsToAdd)\n } else {\n // Body is undefined\n\n args.body = {\n ...fieldsToAdd,\n }\n }\n}\n","export type SupportedLanguagesType = \"en-GB\" | \"ar-SA\"\n\nexport const SUPPORTED_LANGUAGES: SupportedLanguagesType[] = [\"en-GB\", \"ar-SA\"]\n\nexport const LANGUAGES: { code: SupportedLanguagesType; lang: string }[] = [\n { code: \"en-GB\", lang: \"English\" },\n { code: \"ar-SA\", lang: \"عربي\" },\n] as const\n","import { SUPPORTED_LANGUAGES, SupportedLanguagesType } from \"@/constants/i18n\"\n\nexport const getCurrentLocale = (): SupportedLanguagesType | void => {\n const allowedLocales = new Set(SUPPORTED_LANGUAGES)\n\n const path = window.location.pathname\n const pathLocale = path.split(\"/\")[1] as SupportedLanguagesType\n\n return allowedLocales.has(pathLocale) ? pathLocale : undefined\n}\n\nexport const getPathWithLocale = () => {\n const locale = getCurrentLocale()\n let { pathname } = window.location\n\n if (locale) {\n pathname = pathname.split(\"/\").slice(2).join(\"/\")\n }\n\n if (pathname && pathname.charAt(0) !== \"/\") {\n pathname = \"/\" + pathname\n }\n\n return pathname\n}\n\nexport const checkCurrentLocale = (locale: SupportedLanguagesType) =>\n locale === getCurrentLocale()\n\nexport const addLocaleToUrl = (url: string) => {\n const locale = getCurrentLocale() ?? \"en-GB\"\n const urlObj = new URL(url)\n\n return `${urlObj.origin}/${locale}${urlObj.pathname}`\n}\n","import { getCurrentLocale } from \"@/util/i18n\"\nimport { fetchBaseQuery } from \"@reduxjs/toolkit/dist/query/react\"\n\nconst baseQuery = fetchBaseQuery({\n baseUrl: import.meta.env.VITE_API_URL,\n prepareHeaders: (headers) => {\n const locale = getCurrentLocale() ?? \"en-GB\"\n headers.set(\"hitseeker-locale\", locale)\n\n return headers\n },\n})\n\nexport default baseQuery\n","import withBackendHandling from \"@/app/services/rest/api/withBackendHandling\"\nimport { createApi } from \"@reduxjs/toolkit/query/react\"\nimport baseQuery from \"./api/baseQuery\"\n\nexport const TAGS = [\n \"Category\",\n \"Article\",\n \"FurtherReading\",\n \"MainFolderId\",\n \"Folder\",\n \"FolderAndFile\",\n \"STORAGE_SPACE\",\n \"File\",\n \"SearchFolderAndFile\",\n \"Thread\",\n \"Priority\",\n \"ThreadList\",\n \"ThreadChat\",\n \"AdminRootFolderList\",\n \"User\",\n \"Organisation\",\n \"Permission\",\n \"Game\",\n \"FeedbackAreas\",\n \"FeedbackThread\",\n \"FeedbackChat\",\n \"GameKeyList\",\n \"Notification\",\n \"UnReadNotificationCount\",\n \"GameList\",\n \"CpiList\",\n \"RequestChangesList\",\n \"CpiVideos\",\n \"GameStages\",\n \"FbAdAccount\",\n \"CustomEvent\",\n \"CustomEventSubParameter\",\n \"CustomEventGames\",\n \"CreativeRequests\",\n \"CreativeSubmissions\",\n \"CreativeMediaPreSignedURL\",\n \"UnityCampaignList\",\n] as const\n/**\n * Create a base API to inject endpoints into elsewhere.\n * Components using this API should import from the injected site,\n * in order to get the appropriate types,\n * and to ensure that the file injecting the endpoints is loaded\n */\nexport const api = createApi({\n /**\n * `reducerPath` is optional and will not be required by most users.\n * This is useful if you have multiple API definitions,\n * e.g. where each has a different domain, with no interaction between endpoints.\n * Otherwise, a single API definition should be used in order to support tag invalidation,\n * among other features\n */\n reducerPath: \"restApi\",\n /**\n * A fetchBaseQuery with handlers on top\n *\n * withRetry: retry every request 5 times (except invalid credentials)\n * withBackendHandling: all pre-processing of requests the way the backend expects it\n * withTokenRefresh: refresh the access_token if it's expired (and retry the request),\n * if the refresh_token is expired, log the user out\n */\n baseQuery: withBackendHandling(baseQuery),\n /**\n * Tag types must be defined in the original API definition\n * for any tags that would be provided by injected endpoints\n */\n tagTypes: TAGS,\n /**\n * This api has endpoints injected in adjacent files,\n * which is why no endpoints are shown below.\n * If you want all endpoints defined in the same file, they could be included here instead\n */\n endpoints: () => ({}),\n})\n","import { RootState } from \"@/app/store\"\nimport { GraphQLError } from \"@/model/response\"\nimport { getCurrentLocale } from \"@/util/i18n\"\nimport { graphqlRequestBaseQuery } from \"@rtk-query/graphql-request-base-query\"\n\nconst baseQuery = graphqlRequestBaseQuery({\n url: `${import.meta.env.VITE_API_URL}/graphql`,\n prepareHeaders: (headers, { getState }) => {\n const state = getState() as RootState\n\n if (!headers.has(\"Authorization\")) {\n const auth = state.auth.authenticationResult\n\n if (auth && auth.AccessToken && auth.IdToken) {\n headers.set(\"Authorisation\", `Bearer ${auth.AccessToken}`)\n headers.set(\"X-IDENTITY\", auth.IdToken)\n }\n }\n\n const locale = getCurrentLocale() ?? \"en-GB\"\n headers.set(\"hitseeker-locale\", locale)\n\n return headers\n },\n customErrors: (error) => {\n const { response } = error\n if ((response?.errors?.length ?? 0) > 0) {\n return response.errors![0] as unknown as GraphQLError\n }\n },\n})\n\nexport default baseQuery\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\"\nimport { SnackbarKey } from \"notistack\"\nimport { RootState } from \"@/app/store\"\nimport {\n Notification,\n NotificationPayload,\n} from \"@/model/Notifier/notification\"\n\nexport type State = {\n notifications: Notification[]\n}\n\nconst initialState: State = {\n notifications: [],\n}\n\nconst slice = createSlice({\n name: \"notifier\",\n initialState,\n reducers: {\n enqueueSnackbar: (state, action: PayloadAction) => {\n const { options = {}, ...rest } = action.payload\n const key = options.key ?? Date.now() + Math.random()\n const variant = options.variant ?? \"default\"\n\n state.notifications = [\n ...state.notifications,\n {\n ...rest,\n dismissed: false,\n options: {\n ...options,\n key,\n variant,\n },\n },\n ]\n },\n closeSnackbar: (state, action: PayloadAction) => ({\n ...state,\n notifications: state.notifications.map((notification) => {\n if (\n action.payload === undefined ||\n notification.options.key === action.payload\n ) {\n return {\n ...notification,\n dismissed: true,\n }\n }\n\n return notification\n }),\n }),\n removeSnackbar: (state, action: PayloadAction) => ({\n ...state,\n notifications: state.notifications.filter(\n (notification) => notification.options.key !== action.payload,\n ),\n }),\n },\n})\n\nexport default slice.reducer\n\nexport const { enqueueSnackbar, closeSnackbar, removeSnackbar } = slice.actions\n\nexport const selectNotifications = (state: RootState) =>\n state.notifier.notifications\n","import { RootState } from \"@/app/store\"\nimport { handleLogout, refresh } from \"@/features/auth/authSlice\"\nimport { enqueueSnackbar } from \"@/features/notifier/notifierSlice\"\nimport { GraphQLError } from \"@/model/response\"\nimport {\n BaseQueryArg,\n BaseQueryEnhancer,\n BaseQueryMeta,\n QueryReturnValue,\n} from \"@reduxjs/toolkit/dist/query/baseQueryTypes\"\nimport {\n BaseQueryError,\n BaseQueryResult,\n} from \"@reduxjs/toolkit/src/query/baseQueryTypes\"\nimport { Mutex } from \"async-mutex\"\nimport i18next from \"i18next\"\n\nfunction isExpiredToken(error: GraphQLError) {\n if (!error.extensions || error.extensions.code !== 401) {\n return false\n }\n\n switch (error.extensions.param_names.reason) {\n case \"Token is expired\":\n case \"Token is not valid\":\n return true\n default:\n return false\n }\n}\n\n// Don't allow concurrent refreshes\nconst mutex = new Mutex()\n\nconst withTokenRefresh: BaseQueryEnhancer = (baseQuery) => {\n return async (args: BaseQueryArg, api, extraOptions) => {\n // Wait for any in-progress refreshes to finish\n await mutex.waitForUnlock()\n\n type BaseQueryReturnValue = QueryReturnValue<\n BaseQueryResult,\n BaseQueryError,\n BaseQueryMeta\n >\n\n // Attempt the query\n let result = (await baseQuery(\n args,\n api,\n extraOptions,\n )) as BaseQueryReturnValue\n\n const error = result.error as GraphQLError\n if (!error) {\n return result\n }\n\n if (!isExpiredToken(error)) {\n return result\n }\n\n let state = api.getState() as RootState\n\n if (!state.auth.authenticationResult?.RefreshToken) {\n api.dispatch(handleLogout())\n\n return result\n }\n\n if (mutex.isLocked()) {\n await mutex.waitForUnlock()\n\n state = api.getState() as RootState\n if (state.auth.authenticationResult) {\n result = (await baseQuery(\n args,\n api,\n extraOptions,\n )) as BaseQueryReturnValue\n }\n } else {\n const release = await mutex.acquire()\n\n try {\n const refreshResult = await api.dispatch(\n refresh({ token: state.auth.authenticationResult.RefreshToken }),\n )\n\n if (\"error\" in refreshResult) {\n api.dispatch(handleLogout())\n\n api.dispatch(\n enqueueSnackbar({\n message:\n refreshResult.payload === \"Invalid Refresh Token\"\n ? i18next.t(\"common:notifier.sessionExpired\")\n : i18next.t(\"common:notifier.errorWhileRefreshing\"),\n options: {\n key: \"login_refresh_error\",\n variant: \"error\",\n },\n }),\n )\n\n return {\n error: refreshResult.payload,\n }\n }\n\n result = (await baseQuery(\n args,\n api,\n extraOptions,\n )) as BaseQueryReturnValue\n } finally {\n release()\n }\n }\n\n return result\n }\n}\n\nexport default withTokenRefresh\n","import graphqlBaseQuery from \"@/app/services/graphql/api/graphqlBaseQuery\"\nimport withTokenRefresh from \"@/app/services/graphql/api/withTokenRefresh\"\nimport { createApi } from \"@reduxjs/toolkit/query/react\"\n\nexport const TAGS = [\n \"Category\",\n \"Article\",\n \"FurtherReading\",\n \"MainFolderId\",\n \"Folder\",\n \"FolderAndFile\",\n \"STORAGE_SPACE\",\n \"File\",\n \"Thread\",\n \"Priority\",\n \"CategoryAndPriority\",\n \"ThreadList\",\n \"ThreadChat\",\n \"SearchFolderAndFile\",\n \"AdminRootFolderList\",\n \"User\",\n \"Organisation\",\n \"Game\",\n \"Permission\",\n \"FeedbackAreas\",\n \"FeedbackThread\",\n \"FeedbackChat\",\n \"Notification\",\n \"UnReadNotificationCount\",\n \"GameList\",\n \"CpiList\",\n \"RequestChangesList\",\n \"CpiVideos\",\n \"GameStages\",\n \"FbAdAccount\",\n \"CustomEvent\",\n \"CustomEventSubParameter\",\n \"CustomEventGames\",\n \"CreativeRequests\",\n \"CreativeSubmissions\",\n \"CreativeMediaPreSignedURL\",\n \"UnityCampaignList\",\n] as const\n\nexport const api = createApi({\n reducerPath: \"graphApi\",\n baseQuery: withTokenRefresh(graphqlBaseQuery),\n tagTypes: TAGS,\n endpoints: () => ({}),\n})\n","import { OAuthTokenResponse } from \"@/model/response\"\nimport { addLocaleToUrl, getCurrentLocale } from \"@/util/i18n\"\nimport {\n CognitoIdentityProviderClient,\n InitiateAuthCommand,\n SignUpCommand,\n ConfirmSignUpCommand,\n ChangePasswordCommand,\n ForgotPasswordCommand,\n ConfirmForgotPasswordCommand,\n ResendConfirmationCodeCommand,\n} from \"@aws-sdk/client-cognito-identity-provider\"\n\nconst externalClient = new CognitoIdentityProviderClient({\n region: import.meta.env.VITE_COGNITO_REGION,\n})\n\nconst internalClient = new CognitoIdentityProviderClient({\n region: import.meta.env.VITE_COGNITO_INTERNAL_REGION,\n})\n\ntype Provider = {\n client: CognitoIdentityProviderClient\n clientId: string\n redirectUri: string\n poolName: string\n region: string\n}\n\nexport type UTMData = {\n source: string\n medium: string\n name: string\n term: string\n content: string\n}\n\nexport type Scope = \"internal\" | \"external\"\n\nconst providers: Record = {\n internal: {\n client: internalClient,\n clientId: import.meta.env.VITE_COGNITO_INTERNAL_CLIENT_ID,\n redirectUri: import.meta.env.VITE_COGNITO_INTERNAL_REDIRECT_URI,\n poolName: import.meta.env.VITE_COGNITO_INTERNAL_POOL_NAME,\n region: import.meta.env.VITE_COGNITO_INTERNAL_REGION,\n },\n external: {\n client: externalClient,\n clientId: import.meta.env.VITE_COGNITO_CLIENT_ID,\n redirectUri: addLocaleToUrl(import.meta.env.VITE_COGNITO_REDIRECT_URI),\n poolName: import.meta.env.VITE_COGNITO_POOL_NAME,\n region: import.meta.env.VITE_COGNITO_REGION,\n },\n}\n\nexport async function authenticate(email: string, password: string) {\n const provider = providers.external\n\n const command = new InitiateAuthCommand({\n AuthFlow: \"USER_PASSWORD_AUTH\",\n ClientId: provider.clientId,\n AuthParameters: {\n USERNAME: email,\n PASSWORD: password,\n },\n })\n\n return provider.client.send(command)\n}\n\nexport async function refreshAuth(token: string, scope: Scope) {\n const provider = providers[scope]\n\n const command = new InitiateAuthCommand({\n AuthFlow: \"REFRESH_TOKEN_AUTH\",\n ClientId: provider.clientId,\n AuthParameters: {\n REFRESH_TOKEN: token,\n },\n })\n\n return provider.client.send(command)\n}\n\nexport async function register(\n email: string,\n password: string,\n isInvited: boolean,\n utm: UTMData,\n) {\n const provider = providers.external\n\n const command = new SignUpCommand({\n ClientId: provider.clientId,\n Username: email,\n Password: password,\n ClientMetadata: {\n \"custom:is_invited\": isInvited ? \"1\" : \"0\",\n },\n UserAttributes: [\n {\n Name: \"email\",\n Value: email,\n },\n {\n Name: \"custom:utm_campaign_source\",\n Value: utm.source,\n },\n {\n Name: \"custom:utm_campaign_medium\",\n Value: utm.medium,\n },\n {\n Name: \"custom:utm_campaign_name\",\n Value: utm.name,\n },\n {\n Name: \"custom:utm_campaign_term\",\n Value: utm.term,\n },\n {\n Name: \"custom:utm_campaign_content\",\n Value: utm.content,\n },\n {\n Name: \"custom:hitseeker_locale\",\n Value: getCurrentLocale() ?? \"en-GB\",\n },\n ],\n })\n\n return provider.client.send(command)\n}\n\nexport async function getTokens(code: string, scope: Scope) {\n const provider = providers[scope]\n\n const params = new URLSearchParams({\n grant_type: \"authorization_code\",\n client_id: provider.clientId,\n code,\n redirect_uri: provider.redirectUri,\n })\n\n const result = await fetch(\n `https://${provider.poolName}.auth.${\n provider.region\n }.amazoncognito.com/oauth2/token?${params.toString()}`,\n {\n method: \"POST\",\n headers: new Headers({\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n }),\n },\n )\n\n return (await result.json()) as OAuthTokenResponse\n}\n\nexport async function verifyEmail(\n username: string,\n code: string,\n scope: Scope = \"external\",\n) {\n const provider = providers[scope]\n\n const command = new ConfirmSignUpCommand({\n ClientId: provider.clientId,\n Username: username,\n ConfirmationCode: code,\n })\n\n return provider.client.send(command)\n}\n\nexport async function changePassword(\n accessToken: string,\n currPassword: string,\n newPassword: string,\n) {\n const provider = providers.external\n\n const command = new ChangePasswordCommand({\n AccessToken: accessToken,\n PreviousPassword: currPassword,\n ProposedPassword: newPassword,\n })\n\n return provider.client.send(command)\n}\n\nexport async function forgotPassword(username: string) {\n const provider = providers.external\n\n const command = new ForgotPasswordCommand({\n ClientId: provider.clientId,\n Username: username,\n })\n\n return provider.client.send(command)\n}\n\nexport async function confirmForgotPassword(\n username: string,\n password: string,\n code: string,\n) {\n const provider = providers.external\n\n const command = new ConfirmForgotPasswordCommand({\n ClientId: provider.clientId,\n Username: username,\n Password: password,\n ConfirmationCode: code,\n })\n\n return provider.client.send(command)\n}\n\nexport async function resendVerificationEmail(username: string) {\n const provider = providers.external\n\n const command = new ResendConfirmationCodeCommand({\n ClientId: provider.clientId,\n Username: username,\n })\n\n return provider.client.send(command)\n}\n","import { ThemeMode } from \"@/theme\"\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\"\nimport { persistReducer } from \"redux-persist\"\nimport storage from \"redux-persist/lib/storage\"\nimport { RootState } from \"../../app/store\"\n\ntype State = {\n navigationOpen: boolean\n theme: ThemeMode | undefined\n}\n\nconst initialState: State = {\n navigationOpen: true,\n theme: undefined,\n}\n\nconst slice = createSlice({\n name: \"general\",\n initialState,\n reducers: {\n setNavigationOpen: (state, action: PayloadAction) => {\n state.navigationOpen = action.payload\n },\n setTheme: (state, action: PayloadAction) => {\n state.theme = action.payload\n },\n },\n})\n\nconst persistConfig = {\n key: slice.name,\n version: 1,\n storage,\n}\n\nconst { reducer } = slice\nexport default persistReducer(persistConfig, reducer)\n\nexport const { setNavigationOpen } = slice.actions\n\nexport const selectIsNavigationOpen = (state: RootState) =>\n state.general.navigationOpen\n\nexport const { setTheme } = slice.actions\n\nexport const selectTheme = (state: RootState) => state.general.theme\n","import i18next from \"i18next\"\n\nexport const USER_STATUSES = [\n {\n status: \"active\",\n // title: i18next.t(\"label.active\", { ns: \"common\" }),\n get title() {\n return i18next.t(\"label.active\", { ns: \"common\" })\n },\n flagColor: \"#47CFAF\",\n },\n {\n status: \"inactive\",\n // title: i18next.t(\"label.pending\", { ns: \"common\" }),\n get title() {\n return i18next.t(\"label.pending\", { ns: \"common\" })\n },\n flagColor: \"#BDBDBD\",\n },\n {\n status: \"blocked\",\n // title: i18next.t(\"label.blocked\", { ns: \"common\" }),\n get title() {\n return i18next.t(\"label.blocked\", { ns: \"common\" })\n },\n flagColor: \"#FAA51A\",\n },\n]\n\nexport const USER_STATUS_COLOR_MAP = USER_STATUSES.reduce(\n (acc: Record, userStatus) => ({\n ...acc,\n [userStatus.status]: userStatus.flagColor,\n }),\n {},\n)\n\n// export const USER_STATUS_TITLE_MAP = USER_STATUSES.reduce(\n// (acc: Record, userStatus) => ({\n// ...acc,\n// get [userStatus.status]() {\n// console.log(userStatusGetter[userStatus.status](), \"chala\")\n// return userStatusGetter[userStatus.status]()\n// },\n// }),\n// {},\n// )\n\nexport const USER_STATUS_TITLE_MAP: Record = {\n get active() {\n return i18next.t(\"label.active\", { ns: \"common\" })\n },\n get inactive() {\n return i18next.t(\"label.pending\", { ns: \"common\" })\n },\n get blocked() {\n return i18next.t(\"label.blocked\", { ns: \"common\" })\n },\n}\n\nexport enum USER_ACTIONS {\n none,\n editDesignation,\n editRole,\n editProject,\n editStatus,\n}\n\nexport const PRODUCTION = \"production\"\nexport const PRODUCT = \"product\"\nexport const BUSINESS_DEVELOPMENT = \"business development\"\nexport const DEVELOPER = \"developer\"\nexport const DESIGNER = \"designer\"\nexport const PRODUCT_TOOLS = \"product tools\"\nexport const PUBLISHING_MANAGER = \"publishing manager\"\nexport const ADMIN = \"admin\"\nexport const PRODUCT_MARKETING_MANAGER = \"product marketing manager\"\nexport const CREATIVE_TEAM = \"creative team\"\n\nexport const USER_ROLES = [\n { title: DEVELOPER, value: DEVELOPER },\n { title: BUSINESS_DEVELOPMENT, value: BUSINESS_DEVELOPMENT },\n { title: DESIGNER, value: DESIGNER },\n { title: PRODUCT_TOOLS, value: PRODUCT_TOOLS },\n { title: PRODUCTION, value: PRODUCTION },\n { title: PUBLISHING_MANAGER, value: PUBLISHING_MANAGER },\n { title: PRODUCT, value: PRODUCT },\n { title: ADMIN, value: ADMIN },\n { title: PRODUCT_MARKETING_MANAGER, value: PRODUCT_MARKETING_MANAGER },\n { title: CREATIVE_TEAM, value: CREATIVE_TEAM },\n]\n","import { RootState } from \"@/app/store\"\nimport { PRODUCT_TOOLS } from \"@/pages/MyOrganisation/Users/constants\"\n\nexport const hasModulePermission = (auth: RootState[\"auth\"], module: string) =>\n auth.userType === \"external_admin\" ||\n auth.userType === \"internal_admin\" ||\n auth.permissionModules.includes(module)\n\nexport const hasModuleRoutePermission =\n (module: string) => (state: RootState) =>\n hasModulePermission(state.auth, module)\n\nexport const hasInternalModuleRoutePermission =\n (module: string) =>\n ({ auth }: RootState) =>\n auth.userType === \"internal_admin\" ||\n (auth.userType === \"internal_restricted_user\" &&\n auth.permissionModules.includes(module))\n\nexport const hasUnityTestPermission = ({ auth }: RootState) => {\n return auth.userType === \"internal_admin\"\n}\n\nexport const callInternalCognitoRegister = async (\n AccessToken: string,\n IdToken: string,\n) => {\n const headers = new Headers()\n headers.set(\"Authorisation\", `Bearer ${AccessToken}`)\n headers.set(\"X-IDENTITY\", IdToken!)\n\n const url = \"/auth/user/internal/cognito_create\"\n return await fetch(`${import.meta.env.VITE_API_URL}${url}`, {\n headers,\n method: \"POST\",\n })\n}\n\nexport const submitHybrid = async (data: any) => {\n const url = `${import.meta.env.VITE_OLD_PORTAL_API_URL}/hybrid-submission`\n\n const res = await fetch(url, {\n headers: {\n timestamp: Date.now().toString(),\n \"content-Type\": \"application/json\",\n },\n method: \"POST\",\n body: JSON.stringify(data),\n })\n return await res.json()\n}\n\nexport const submitHybridFiles = async (data: any) => {\n const url = `${\n import.meta.env.VITE_OLD_PORTAL_API_URL\n }/hybrid-submission-files`\n\n return await fetch(url, {\n headers: {\n timestamp: Date.now().toString(),\n },\n method: \"POST\",\n body: data,\n })\n}\n\nexport const getMediaPreSignedURL = async (name: string, auth: any) => {\n const headers = new Headers()\n headers.set(\"Authorisation\", `Bearer ${auth!.AccessToken}`)\n headers.set(\"X-IDENTITY\", auth!.IdToken!)\n\n const url = \"/manage_games/get_presigned_url\"\n\n const response = await fetch(\n `${import.meta.env.VITE_API_URL}${url}?path=${name}&expiry_time=3600`,\n {\n headers,\n },\n )\n return await response.json()\n}\n\nexport const hasInternalReadOnlyAccess = (designation: string | null) => {\n return designation !== PRODUCT_TOOLS\n}\n","import mixpanel, { Config, Dict } from \"mixpanel-browser\"\n\nexport const HITSEEKER_EVENT_KEYS = {\n login: \"Login\",\n logout: \"Logout\",\n register: \"Register\",\n forgotPassword: \"Forgot Password\",\n organisationCustomised: \"Organisation Customised\",\n notificationsOpened: \"Notifications Opened\",\n clickedCompleteProfileOnHome: \"Clicked Complete Profile on Home\",\n clickedMyGamesOnHome: \"Clicked My Games on Home\",\n clickedResumeGameSubmissionOnHome: \"Clicked Resume Game Submission on Home\",\n clickedViewAllAcademyVideosOnHome: \"Clicked View All Academy Videos on Home\",\n clickedViewAllArticlesOnHome: \"Clicked View All Articles on Home\",\n clickedSubmitGameOnMyGames: \"Clicked Submit Game on My Games\",\n searchedOnMyGames: \"Searched on My Games\",\n viewedGameReport: \"Clicked View Game Report on Game Card\",\n requestedFeedback: \"Clicked Request Feedback on Game Card\",\n clickedInstallSdk: \"Clicked Install SDK on Game Card\",\n viewedDocumentsFromGame: \"Clicked View Documents on Game Card\",\n clickedGameTitleOnSubmissionForm:\n \"Clicked Game Title on Game Submission Form\",\n clickedShortInfoOnSubmissionForm:\n \"Clicked Short Info on Game Submission Form\",\n clickedGameIconOnSubmissionForm: \"Clicked Game Icon on Game Submission Form\",\n clickedAdditionalInformationOnSubmissionForm:\n \"Clicked Additional Information on Game Submission Form\",\n submittedGame: \"Submitted Game\",\n downloadedKwaleeSdk: \"Clicked Download Kwalee SDK\",\n validatedAppUrlOnGameSubmission:\n \"Clicked Validate App URL on Game Submission\",\n clickedCreateFolder: \"Clicked Create Folder\",\n createdFolder: \"Created Folder\",\n clickedViewAllFolders: \"Clicked View All Folders on File Management\",\n clickedViewAllFiles: \"Clicked View All Files on File Management\",\n clickedCreateNewThread: \"Clicked Create New Thread\",\n createdNewThread: \"Created New Thread\",\n viewedThread: \"Clicked View Thread\",\n searchedDiscussionForumThread: \"Searched on Discussion Forum\",\n viewedCategoriesOnDiscussionForum: \"Filtered By Category on Discussion Forum\",\n searchedKnowledgeBase: \"Searched on Knowledge Base\",\n clickedNextArticleKnowledgeBase: \"Clicked on Next Article Knowledge Base\",\n clickedPrevArticleKnowledgeBase: \"Clicked on Previous Article Knowledge Base\",\n clickedRequestCPIGamesCard: \"Clicked Request CPI from Games Card\",\n clickedRequestCPICPIList: \"Clicked Request CPI from CPI List\",\n clickedCPITestName: \"Clicked CPI Test Name on CPI Form\",\n validatedFacebookAppIdOnCPIForm: \"Validated Facebook App ID on CPI Form\",\n validatedAppUrlOnCPIForm: \"Clicked Validate App URL on CPI Form\",\n uploadedVideoOnCPIForm: \"Uploaded Video on CPI Form\",\n cpiSubmitted: \"Submitted CPI\",\n openedCpiReasonsOfRejection: \"Opened CPI Reasons of Rejection\",\n} as const\n\ntype EventKeys =\n (typeof HITSEEKER_EVENT_KEYS)[keyof typeof HITSEEKER_EVENT_KEYS]\n\nconst isMxPannelKeyPresent = !!import.meta.env.VITE_MIXPANEL_TOKEN\n\nexport const HITSEEKER_EVENT = {\n init(token: string, config: Partial) {\n try {\n if (isMxPannelKeyPresent) {\n mixpanel.init(token, config)\n }\n } catch (e) {\n console.error(e)\n }\n },\n send(eventKey: EventKeys, properties?: Dict) {\n try {\n if (isMxPannelKeyPresent) {\n mixpanel.track(eventKey, properties)\n }\n } catch (e) {\n console.error(e)\n }\n },\n identify(id: string, name: string, email: string) {\n try {\n if (isMxPannelKeyPresent) {\n mixpanel.identify(id)\n\n mixpanel.people.set({\n $name: name,\n $email: email,\n })\n }\n } catch (e) {\n console.error(e)\n }\n },\n logout() {\n try {\n if (isMxPannelKeyPresent) {\n mixpanel.track(HITSEEKER_EVENT_KEYS.logout)\n mixpanel.reset()\n }\n } catch (e) {\n console.error(e)\n }\n },\n}\n","import { api as restApi } from \"@/app/services/rest/api\"\nimport { api as graphApi } from \"@/app/services/graphql/api\"\nimport { RootState } from \"@/app/store\"\nimport {\n authenticate,\n changePassword,\n confirmForgotPassword,\n forgotPassword,\n getTokens,\n refreshAuth,\n register as cognitoRegister,\n Scope as CognitoScope,\n UTMData,\n} from \"@/features/auth/cognito\"\nimport { setTheme } from \"@/features/general/generalSlice\"\nimport { enqueueSnackbar } from \"@/features/notifier/notifierSlice\"\nimport {\n AuthenticationResultType,\n NotAuthorizedException,\n SignUpCommandOutput,\n} from \"@aws-sdk/client-cognito-identity-provider\"\nimport {\n createAsyncThunk,\n createSlice,\n isAnyOf,\n PayloadAction,\n} from \"@reduxjs/toolkit\"\nimport { persistReducer } from \"redux-persist\"\nimport storage from \"redux-persist/lib/storage\"\nimport { callInternalCognitoRegister } from \"@/util/permissions\"\nimport i18next from \"i18next\"\nimport ReactGA from \"react-ga4\"\nimport { HITSEEKER_EVENT } from \"@/util/hitseekerEvents\"\n\ntype State = {\n id: string | null\n email: string | null\n isRegistering: boolean\n userType: string | null\n designation: string | null\n isAuthenticating: boolean\n scope: CognitoScope | null\n permissionModules: string[]\n loginProvider: \"email\" | \"sso\" | null\n authenticationResult: AuthenticationResultType | null\n}\n\ntype LoggedInUser = {\n id: State[\"id\"]\n userType: State[\"userType\"]\n designation: State[\"designation\"]\n permissionsModules: State[\"permissionModules\"]\n}\n\nconst initialState: State = {\n id: null,\n email: null,\n scope: null,\n userType: null,\n designation: null,\n loginProvider: null,\n isRegistering: false,\n permissionModules: [],\n isAuthenticating: false,\n authenticationResult: null,\n}\n\nconst slice = createSlice({\n name: \"auth\",\n initialState,\n reducers: {\n setEmail: (state, action: PayloadAction) => {\n state.email = action.payload\n },\n setScope: (state, action: PayloadAction) => {\n state.scope = action.payload\n },\n setLoginProvider: (\n state,\n action: PayloadAction,\n ) => {\n state.loginProvider = action.payload\n },\n setLoggedInUser: (state, action: PayloadAction) => {\n state.id = action.payload.id\n state.userType = action.payload.userType\n state.designation = action.payload.designation\n state.permissionModules = action.payload.permissionsModules\n },\n handleLogin: (state, action: PayloadAction) => {\n state.authenticationResult = action.payload\n },\n handleRefresh: (state, action: PayloadAction) => {\n state.authenticationResult = {\n ...state.authenticationResult,\n ...action.payload,\n }\n },\n handleLogout: (state) => {\n state.email = null\n state.scope = null\n state.authenticationResult = null\n },\n },\n extraReducers: (builder) => {\n builder.addCase(register.pending, (state) => {\n state.isRegistering = true\n })\n\n builder.addCase(refresh.fulfilled, (state, action) => {\n state.isAuthenticating = false\n\n state.authenticationResult = {\n ...state.authenticationResult,\n ...action.payload,\n }\n })\n\n builder.addMatcher(\n isAnyOf(login.fulfilled, googleAuth.fulfilled),\n (state, action) => {\n state.isAuthenticating = false\n state.authenticationResult = action.payload\n },\n )\n\n builder.addMatcher(\n isAnyOf(login.pending, refresh.pending, googleAuth.pending),\n (state) => {\n state.isAuthenticating = true\n },\n )\n\n builder.addMatcher(\n isAnyOf(login.rejected, refresh.rejected, googleAuth.rejected),\n (state) => {\n state.isAuthenticating = false\n },\n )\n\n builder.addMatcher(\n isAnyOf(register.fulfilled, register.rejected),\n (state) => {\n state.isRegistering = false\n },\n )\n },\n})\n\nexport const login = createAsyncThunk<\n AuthenticationResultType,\n { email: string; password: string }\n>(\n `${slice.name}/login`,\n async ({ email, password }, { dispatch, rejectWithValue }) => {\n try {\n const response = await authenticate(email, password)\n if (!response.AuthenticationResult) {\n return rejectWithValue(\"No AuthenticationResult\")\n }\n\n dispatch(setEmail(email))\n dispatch(setScope(\"external\"))\n dispatch(setLoginProvider(\"email\"))\n dispatch(slice.actions.handleLogin(response.AuthenticationResult))\n\n dispatch(\n enqueueSnackbar({\n message: i18next.t(\"notifier.loginSuccess\", { ns: \"onboarding\" }),\n options: {\n key: \"login_success\",\n variant: \"success\",\n autoHideDuration: 2000,\n },\n }),\n )\n\n return response.AuthenticationResult\n } catch (e) {\n console.error(e)\n\n if (e instanceof Error) {\n return rejectWithValue(e.message)\n }\n }\n\n return rejectWithValue(\"Unknown error\")\n },\n)\n\nexport const refresh = createAsyncThunk<\n AuthenticationResultType,\n { token: string }\n>(\n `${slice.name}/refresh`,\n async ({ token }, { dispatch, rejectWithValue, getState }) => {\n try {\n const scope = (getState() as RootState).auth.scope!\n const response = await refreshAuth(token, scope)\n if (!response.AuthenticationResult) {\n return rejectWithValue(\"No AuthenticationResult\")\n }\n\n dispatch(slice.actions.handleRefresh(response.AuthenticationResult))\n\n return response.AuthenticationResult\n } catch (e) {\n console.error(e)\n\n if (e instanceof Error) {\n return rejectWithValue(e.message)\n }\n }\n\n return rejectWithValue(\"Unknown error\")\n },\n)\n\nexport const logout = createAsyncThunk(\n `${slice.name}/logout`,\n async (shouldShowToast = true, { dispatch }) => {\n dispatch(slice.actions.handleLogout())\n dispatch(graphApi.util.resetApiState())\n dispatch(restApi.util.resetApiState())\n dispatch(setTheme(undefined))\n\n ReactGA.set({ userId: undefined })\n HITSEEKER_EVENT.logout()\n\n shouldShowToast &&\n dispatch(\n enqueueSnackbar({\n message: i18next.t(\"notifier.logoutSuccess\", { ns: \"onboarding\" }),\n options: {\n key: \"logout_success\",\n variant: \"success\",\n autoHideDuration: 2000,\n },\n }),\n )\n },\n)\n\nexport const register = createAsyncThunk<\n SignUpCommandOutput,\n { email: string; password: string; isInvited?: boolean; utm: UTMData }\n>(\n `${slice.name}/register`,\n async ({ email, password, isInvited = false, utm }, { rejectWithValue }) => {\n try {\n return await cognitoRegister(email, password, isInvited, utm)\n } catch (e) {\n console.error(e)\n\n if (e instanceof Error) {\n return rejectWithValue(e.message)\n }\n }\n\n return rejectWithValue(\"Unknown error\")\n },\n)\n\nexport const googleAuth = createAsyncThunk<\n AuthenticationResultType,\n { code: string; scope: CognitoScope }\n>(\n `${slice.name}/googleAuth`,\n async ({ code, scope }, { dispatch, rejectWithValue }) => {\n try {\n const tokens = await getTokens(code, scope)\n if (!tokens.access_token) {\n return rejectWithValue(\"Invalid token\")\n }\n\n if (scope === \"internal\") {\n const response = await callInternalCognitoRegister(\n tokens.access_token,\n tokens.id_token,\n )\n\n if (response.status === 401) {\n return rejectWithValue(\n i18next.t(\"notifier.notAuthorised\", { ns: \"common\" }),\n )\n }\n }\n\n const authenticationResult = {\n AccessToken: tokens.access_token,\n RefreshToken: tokens.refresh_token,\n ExpiresIn: tokens.expires_in,\n TokenType: tokens.token_type,\n IdToken: tokens.id_token,\n }\n\n if (authenticationResult.IdToken) {\n const b64 = authenticationResult.IdToken.slice(\n authenticationResult.IdToken.indexOf(\".\") + 1,\n authenticationResult.IdToken.lastIndexOf(\".\"),\n )\n const info = JSON.parse(atob(b64))\n dispatch(setEmail(info.email))\n }\n\n dispatch(setScope(scope))\n dispatch(setLoginProvider(\"sso\"))\n dispatch(slice.actions.handleLogin(authenticationResult))\n\n dispatch(\n enqueueSnackbar({\n message: i18next.t(\"notifier.loginSuccess\", { ns: \"onboarding\" }),\n options: {\n key: \"login_success\",\n variant: \"success\",\n },\n }),\n )\n\n return authenticationResult\n } catch (e) {\n console.error(e)\n\n if (e instanceof Error) {\n return rejectWithValue(e.message)\n }\n }\n\n return rejectWithValue(\"Unknown error\")\n },\n)\n\nexport const updatePassword = createAsyncThunk<\n void,\n { currPassword: string; newPassword: string; hasRefreshed?: boolean }\n>(\n `${slice.name}/updatePassword`,\n async (\n { currPassword, newPassword, hasRefreshed = false },\n { dispatch, rejectWithValue, getState },\n ) => {\n const authenticationResult = (getState() as RootState).auth\n .authenticationResult!\n try {\n await changePassword(\n authenticationResult.AccessToken!,\n currPassword,\n newPassword,\n )\n\n return\n } catch (e) {\n console.error(e)\n\n if (\n e instanceof NotAuthorizedException &&\n e.message === \"Access Token has expired\"\n ) {\n if (hasRefreshed) return rejectWithValue(e.message)\n\n await dispatch(refresh({ token: authenticationResult.RefreshToken! }))\n await dispatch(\n updatePassword({ currPassword, newPassword, hasRefreshed: true }),\n )\n\n return\n }\n\n const err = e as Error\n\n return rejectWithValue(err?.message ?? \"Unknown error\")\n }\n },\n)\n\nexport const forgotenPassword = createAsyncThunk(\n `${slice.name}/forgotenPassword`,\n async ({ email }, { rejectWithValue }) => {\n try {\n await forgotPassword(email)\n\n return\n } catch (e) {\n console.error(e)\n const err = e as Error\n\n return rejectWithValue(err?.message ?? \"Unknown error\")\n }\n },\n)\n\nexport const resetPassword = createAsyncThunk<\n void,\n { email: string; password: string; code: string }\n>(\n `${slice.name}/resetPassword`,\n async ({ email, password, code }, { rejectWithValue }) => {\n try {\n await confirmForgotPassword(email, password, code)\n\n return\n } catch (e) {\n console.error(e)\n const err = e as Error\n\n return rejectWithValue(err?.message ?? \"Unknown error\")\n }\n },\n)\n\nconst persistConfig = {\n key: slice.name,\n version: 1,\n storage,\n}\n\nconst { reducer } = slice\nexport default persistReducer(persistConfig, reducer)\n\nexport const {\n handleLogout,\n setEmail,\n setScope,\n setLoginProvider,\n setLoggedInUser,\n} = slice.actions\n\nexport const selectEmail = (state: RootState) => state.auth.email\n\nexport const selectIsAuthenticating = (state: RootState) =>\n state.auth.isAuthenticating\n\nexport const selectIsAuthenticated = (state: RootState) =>\n !!state.auth.authenticationResult\n\nexport const selectIsRegistering = (state: RootState) =>\n state.auth.isRegistering\n\nexport const selectExpiresIn = (state: RootState) =>\n state.auth.authenticationResult?.ExpiresIn\n ? new Date(state.auth.authenticationResult.ExpiresIn)\n : null\nexport const selectHasTokenExpired = (state: RootState) => {\n const expiresIn = selectExpiresIn(state)\n return !expiresIn || expiresIn.getTime() < Date.now()\n}\n\nexport const selectLoginProvider = (state: RootState) =>\n state.auth.loginProvider\n","/* eslint-disable */ /**\n *\n * THIS FILE IS AUTOGENERATED, DO NOT EDIT IT!\n *\n * instead, edit one of the `.graphql` files in this project and run\n *\n * npm run graphql-codegen\n *\n * for this file to be re-created\n */\n\nimport * as Types from '../../app/services/graphql/types.generated';\n\nimport { api } from '@/app/services/graphql/api';\nexport type GetOrganisationsQueryVariables = Types.Exact<{\n id?: Types.InputMaybe;\n page_size?: Types.InputMaybe;\n}>;\n\n\nexport type GetOrganisationsQuery = { __typename?: 'Query', organisations?: Array<{ __typename?: 'OrganisationOutputType', id: string, name: string, logo?: string, theme?: string, email?: string, about?: string, website?: string, creator_id?: number, hs_company_id?: string }> };\n\nexport type GetOrganisationsListQueryVariables = Types.Exact<{\n page_size?: Types.InputMaybe;\n page_no?: Types.InputMaybe;\n sort_by?: Types.InputMaybe;\n sort_dir?: Types.InputMaybe;\n search?: Types.InputMaybe;\n created_at_range?: Types.InputMaybe;\n internal_favourite?: Types.InputMaybe;\n}>;\n\n\nexport type GetOrganisationsListQuery = { __typename?: 'Query', query_count?: number, organisations?: Array<{ __typename?: 'OrganisationOutputType', id: string, name: string, logo?: string, theme?: string, email?: string, about?: string, website?: string, creator_id?: number, hs_company_id?: string, internal_favourite: boolean }> };\n\nexport type GetLoggedInUserQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type GetLoggedInUserQuery = { __typename?: 'Query', me?: { __typename?: 'UserOutputType', id: string, name: string, email: string, status: string, profile_image?: string, user_type: string, designation?: string, organisation_id?: number, completion_percentage?: number, permission_modules: Array<{ __typename?: 'PermissionModuleOutputType', user_id: number, module: string }> } };\n\nexport type GetUsersQueryVariables = Types.Exact<{\n id?: Types.InputMaybe;\n email?: Types.InputMaybe;\n organisation_id?: Types.InputMaybe;\n user_ids?: Types.InputMaybe> | Types.InputMaybe>;\n}>;\n\n\nexport type GetUsersQuery = { __typename?: 'Query', permission_models?: Array<{ __typename?: 'PermissionModelOutputType', user_id: number, model: string, model_id: number }>, game?: Array<{ __typename?: 'AllGamesOutputType', id?: number, name?: string }>, users?: Array<{ __typename?: 'UserOutputType', id: string, name: string, email: string, status: string, user_type: string, designation?: string, profile_image?: string, organisation_id?: number, organisation?: { __typename?: 'OrganisationOutputType', name: string }, permission_modules: Array<{ __typename?: 'PermissionModuleOutputType', id: string, module: string, access_type: string }>, games: Array<{ __typename?: 'GameOutputType', id: string, name: string }> }> };\n\nexport type GetAllUsersListQueryVariables = Types.Exact<{\n organisation_id?: Types.InputMaybe;\n status?: Types.InputMaybe;\n search?: Types.InputMaybe;\n page_size?: Types.InputMaybe;\n page_no?: Types.InputMaybe;\n sort_by?: Types.InputMaybe;\n sort_dir?: Types.InputMaybe;\n created_at_range?: Types.InputMaybe;\n external_users_only?: Types.InputMaybe;\n internal_users_only?: Types.InputMaybe;\n campaign_content?: Types.InputMaybe> | Types.InputMaybe>;\n campaign_medium?: Types.InputMaybe> | Types.InputMaybe>;\n campaign_name?: Types.InputMaybe> | Types.InputMaybe>;\n campaign_source?: Types.InputMaybe> | Types.InputMaybe>;\n campaign_term?: Types.InputMaybe> | Types.InputMaybe>;\n}>;\n\n\nexport type GetAllUsersListQuery = { __typename?: 'Query', query_count?: number, users?: Array<{ __typename?: 'UserOutputType', id: string, name: string, email: string, status: string, user_type: string, designation?: string, profile_image?: string, organisation_id?: number, internal_user_role_id?: number, organisation?: { __typename?: 'OrganisationOutputType', name: string }, permission_modules: Array<{ __typename?: 'PermissionModuleOutputType', id: string, module: string, access_type: string }>, games: Array<{ __typename?: 'GameOutputType', id: string, name: string }> }> };\n\nexport type GetAllInternalUsersListQueryVariables = Types.Exact<{\n status?: Types.InputMaybe;\n search?: Types.InputMaybe;\n page_size?: Types.InputMaybe;\n page_no?: Types.InputMaybe;\n sort_by?: Types.InputMaybe;\n sort_dir?: Types.InputMaybe;\n internal_user_role_id?: Types.InputMaybe;\n}>;\n\n\nexport type GetAllInternalUsersListQuery = { __typename?: 'Query', query_count?: number, users?: Array<{ __typename?: 'UserOutputType', id: string, name: string, email: string, status: string, user_type: string, designation?: string, profile_image?: string, organisation_id?: number, internal_user_role_id?: number, permission_modules: Array<{ __typename?: 'PermissionModuleOutputType', id: string, module: string, access_type: string }> }> };\n\nexport type GetAllUsersNameQueryVariables = Types.Exact<{\n status?: Types.InputMaybe;\n internal_users_only?: Types.InputMaybe;\n designation?: Types.InputMaybe;\n}>;\n\n\nexport type GetAllUsersNameQuery = { __typename?: 'Query', users?: Array<{ __typename?: 'UserOutputType', id: string, name: string, profile_image?: string }> };\n\nexport type GetUsersCountQueryVariables = Types.Exact<{\n status?: Types.InputMaybe;\n}>;\n\n\nexport type GetUsersCountQuery = { __typename?: 'Query', count?: number };\n\nexport type GetPermissionModulesQueryVariables = Types.Exact<{\n id?: Types.InputMaybe> | Types.InputMaybe>;\n}>;\n\n\nexport type GetPermissionModulesQuery = { __typename?: 'Query', permission_modules?: Array<{ __typename?: 'PermissionModuleOutputType', user_id: number, module: string, id: string }> };\n\nexport type UpdateUserPermissionsMutationVariables = Types.Exact<{\n user_id: Types.Scalars['Int']['input'];\n modules: Array> | Types.InputMaybe;\n}>;\n\n\nexport type UpdateUserPermissionsMutation = { __typename?: 'Mutation', update_permission_module_list?: { __typename?: 'UpdatePermissionModuleList', ok?: boolean } };\n\nexport type UpdateUserProjectsMutationVariables = Types.Exact<{\n user_id: Types.Scalars['Int']['input'];\n game_ids: Array> | Types.InputMaybe;\n}>;\n\n\nexport type UpdateUserProjectsMutation = { __typename?: 'Mutation', update_permission_model_list?: { __typename?: 'UpdatePermissionModelList', ok?: boolean } };\n\nexport type UpdatePermissionModuleMutationVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n user_id?: Types.InputMaybe;\n access_type?: Types.InputMaybe;\n}>;\n\n\nexport type UpdatePermissionModuleMutation = { __typename?: 'Mutation', update_permission_module?: { __typename?: 'UpdatePermissionModule', ok?: boolean } };\n\nexport type GetUserQueryVariables = Types.Exact<{\n id?: Types.InputMaybe;\n organisation_id?: Types.InputMaybe;\n}>;\n\n\nexport type GetUserQuery = { __typename?: 'Query', users?: Array<{ __typename?: 'UserOutputType', name: string, email: string }> };\n\nexport type CreateInternalRoleMutationVariables = Types.Exact<{\n name: Types.Scalars['String']['input'];\n permission_list: Array> | Types.InputMaybe;\n}>;\n\n\nexport type CreateInternalRoleMutation = { __typename?: 'Mutation', create_internal_role?: { __typename?: 'CreateInternalRole', ok?: boolean } };\n\nexport type ArchiveInternalRoleMutationVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n archived: Types.Scalars['Boolean']['input'];\n}>;\n\n\nexport type ArchiveInternalRoleMutation = { __typename?: 'Mutation', update_internal_role?: { __typename?: 'UpdateInternalRole', ok?: boolean } };\n\nexport type GetInternalRolesQueryVariables = Types.Exact<{\n is_archived?: Types.InputMaybe;\n}>;\n\n\nexport type GetInternalRolesQuery = { __typename?: 'Query', roles?: Array<{ __typename?: 'RoleOutputType', id: string, name: string, archived: boolean, permission_list: Array }> };\n\nexport type GetOrganisationNameByIdQueryVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type GetOrganisationNameByIdQuery = { __typename?: 'Query', organisations?: Array<{ __typename?: 'OrganisationOutputType', id: string, name: string }> };\n\n\nexport const GetOrganisationsDocument = `\n query GetOrganisations($id: Int, $page_size: Int) {\n organisations(filters: {id: $id}, page_size: $page_size) {\n id\n name\n logo\n theme\n email\n about\n website\n creator_id\n hs_company_id\n }\n}\n `;\nexport const GetOrganisationsListDocument = `\n query GetOrganisationsList($page_size: Int, $page_no: Int, $sort_by: String, $sort_dir: String, $search: String, $created_at_range: String, $internal_favourite: Boolean) {\n organisations(\n filters: {search_name: $search, created_at_range: $created_at_range, internal_favourite: $internal_favourite}\n page_size: $page_size\n page_no: $page_no\n sort_by: $sort_by\n sort_dir: $sort_dir\n ) {\n id\n name\n logo\n theme\n email\n about\n website\n creator_id\n hs_company_id\n internal_favourite\n }\n query_count: organisation_total_objects(\n filters: {search_name: $search, internal_favourite: $internal_favourite, created_at_range: $created_at_range}\n )\n}\n `;\nexport const GetLoggedInUserDocument = `\n query GetLoggedInUser {\n me {\n id\n name\n email\n status\n profile_image\n user_type\n designation\n organisation_id\n completion_percentage\n permission_modules {\n user_id\n module\n }\n }\n}\n `;\nexport const GetUsersDocument = `\n query GetUsers($id: Int, $email: String, $organisation_id: Int, $user_ids: [Int]) {\n permission_models(\n filters: {model: [\"game\"], permission_type: [\"write\"], user_id: $user_ids}\n ) {\n user_id\n model\n model_id\n }\n game: all_games {\n id\n name\n }\n users(\n filters: {id: $id, email: $email, organisation_id: $organisation_id}\n sort_by: \"created_at\"\n sort_dir: \"desc\"\n ) {\n id\n name\n email\n status\n user_type\n designation\n profile_image\n organisation_id\n organisation {\n name\n }\n permission_modules {\n id\n module\n access_type\n }\n games {\n id\n name\n }\n }\n}\n `;\nexport const GetAllUsersListDocument = `\n query GetAllUsersList($organisation_id: Int, $status: String, $search: String, $page_size: Int, $page_no: Int, $sort_by: String, $sort_dir: String, $created_at_range: String, $external_users_only: Boolean, $internal_users_only: Boolean, $campaign_content: [String], $campaign_medium: [String], $campaign_name: [String], $campaign_source: [String], $campaign_term: [String]) {\n users(\n filters: {organisation_id: $organisation_id, status: $status, search_name: $search, external_users_only: $external_users_only, internal_users_only: $internal_users_only, utm_campaign_content: $campaign_content, utm_campaign_medium: $campaign_medium, utm_campaign_name: $campaign_name, utm_campaign_source: $campaign_source, utm_campaign_term: $campaign_term, created_at_range: $created_at_range}\n sort_by: $sort_by\n sort_dir: $sort_dir\n page_no: $page_no\n page_size: $page_size\n ) {\n id\n name\n email\n status\n user_type\n designation\n profile_image\n organisation_id\n internal_user_role_id\n organisation {\n name\n }\n permission_modules {\n id\n module\n access_type\n }\n games {\n id\n name\n }\n }\n query_count: users_total_objects(\n filters: {organisation_id: $organisation_id, status: $status, search_name: $search, external_users_only: $external_users_only, internal_users_only: $internal_users_only, utm_campaign_content: $campaign_content, utm_campaign_medium: $campaign_medium, utm_campaign_name: $campaign_name, utm_campaign_source: $campaign_source, utm_campaign_term: $campaign_term, created_at_range: $created_at_range}\n )\n}\n `;\nexport const GetAllInternalUsersListDocument = `\n query GetAllInternalUsersList($status: String, $search: String, $page_size: Int, $page_no: Int, $sort_by: String, $sort_dir: String, $internal_user_role_id: Int) {\n users(\n filters: {status: $status, search_name: $search, internal_users_only: true, internal_user_role_id: $internal_user_role_id}\n sort_by: $sort_by\n sort_dir: $sort_dir\n page_no: $page_no\n page_size: $page_size\n ) {\n id\n name\n email\n status\n user_type\n designation\n profile_image\n organisation_id\n internal_user_role_id\n permission_modules {\n id\n module\n access_type\n }\n }\n query_count: users_total_objects(\n filters: {status: $status, search_name: $search, internal_users_only: true, internal_user_role_id: $internal_user_role_id}\n )\n}\n `;\nexport const GetAllUsersNameDocument = `\n query GetAllUsersName($status: String, $internal_users_only: Boolean, $designation: String) {\n users(\n filters: {status: $status, internal_users_only: $internal_users_only, designation: $designation}\n ) {\n id\n name\n profile_image\n }\n}\n `;\nexport const GetUsersCountDocument = `\n query GetUsersCount($status: String) {\n count: users_total_objects(filters: {status: $status})\n}\n `;\nexport const GetPermissionModulesDocument = `\n query GetPermissionModules($id: [Int]) {\n permission_modules(filters: {user_id: $id}) {\n user_id\n module\n id\n }\n}\n `;\nexport const UpdateUserPermissionsDocument = `\n mutation UpdateUserPermissions($user_id: Int!, $modules: [String]!) {\n update_permission_module_list(user_id: $user_id, modules: $modules) {\n ok\n }\n}\n `;\nexport const UpdateUserProjectsDocument = `\n mutation UpdateUserProjects($user_id: Int!, $game_ids: [Int]!) {\n update_permission_model_list(\n model: \"game\"\n user_id: $user_id\n model_ids: $game_ids\n ) {\n ok\n }\n}\n `;\nexport const UpdatePermissionModuleDocument = `\n mutation UpdatePermissionModule($id: Int!, $user_id: Int, $access_type: String) {\n update_permission_module(\n id: $id\n access_type: $access_type\n user_id: $user_id\n read_permission: true\n write_permission: true\n ) {\n ok\n }\n}\n `;\nexport const GetUserDocument = `\n query GetUser($id: Int, $organisation_id: Int) {\n users(filters: {id: $id, organisation_id: $organisation_id}) {\n name\n email\n }\n}\n `;\nexport const CreateInternalRoleDocument = `\n mutation CreateInternalRole($name: String!, $permission_list: [String]!) {\n create_internal_role(name: $name, permission_list: $permission_list) {\n ok\n }\n}\n `;\nexport const ArchiveInternalRoleDocument = `\n mutation ArchiveInternalRole($id: Int!, $archived: Boolean!) {\n update_internal_role(id: $id, archived: $archived) {\n ok\n }\n}\n `;\nexport const GetInternalRolesDocument = `\n query GetInternalRoles($is_archived: Boolean) {\n roles(\n filters: {archived: $is_archived}\n sort_by: \"created_at\"\n sort_dir: \"desc\"\n ) {\n id\n name\n archived\n permission_list\n }\n}\n `;\nexport const GetOrganisationNameByIdDocument = `\n query GetOrganisationNameById($id: Int!) {\n organisations(filters: {id: $id}) {\n id\n name\n }\n}\n `;\n\nconst injectedRtkApi = api.injectEndpoints({\n endpoints: (build) => ({\n GetOrganisations: build.query({\n query: (variables) => ({ document: GetOrganisationsDocument, variables })\n }),\n GetOrganisationsList: build.query({\n query: (variables) => ({ document: GetOrganisationsListDocument, variables })\n }),\n GetLoggedInUser: build.query({\n query: (variables) => ({ document: GetLoggedInUserDocument, variables })\n }),\n GetUsers: build.query({\n query: (variables) => ({ document: GetUsersDocument, variables })\n }),\n GetAllUsersList: build.query({\n query: (variables) => ({ document: GetAllUsersListDocument, variables })\n }),\n GetAllInternalUsersList: build.query({\n query: (variables) => ({ document: GetAllInternalUsersListDocument, variables })\n }),\n GetAllUsersName: build.query({\n query: (variables) => ({ document: GetAllUsersNameDocument, variables })\n }),\n GetUsersCount: build.query({\n query: (variables) => ({ document: GetUsersCountDocument, variables })\n }),\n GetPermissionModules: build.query({\n query: (variables) => ({ document: GetPermissionModulesDocument, variables })\n }),\n UpdateUserPermissions: build.mutation({\n query: (variables) => ({ document: UpdateUserPermissionsDocument, variables })\n }),\n UpdateUserProjects: build.mutation({\n query: (variables) => ({ document: UpdateUserProjectsDocument, variables })\n }),\n UpdatePermissionModule: build.mutation({\n query: (variables) => ({ document: UpdatePermissionModuleDocument, variables })\n }),\n GetUser: build.query({\n query: (variables) => ({ document: GetUserDocument, variables })\n }),\n CreateInternalRole: build.mutation({\n query: (variables) => ({ document: CreateInternalRoleDocument, variables })\n }),\n ArchiveInternalRole: build.mutation({\n query: (variables) => ({ document: ArchiveInternalRoleDocument, variables })\n }),\n GetInternalRoles: build.query({\n query: (variables) => ({ document: GetInternalRolesDocument, variables })\n }),\n GetOrganisationNameById: build.query({\n query: (variables) => ({ document: GetOrganisationNameByIdDocument, variables })\n }),\n }),\n});\n\nexport { injectedRtkApi as api };\nexport const { useGetOrganisationsQuery, useLazyGetOrganisationsQuery, useGetOrganisationsListQuery, useLazyGetOrganisationsListQuery, useGetLoggedInUserQuery, useLazyGetLoggedInUserQuery, useGetUsersQuery, useLazyGetUsersQuery, useGetAllUsersListQuery, useLazyGetAllUsersListQuery, useGetAllInternalUsersListQuery, useLazyGetAllInternalUsersListQuery, useGetAllUsersNameQuery, useLazyGetAllUsersNameQuery, useGetUsersCountQuery, useLazyGetUsersCountQuery, useGetPermissionModulesQuery, useLazyGetPermissionModulesQuery, useUpdateUserPermissionsMutation, useUpdateUserProjectsMutation, useUpdatePermissionModuleMutation, useGetUserQuery, useLazyGetUserQuery, useCreateInternalRoleMutation, useArchiveInternalRoleMutation, useGetInternalRolesQuery, useLazyGetInternalRolesQuery, useGetOrganisationNameByIdQuery, useLazyGetOrganisationNameByIdQuery } = injectedRtkApi;\n\n","import { setLoggedInUser } from \"@/features/auth/authSlice\"\nimport { api as generatedApi } from \"./UserManagement.generated\"\n\nexport const api = generatedApi.enhanceEndpoints({\n addTagTypes: [\"Organisation\", \"User\", \"Permission\", \"InternalRoles\"],\n endpoints: {\n GetOrganisations: {\n providesTags: () => [{ type: \"Organisation\", id: \"CURRENT_ORG\" }],\n },\n GetOrganisationsList: {\n providesTags: () => [{ type: \"Organisation\", id: \"LIST\" }],\n forceRefetch({ currentArg, previousArg }) {\n return currentArg !== previousArg\n },\n },\n GetUsers: {\n providesTags: () => [{ type: \"User\", id: \"LIST\" }],\n },\n GetAllUsersName: {\n providesTags: () => [{ type: \"User\", id: \"LIST\" }],\n },\n GetUsersCount: {\n providesTags: () => [{ type: \"User\", id: \"COUNT\" }],\n },\n GetAllUsersList: {\n providesTags: () => [{ type: \"User\", id: \"LIST\" }],\n },\n GetLoggedInUser: {\n providesTags: () => [{ type: \"User\", id: \"ME\" }],\n onQueryStarted: async (_, { dispatch, queryFulfilled }) => {\n const { data } = await queryFulfilled\n\n if (data.me) {\n dispatch(\n setLoggedInUser({\n id: data.me.id,\n userType: data.me.user_type,\n designation: data.me.designation ?? \"\",\n permissionsModules: data.me.permission_modules.map(\n (permission) => permission.module,\n ),\n }),\n )\n }\n },\n },\n GetPermissionModules: {\n providesTags: () => [{ type: \"Permission\", id: \"LIST\" }],\n },\n UpdateUserPermissions: {\n invalidatesTags: () => [{ type: \"User\", id: \"LIST\" }],\n },\n UpdateUserProjects: {\n invalidatesTags: () => [{ type: \"User\", id: \"LIST\" }],\n },\n UpdatePermissionModule: {\n invalidatesTags: () => [{ type: \"User\", id: \"LIST\" }],\n },\n GetUser: {\n providesTags: () => [{ type: \"User\", id: \"ITEM\" }],\n },\n CreateInternalRole: {\n invalidatesTags: () => [{ type: \"InternalRoles\", id: \"LIST\" }],\n },\n GetInternalRoles: {\n providesTags: () => [{ type: \"InternalRoles\", id: \"LIST\" }],\n },\n ArchiveInternalRole: {\n invalidatesTags: () => [{ type: \"InternalRoles\", id: \"LIST\" }],\n },\n GetAllInternalUsersList: {\n providesTags: () => [{ type: \"User\", id: \"LIST\" }],\n },\n GetOrganisationNameById: {\n providesTags: (_, __, args) => [{ type: \"Organisation\", id: args.id }],\n },\n },\n})\n\nexport const {\n useGetOrganisationsQuery,\n useGetOrganisationsListQuery,\n useGetUsersQuery,\n useGetLoggedInUserQuery,\n useGetPermissionModulesQuery,\n useUpdateUserPermissionsMutation,\n useUpdateUserProjectsMutation,\n useUpdatePermissionModuleMutation,\n useGetUserQuery,\n useLazyGetUserQuery,\n useGetAllUsersListQuery,\n useGetAllUsersNameQuery,\n useGetUsersCountQuery,\n useCreateInternalRoleMutation,\n useGetInternalRolesQuery,\n useArchiveInternalRoleMutation,\n useGetAllInternalUsersListQuery,\n useGetOrganisationNameByIdQuery,\n} = api\n\nexport const {\n GetOrganisations,\n GetOrganisationsList,\n GetUsers,\n GetLoggedInUser,\n GetPermissionModules,\n UpdateUserPermissions,\n UpdateUserProjects,\n UpdatePermissionModule,\n GetUser,\n GetAllUsersList,\n} = api.endpoints\n","import { useAppDispatch, useAppSelector } from \"@/app/hooks\"\nimport Loading from \"@/components/Loading\"\nimport { logout, selectIsAuthenticated } from \"@/features/auth/authSlice\"\nimport {\n enqueueSnackbar,\n closeSnackbar,\n} from \"@/features/notifier/notifierSlice\"\nimport { useGetLoggedInUserQuery } from \"@/features/userManagement/UserManagement\"\nimport { Box } from \"@mui/material\"\nimport i18next from \"i18next\"\nimport { FC, PropsWithChildren, useEffect } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Navigate } from \"react-router-dom\"\nimport ReactGA from \"react-ga4\"\nimport { HITSEEKER_EVENT } from \"@/util/hitseekerEvents\"\n\nconst RESTRICTED_USER_STATUSES = [\"inactive\", \"blocked\", \"deleted\"]\n\nconst RESTRICTED_ERROR_MESSAGES: Record = {\n inactive: i18next.t(\"notifier.accountInactive\"),\n blocked: i18next.t(\"notifier.accountBlocked\"),\n deleted: i18next.t(\"notifier.accountDeleted\"),\n}\n\nconst AuthorisationRoute: FC = ({ children }) => {\n const { t } = useTranslation(\"onboarding\")\n\n const dispatch = useAppDispatch()\n const isAuthenticated = useAppSelector(selectIsAuthenticated)\n\n const {\n data,\n isFetching: isLoadingUser,\n isError,\n error,\n } = useGetLoggedInUserQuery(undefined, {\n skip: !isAuthenticated,\n refetchOnMountOrArgChange: true,\n })\n const loggedInUserData = data?.me\n\n const isUserRestricted = RESTRICTED_USER_STATUSES.includes(\n loggedInUserData?.status ?? \"\",\n )\n const isUserUnauthorised = isError || isUserRestricted\n\n useEffect(() => {\n if (isUserUnauthorised) {\n dispatch(logout(false))\n }\n\n if (isError) {\n dispatch(closeSnackbar(\"login_success\"))\n dispatch(\n enqueueSnackbar({\n message: t(\"notifier.loginFailed\"),\n options: {\n key: \"authorisation_error\",\n variant: \"error\",\n },\n }),\n )\n }\n\n if (isUserRestricted) {\n dispatch(closeSnackbar(\"login_success\"))\n dispatch(\n enqueueSnackbar({\n message:\n RESTRICTED_ERROR_MESSAGES[loggedInUserData?.status ?? \"\"] ??\n t(\"notifier.loginFailed\"),\n options: {\n key: \"authorisation_error\",\n variant: \"error\",\n },\n }),\n )\n }\n }, [isUserUnauthorised, isUserRestricted, loggedInUserData?.status, dispatch])\n\n useEffect(() => {\n if (loggedInUserData?.id) {\n const internalUser =\n loggedInUserData?.user_type === \"internal_admin\" ||\n loggedInUserData?.user_type === \"internal_restricted_user\"\n\n if (!internalUser) {\n ReactGA.set({ userId: loggedInUserData.id })\n HITSEEKER_EVENT.identify(\n loggedInUserData.id,\n loggedInUserData.name,\n loggedInUserData.email,\n )\n }\n }\n }, [loggedInUserData?.id])\n\n if (isUserUnauthorised) {\n console.error(error)\n\n return null\n }\n\n if (isLoadingUser) {\n return (\n \n \n \n )\n }\n\n if (\n loggedInUserData?.user_type === \"external_admin\" &&\n !loggedInUserData?.organisation_id\n ) {\n return \n }\n\n return children\n}\n\nexport default AuthorisationRoute\n","import { api as graphqlApi } from \"@/app/services/graphql/api\"\nimport { api as restApi } from \"@/app/services/rest/api\"\nimport auth from \"@/features/auth/authSlice\"\nimport general from \"@/features/general/generalSlice\"\nimport notifier from \"@/features/notifier/notifierSlice\"\nimport { Action, configureStore, ThunkAction } from \"@reduxjs/toolkit\"\nimport {\n FLUSH,\n PAUSE,\n PERSIST,\n persistStore,\n PURGE,\n REGISTER,\n REHYDRATE,\n} from \"redux-persist\"\n\n// Add the API handlers here to register them\nconst API_HANDLERS = [restApi, graphqlApi] as const\n\n// Type mapping to extract the reducer type from the API handlers\nconst API_REDUCERS = Object.fromEntries(\n API_HANDLERS.map((api) => [api.reducerPath, api.reducer]),\n) as ApiReducerMap\n\nexport const store = configureStore({\n reducer: {\n // Register the API reducers\n ...API_REDUCERS,\n // Register the other reducers\n auth,\n general,\n notifier,\n },\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware({\n serializableCheck: {\n // Ignore redux-persist action types\n ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],\n },\n }).concat(\n // Register the API middleware\n Object.values(API_HANDLERS).map((api) => api.middleware),\n ),\n})\n\nexport const storePersistor = persistStore(store)\n\nexport type AppDispatch = typeof store.dispatch\nexport type RootState = ReturnType\nexport type AppThunk = ThunkAction<\n ReturnType,\n RootState,\n unknown,\n Action\n>\n\n// Type helper for the API handlers\ntype ApiReducerMap = {\n [K in (typeof API_HANDLERS)[number][\"reducerPath\"]]: Extract<\n (typeof API_HANDLERS)[number],\n { reducerPath: K }\n >[\"reducer\"]\n}\n","import { RootState, store } from \"@/app/store\"\nimport { Path, To } from \"history\"\nimport React from \"react\"\nimport { Navigate, useLocation } from \"react-router-dom\"\n\ntype Props = {\n hasPermission: boolean | ((state: RootState) => boolean)\n children: React.ReactNode\n redirectTo?: To\n}\n\nexport default function ProtectedRoute({\n hasPermission,\n children,\n redirectTo,\n}: Props) {\n const location = useLocation()\n\n let returnPath: string | Path = location\n if (location.pathname === \"/login\") {\n returnPath = \"/\"\n }\n\n const doesHavePermission =\n typeof hasPermission === \"function\"\n ? hasPermission(store.getState())\n : hasPermission\n\n if (!doesHavePermission) {\n return redirectTo ? (\n \n ) : (\n \n )\n }\n\n return <>{children}\n}\n","import { RouteObject } from \"react-router-dom\"\nimport { lazy } from \"react\"\nimport ProtectedRoute from \"@/components/ProtectedRoute\"\nimport i18next from \"i18next\"\n\nconst CreateNewThread = lazy(\n () => import(\"@/pages/DiscussionForum/CreateThread/CreateThread\"),\n)\n\nconst route: RouteObject = {\n path: \"/discussion-forum/new-thread\",\n handle: {\n crumb: (data: string) =>\n data ?? i18next.t(\"label.newThread\", { ns: \"discussionForum\" }),\n },\n children: [\n {\n index: true,\n element: (\n auth.scope === \"external\"}\n redirectTo=\"/discussion-forum\"\n >\n \n \n ),\n },\n ],\n}\n\nexport default route\n","/* eslint-disable */ /**\n *\n * THIS FILE IS AUTOGENERATED, DO NOT EDIT IT!\n *\n * instead, edit one of the `.graphql` files in this project and run\n *\n * npm run graphql-codegen\n *\n * for this file to be re-created\n */\n\nimport * as Types from '../../app/services/graphql/types.generated';\n\nimport { api } from '@/app/services/graphql/api';\nexport type GetCategoryAndPriorityListQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type GetCategoryAndPriorityListQuery = { __typename?: 'Query', discussion_forum_priority?: Array<{ __typename?: 'DiscussionForumPriorityOutputType', priority_type: string, parent_id?: number, colour: string, id: string }>, discussion_forum_category?: Array<{ __typename?: 'DiscussionForumCategoryOutputType', category_name: string, parent_id?: number, id: string, is_ds_forum_category?: boolean }> };\n\nexport type GetThreadListQueryVariables = Types.Exact<{\n organisation_id?: Types.InputMaybe;\n assigned_internal_user_id?: Types.InputMaybe;\n category_id?: Types.InputMaybe;\n priority_id?: Types.InputMaybe;\n thread_status?: Types.InputMaybe;\n search_text?: Types.InputMaybe;\n page_size?: Types.InputMaybe;\n page_no: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type GetThreadListQuery = { __typename?: 'Query', discussion_forum_thread_total_objects?: number, discussion_forum_thread?: Array<{ __typename?: 'DiscussionForumThreadOutputType', unique_key: string, category_id: number, priority_id: number, subject: string, text: string, thread_status: string, id: string, created_at: any, game_id?: number, organisation_id?: number, assigned_internal_user_id?: number, user_details?: { __typename?: 'UserDetailsType', name?: string, profile_image?: string } }> };\n\nexport type GetThreadsQueryVariables = Types.Exact<{\n organisation_id?: Types.InputMaybe;\n page_size?: Types.InputMaybe;\n sort_by?: Types.InputMaybe;\n sort_dir?: Types.InputMaybe;\n}>;\n\n\nexport type GetThreadsQuery = { __typename?: 'Query', discussion_forum_thread?: Array<{ __typename?: 'DiscussionForumThreadOutputType', id: string, text: string, subject: string, unique_key: string, created_at: any, category_id: number, priority_id: number, thread_status: string, user_details?: { __typename?: 'UserDetailsType', name?: string, profile_image?: string } }> };\n\nexport type GetPriorityQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type GetPriorityQuery = { __typename?: 'Query', discussion_forum_priority?: Array<{ __typename?: 'DiscussionForumPriorityOutputType', priority_type: string, colour: string, id: string, parent_id?: number }> };\n\nexport type GetThreadSubjectQueryVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type GetThreadSubjectQuery = { __typename?: 'Query', discussion_forum_thread?: Array<{ __typename?: 'DiscussionForumThreadOutputType', id: string, subject: string }> };\n\nexport type GetThreadChatQueryVariables = Types.Exact<{\n thread_id: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type GetThreadChatQuery = { __typename?: 'Query', discussion_forum_thread?: Array<{ __typename?: 'DiscussionForumThreadOutputType', category_id: number, priority_id: number, unique_key: string, subject: string, text: string, thread_status: string, updated_at: any, created_at: any, game_id?: number, organisation_id?: number, user_details?: { __typename?: 'UserDetailsType', name?: string, profile_image?: string } }> };\n\nexport type GetChatItemQueryVariables = Types.Exact<{\n thread_id: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type GetChatItemQuery = { __typename?: 'Query', discussion_forum_chat_item?: Array<{ __typename?: 'DiscussionForumChatItemOutputType', user_id: number, text: string, id: string, created_at: any, updated_at: any, user_details?: { __typename?: 'UserDetailsType', name?: string, profile_image?: string } }> };\n\nexport type GetCategoryAndPriorityIdListQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type GetCategoryAndPriorityIdListQuery = { __typename?: 'Query', discussion_forum_priority?: Array<{ __typename?: 'DiscussionForumPriorityOutputType', id: string }>, discussion_forum_category?: Array<{ __typename?: 'DiscussionForumCategoryOutputType', id: string }> };\n\nexport type GetCategoryQueryVariables = Types.Exact<{\n category_name?: Types.InputMaybe;\n hitseeker_locale?: Types.InputMaybe;\n}>;\n\n\nexport type GetCategoryQuery = { __typename?: 'Query', discussion_forum_category?: Array<{ __typename?: 'DiscussionForumCategoryOutputType', id: string, category_name: string }> };\n\nexport type GetPrioritiesQueryVariables = Types.Exact<{\n hitseeker_locale?: Types.InputMaybe;\n}>;\n\n\nexport type GetPrioritiesQuery = { __typename?: 'Query', discussion_forum_priority?: Array<{ __typename?: 'DiscussionForumPriorityOutputType', id: string }> };\n\nexport type GetParentCategoriesAndPrioritiesListQueryVariables = Types.Exact<{\n hitseeker_locale?: Types.InputMaybe;\n}>;\n\n\nexport type GetParentCategoriesAndPrioritiesListQuery = { __typename?: 'Query', discussion_forum_category?: Array<{ __typename?: 'DiscussionForumCategoryOutputType', id: string, parent_id?: number, category_name: string }>, discussion_forum_priority?: Array<{ __typename?: 'DiscussionForumPriorityOutputType', id: string, parent_id?: number, priority_type: string, colour: string }> };\n\nexport type CreatePriorityAdminMutationVariables = Types.Exact<{\n colour: Types.Scalars['String']['input'];\n priority_type: Types.Scalars['String']['input'];\n parent_id?: Types.InputMaybe;\n}>;\n\n\nexport type CreatePriorityAdminMutation = { __typename?: 'Mutation', create_discussion_forum_priority_type?: { __typename?: 'CreateDiscussionForumPriority', ok?: boolean } };\n\nexport type UpdatePriorityAdminMutationVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n colour: Types.Scalars['String']['input'];\n priority_type: Types.Scalars['String']['input'];\n parent_id?: Types.InputMaybe;\n}>;\n\n\nexport type UpdatePriorityAdminMutation = { __typename?: 'Mutation', update_discussion_forum_priority_type?: { __typename?: 'UpdateDiscussionForumPriority', ok?: boolean } };\n\nexport type CreateCategoryAdminMutationVariables = Types.Exact<{\n category_name: Types.Scalars['String']['input'];\n parent_id?: Types.InputMaybe;\n}>;\n\n\nexport type CreateCategoryAdminMutation = { __typename?: 'Mutation', create_discussion_forum_category?: { __typename?: 'CreateDiscussionForumCategory', ok?: boolean } };\n\nexport type UpdateCategoryAdminMutationVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n category_name: Types.Scalars['String']['input'];\n parent_id?: Types.InputMaybe;\n}>;\n\n\nexport type UpdateCategoryAdminMutation = { __typename?: 'Mutation', update_discussion_forum_category?: { __typename?: 'UpdateDiscussionForumCategory', ok?: boolean } };\n\nexport type AssignUnAssignDiscussionForumThreadToInternalUserMutationVariables = Types.Exact<{\n internal_user_id?: Types.InputMaybe;\n thread_id: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type AssignUnAssignDiscussionForumThreadToInternalUserMutation = { __typename?: 'Mutation', assign_discussion_forum_thread_to_internal_user?: { __typename?: 'AssignDiscussionForumThreadToInternalUser', ok?: boolean } };\n\n\nexport const GetCategoryAndPriorityListDocument = `\n query GetCategoryAndPriorityList {\n discussion_forum_priority {\n priority_type\n parent_id\n colour\n id\n }\n discussion_forum_category {\n category_name\n parent_id\n id\n is_ds_forum_category\n }\n}\n `;\nexport const GetThreadListDocument = `\n query GetThreadList($organisation_id: Int, $assigned_internal_user_id: String, $category_id: Int, $priority_id: Int, $thread_status: String, $search_text: String, $page_size: Int, $page_no: Int!) {\n discussion_forum_thread(\n filters: {organisation_id: $organisation_id, assigned_internal_user_id: $assigned_internal_user_id, category_id: $category_id, priority_id: $priority_id, thread_status: $thread_status, search_text: $search_text}\n page_size: $page_size\n page_no: $page_no\n sort_by: \"updated_at\"\n sort_dir: \"desc\"\n ) {\n unique_key\n category_id\n priority_id\n subject\n text\n thread_status\n id\n created_at\n user_details {\n name\n profile_image\n }\n game_id\n organisation_id\n assigned_internal_user_id\n }\n discussion_forum_thread_total_objects(\n filters: {organisation_id: $organisation_id, assigned_internal_user_id: $assigned_internal_user_id, category_id: $category_id, priority_id: $priority_id, thread_status: $thread_status, search_text: $search_text}\n )\n}\n `;\nexport const GetThreadsDocument = `\n query GetThreads($organisation_id: Int, $page_size: Int, $sort_by: String, $sort_dir: String) {\n discussion_forum_thread(\n filters: {organisation_id: $organisation_id}\n page_size: $page_size\n sort_by: $sort_by\n sort_dir: $sort_dir\n ) {\n id\n text\n subject\n unique_key\n created_at\n category_id\n priority_id\n thread_status\n user_details {\n name\n profile_image\n }\n }\n}\n `;\nexport const GetPriorityDocument = `\n query GetPriority {\n discussion_forum_priority {\n priority_type\n colour\n id\n parent_id\n }\n}\n `;\nexport const GetThreadSubjectDocument = `\n query GetThreadSubject($id: Int!) {\n discussion_forum_thread(filters: {id: $id}) {\n id\n subject\n }\n}\n `;\nexport const GetThreadChatDocument = `\n query GetThreadChat($thread_id: Int!) {\n discussion_forum_thread(filters: {id: $thread_id}) {\n category_id\n priority_id\n unique_key\n subject\n text\n thread_status\n updated_at\n created_at\n game_id\n organisation_id\n user_details {\n name\n profile_image\n }\n }\n}\n `;\nexport const GetChatItemDocument = `\n query GetChatItem($thread_id: Int!) {\n discussion_forum_chat_item(\n thread_id: $thread_id\n sort_by: \"updated_at\"\n sort_dir: \"asc\"\n ) {\n user_id\n text\n id\n created_at\n updated_at\n user_details {\n name\n profile_image\n }\n }\n}\n `;\nexport const GetCategoryAndPriorityIdListDocument = `\n query GetCategoryAndPriorityIdList {\n discussion_forum_priority(filters: {hitseeker_locale: \"en-GB\"}) {\n id\n }\n discussion_forum_category(filters: {hitseeker_locale: \"en-GB\"}) {\n id\n }\n}\n `;\nexport const GetCategoryDocument = `\n query GetCategory($category_name: String, $hitseeker_locale: String = \"en-GB\") {\n discussion_forum_category(\n filters: {category_name: $category_name, hitseeker_locale: $hitseeker_locale}\n ) {\n id\n category_name\n }\n}\n `;\nexport const GetPrioritiesDocument = `\n query GetPriorities($hitseeker_locale: String = \"en-GB\") {\n discussion_forum_priority(filters: {hitseeker_locale: $hitseeker_locale}) {\n id\n }\n}\n `;\nexport const GetParentCategoriesAndPrioritiesListDocument = `\n query GetParentCategoriesAndPrioritiesList($hitseeker_locale: String) {\n discussion_forum_category(filters: {hitseeker_locale: $hitseeker_locale}) {\n id\n parent_id\n category_name\n }\n discussion_forum_priority(filters: {hitseeker_locale: $hitseeker_locale}) {\n id\n parent_id\n priority_type\n colour\n }\n}\n `;\nexport const CreatePriorityAdminDocument = `\n mutation CreatePriorityAdmin($colour: String!, $priority_type: String!, $parent_id: Int) {\n create_discussion_forum_priority_type(\n colour: $colour\n priority_type: $priority_type\n parent_id: $parent_id\n ) {\n ok\n }\n}\n `;\nexport const UpdatePriorityAdminDocument = `\n mutation UpdatePriorityAdmin($id: Int!, $colour: String!, $priority_type: String!, $parent_id: Int) {\n update_discussion_forum_priority_type(\n id: $id\n colour: $colour\n priority_type: $priority_type\n parent_id: $parent_id\n ) {\n ok\n }\n}\n `;\nexport const CreateCategoryAdminDocument = `\n mutation CreateCategoryAdmin($category_name: String!, $parent_id: Int) {\n create_discussion_forum_category(\n category_name: $category_name\n parent_id: $parent_id\n ) {\n ok\n }\n}\n `;\nexport const UpdateCategoryAdminDocument = `\n mutation UpdateCategoryAdmin($id: Int!, $category_name: String!, $parent_id: Int) {\n update_discussion_forum_category(\n id: $id\n category_name: $category_name\n parent_id: $parent_id\n ) {\n ok\n }\n}\n `;\nexport const AssignUnAssignDiscussionForumThreadToInternalUserDocument = `\n mutation assignUnAssignDiscussionForumThreadToInternalUser($internal_user_id: Int, $thread_id: Int!) {\n assign_discussion_forum_thread_to_internal_user(\n thread_id: $thread_id\n internal_user_id: $internal_user_id\n ) {\n ok\n }\n}\n `;\n\nconst injectedRtkApi = api.injectEndpoints({\n endpoints: (build) => ({\n GetCategoryAndPriorityList: build.query({\n query: (variables) => ({ document: GetCategoryAndPriorityListDocument, variables })\n }),\n GetThreadList: build.query({\n query: (variables) => ({ document: GetThreadListDocument, variables })\n }),\n GetThreads: build.query({\n query: (variables) => ({ document: GetThreadsDocument, variables })\n }),\n GetPriority: build.query({\n query: (variables) => ({ document: GetPriorityDocument, variables })\n }),\n GetThreadSubject: build.query({\n query: (variables) => ({ document: GetThreadSubjectDocument, variables })\n }),\n GetThreadChat: build.query({\n query: (variables) => ({ document: GetThreadChatDocument, variables })\n }),\n GetChatItem: build.query({\n query: (variables) => ({ document: GetChatItemDocument, variables })\n }),\n GetCategoryAndPriorityIdList: build.query({\n query: (variables) => ({ document: GetCategoryAndPriorityIdListDocument, variables })\n }),\n GetCategory: build.query({\n query: (variables) => ({ document: GetCategoryDocument, variables })\n }),\n GetPriorities: build.query({\n query: (variables) => ({ document: GetPrioritiesDocument, variables })\n }),\n GetParentCategoriesAndPrioritiesList: build.query({\n query: (variables) => ({ document: GetParentCategoriesAndPrioritiesListDocument, variables })\n }),\n CreatePriorityAdmin: build.mutation({\n query: (variables) => ({ document: CreatePriorityAdminDocument, variables })\n }),\n UpdatePriorityAdmin: build.mutation({\n query: (variables) => ({ document: UpdatePriorityAdminDocument, variables })\n }),\n CreateCategoryAdmin: build.mutation({\n query: (variables) => ({ document: CreateCategoryAdminDocument, variables })\n }),\n UpdateCategoryAdmin: build.mutation({\n query: (variables) => ({ document: UpdateCategoryAdminDocument, variables })\n }),\n assignUnAssignDiscussionForumThreadToInternalUser: build.mutation({\n query: (variables) => ({ document: AssignUnAssignDiscussionForumThreadToInternalUserDocument, variables })\n }),\n }),\n});\n\nexport { injectedRtkApi as api };\nexport const { useGetCategoryAndPriorityListQuery, useLazyGetCategoryAndPriorityListQuery, useGetThreadListQuery, useLazyGetThreadListQuery, useGetThreadsQuery, useLazyGetThreadsQuery, useGetPriorityQuery, useLazyGetPriorityQuery, useGetThreadSubjectQuery, useLazyGetThreadSubjectQuery, useGetThreadChatQuery, useLazyGetThreadChatQuery, useGetChatItemQuery, useLazyGetChatItemQuery, useGetCategoryAndPriorityIdListQuery, useLazyGetCategoryAndPriorityIdListQuery, useGetCategoryQuery, useLazyGetCategoryQuery, useGetPrioritiesQuery, useLazyGetPrioritiesQuery, useGetParentCategoriesAndPrioritiesListQuery, useLazyGetParentCategoriesAndPrioritiesListQuery, useCreatePriorityAdminMutation, useUpdatePriorityAdminMutation, useCreateCategoryAdminMutation, useUpdateCategoryAdminMutation, useAssignUnAssignDiscussionForumThreadToInternalUserMutation } = injectedRtkApi;\n\n","import { api as generatedApi } from \"./discussionForum.generated\"\n\nexport const api = generatedApi.enhanceEndpoints({\n addTagTypes: [\n \"CategoryAndPriority\",\n \"ThreadList\",\n \"ThreadChat\",\n \"Thread\",\n \"Priority\",\n ],\n endpoints: {\n GetCategoryAndPriorityList: {\n providesTags: () => [{ type: \"CategoryAndPriority\", id: \"LIST\" }],\n },\n GetThreadList: {\n providesTags: () => [{ type: \"ThreadList\", id: \"LIST\" }],\n },\n GetThreads: {\n providesTags: () => [{ type: \"ThreadList\", id: \"LIST\" }],\n },\n GetPriority: {\n providesTags: () => [{ type: \"Priority\", id: \"LIST\" }],\n },\n GetThreadChat: {\n providesTags: () => [{ type: \"ThreadChat\", id: \"LIST\" }],\n },\n GetChatItem: {\n providesTags: (result, error, arg) => [\n { type: \"ThreadChat\", id: arg.thread_id },\n ],\n },\n GetThreadSubject: {\n providesTags: (result, error, arg) => [\n { type: \"ThreadList\", id: arg.id },\n ],\n },\n GetCategoryAndPriorityIdList: {\n providesTags: () => [{ type: \"CategoryAndPriority\", id: \"IDS\" }],\n },\n GetCategory: {\n providesTags: (_, __, arg) => [\n { type: \"Category\", id: arg?.category_name },\n ],\n },\n GetPriorities: {\n providesTags: () => [{ type: \"Priority\", id: \"IDS\" }],\n },\n CreatePriorityAdmin: {\n invalidatesTags: () => [{ type: \"CategoryAndPriority\", id: \"LIST\" }],\n },\n UpdatePriorityAdmin: {\n invalidatesTags: () => [{ type: \"CategoryAndPriority\", id: \"LIST\" }],\n },\n CreateCategoryAdmin: {\n invalidatesTags: () => [{ type: \"CategoryAndPriority\", id: \"LIST\" }],\n },\n UpdateCategoryAdmin: {\n invalidatesTags: () => [{ type: \"CategoryAndPriority\", id: \"LIST\" }],\n },\n assignUnAssignDiscussionForumThreadToInternalUser: {\n invalidatesTags: () => [{ type: \"ThreadList\", id: \"LIST\" }],\n },\n },\n})\n\nexport const {\n useGetCategoryAndPriorityListQuery,\n useGetThreadListQuery,\n useGetThreadChatQuery,\n useGetChatItemQuery,\n useCreatePriorityAdminMutation,\n useUpdatePriorityAdminMutation,\n useCreateCategoryAdminMutation,\n useUpdateCategoryAdminMutation,\n useGetPriorityQuery,\n useGetThreadsQuery,\n useGetCategoryAndPriorityIdListQuery,\n useGetParentCategoriesAndPrioritiesListQuery,\n useGetCategoryQuery,\n useGetPrioritiesQuery,\n useAssignUnAssignDiscussionForumThreadToInternalUserMutation,\n} = api\n\nexport const { GetThreadSubject } = api.endpoints\n","import { lazy } from \"react\"\nimport { LoaderFunctionArgs, RouteObject } from \"react-router-dom\"\nimport { GetThreadSubject } from \"@/features/discussionForum/discussionForum\"\nimport { store } from \"@/app/store\"\nimport i18next from \"i18next\"\n\nconst ThreadChatList = lazy(\n () => import(\"@/pages/DiscussionForum/ThreadChat/ThreadChat\"),\n)\n\nexport type ThreadParam = {\n threadSubject: string\n}\n\nconst route: RouteObject = {\n path: \"/discussion-forum/:threadId\",\n handle: {\n crumb: (data: string) =>\n data ?? i18next.t(\"label.unknownThread\", { ns: \"discussionForum\" }),\n },\n loader: async ({ params }: LoaderFunctionArgs) => {\n let title = null\n if (!isNaN(params.threadId)) {\n const parsedParams = { id: parseInt(params.threadId) }\n const getter = store.dispatch(GetThreadSubject.initiate(parsedParams))\n await getter\n const response = GetThreadSubject.select(parsedParams)(store.getState())\n\n if (\n (response.data?.discussion_forum_thread?.length ?? 0) > 0 &&\n response.data!.discussion_forum_thread![0].subject\n ) {\n title = response.data!.discussion_forum_thread![0].subject\n\n getter.unsubscribe()\n }\n return title\n }\n },\n children: [{ index: true, element: }],\n}\n\nexport default route\n","import { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\nimport createThreadRoute from \"./CreateThread/route\"\nimport ThreadChatRoute from \"./ThreadChat/route\"\nimport ProtectedRoute from \"@/components/ProtectedRoute\"\nimport { hasModuleRoutePermission } from \"@/util/permissions\"\nimport i18next from \"i18next\"\n\nconst DiscussionForum = lazy(\n () => import(\"@/pages/DiscussionForum/DiscussionForum\"),\n)\nconst DiscussionForumIndex = lazy(\n () => import(\"@/pages/DiscussionForum/DiscussionForumIndex\"),\n)\n\nconst route: RouteObject = {\n path: \"/discussion-forum\",\n element: (\n \n \n \n ),\n handle: {\n pageTitle: () => i18next.t(\"docTitle\", { ns: \"discussionForum\" }),\n title: () => i18next.t(\"pageTitle\", { ns: \"discussionForum\" }),\n crumb: () => i18next.t(\"pageTitle\", { ns: \"discussionForum\" }),\n },\n children: [\n { index: true, element: },\n createThreadRoute,\n ThreadChatRoute,\n ],\n}\n\nexport default route\n","import ProtectedRoute from \"@/components/ProtectedRoute\"\nimport i18next from \"i18next\"\nimport { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\n\nconst MyOrganisation = lazy(\n () => import(\"@/pages/MyOrganisation/MyOrganisation\"),\n)\n\nconst route: RouteObject = {\n path: \"/organisation\",\n element: (\n \n auth.userType === \"external_admin\" ||\n auth.permissionModules.includes(\"organisation\")\n }\n redirectTo=\"/\"\n >\n \n \n ),\n handle: {\n pageTitle: () =>\n `${i18next.t(\"pageTitle.myOrganisationPage\", {\n ns: \"organisation\",\n })} - ${i18next.t(\"label.hitseeker\", { ns: \"common\" })}`,\n title: () =>\n i18next.t(\"pageTitle.myOrganisationPage\", {\n ns: \"organisation\",\n }),\n crumb: () =>\n i18next.t(\"pageTitle.myOrganisationPage\", {\n ns: \"organisation\",\n }),\n },\n}\n\nexport default route\n","import ProtectedRoute from \"@/components/ProtectedRoute\"\nimport { hasInternalModuleRoutePermission } from \"@/util/permissions\"\nimport i18next from \"i18next\"\nimport { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\n\nconst AllOrganisations = lazy(\n () => import(\"@/pages/AllOrganisations/AllOrganisations\"),\n)\n\nconst route: RouteObject = {\n path: \"/organisations\",\n element: (\n \n \n \n ),\n handle: {\n pageTitle: () =>\n `${i18next.t(\"pageTitle.organisationsPage\", {\n ns: \"organisation\",\n })} - ${i18next.t(\"label.hitseeker\", { ns: \"common\" })}`,\n title: () =>\n i18next.t(\"pageTitle.organisationsPage\", {\n ns: \"organisation\",\n }),\n crumb: () =>\n i18next.t(\"pageTitle.organisationsPage\", {\n ns: \"organisation\",\n }),\n },\n}\n\nexport default route\n","import ProtectedRoute from \"@/components/ProtectedRoute\"\nimport { RouteObject } from \"react-router-dom\"\nimport { lazy } from \"react\"\nimport i18next from \"i18next\"\nimport { hasInternalModuleRoutePermission } from \"@/util/permissions\"\n\nconst AllUsers = lazy(() => import(\"@/pages/AllUsers/AllUsers\"))\n\nconst route: RouteObject = {\n path: \"/users\",\n element: (\n \n \n \n ),\n handle: {\n pageTitle: () =>\n `${i18next.t(\"pageTitle.manageUsersPage\", {\n ns: \"organisation\",\n })} - ${i18next.t(\"label.hitseeker\", { ns: \"common\" })}`,\n title: () =>\n i18next.t(\"pageTitle.manageUsersPage\", {\n ns: \"organisation\",\n }),\n crumb: () =>\n i18next.t(\"pageTitle.manageUsersPage\", {\n ns: \"organisation\",\n }),\n },\n}\n\nexport default route\n","import ProtectedRoute from \"@/components/ProtectedRoute\"\nimport { RouteObject } from \"react-router-dom\"\nimport { lazy } from \"react\"\nimport i18next from \"i18next\"\nimport { hasInternalModuleRoutePermission } from \"@/util/permissions\"\n\nconst AllUsers = lazy(() => import(\"@/pages/InternalUsers/InternalUsers\"))\n\nconst route: RouteObject = {\n path: \"/internal-users\",\n element: (\n \n \n \n ),\n handle: {\n pageTitle: () =>\n `${i18next.t(\"pageTitle.internalUsers\", {\n ns: \"organisation\",\n })} - ${i18next.t(\"label.hitseeker\", { ns: \"common\" })}`,\n title: () =>\n i18next.t(\"pageTitle.internalUsers\", {\n ns: \"organisation\",\n }),\n crumb: () =>\n i18next.t(\"pageTitle.internalUsers\", {\n ns: \"organisation\",\n }),\n },\n}\n\nexport default route\n","import i18next from \"i18next\"\nimport { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\n\nconst Profile = lazy(() => import(\"@/pages/Profile/Profile\"))\n\nconst route: RouteObject = {\n path: \"/profile\",\n element: ,\n handle: {\n pageTitle: () =>\n `${i18next.t(\"pageTitle.profilePage\", {\n ns: \"organisation\",\n })} - ${i18next.t(\"label.hitseeker\", { ns: \"common\" })}`,\n title: () =>\n i18next.t(\"pageTitle.profilePage\", {\n ns: \"organisation\",\n }),\n crumb: () =>\n i18next.t(\"pageTitle.profilePage\", {\n ns: \"organisation\",\n }),\n },\n}\n\nexport default route\n","/* eslint-disable */ /**\n *\n * THIS FILE IS AUTOGENERATED, DO NOT EDIT IT!\n *\n * instead, edit one of the `.graphql` files in this project and run\n *\n * npm run graphql-codegen\n *\n * for this file to be re-created\n */\n\nimport * as Types from '../../app/services/graphql/types.generated';\n\nimport { api } from '@/app/services/graphql/api';\nexport type GetMainFolderIdQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type GetMainFolderIdQuery = { __typename?: 'Query', folder?: Array<{ __typename?: 'FolderOutputType', id: string, name: string }> };\n\nexport type GetFolderListQueryVariables = Types.Exact<{\n parent_folder_id: Array> | Types.InputMaybe;\n}>;\n\n\nexport type GetFolderListQuery = { __typename?: 'Query', folder?: Array<{ __typename?: 'FolderOutputType', name: string, parent_folder_id?: number, id: string, created_at: any, updated_at: any, file: Array<{ __typename?: 'FileOutputType', id: string, size: number }> }> };\n\nexport type GetFolderTitleQueryVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type GetFolderTitleQuery = { __typename?: 'Query', folder?: Array<{ __typename?: 'FolderOutputType', id: string, name: string, parent_folder_id?: number }> };\n\nexport type GetFileListQueryVariables = Types.Exact<{\n page_size?: Types.InputMaybe;\n folder_id?: Types.InputMaybe> | Types.InputMaybe>;\n}>;\n\n\nexport type GetFileListQuery = { __typename?: 'Query', file?: Array<{ __typename?: 'FileOutputType', name: string, file_type: string, content_type: string, size: number, folder_id?: number, id: string, created_at: any, folder?: { __typename?: 'FolderOutputType', id: string, name: string } }> };\n\nexport type GetStorageSpaceQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type GetStorageSpaceQuery = { __typename?: 'Query', snapshot?: Array<{ __typename?: 'SnapshotOutputType', file_type: string, size: number, id: string, created_at: any, updated_at: any, percent_usage?: number }>, organisations?: Array<{ __typename?: 'OrganisationOutputType', size_threshold_per_organisation?: number }> };\n\nexport type FolderAndFileByIdQueryVariables = Types.Exact<{\n parent_folder_id?: Types.InputMaybe;\n}>;\n\n\nexport type FolderAndFileByIdQuery = { __typename?: 'Query', folder?: Array<{ __typename?: 'FolderOutputType', name: string, game_id?: number, organisation_id: number, created_by?: number, parent_folder_id?: number, id: string, created_at: any, updated_at: any, file: Array<{ __typename?: 'FileOutputType', id: string, size: number }> }>, file?: Array<{ __typename?: 'FileOutputType', name: string, file_type: string, content_type: string, size: number, organisation_id: number, created_by: number, folder_id?: number, id: string, created_at: any, updated_at: any }> };\n\nexport type GetAdminRootFolderListQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type GetAdminRootFolderListQuery = { __typename?: 'Query', folder?: Array<{ __typename?: 'FolderOutputType', name: string, game_id?: number, organisation_id: number, created_by?: number, parent_folder_id?: number, id: string, created_at: any, updated_at: any, organisation?: { __typename?: 'OrganisationOutputType', id: string, size_threshold_per_organisation?: number } }> };\n\nexport type SearchFolderAndFileQueryVariables = Types.Exact<{\n search_name?: Types.InputMaybe;\n}>;\n\n\nexport type SearchFolderAndFileQuery = { __typename?: 'Query', folder?: Array<{ __typename?: 'FolderOutputType', name: string, game_id?: number, organisation_id: number, created_by?: number, parent_folder_id?: number, id: string, created_at: any, updated_at: any, organisation?: { __typename?: 'OrganisationOutputType', id: string, size_threshold_per_organisation?: number } }>, file?: Array<{ __typename?: 'FileOutputType', name: string, file_type: string, content_type: string, size: number, organisation_id: number, created_by: number, folder_id?: number, id: string, created_at: any, updated_at: any }> };\n\n\nexport const GetMainFolderIdDocument = `\n query GetMainFolderId {\n folder(filters: {parent_folder_id: null}) {\n id\n name\n }\n}\n `;\nexport const GetFolderListDocument = `\n query GetFolderList($parent_folder_id: [Int]!) {\n folder(\n filters: {parent_folder_id: $parent_folder_id}\n sort_by: \"updated_at\"\n sort_dir: \"desc\"\n page_size: 3\n ) {\n name\n parent_folder_id\n id\n created_at\n updated_at\n file {\n id\n size\n }\n }\n}\n `;\nexport const GetFolderTitleDocument = `\n query GetFolderTitle($id: Int!) {\n folder(filters: {id: [$id]}) {\n id\n name\n parent_folder_id\n }\n}\n `;\nexport const GetFileListDocument = `\n query GetFileList($page_size: Int, $folder_id: [Int]) {\n file(\n filters: {folder_id: $folder_id}\n sort_by: \"created_at\"\n sort_dir: \"desc\"\n page_size: $page_size\n ) {\n name\n file_type\n content_type\n size\n folder_id\n id\n created_at\n folder {\n id\n name\n }\n }\n}\n `;\nexport const GetStorageSpaceDocument = `\n query GetStorageSpace {\n snapshot {\n file_type\n size\n id\n created_at\n updated_at\n percent_usage\n }\n organisations {\n size_threshold_per_organisation\n }\n}\n `;\nexport const FolderAndFileByIdDocument = `\n query FolderAndFileById($parent_folder_id: Int) {\n folder(\n filters: {parent_folder_id: [$parent_folder_id]}\n sort_by: \"updated_at\"\n sort_dir: \"desc\"\n ) {\n name\n game_id\n organisation_id\n created_by\n parent_folder_id\n id\n created_at\n updated_at\n file {\n id\n size\n }\n }\n file(filters: {folder_id: [$parent_folder_id]}) {\n name\n file_type\n content_type\n size\n organisation_id\n created_by\n folder_id\n id\n created_at\n updated_at\n }\n}\n `;\nexport const GetAdminRootFolderListDocument = `\n query GetAdminRootFolderList {\n folder(\n filters: {parent_folder_id: null}\n sort_by: \"updated_at\"\n sort_dir: \"desc\"\n ) {\n name\n game_id\n organisation_id\n created_by\n parent_folder_id\n id\n created_at\n updated_at\n organisation {\n id\n size_threshold_per_organisation\n }\n }\n}\n `;\nexport const SearchFolderAndFileDocument = `\n query SearchFolderAndFile($search_name: String) {\n folder(\n filters: {search_name: $search_name}\n sort_by: \"updated_at\"\n sort_dir: \"desc\"\n ) {\n name\n game_id\n organisation_id\n created_by\n parent_folder_id\n id\n created_at\n updated_at\n organisation {\n id\n size_threshold_per_organisation\n }\n }\n file(filters: {search_name: $search_name}) {\n name\n file_type\n content_type\n size\n organisation_id\n created_by\n folder_id\n id\n created_at\n updated_at\n }\n}\n `;\n\nconst injectedRtkApi = api.injectEndpoints({\n endpoints: (build) => ({\n GetMainFolderId: build.query({\n query: (variables) => ({ document: GetMainFolderIdDocument, variables })\n }),\n GetFolderList: build.query({\n query: (variables) => ({ document: GetFolderListDocument, variables })\n }),\n GetFolderTitle: build.query({\n query: (variables) => ({ document: GetFolderTitleDocument, variables })\n }),\n GetFileList: build.query({\n query: (variables) => ({ document: GetFileListDocument, variables })\n }),\n GetStorageSpace: build.query({\n query: (variables) => ({ document: GetStorageSpaceDocument, variables })\n }),\n FolderAndFileById: build.query({\n query: (variables) => ({ document: FolderAndFileByIdDocument, variables })\n }),\n GetAdminRootFolderList: build.query({\n query: (variables) => ({ document: GetAdminRootFolderListDocument, variables })\n }),\n SearchFolderAndFile: build.query({\n query: (variables) => ({ document: SearchFolderAndFileDocument, variables })\n }),\n }),\n});\n\nexport { injectedRtkApi as api };\nexport const { useGetMainFolderIdQuery, useLazyGetMainFolderIdQuery, useGetFolderListQuery, useLazyGetFolderListQuery, useGetFolderTitleQuery, useLazyGetFolderTitleQuery, useGetFileListQuery, useLazyGetFileListQuery, useGetStorageSpaceQuery, useLazyGetStorageSpaceQuery, useFolderAndFileByIdQuery, useLazyFolderAndFileByIdQuery, useGetAdminRootFolderListQuery, useLazyGetAdminRootFolderListQuery, useSearchFolderAndFileQuery, useLazySearchFolderAndFileQuery } = injectedRtkApi;\n\n","import { api as generatedApi } from \"./fileManagement.generated\"\n\nexport const api = generatedApi.enhanceEndpoints({\n addTagTypes: [\n \"MainFolderId\",\n \"Folder\",\n \"File\",\n \"STORAGE_SPACE\",\n \"FolderAndFile\",\n \"SearchFolderAndFile\",\n \"AdminRootFolderList\",\n ],\n endpoints: {\n GetMainFolderId: {\n providesTags: [\"MainFolderId\"],\n },\n GetFolderList: {\n providesTags: () => [{ type: \"Folder\", id: \"LIST\" }],\n },\n GetFolderTitle: {\n providesTags: (result, error, arg) => [{ type: \"Folder\", id: arg.id }],\n },\n GetFileList: {\n providesTags: () => [{ type: \"File\", id: \"LIST\" }],\n },\n GetStorageSpace: {\n providesTags: () => [{ type: \"STORAGE_SPACE\", id: \"LIST\" }],\n },\n FolderAndFileById: {\n providesTags: [\"FolderAndFile\"],\n },\n SearchFolderAndFile: {\n providesTags: [\"SearchFolderAndFile\"],\n },\n GetAdminRootFolderList: {\n providesTags: [\"AdminRootFolderList\"],\n },\n },\n})\n\nexport const {\n useGetMainFolderIdQuery,\n useGetFolderListQuery,\n useGetFolderTitleQuery,\n useGetFileListQuery,\n useGetStorageSpaceQuery,\n useFolderAndFileByIdQuery,\n useSearchFolderAndFileQuery,\n useGetAdminRootFolderListQuery,\n} = api\n\nexport const {\n GetMainFolderId,\n GetFolderList,\n GetFolderTitle,\n GetFileList,\n GetStorageSpace,\n FolderAndFileById,\n} = api.endpoints\n","import { lazy } from \"react\"\nimport { LoaderFunctionArgs, RouteObject } from \"react-router-dom\"\nimport { store } from \"@/app/store\"\nimport { GetFolderTitle } from \"@/features/fileManangement/fileManagement\"\nimport i18next from \"i18next\"\n\nconst FolderView = lazy(\n () => import(\"@/pages/FileManagement/Folder/FolderView\"),\n)\n\nexport type FolderParams = {\n folder: string\n}\nconst route: RouteObject = {\n path: \"/file-management/:folder\",\n handle: {\n crumb: (data: string) => data ?? i18next.t(\"unKnownFolder\"),\n },\n loader: async ({ params }: LoaderFunctionArgs) => {\n let title = null\n if (!isNaN(params.folder)) {\n const parsedParams = { id: parseInt(params.folder) }\n const getter = store.dispatch(GetFolderTitle.initiate(parsedParams))\n await getter\n const response = GetFolderTitle.select(parsedParams)(store.getState())\n if (\n (response.data?.folder?.length ?? 0) > 0 &&\n response.data!.folder![0].name\n ) {\n title = response.data!.folder![0].name\n\n getter.unsubscribe()\n }\n return title\n }\n },\n element: ,\n}\n\nexport default route\n","import { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\nimport ProtectedRoute from \"@/components/ProtectedRoute\"\nimport folderRoute from \"@/pages/FileManagement/Folder/route\"\nimport { hasModuleRoutePermission } from \"@/util/permissions\"\nimport i18next from \"i18next\"\n\nconst FileManagement = lazy(\n () => import(\"@/pages/FileManagement/FileManagement\"),\n)\n\nconst FileManagementIndex = lazy(\n () => import(\"@/pages/FileManagement/FileManagementIndex\"),\n)\n\nconst route: RouteObject = {\n path: \"/file-management\",\n element: (\n \n \n \n ),\n handle: {\n pageTitle: () => i18next.t(\"docTitle\", { ns: \"fileManagement\" }),\n title: () => i18next.t(\"pageTitle\", { ns: \"fileManagement\" }),\n crumb: () => i18next.t(\"pageTitle\", { ns: \"fileManagement\" }),\n },\n children: [{ index: true, element: }, folderRoute],\n}\nexport default route\n","/* eslint-disable */ /**\n *\n * THIS FILE IS AUTOGENERATED, DO NOT EDIT IT!\n *\n * instead, edit one of the `.graphql` files in this project and run\n *\n * npm run graphql-codegen\n *\n * for this file to be re-created\n */\n\nimport * as Types from '../../app/services/graphql/types.generated';\n\nimport { api } from '@/app/services/graphql/api';\nexport type GetGameQueryVariables = Types.Exact<{\n id?: Types.InputMaybe;\n organisation_id?: Types.InputMaybe;\n user_id?: Types.InputMaybe;\n sort_by?: Types.InputMaybe;\n sort_dir?: Types.InputMaybe;\n page_size?: Types.InputMaybe;\n page_no?: Types.InputMaybe;\n search?: Types.InputMaybe;\n feedback_status?: Types.InputMaybe;\n game_categories?: Types.InputMaybe> | Types.InputMaybe>;\n game_genres?: Types.InputMaybe> | Types.InputMaybe>;\n internal_fav?: Types.InputMaybe;\n internal_spam?: Types.InputMaybe;\n is_admin_reviewed?: Types.InputMaybe;\n assigned_internal_user_id?: Types.InputMaybe;\n custom_event_access?: Types.InputMaybe;\n created_at_range?: Types.InputMaybe;\n is_kwalee_sdk_validated?: Types.InputMaybe;\n}>;\n\n\nexport type GetGameQuery = { __typename?: 'Query', total_count?: number, game?: Array<{ __typename?: 'GameOutputType', id: string, name: string, user_id: number, game_categories?: string, game_genres?: string, icon_url?: string, description: string, organisation_id?: number, feedback_status: string, app_store_ratings?: number, playstore_ratings?: number, completion_percentage?: number, hs_deal_id?: string, custom_event_access: boolean, game_stage?: string, internal_spam?: boolean, internal_fav?: boolean, is_admin_reviewed: boolean, assigned_internal_user_id?: number, ios_store_link?: string, android_store_link?: string, folders: Array<{ __typename?: 'FolderOutputType', id: string }>, kwalee_sdk_key: Array<{ __typename?: 'KwaleeSdkKeysOutputType', is_kwalee_sdk_integrated: boolean, is_kwalee_sdk_validated: boolean }> }> };\n\nexport type GetFeedbackGamesListQueryVariables = Types.Exact<{\n feedback_status?: Types.InputMaybe;\n}>;\n\n\nexport type GetFeedbackGamesListQuery = { __typename?: 'Query', game?: Array<{ __typename?: 'GameOutputType', id: string, name: string, feedback_status: string }> };\n\nexport type GetGamesCountQueryVariables = Types.Exact<{\n search?: Types.InputMaybe;\n organisation_id?: Types.InputMaybe;\n game_categories?: Types.InputMaybe> | Types.InputMaybe>;\n game_genres?: Types.InputMaybe> | Types.InputMaybe>;\n internal_fav?: Types.InputMaybe;\n internal_spam?: Types.InputMaybe;\n assigned_internal_user_id?: Types.InputMaybe;\n created_at_range?: Types.InputMaybe;\n}>;\n\n\nexport type GetGamesCountQuery = { __typename?: 'Query', total_count?: number, total_feedback_requests?: number, total_active_feedbacks?: number, total_reviewed_games?: number, total_custom_event_games?: number, total_sdk_validated_games?: number };\n\nexport type GetGameDetailsQueryVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type GetGameDetailsQuery = { __typename?: 'Query', game?: Array<{ __typename?: 'GameOutputType', id: string, name: string, description: string, icon_url?: string, additional_info?: string, android_store_link?: string, ios_store_link?: string, game_media_urls?: Array, app_store_ratings?: number, playstore_ratings?: number, hs_deal_id?: string, organisation_id?: number, status?: string, game_stage?: string, feedback_status: string, game_categories?: string, game_genres?: string, custom_event_access: boolean, assigned_internal_user_id?: number, folders: Array<{ __typename?: 'FolderOutputType', id: string }>, kwalee_sdk_key: Array<{ __typename?: 'KwaleeSdkKeysOutputType', is_kwalee_sdk_integrated: boolean, is_kwalee_sdk_validated: boolean }> }> };\n\nexport type GetLatestGamesQueryVariables = Types.Exact<{\n page_size?: Types.InputMaybe;\n}>;\n\n\nexport type GetLatestGamesQuery = { __typename?: 'Query', game?: Array<{ __typename?: 'AllGamesOutputType', id?: number, name?: string, icon_url?: string, description?: string, organisation_id?: number }> };\n\nexport type GetGameFeedbackAreasQueryVariables = Types.Exact<{\n game_id?: Types.InputMaybe;\n}>;\n\n\nexport type GetGameFeedbackAreasQuery = { __typename?: 'Query', feedback_area?: Array<{ __typename?: 'FeedbackAreaOutputType', id: string, feedback_area_name: string }>, all_feedback_area?: Array<{ __typename?: 'FeedbackAreaOutputType', id: string, feedback_area_name: string }> };\n\nexport type GetGameFeedbackThreadsQueryVariables = Types.Exact<{\n game_id: Types.Scalars['Int']['input'];\n sort_by?: Types.InputMaybe;\n sort_dir?: Types.InputMaybe;\n page_size?: Types.InputMaybe;\n}>;\n\n\nexport type GetGameFeedbackThreadsQuery = { __typename?: 'Query', feedback_thread?: Array<{ __typename?: 'FeedbackThreadOutputType', id: string, text: string, title: string, files?: string, created_at: any, feedback_area_id: number }> };\n\nexport type GetGameFeedbackChatQueryVariables = Types.Exact<{\n thread_id: Types.Scalars['Int']['input'];\n created_at_range?: Types.InputMaybe;\n page_size?: Types.InputMaybe;\n page_no?: Types.InputMaybe;\n sort_by?: Types.InputMaybe;\n sort_dir?: Types.InputMaybe;\n}>;\n\n\nexport type GetGameFeedbackChatQuery = { __typename?: 'Query', feedback_chat_item?: Array<{ __typename?: 'FeedbackChatItemOutputType', id: string, text: string, files?: string, thread_id: number, created_at: any, users?: { __typename?: 'UserOutputType', id: string, name: string, designation?: string, profile_image?: string, user_type: string } }> };\n\nexport type GetGameTitleQueryVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type GetGameTitleQuery = { __typename?: 'Query', game?: Array<{ __typename?: 'GameOutputType', id: string, name: string, guid: string }> };\n\nexport type GetGameListFilterQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type GetGameListFilterQuery = { __typename?: 'Query', game?: Array<{ __typename?: 'GameOutputType', icon_url?: string, name: string, id: string, kwalee_sdk_key: Array<{ __typename?: 'KwaleeSdkKeysOutputType', is_kwalee_sdk_validated: boolean }> }> };\n\nexport type GetGameListWithStoreUrlQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type GetGameListWithStoreUrlQuery = { __typename?: 'Query', game?: Array<{ __typename?: 'GameOutputType', id: string, icon_url?: string, name: string, ios_store_link?: string, android_store_link?: string }> };\n\nexport type GetGameTagsQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type GetGameTagsQuery = { __typename?: 'Query', game_tags?: Array<{ __typename?: 'GameTagsOutputType', name: string, type: string, id: string }> };\n\nexport type GetGameStagesQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type GetGameStagesQuery = { __typename?: 'Query', game_stage?: Array<{ __typename?: 'GameStageOutputType', id: string, stage_name: string, hs_stage_id?: string }> };\n\nexport type GetGamesGridListQueryVariables = Types.Exact<{\n assigned_internal_user_id?: Types.InputMaybe;\n internal_spam?: Types.InputMaybe;\n}>;\n\n\nexport type GetGamesGridListQuery = { __typename?: 'Query', game?: Array<{ __typename?: 'GameOutputType', updated_at: any, id: string, name: string, icon_url?: string, game_stage?: string, assigned_internal_user_id?: number, ios_store_link?: string, android_store_link?: string, organisation?: { __typename?: 'OrganisationOutputType', name: string } }> };\n\nexport type GetGameWithByteBrewQueryVariables = Types.Exact<{\n id?: Types.InputMaybe;\n}>;\n\n\nexport type GetGameWithByteBrewQuery = { __typename?: 'Query', game?: Array<{ __typename?: 'GameOutputType', id: string, name: string, icon_url?: string, description: string, bytebrew_games: Array<{ __typename?: 'BytebrewGameQuery', game_id: number, game_title: string, bundle_identifier?: string, game_name: string, genre?: Array, sub_genre?: string, platform: string, game_description?: string, app_shared_secret?: string, ios_app_id?: string, google_license_key?: string, bytebrew_game_id?: string, bytebrew_sdk_key?: string }> }> };\n\nexport type GetGameCreativeManagementQueryVariables = Types.Exact<{\n id?: Types.InputMaybe;\n internal_spam?: Types.InputMaybe;\n}>;\n\n\nexport type GetGameCreativeManagementQuery = { __typename?: 'Query', game?: Array<{ __typename?: 'GameOutputType', id: string, name: string, icon_url?: string, organisation?: { __typename?: 'OrganisationOutputType', name: string } }> };\n\nexport type GetDashboardMetricCountQueryVariables = Types.Exact<{\n dateRange?: Types.InputMaybe;\n}>;\n\n\nexport type GetDashboardMetricCountQuery = { __typename?: 'Query', no_of_games?: number, no_of_organisations?: number, no_of_sdk?: number };\n\nexport type GetKwaleeSdkGameIdQueryVariables = Types.Exact<{\n game_id?: Types.InputMaybe;\n}>;\n\n\nexport type GetKwaleeSdkGameIdQuery = { __typename?: 'Query', kwalee_sdk_keys?: Array<{ __typename?: 'KwaleeSdkKeysOutputType', id: string, name?: string, is_kwalee_sdk_integrated: boolean, is_kwalee_sdk_validated: boolean }> };\n\n\nexport const GetGameDocument = `\n query GetGame($id: Int, $organisation_id: Int, $user_id: Int, $sort_by: String, $sort_dir: String, $page_size: Int, $page_no: Int, $search: String, $feedback_status: String, $game_categories: [String], $game_genres: [String], $internal_fav: Boolean, $internal_spam: Boolean, $is_admin_reviewed: Boolean, $assigned_internal_user_id: Int, $custom_event_access: Boolean, $created_at_range: String, $is_kwalee_sdk_validated: Boolean) {\n game(\n filters: {id: $id, organisation_id: $organisation_id, user_id: $user_id, search_name: $search, feedback_status: $feedback_status, game_categories: $game_categories, game_genres: $game_genres, internal_fav: $internal_fav, internal_spam: $internal_spam, is_admin_reviewed: $is_admin_reviewed, assigned_internal_user_id: $assigned_internal_user_id, custom_event_access: $custom_event_access, created_at_range: $created_at_range, is_kwalee_sdk_validated: $is_kwalee_sdk_validated}\n sort_by: $sort_by\n sort_dir: $sort_dir\n page_size: $page_size\n page_no: $page_no\n ) {\n id\n name\n user_id\n game_categories\n game_genres\n icon_url\n description\n organisation_id\n feedback_status\n app_store_ratings\n playstore_ratings\n completion_percentage\n hs_deal_id\n custom_event_access\n game_stage\n folders {\n id\n }\n kwalee_sdk_key {\n is_kwalee_sdk_integrated\n is_kwalee_sdk_validated\n }\n internal_spam\n internal_fav\n is_admin_reviewed\n assigned_internal_user_id\n ios_store_link\n android_store_link\n }\n total_count: game_total_objects\n}\n `;\nexport const GetFeedbackGamesListDocument = `\n query GetFeedbackGamesList($feedback_status: String) {\n game(filters: {feedback_status: $feedback_status}) {\n id\n name\n feedback_status\n }\n}\n `;\nexport const GetGamesCountDocument = `\n query GetGamesCount($search: String, $organisation_id: Int, $game_categories: [String], $game_genres: [String], $internal_fav: Boolean, $internal_spam: Boolean, $assigned_internal_user_id: Int, $created_at_range: String) {\n total_count: game_total_objects(\n filters: {search_name: $search, organisation_id: $organisation_id, game_categories: $game_categories, game_genres: $game_genres, internal_fav: $internal_fav, internal_spam: $internal_spam, assigned_internal_user_id: $assigned_internal_user_id, created_at_range: $created_at_range}\n )\n total_feedback_requests: game_total_objects(\n filters: {search_name: $search, organisation_id: $organisation_id, feedback_status: \"requested\", game_categories: $game_categories, game_genres: $game_genres, internal_fav: $internal_fav, internal_spam: $internal_spam, assigned_internal_user_id: $assigned_internal_user_id, created_at_range: $created_at_range}\n )\n total_active_feedbacks: game_total_objects(\n filters: {search_name: $search, organisation_id: $organisation_id, feedback_status: \"active\", game_categories: $game_categories, game_genres: $game_genres, internal_fav: $internal_fav, internal_spam: $internal_spam, assigned_internal_user_id: $assigned_internal_user_id, created_at_range: $created_at_range}\n )\n total_reviewed_games: game_total_objects(\n filters: {search_name: $search, organisation_id: $organisation_id, game_categories: $game_categories, game_genres: $game_genres, internal_fav: $internal_fav, internal_spam: $internal_spam, is_admin_reviewed: true, assigned_internal_user_id: $assigned_internal_user_id, created_at_range: $created_at_range}\n )\n total_custom_event_games: game_total_objects(\n filters: {search_name: $search, organisation_id: $organisation_id, game_categories: $game_categories, game_genres: $game_genres, internal_fav: $internal_fav, internal_spam: $internal_spam, custom_event_access: true, assigned_internal_user_id: $assigned_internal_user_id, created_at_range: $created_at_range}\n )\n total_sdk_validated_games: game_total_objects(\n filters: {search_name: $search, organisation_id: $organisation_id, game_categories: $game_categories, game_genres: $game_genres, internal_fav: $internal_fav, internal_spam: $internal_spam, assigned_internal_user_id: $assigned_internal_user_id, created_at_range: $created_at_range, is_kwalee_sdk_validated: true}\n )\n}\n `;\nexport const GetGameDetailsDocument = `\n query GetGameDetails($id: Int!) {\n game(filters: {id: $id}) {\n id\n name\n description\n icon_url\n additional_info\n android_store_link\n ios_store_link\n game_media_urls\n app_store_ratings\n playstore_ratings\n hs_deal_id\n organisation_id\n status\n game_stage\n feedback_status\n game_categories\n game_genres\n custom_event_access\n assigned_internal_user_id\n folders {\n id\n }\n kwalee_sdk_key {\n is_kwalee_sdk_integrated\n is_kwalee_sdk_validated\n }\n }\n}\n `;\nexport const GetLatestGamesDocument = `\n query GetLatestGames($page_size: Int) {\n game: all_games(sort_by: \"created_at\", sort_dir: \"desc\", page_size: $page_size) {\n id\n name\n icon_url\n description\n organisation_id\n }\n}\n `;\nexport const GetGameFeedbackAreasDocument = `\n query GetGameFeedbackAreas($game_id: Int) {\n feedback_area(game_id: $game_id) {\n id\n feedback_area_name\n }\n all_feedback_area: feedback_area {\n id\n feedback_area_name\n }\n}\n `;\nexport const GetGameFeedbackThreadsDocument = `\n query GetGameFeedbackThreads($game_id: Int!, $sort_by: String, $sort_dir: String, $page_size: Int) {\n feedback_thread(\n game_id: $game_id\n sort_by: $sort_by\n sort_dir: $sort_dir\n page_size: $page_size\n ) {\n id\n text\n title\n files\n created_at\n feedback_area_id\n }\n}\n `;\nexport const GetGameFeedbackChatDocument = `\n query GetGameFeedbackChat($thread_id: Int!, $created_at_range: String, $page_size: Int, $page_no: Int, $sort_by: String, $sort_dir: String) {\n feedback_chat_item(\n filters: {thread_id: $thread_id, created_at_range: $created_at_range}\n page_size: $page_size\n page_no: $page_no\n sort_by: $sort_by\n sort_dir: $sort_dir\n ) {\n id\n text\n files\n thread_id\n created_at\n users {\n id\n name\n designation\n profile_image\n user_type\n }\n }\n}\n `;\nexport const GetGameTitleDocument = `\n query GetGameTitle($id: Int!) {\n game(filters: {id: $id}) {\n id\n name\n guid\n }\n}\n `;\nexport const GetGameListFilterDocument = `\n query GetGameListFilter {\n game(sort_dir: \"asc\", sort_by: \"name\") {\n icon_url\n name\n id\n kwalee_sdk_key {\n is_kwalee_sdk_validated\n }\n }\n}\n `;\nexport const GetGameListWithStoreUrlDocument = `\n query GetGameListWithStoreUrl {\n game(sort_dir: \"asc\", sort_by: \"name\") {\n id\n icon_url\n name\n ios_store_link\n android_store_link\n }\n}\n `;\nexport const GetGameTagsDocument = `\n query GetGameTags {\n game_tags {\n name\n type\n id\n }\n}\n `;\nexport const GetGameStagesDocument = `\n query GetGameStages {\n game_stage {\n id\n stage_name\n hs_stage_id\n }\n}\n `;\nexport const GetGamesGridListDocument = `\n query GetGamesGridList($assigned_internal_user_id: Int, $internal_spam: Boolean) {\n game(\n sort_dir: \"desc\"\n sort_by: \"updated_at\"\n filters: {assigned_internal_user_id: $assigned_internal_user_id, internal_spam: $internal_spam}\n ) {\n updated_at\n id\n name\n icon_url\n game_stage\n assigned_internal_user_id\n ios_store_link\n android_store_link\n organisation {\n name\n }\n }\n}\n `;\nexport const GetGameWithByteBrewDocument = `\n query GetGameWithByteBrew($id: Int) {\n game(filters: {id: $id}, page_size: 1) {\n id\n name\n icon_url\n description\n bytebrew_games {\n game_id\n game_title\n bundle_identifier\n game_name\n genre\n sub_genre\n platform\n game_description\n app_shared_secret\n ios_app_id\n google_license_key\n bytebrew_game_id\n bytebrew_sdk_key\n }\n }\n}\n `;\nexport const GetGameCreativeManagementDocument = `\n query GetGameCreativeManagement($id: Int, $internal_spam: Boolean) {\n game(filters: {id: $id, internal_spam: $internal_spam}) {\n id\n name\n icon_url\n organisation {\n name\n }\n }\n}\n `;\nexport const GetDashboardMetricCountDocument = `\n query GetDashboardMetricCount($dateRange: String) {\n no_of_games: game_total_objects(filters: {created_at_range: $dateRange})\n no_of_organisations: organisation_total_objects(\n filters: {created_at_range: $dateRange}\n )\n no_of_sdk: game_total_objects(filters: {is_kwalee_sdk_validated: true})\n}\n `;\nexport const GetKwaleeSdkGameIdDocument = `\n query GetKwaleeSdkGameId($game_id: Int) {\n kwalee_sdk_keys(filters: {game_id: $game_id}) {\n id\n name\n is_kwalee_sdk_integrated\n is_kwalee_sdk_validated\n }\n}\n `;\n\nconst injectedRtkApi = api.injectEndpoints({\n endpoints: (build) => ({\n GetGame: build.query({\n query: (variables) => ({ document: GetGameDocument, variables })\n }),\n GetFeedbackGamesList: build.query({\n query: (variables) => ({ document: GetFeedbackGamesListDocument, variables })\n }),\n GetGamesCount: build.query({\n query: (variables) => ({ document: GetGamesCountDocument, variables })\n }),\n GetGameDetails: build.query({\n query: (variables) => ({ document: GetGameDetailsDocument, variables })\n }),\n GetLatestGames: build.query({\n query: (variables) => ({ document: GetLatestGamesDocument, variables })\n }),\n GetGameFeedbackAreas: build.query({\n query: (variables) => ({ document: GetGameFeedbackAreasDocument, variables })\n }),\n GetGameFeedbackThreads: build.query({\n query: (variables) => ({ document: GetGameFeedbackThreadsDocument, variables })\n }),\n GetGameFeedbackChat: build.query({\n query: (variables) => ({ document: GetGameFeedbackChatDocument, variables })\n }),\n GetGameTitle: build.query({\n query: (variables) => ({ document: GetGameTitleDocument, variables })\n }),\n GetGameListFilter: build.query({\n query: (variables) => ({ document: GetGameListFilterDocument, variables })\n }),\n GetGameListWithStoreUrl: build.query({\n query: (variables) => ({ document: GetGameListWithStoreUrlDocument, variables })\n }),\n GetGameTags: build.query({\n query: (variables) => ({ document: GetGameTagsDocument, variables })\n }),\n GetGameStages: build.query({\n query: (variables) => ({ document: GetGameStagesDocument, variables })\n }),\n GetGamesGridList: build.query({\n query: (variables) => ({ document: GetGamesGridListDocument, variables })\n }),\n GetGameWithByteBrew: build.query({\n query: (variables) => ({ document: GetGameWithByteBrewDocument, variables })\n }),\n GetGameCreativeManagement: build.query({\n query: (variables) => ({ document: GetGameCreativeManagementDocument, variables })\n }),\n GetDashboardMetricCount: build.query({\n query: (variables) => ({ document: GetDashboardMetricCountDocument, variables })\n }),\n GetKwaleeSdkGameId: build.query({\n query: (variables) => ({ document: GetKwaleeSdkGameIdDocument, variables })\n }),\n }),\n});\n\nexport { injectedRtkApi as api };\nexport const { useGetGameQuery, useLazyGetGameQuery, useGetFeedbackGamesListQuery, useLazyGetFeedbackGamesListQuery, useGetGamesCountQuery, useLazyGetGamesCountQuery, useGetGameDetailsQuery, useLazyGetGameDetailsQuery, useGetLatestGamesQuery, useLazyGetLatestGamesQuery, useGetGameFeedbackAreasQuery, useLazyGetGameFeedbackAreasQuery, useGetGameFeedbackThreadsQuery, useLazyGetGameFeedbackThreadsQuery, useGetGameFeedbackChatQuery, useLazyGetGameFeedbackChatQuery, useGetGameTitleQuery, useLazyGetGameTitleQuery, useGetGameListFilterQuery, useLazyGetGameListFilterQuery, useGetGameListWithStoreUrlQuery, useLazyGetGameListWithStoreUrlQuery, useGetGameTagsQuery, useLazyGetGameTagsQuery, useGetGameStagesQuery, useLazyGetGameStagesQuery, useGetGamesGridListQuery, useLazyGetGamesGridListQuery, useGetGameWithByteBrewQuery, useLazyGetGameWithByteBrewQuery, useGetGameCreativeManagementQuery, useLazyGetGameCreativeManagementQuery, useGetDashboardMetricCountQuery, useLazyGetDashboardMetricCountQuery, useGetKwaleeSdkGameIdQuery, useLazyGetKwaleeSdkGameIdQuery } = injectedRtkApi;\n\n","import { GetGameFeedbackChatQuery, api as generatedApi } from \"./Game.generated\"\n\nexport const api = generatedApi.enhanceEndpoints({\n addTagTypes: [\n \"Game\",\n \"FeedbackAreas\",\n \"FeedbackThread\",\n \"FeedbackChat\",\n \"GameList\",\n \"GameStages\",\n ],\n endpoints: {\n GetGame: {\n providesTags: () => [{ type: \"Game\", id: \"LIST\" }],\n },\n\n GetFeedbackGamesList: {\n providesTags: () => [{ type: \"Game\", id: \"LIST\" }],\n },\n\n GetGameDetails: {\n providesTags: (_, __, arg) => [{ type: \"Game\", id: arg.id }],\n },\n\n GetGamesCount: {\n providesTags: () => [{ type: \"Game\", id: \"COUNT\" }],\n },\n\n GetLatestGames: {\n providesTags: () => [{ type: \"Game\", id: \"LIST\" }],\n },\n\n GetGameFeedbackAreas: {\n providesTags: () => [{ type: \"FeedbackAreas\", id: \"LIST\" }],\n },\n\n GetGameFeedbackThreads: {\n providesTags: () => [{ type: \"FeedbackThread\", id: \"LIST\" }],\n },\n\n GetGameFeedbackChat: {\n providesTags: () => [{ type: \"FeedbackChat\", id: \"LIST\" }],\n serializeQueryArgs: ({ queryArgs }) => {\n const { page_no, created_at_range, page_size, ...restArgs } = queryArgs\n\n return { restArgs }\n },\n forceRefetch({ currentArg, previousArg }) {\n return currentArg !== previousArg\n },\n merge: (cachedData, newData, { arg }) => {\n const feedbackChatItemIdMap: Record = {}\n const mergedData = [\n ...(newData.feedback_chat_item ?? []),\n ...(cachedData.feedback_chat_item ?? []).filter(\n (chat) => chat.thread_id === arg.thread_id,\n ),\n ]\n\n const uniqueFeedbackChats = mergedData.filter((chat) => {\n if (!feedbackChatItemIdMap[chat.id]) {\n feedbackChatItemIdMap[chat.id] = true\n return true\n }\n\n return false\n })\n\n return {\n feedback_chat_item: uniqueFeedbackChats,\n hasMore: newData.feedback_chat_item?.length,\n }\n },\n transformResponse: (res: GetGameFeedbackChatQuery) => {\n return {\n feedback_chat_item: (res.feedback_chat_item ?? []).toReversed(),\n }\n },\n },\n\n GetGameTitle: {\n providesTags: (result, error, arg) => [{ type: \"Game\", id: arg.id }],\n },\n GetGameListFilter: {\n providesTags: () => [{ type: \"GameList\", id: \"LIST\" }],\n },\n GetGameListWithStoreUrl: {\n providesTags: () => [{ type: \"GameList\", id: \"LIST\" }],\n },\n\n GetGameTags: {\n providesTags: () => [{ type: \"Game\", id: \"TAGS\" }],\n },\n\n GetGameStages: {\n providesTags: () => [{ type: \"GameStages\", id: \"LIST\" }],\n },\n\n GetGamesGridList: {\n providesTags: () => [{ type: \"Game\", id: \"GRID\" }],\n forceRefetch: () => true,\n },\n\n GetGameWithByteBrew: {\n providesTags: () => [{ type: \"Game\", id: \"BYTEBREW_GAMES\" }],\n },\n\n GetGameCreativeManagement: {\n providesTags: () => [{ type: \"Game\", id: \"CREATIVE_MANAGEMENT_GAMES\" }],\n },\n },\n})\n\nexport const {\n useGetGameQuery,\n useLazyGetGameQuery,\n useGetFeedbackGamesListQuery,\n useGetGameDetailsQuery,\n useGetLatestGamesQuery,\n useGetGamesCountQuery,\n useGetGameFeedbackAreasQuery,\n useGetGameFeedbackThreadsQuery,\n useLazyGetGameFeedbackChatQuery,\n useGetGameTitleQuery,\n useGetGameTagsQuery,\n useGetGameListFilterQuery,\n useGetGameListWithStoreUrlQuery,\n useGetGameStagesQuery,\n useGetGamesGridListQuery,\n useGetGameWithByteBrewQuery,\n useGetGameCreativeManagementQuery,\n useGetDashboardMetricCountQuery,\n useGetKwaleeSdkGameIdQuery,\n} = api\n\nexport const {\n GetGame,\n GetFeedbackGamesList,\n GetGameDetails,\n GetGamesCount,\n GetLatestGames,\n GetGameFeedbackAreas,\n GetGameFeedbackThreads,\n GetGameFeedbackChat,\n GetGameTitle,\n GetGameTags,\n} = api.endpoints\n","import { lazy } from \"react\"\nimport { Outlet, RouteObject } from \"react-router-dom\"\nimport i18next from \"i18next\"\nimport ProtectedRoute from \"@/components/ProtectedRoute\"\n\nconst ByteBrewForm = lazy(\n () => import(\"@/pages/Games/CustomEvents/ByteBrewAdd\"),\n)\nconst ManageCustomEvents = lazy(\n () => import(\"@/pages/Games/CustomEvents/ManageCustomEvents\"),\n)\nconst ByteBrewGames = lazy(\n () => import(\"@/pages/Games/CustomEvents/ByteBrewGames\"),\n)\nconst CustomEvents = lazy(() => import(\"@/pages/Games/CustomEvents\"))\n\nconst route: NonNullable = [\n {\n path: \"/games/:gameId/custom-events\",\n handle: {\n pageTitle: () => i18next.t(\"docTitle\", { ns: \"customEvents\" }),\n title: () => i18next.t(\"pageTitle\", { ns: \"customEvents\" }),\n crumb: () => i18next.t(\"pageTitle\", { ns: \"customEvents\" }),\n },\n element: (\n auth.scope === \"internal\"}\n redirectTo=\"/games\"\n >\n \n \n ),\n },\n {\n path: \"/games/:gameId/manage-custom-events\",\n handle: {\n pageTitle: () =>\n i18next.t(\"label.manageCustomEvents\", { ns: \"customEvents\" }),\n title: () =>\n i18next.t(\"label.manageCustomEvents\", { ns: \"customEvents\" }),\n crumb: () =>\n i18next.t(\"label.manageCustomEvents\", { ns: \"customEvents\" }),\n },\n element: (\n auth.scope === \"external\"}\n redirectTo=\"/games\"\n >\n \n \n ),\n children: [\n {\n index: true,\n element: ,\n },\n {\n handle: {\n pageTitle: () => i18next.t(\"docTitle\", { ns: \"customEvents\" }),\n title: () => i18next.t(\"pageTitle\", { ns: \"customEvents\" }),\n crumb: () => i18next.t(\"pageTitle\", { ns: \"customEvents\" }),\n },\n path: \"/games/:gameId/manage-custom-events/custom-events\",\n element: ,\n },\n {\n handle: {\n pageTitle: () =>\n i18next.t(\"label.byteBrewGames\", { ns: \"customEvents\" }),\n title: () => i18next.t(\"label.byteBrewGames\", { ns: \"customEvents\" }),\n crumb: () => i18next.t(\"label.byteBrewGames\", { ns: \"customEvents\" }),\n },\n path: \"/games/:gameId/manage-custom-events/bytebrew\",\n children: [\n { index: true, element: },\n {\n handle: {\n pageTitle: () =>\n i18next.t(\"label.addGameToByteBrew\", { ns: \"customEvents\" }),\n title: () =>\n i18next.t(\"label.addGameToByteBrew\", { ns: \"customEvents\" }),\n crumb: () =>\n i18next.t(\"label.addGameToByteBrew\", { ns: \"customEvents\" }),\n },\n path: \"/games/:gameId/manage-custom-events/bytebrew/add\",\n element: ,\n },\n ],\n },\n ],\n },\n]\nexport default route\n","import { LoaderFunctionArgs, RouteObject, redirect } from \"react-router-dom\"\nimport { GetGameTitle } from \"@/features/game/Game\"\nimport { store } from \"@/app/store\"\nimport { GameIdParams } from \"@/pages/Games/Submission/route\"\nimport customEventsRoute from \"@/pages/Games/CustomEvents/route\"\nimport { lazy } from \"react\"\nimport i18next from \"i18next\"\n\nconst GameDetails = lazy(\n () => import(\"@/pages/Games/GameDetails/GameDetailsIndex\"),\n)\n\nconst route: RouteObject = {\n path: \"/games/:gameId\",\n handle: {\n crumb: (data: string) =>\n data ?? i18next.t(\"label.gameDetails\", { ns: \"games\" }),\n pageTitle: () =>\n `${i18next.t(\"label.gameDetails\", { ns: \"games\" })} - ${i18next.t(\n \"label.hitseeker\",\n { ns: \"common\" },\n )}`,\n },\n loader: async ({ params }: LoaderFunctionArgs) => {\n let title = null\n if (!isNaN(params.gameId)) {\n const parsedParams = { id: parseInt(params.gameId) }\n const getter = store.dispatch(GetGameTitle.initiate(parsedParams))\n await getter\n const response = GetGameTitle.select(parsedParams)(store.getState())\n\n if (\n (response.data?.game?.length ?? 0) > 0 &&\n response.data!.game![0].name\n ) {\n title = response.data!.game![0].name\n\n getter.unsubscribe()\n }\n }\n\n if (title) {\n return title\n } else {\n return redirect(\"/games\")\n }\n },\n children: [\n {\n index: true,\n element: ,\n },\n ...customEventsRoute,\n ],\n}\n\nexport default route\n","import i18next from \"i18next\"\nimport { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\n\nconst GameSDKstep = lazy(\n () => import(\"@/pages/Games/Submission/GameSDK/GameSDK\"),\n)\n\nexport type GameIdParams = {\n game_id: string\n}\n\nconst route: RouteObject = {\n path: \"/games/submission/:gameId/sdk\",\n handle: {\n crumb: () => i18next.t(\"label.gameSdk\", { ns: \"games\" }),\n pageTitle: () =>\n `${i18next.t(\"label.gameSdk\", { ns: \"games\" })} - ${i18next.t(\n \"label.hitseeker\",\n { ns: \"common\" },\n )}`,\n },\n element: ,\n}\n\nexport default route\n","import i18next from \"i18next\"\nimport { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\n\nconst GameSDKValidate = lazy(\n () => import(\"@/pages/Games/Submission/ValidateSDK/ValidateSDK\"),\n)\n\nconst route: RouteObject = {\n path: \"/games/submission/:gameId/validate\",\n handle: {\n pageTitle: () =>\n `${i18next.t(\"label.sdkValidate\", { ns: \"games\" })} - ${i18next.t(\n \"label.hitseeker\",\n { ns: \"common\" },\n )}`,\n crumb: () => i18next.t(\"label.sdkValidate\", { ns: \"games\" }),\n },\n element: ,\n}\n\nexport default route\n","import { lazy } from \"react\"\nimport { LoaderFunctionArgs, RouteObject } from \"react-router-dom\"\nimport gameSDKroute from \"@/pages/Games/Submission/GameSDK/route\"\nimport gameSDKvalidateRoute from \"@/pages/Games/Submission/ValidateSDK/route\"\nimport { GetGameTitle } from \"@/features/game/Game\"\nimport { store } from \"@/app/store\"\nimport i18next from \"i18next\"\n\nconst SubmissionIndex = lazy(\n () => import(\"@/pages/Games/Submission/SubmitGame/SubmissionIndex\"),\n)\n\nconst EditGame = lazy(\n () => import(\"@/pages/Games/Submission/SubmitGame/EditGame\"),\n)\n\nexport type GameIdParams = {\n gameId: string\n}\n\nconst route: RouteObject = {\n path: \"/games/submission\",\n children: [\n {\n index: true,\n handle: {\n crumb: () => i18next.t(\"label.gameSubmission\", { ns: \"games\" }),\n pageTitle: () =>\n `${i18next.t(\"label.gameSubmission\", { ns: \"games\" })} - ${i18next.t(\n \"label.hitseeker\",\n { ns: \"common\" },\n )}`,\n },\n element: ,\n },\n {\n path: \"/games/submission/:gameId\",\n handle: {\n crumb: (data: string) => data ?? \"Unknown Game\",\n },\n loader: async ({ params }: LoaderFunctionArgs) => {\n let title = null\n if (!isNaN(params.gameId)) {\n const parsedParams = { id: parseInt(params.gameId) }\n const getter = store.dispatch(GetGameTitle.initiate(parsedParams))\n await getter\n const response = GetGameTitle.select(parsedParams)(store.getState())\n\n if (\n (response.data?.game?.length ?? 0) > 0 &&\n response.data!.game![0].name\n ) {\n title = response.data!.game![0].name\n\n getter.unsubscribe()\n }\n }\n\n return title\n },\n children: [\n {\n index: true,\n element: ,\n handle: { pageTitle: () => \"Edit Game - Hitseeker\" },\n },\n gameSDKroute,\n gameSDKvalidateRoute,\n ],\n },\n ],\n}\n\nexport default route\n","import i18next from \"i18next\"\nimport { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\n\nconst KwaleeFeedback = lazy(() => import(\"@/pages/Games/Feedback/Feedback\"))\n\nconst route: RouteObject = {\n path: \"/games/feedback\",\n element: ,\n handle: {\n title: () => i18next.t(\"pageTitle\", { ns: \"feedback\" }),\n crumb: () => i18next.t(\"pageTitle\", { ns: \"feedback\" }),\n },\n}\n\nexport default route\n","/* eslint-disable */ /**\n *\n * THIS FILE IS AUTOGENERATED, DO NOT EDIT IT!\n *\n * instead, edit one of the `.graphql` files in this project and run\n *\n * npm run graphql-codegen\n *\n * for this file to be re-created\n */\n\nimport * as Types from '../../app/services/graphql/types.generated';\n\nimport { api } from '@/app/services/graphql/api';\nexport type GetCpiListQueryVariables = Types.Exact<{\n game_id?: Types.InputMaybe;\n created_at_range?: Types.InputMaybe;\n status?: Types.InputMaybe;\n search_name?: Types.InputMaybe;\n page_size?: Types.InputMaybe;\n page_no: Types.Scalars['Int']['input'];\n internal_spam?: Types.InputMaybe;\n}>;\n\n\nexport type GetCpiListQuery = { __typename?: 'Query', cpi_total_objects?: number, cpi?: Array<{ __typename?: 'CPIOutputType', id: string, name: string, platform: string, game_id: number, rejection_reason?: string, fb_app_id: string, app_url: string, status: string, created_at: any, updated_at: any, internal_spam?: boolean, games?: { __typename?: 'GameOutputType', name: string, icon_url?: string, ios_store_link?: string, android_store_link?: string, kwalee_sdk_key: Array<{ __typename?: 'KwaleeSdkKeysOutputType', is_kwalee_sdk_validated: boolean }> }, cpi_fb_campaign: Array<{ __typename?: 'CPIFBCampaignOutputType', duration?: number, fb_campaign_status?: string, started_at: any, status?: string, region: string, id: string }>, user?: { __typename?: 'UserOutputType', user_type: string } }> };\n\nexport type RequestChangesHistoryQueryVariables = Types.Exact<{\n id?: Types.InputMaybe;\n}>;\n\n\nexport type RequestChangesHistoryQuery = { __typename?: 'Query', request_changes?: Array<{ __typename?: 'RequestChangesOutputType', id: string, request_changes?: string, updated_at: any }> };\n\nexport type GetCpiFormDetailByIdQueryVariables = Types.Exact<{\n id?: Types.InputMaybe;\n}>;\n\n\nexport type GetCpiFormDetailByIdQuery = { __typename?: 'Query', cpi?: Array<{ __typename?: 'CPIOutputType', id: string, game_id: number, name: string, platform: string, fb_app_id: string, app_url: string, status: string, app_store_id?: string, rejection_reason?: string, updated_at: any, user?: { __typename?: 'UserOutputType', user_type: string } }> };\n\nexport type GetCpiDetailsQueryVariables = Types.Exact<{\n game_id?: Types.InputMaybe;\n status?: Types.InputMaybe;\n sort_dir?: Types.InputMaybe;\n sort_by?: Types.InputMaybe;\n limit?: Types.InputMaybe;\n}>;\n\n\nexport type GetCpiDetailsQuery = { __typename?: 'Query', cpi?: Array<{ __typename?: 'CPIOutputType', id: string, status: string, name: string, cpi_fb_campaign: Array<{ __typename?: 'CPIFBCampaignOutputType', duration?: number, fb_campaign_status?: string, started_at: any, status?: string, region: string, id: string }> }> };\n\nexport type GetCpiByIdQueryVariables = Types.Exact<{\n id?: Types.InputMaybe;\n}>;\n\n\nexport type GetCpiByIdQuery = { __typename?: 'Query', cpi?: Array<{ __typename?: 'CPIOutputType', id: string, name: string, platform: string, game_id: number, organisation_id?: number, rejection_reason?: string, fb_app_id: string, app_url: string, status: string, created_at: any, updated_at: any, games?: { __typename?: 'GameOutputType', name: string, icon_url?: string, ios_store_link?: string, android_store_link?: string, kwalee_sdk_key: Array<{ __typename?: 'KwaleeSdkKeysOutputType', is_kwalee_sdk_validated: boolean }> }, cpi_fb_campaign: Array<{ __typename?: 'CPIFBCampaignOutputType', duration?: number, fb_campaign_status?: string, started_at: any, status?: string, region: string, id: string }>, user?: { __typename?: 'UserOutputType', user_type: string } }> };\n\nexport type GetCpiTestTitleQueryVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type GetCpiTestTitleQuery = { __typename?: 'Query', cpi?: Array<{ __typename?: 'CPIOutputType', id: string, name: string }> };\n\nexport type GetCpiVideosQueryVariables = Types.Exact<{\n cpi_id?: Types.InputMaybe;\n}>;\n\n\nexport type GetCpiVideosQuery = { __typename?: 'Query', cpi_ad_videos?: Array<{ __typename?: 'CPIAdVideosOutputType', cpi_id: number, ad_video_url: string, thumbnail_ad_image_url: string, video_order: number, id: string }> };\n\nexport type GetAdAccountsQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type GetAdAccountsQuery = { __typename?: 'Query', fb_ad_accounts?: Array<{ __typename?: 'FBAdAccountOutputType', id: string, name: string, fb_ad_account_id: string, fb_page_id: string, test_type: string, status: string, created_at: any, updated_at: any }> };\n\n\nexport const GetCpiListDocument = `\n query GetCpiList($game_id: Int, $created_at_range: String, $status: String, $search_name: String, $page_size: Int, $page_no: Int!, $internal_spam: Boolean) {\n cpi(\n filters: {game_id: $game_id, created_at_range: $created_at_range, status: $status, search_name: $search_name, internal_spam: $internal_spam}\n page_size: $page_size\n page_no: $page_no\n sort_by: \"updated_at\"\n sort_dir: \"desc\"\n ) {\n id\n name\n platform\n game_id\n rejection_reason\n games {\n name\n icon_url\n ios_store_link\n android_store_link\n kwalee_sdk_key {\n is_kwalee_sdk_validated\n }\n }\n fb_app_id\n app_url\n status\n created_at\n updated_at\n cpi_fb_campaign {\n duration\n fb_campaign_status\n started_at\n status\n region\n id\n }\n user {\n user_type\n }\n internal_spam\n }\n cpi_total_objects(\n filters: {game_id: $game_id, created_at_range: $created_at_range, status: $status, search_name: $search_name, internal_spam: $internal_spam}\n )\n}\n `;\nexport const RequestChangesHistoryDocument = `\n query RequestChangesHistory($id: Int) {\n request_changes(filters: {cpi_id: $id}, sort_dir: \"desc\", sort_by: \"updated_at\") {\n id\n request_changes\n updated_at\n }\n}\n `;\nexport const GetCpiFormDetailByIdDocument = `\n query GetCpiFormDetailById($id: Int) {\n cpi(filters: {id: $id}) {\n id\n game_id\n name\n platform\n fb_app_id\n app_url\n status\n app_store_id\n rejection_reason\n updated_at\n user {\n user_type\n }\n }\n}\n `;\nexport const GetCpiDetailsDocument = `\n query GetCpiDetails($game_id: Int, $status: String, $sort_dir: String, $sort_by: String, $limit: Int) {\n cpi(\n filters: {game_id: $game_id, status: $status}\n sort_dir: $sort_dir\n sort_by: $sort_by\n page_size: $limit\n ) {\n id\n status\n name\n cpi_fb_campaign {\n duration\n fb_campaign_status\n started_at\n status\n region\n id\n }\n }\n}\n `;\nexport const GetCpiByIdDocument = `\n query GetCpiById($id: Int) {\n cpi(filters: {id: $id}) {\n id\n name\n platform\n game_id\n organisation_id\n rejection_reason\n games {\n name\n icon_url\n ios_store_link\n android_store_link\n kwalee_sdk_key {\n is_kwalee_sdk_validated\n }\n }\n fb_app_id\n app_url\n status\n created_at\n updated_at\n cpi_fb_campaign {\n duration\n fb_campaign_status\n started_at\n status\n region\n id\n }\n user {\n user_type\n }\n }\n}\n `;\nexport const GetCpiTestTitleDocument = `\n query GetCpiTestTitle($id: Int!) {\n cpi(filters: {id: $id}) {\n id\n name\n }\n}\n `;\nexport const GetCpiVideosDocument = `\n query GetCpiVideos($cpi_id: Int) {\n cpi_ad_videos(filters: {cpi_id: $cpi_id}) {\n cpi_id\n ad_video_url\n thumbnail_ad_image_url\n video_order\n id\n }\n}\n `;\nexport const GetAdAccountsDocument = `\n query GetAdAccounts {\n fb_ad_accounts {\n id\n name\n fb_ad_account_id\n fb_page_id\n test_type\n status\n created_at\n updated_at\n }\n}\n `;\n\nconst injectedRtkApi = api.injectEndpoints({\n endpoints: (build) => ({\n GetCpiList: build.query({\n query: (variables) => ({ document: GetCpiListDocument, variables })\n }),\n RequestChangesHistory: build.query({\n query: (variables) => ({ document: RequestChangesHistoryDocument, variables })\n }),\n GetCpiFormDetailById: build.query({\n query: (variables) => ({ document: GetCpiFormDetailByIdDocument, variables })\n }),\n GetCpiDetails: build.query({\n query: (variables) => ({ document: GetCpiDetailsDocument, variables })\n }),\n GetCpiById: build.query({\n query: (variables) => ({ document: GetCpiByIdDocument, variables })\n }),\n GetCpiTestTitle: build.query({\n query: (variables) => ({ document: GetCpiTestTitleDocument, variables })\n }),\n GetCpiVideos: build.query({\n query: (variables) => ({ document: GetCpiVideosDocument, variables })\n }),\n GetAdAccounts: build.query({\n query: (variables) => ({ document: GetAdAccountsDocument, variables })\n }),\n }),\n});\n\nexport { injectedRtkApi as api };\nexport const { useGetCpiListQuery, useLazyGetCpiListQuery, useRequestChangesHistoryQuery, useLazyRequestChangesHistoryQuery, useGetCpiFormDetailByIdQuery, useLazyGetCpiFormDetailByIdQuery, useGetCpiDetailsQuery, useLazyGetCpiDetailsQuery, useGetCpiByIdQuery, useLazyGetCpiByIdQuery, useGetCpiTestTitleQuery, useLazyGetCpiTestTitleQuery, useGetCpiVideosQuery, useLazyGetCpiVideosQuery, useGetAdAccountsQuery, useLazyGetAdAccountsQuery } = injectedRtkApi;\n\n","import { api as generatedApi } from \"./cpiTest.generated\"\n\nexport const api = generatedApi.enhanceEndpoints({\n addTagTypes: [\"CpiList\", \"RequestChangesList\", \"CpiVideos\", \"FbAdAccount\"],\n endpoints: {\n GetCpiList: {\n providesTags: () => [{ type: \"CpiList\", id: \"LIST\" }],\n },\n GetCpiTestTitle: {\n providesTags: (result, error, arg) => [{ type: \"CpiList\", id: arg.id }],\n },\n GetCpiFormDetailById: {\n providesTags: (result, error, arg) => [{ type: \"CpiList\", id: arg?.id }],\n },\n\n GetCpiDetails: {\n providesTags: (_, __, arg) => [{ type: \"CpiList\", id: arg?.game_id }],\n },\n\n GetCpiById: {\n providesTags: (result, error, arg) => [{ type: \"CpiList\", id: arg?.id }],\n },\n\n RequestChangesHistory: {\n providesTags: () => [{ type: \"RequestChangesList\", id: \"LIST\" }],\n },\n\n GetCpiVideos: {\n providesTags: [\"CpiVideos\"],\n },\n\n GetAdAccounts: {\n providesTags: [{ type: \"FbAdAccount\", id: \"LIST\" }],\n },\n },\n})\n\nexport const {\n useGetCpiListQuery,\n useRequestChangesHistoryQuery,\n useGetCpiFormDetailByIdQuery,\n useGetCpiByIdQuery,\n useGetCpiVideosQuery,\n useGetCpiDetailsQuery,\n useGetAdAccountsQuery,\n useLazyGetCpiListQuery,\n} = api\n\nexport const { GetCpiTestTitle } = api.endpoints\n","import { lazy } from \"react\"\nimport { LoaderFunctionArgs, RouteObject } from \"react-router-dom\"\nimport { store } from \"@/app/store\"\nimport { GetCpiTestTitle } from \"@/features/cpiTest/cpiTest\"\nimport i18next from \"i18next\"\n\nconst Statistics = lazy(\n () => import(\"@/pages/Games/CPI/Statistics/ViewStatistics\"),\n)\n\nconst route: RouteObject = {\n path: \"/games/cpi-test/:gameId/:cpiTestId/:campaignId\",\n handle: {\n crumb: (data: string) =>\n data ?? i18next.t(\"label.cpiInsights\", { ns: \"cpiTest\" }),\n },\n loader: async ({ params }: LoaderFunctionArgs) => {\n let title = null\n if (!isNaN(params.cpiTestId)) {\n const parsedParams = { id: parseInt(params.cpiTestId) }\n const getter = store.dispatch(GetCpiTestTitle.initiate(parsedParams))\n await getter\n const response = GetCpiTestTitle.select(parsedParams)(store.getState())\n\n if (\n (response.data?.cpi?.length ?? 0) > 0 &&\n response.data!.cpi![0].name\n ) {\n title = response.data!.cpi![0].name\n\n getter.unsubscribe()\n }\n return title\n }\n },\n element: ,\n}\n\nexport default route\n","import { LoaderFunctionArgs, RouteObject } from \"react-router-dom\"\nimport { store } from \"@/app/store\"\nimport { GetGameTitle } from \"@/features/game/Game\"\nimport { lazy } from \"react\"\nimport i18next from \"i18next\"\n\nconst FormCPI = lazy(() => import(\"@/pages/Games/CPI/Form/CpiForm\"))\n\nconst route: RouteObject[] = [\n {\n path: \"/games/cpi-test/new\",\n handle: {\n pageTitle: () => i18next.t(\"docTitle\", { ns: \"cpiTest\" }),\n title: () => i18next.t(\"label.newTest\", { ns: \"cpiTest\" }),\n crumb: () => i18next.t(\"label.newTest\", { ns: \"cpiTest\" }),\n },\n element: ,\n },\n {\n path: \"/games/cpi-test/:gameId/new\",\n handle: {\n pageTitle: () => i18next.t(\"docTitle\", { ns: \"cpiTest\" }),\n title: () => i18next.t(\"label.newTest\", { ns: \"cpiTest\" }),\n crumb: () => i18next.t(\"label.newTest\", { ns: \"cpiTest\" }),\n },\n element: ,\n },\n {\n path: \"/games/cpi-test/:gameId/:cpiTestId\",\n handle: {\n crumb: (data: string) =>\n data ?? i18next.t(\"label.editCpi\", { ns: \"cpiTest\" }),\n },\n loader: async ({ params }: LoaderFunctionArgs) => {\n let title = null\n if (!isNaN(params.gameId)) {\n const parsedParams = { id: parseInt(params.gameId) }\n const getter = store.dispatch(GetGameTitle.initiate(parsedParams))\n await getter\n const response = GetGameTitle.select(parsedParams)(store.getState())\n\n if (\n (response.data?.game?.length ?? 0) > 0 &&\n response.data!.game![0].name\n ) {\n title = response.data!.game![0].name\n\n getter.unsubscribe()\n }\n return title\n }\n },\n element: ,\n },\n]\nexport default route\n","import { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\nimport viewStatsRoute from \"@/pages/Games/CPI/Statistics/route\"\nimport cpiFormRoute from \"@/pages/Games/CPI/Form/route\"\nimport i18next from \"i18next\"\n\nconst CpiList = lazy(() => import(\"@/pages/Games/CPI/List/CpiList\"))\n\nconst route: RouteObject = {\n path: \"/games/cpi-test\",\n handle: {\n pageTitle: () => i18next.t(\"docTitle\", { ns: \"cpiTest\" }),\n title: () => i18next.t(\"pageTitle\", { ns: \"cpiTest\" }),\n crumb: () => i18next.t(\"pageTitle\", { ns: \"cpiTest\" }),\n },\n children: [\n { index: true, element: },\n viewStatsRoute,\n ...cpiFormRoute,\n ],\n}\nexport default route\n","import { lazy } from \"react\"\nimport { LoaderFunctionArgs, RouteObject } from \"react-router-dom\"\nimport { store } from \"@/app/store\"\nimport { GetGameTitle } from \"@/features/game/Game\"\n\nconst GameKeyIndex = lazy(() => import(\"@/pages/Games/GameKeys/GameKeyIndex\"))\n\nconst route: RouteObject = {\n path: \"/games/:gameId/game-key\",\n handle: {\n crumb: (data: string) => data ?? \"Game Key\",\n },\n loader: async ({ params }: LoaderFunctionArgs) => {\n let title = null\n if (!isNaN(params.gameId)) {\n const parsedParams = { id: parseInt(params.gameId) }\n const getter = store.dispatch(GetGameTitle.initiate(parsedParams))\n await getter\n const response = GetGameTitle.select(parsedParams)(store.getState())\n\n if (\n (response.data?.game?.length ?? 0) > 0 &&\n response.data!.game![0].name\n ) {\n title = response.data!.game![0].name\n\n getter.unsubscribe()\n }\n return title\n }\n },\n element: ,\n}\nexport default route\n","import ProtectedRoute from \"@/components/ProtectedRoute\"\nimport i18next from \"i18next\"\nimport { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\nimport {\n CREATIVE_TEAM,\n PRODUCT_MARKETING_MANAGER,\n PUBLISHING_MANAGER,\n} from \"../MyOrganisation/Users/constants\"\nimport {\n hasInternalModuleRoutePermission,\n hasModulePermission,\n} from \"@/util/permissions\"\n\nconst CreativeManagementLayout = lazy(\n () => import(\"@/pages/CreativeManagement/CreativeManagement\"),\n)\n\nconst route: RouteObject = {\n path: \"/games/creative-management\",\n element: (\n \n state.auth.scope === \"internal\"\n ? hasInternalModuleRoutePermission(\"creative_management\")(state) &&\n [\n PUBLISHING_MANAGER,\n PRODUCT_MARKETING_MANAGER,\n CREATIVE_TEAM,\n ].includes(state.auth.designation ?? \"\")\n : hasModulePermission(state.auth, \"creative_management\")\n }\n redirectTo=\"/\"\n >\n \n \n ),\n handle: {\n pageTitle: () =>\n `${i18next.t(\"pageTitle\", {\n ns: \"creativeManagement\",\n })} - ${i18next.t(\"label.hitseeker\", { ns: \"common\" })}`,\n title: () =>\n i18next.t(\"pageTitle\", {\n ns: \"creativeManagement\",\n }),\n crumb: () =>\n i18next.t(\"pageTitle\", {\n ns: \"creativeManagement\",\n }),\n },\n}\n\nexport default route\n","import ProtectedRoute from \"@/components/ProtectedRoute\"\nimport gameDetailsRoute from \"@/pages/Games/GameDetails/route\"\nimport submissionRoute from \"@/pages/Games/Submission/route\"\nimport kwaleeFeedbackRoute from \"@/pages/Games/Feedback/route\"\nimport cpiListRoute from \"@/pages/Games/CPI/route\"\nimport { hasModuleRoutePermission } from \"@/util/permissions\"\nimport gameKeyRoute from \"@/pages/Games/GameKeys/route\"\nimport creativeManagementRoute from \"@/pages/CreativeManagement/route\"\nimport { lazy } from \"react\"\nimport { Outlet, RouteObject } from \"react-router-dom\"\nimport i18next from \"i18next\"\n\nconst MyGamesPage = lazy(() => import(\"@/pages/Games/MyGamesIndex\"))\n\nconst route: RouteObject = {\n path: \"/games\",\n element: (\n \n \n \n ),\n handle: {\n pageTitle: () =>\n `${i18next.t(\"navigation.myGames\", { ns: \"common\" })} - ${i18next.t(\n \"label.hitseeker\",\n { ns: \"common\" },\n )}`,\n title: () => i18next.t(\"navigation.myGames\", { ns: \"common\" }),\n crumb: () => i18next.t(\"navigation.myGames\", { ns: \"common\" }),\n },\n children: [\n {\n index: true,\n element: ,\n },\n gameDetailsRoute,\n submissionRoute,\n kwaleeFeedbackRoute,\n gameKeyRoute,\n cpiListRoute,\n creativeManagementRoute,\n ],\n}\n\nexport default route\n","import { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\nimport i18next from \"i18next\"\n\nconst CampaignGoals = lazy(\n () => import(\"@/pages/UnityTest/CampaignGoals/CreateCampaign\"),\n)\n\nconst route: RouteObject = {\n path: \"/unity-test/create-campaign\",\n handle: {\n pageTitle: () =>\n `${i18next.t(\"pageTitle\", { ns: \"unityTest\" })} - ${i18next.t(\n \"label.hitseeker\",\n { ns: \"common\" },\n )}`,\n title: () => i18next.t(\"label.createCampaign\", { ns: \"unityTest\" }),\n crumb: () => i18next.t(\"label.createCampaign\", { ns: \"unityTest\" }),\n },\n element: ,\n}\n\nexport default route\n","import { RouteObject } from \"react-router-dom\"\nimport { lazy } from \"react\"\nimport i18next from \"i18next\"\n\nconst UpdateCampaign = lazy(\n () => import(\"@/pages/UnityTest/CampaignUpdate/CampaignUpdate\"),\n)\n\nconst route: RouteObject = {\n path: \"/unity-test/:campaignId\",\n handle: {\n pageTitle: () =>\n `${i18next.t(\"pageTitle\", { ns: \"unityTest\" })} - ${i18next.t(\n \"label.hitseeker\",\n { ns: \"common\" },\n )}`,\n title: () => i18next.t(\"label.updateCampaign\", { ns: \"unityTest\" }),\n crumb: () => i18next.t(\"label.updateCampaign\", { ns: \"unityTest\" }),\n },\n element: ,\n}\n\nexport default route\n","import { lazy } from \"react\"\nimport { Outlet, RouteObject } from \"react-router-dom\"\nimport ProtectedRoute from \"@/components/ProtectedRoute\"\nimport i18next from \"i18next\"\nimport { hasUnityTestPermission } from \"@/util/permissions\"\nimport unityGoalRoute from \"@/pages/UnityTest/CampaignGoals/route\"\nimport unityCampaignRoute from \"@/pages/UnityTest/CampaignUpdate/route\"\n\nconst UnityTest = lazy(() => import(\"@/pages/UnityTest/UnityTest\"))\n\nconst route: RouteObject = {\n path: \"/unity-test\",\n element: (\n \n \n \n ),\n handle: {\n pageTitle: () =>\n `${i18next.t(\"pageTitle\", { ns: \"unityTest\" })} - ${i18next.t(\n \"label.hitseeker\",\n { ns: \"common\" },\n )}`,\n title: () => i18next.t(\"pageTitle\", { ns: \"unityTest\" }),\n crumb: () => i18next.t(\"pageTitle\", { ns: \"unityTest\" }),\n },\n children: [\n { index: true, element: },\n unityGoalRoute,\n unityCampaignRoute,\n ],\n}\n\nexport default route\n","/* eslint-disable */ /**\n *\n * THIS FILE IS AUTOGENERATED, DO NOT EDIT IT!\n *\n * instead, edit one of the `.graphql` files in this project and run\n *\n * npm run graphql-codegen\n *\n * for this file to be re-created\n */\n\nimport * as Types from '../../app/services/graphql/types.generated';\n\nimport { api } from '@/app/services/graphql/api';\nexport type GetCategoryListQueryVariables = Types.Exact<{\n is_visible?: Types.InputMaybe;\n sub_category_id?: Types.InputMaybe;\n}>;\n\n\nexport type GetCategoryListQuery = { __typename?: 'Query', category?: Array<{ __typename?: 'CategoryOutputType', id: string, title: string, icon: string, description: string, weight?: number, is_visible: boolean, sub_category_id?: number, parent_id?: number, articles: Array<{ __typename?: 'ArticleOutputType', id: string, title: string, weight?: number, is_visible: boolean }> }> };\n\nexport type GetCategoryTitleQueryVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type GetCategoryTitleQuery = { __typename?: 'Query', category?: Array<{ __typename?: 'CategoryOutputType', id: string, title: string, icon: string }> };\n\nexport type GetCategoryTitleWithParentQueryVariables = Types.Exact<{\n id?: Types.InputMaybe;\n parent_id?: Types.InputMaybe;\n locale?: Types.InputMaybe;\n}>;\n\n\nexport type GetCategoryTitleWithParentQuery = { __typename?: 'Query', category?: Array<{ __typename?: 'CategoryOutputType', id: string, title: string, parent_id?: number }> };\n\nexport type UpdateCategoryWeightMutationVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n weight: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type UpdateCategoryWeightMutation = { __typename?: 'Mutation', update_category?: { __typename?: 'UpdateCategory', ok?: boolean } };\n\nexport type CreateCategoryMutationVariables = Types.Exact<{\n title: Types.Scalars['String']['input'];\n description: Types.Scalars['String']['input'];\n icon: Types.Scalars['String']['input'];\n is_visible?: Types.InputMaybe;\n sub_category_id?: Types.InputMaybe;\n weight?: Types.InputMaybe;\n parent_id?: Types.InputMaybe;\n}>;\n\n\nexport type CreateCategoryMutation = { __typename?: 'Mutation', create_category?: { __typename?: 'CreateCategory', ok?: boolean } };\n\nexport type UpdateCategoryMutationVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n title?: Types.InputMaybe;\n description?: Types.InputMaybe;\n icon?: Types.InputMaybe;\n is_visible?: Types.InputMaybe;\n sub_category_id?: Types.InputMaybe;\n parent_id?: Types.InputMaybe;\n}>;\n\n\nexport type UpdateCategoryMutation = { __typename?: 'Mutation', update_category?: { __typename?: 'UpdateCategory', ok?: boolean } };\n\nexport type DeleteCategoryMutationVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type DeleteCategoryMutation = { __typename?: 'Mutation', delete_category?: { __typename?: 'DeleteCategory', ok?: boolean } };\n\nexport type GetFurtherReadingQueryVariables = Types.Exact<{\n category_id?: Types.InputMaybe;\n tags?: Types.InputMaybe> | Types.InputMaybe>;\n}>;\n\n\nexport type GetFurtherReadingQuery = { __typename?: 'Query', article?: Array<{ __typename?: 'ArticleOutputType', id: string, title: string, weight?: number, is_visible: boolean, category?: { __typename?: 'CategoryOutputType', id: string, title: string } }> };\n\nexport type GetArticlesQueryVariables = Types.Exact<{\n category_id?: Types.InputMaybe;\n is_visible?: Types.InputMaybe;\n page_size?: Types.InputMaybe;\n}>;\n\n\nexport type GetArticlesQuery = { __typename?: 'Query', article?: Array<{ __typename?: 'ArticleOutputType', id: string, title: string, weight?: number, tags?: string, is_visible: boolean }> };\n\nexport type GetHomeArticlesQueryVariables = Types.Exact<{\n weight?: Types.InputMaybe;\n}>;\n\n\nexport type GetHomeArticlesQuery = { __typename?: 'Query', article?: Array<{ __typename?: 'ArticleOutputType', id: string, title: string, description: string, layout_id: string, content: string, tags?: string, is_visible: boolean, category_id: number, category?: { __typename?: 'CategoryOutputType', title: string, sub_category_id?: number } }> };\n\nexport type GetCategoriesIdNameQueryVariables = Types.Exact<{\n locale?: Types.InputMaybe;\n sub_category_id?: Types.InputMaybe;\n}>;\n\n\nexport type GetCategoriesIdNameQuery = { __typename?: 'Query', category?: Array<{ __typename?: 'CategoryOutputType', id: string, title: string, icon: string }> };\n\nexport type GetArticleQueryVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type GetArticleQuery = { __typename?: 'Query', article?: Array<{ __typename?: 'ArticleOutputType', id: string, title: string, description: string, layout_id: string, content: string, tags?: string, is_visible: boolean, parent_id?: number, category?: { __typename?: 'CategoryOutputType', parent_id?: number } }> };\n\nexport type GetArticleTitleWithParentQueryVariables = Types.Exact<{\n id?: Types.InputMaybe;\n parent_id?: Types.InputMaybe;\n locale?: Types.InputMaybe;\n}>;\n\n\nexport type GetArticleTitleWithParentQuery = { __typename?: 'Query', article?: Array<{ __typename?: 'ArticleOutputType', id: string, title: string, parent_id?: number, category?: { __typename?: 'CategoryOutputType', id: string, parent_id?: number } }> };\n\nexport type GetArticlesIdNameQueryVariables = Types.Exact<{\n locale?: Types.InputMaybe;\n category_id?: Types.InputMaybe;\n}>;\n\n\nexport type GetArticlesIdNameQuery = { __typename?: 'Query', article?: Array<{ __typename?: 'ArticleOutputType', id: string, title: string }> };\n\nexport type CreateArticleMutationVariables = Types.Exact<{\n category_id: Types.Scalars['String']['input'];\n title: Types.Scalars['String']['input'];\n content: Types.Scalars['String']['input'];\n description: Types.Scalars['String']['input'];\n layout: Types.Scalars['String']['input'];\n tags: Array> | Types.InputMaybe;\n parent_id?: Types.InputMaybe;\n}>;\n\n\nexport type CreateArticleMutation = { __typename?: 'Mutation', create_article?: { __typename?: 'CreateArticle', ok?: boolean, article?: { __typename?: 'ArticleOutputType', id: string } } };\n\nexport type UpdateArticleContentsMutationVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n content: Types.Scalars['String']['input'];\n tags?: Types.InputMaybe> | Types.InputMaybe>;\n title?: Types.InputMaybe;\n description?: Types.InputMaybe;\n parent_id?: Types.InputMaybe;\n}>;\n\n\nexport type UpdateArticleContentsMutation = { __typename?: 'Mutation', update_article?: { __typename?: 'UpdateArticle', ok?: boolean } };\n\nexport type UpdateArticleWeightMutationVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n weight: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type UpdateArticleWeightMutation = { __typename?: 'Mutation', update_article?: { __typename?: 'UpdateArticle', ok?: boolean } };\n\nexport type DeleteArticleMutationVariables = Types.Exact<{\n id: Types.Scalars['Int']['input'];\n}>;\n\n\nexport type DeleteArticleMutation = { __typename?: 'Mutation', delete_article?: { __typename?: 'DeleteArticle', ok?: boolean } };\n\n\nexport const GetCategoryListDocument = `\n query GetCategoryList($is_visible: Boolean, $sub_category_id: Int) {\n category(filters: {is_visible: $is_visible, sub_category_id: $sub_category_id}) {\n id\n title\n icon\n description\n weight\n is_visible\n sub_category_id\n parent_id\n articles {\n id\n title\n weight\n is_visible\n }\n }\n}\n `;\nexport const GetCategoryTitleDocument = `\n query GetCategoryTitle($id: Int!) {\n category(filters: {id: $id}) {\n id\n title\n icon\n }\n}\n `;\nexport const GetCategoryTitleWithParentDocument = `\n query GetCategoryTitleWithParent($id: Int, $parent_id: Int, $locale: String) {\n category(filters: {id: $id, parent_id: $parent_id, hitseeker_locale: $locale}) {\n id\n title\n parent_id\n }\n}\n `;\nexport const UpdateCategoryWeightDocument = `\n mutation UpdateCategoryWeight($id: Int!, $weight: Int!) {\n update_category(id: $id, weight: $weight) {\n ok\n }\n}\n `;\nexport const CreateCategoryDocument = `\n mutation CreateCategory($title: String!, $description: String!, $icon: String!, $is_visible: Boolean, $sub_category_id: Int, $weight: Int, $parent_id: Int) {\n create_category(\n title: $title\n description: $description\n icon: $icon\n is_visible: $is_visible\n sub_category_id: $sub_category_id\n weight: $weight\n parent_id: $parent_id\n ) {\n ok\n }\n}\n `;\nexport const UpdateCategoryDocument = `\n mutation UpdateCategory($id: Int!, $title: String, $description: String, $icon: String, $is_visible: Boolean, $sub_category_id: Int, $parent_id: Int) {\n update_category(\n id: $id\n title: $title\n description: $description\n icon: $icon\n is_visible: $is_visible\n sub_category_id: $sub_category_id\n parent_id: $parent_id\n ) {\n ok\n }\n}\n `;\nexport const DeleteCategoryDocument = `\n mutation DeleteCategory($id: Int!) {\n delete_category(id: $id) {\n ok\n }\n}\n `;\nexport const GetFurtherReadingDocument = `\n query GetFurtherReading($category_id: String, $tags: [String]) {\n article(filters: {category_id: $category_id, tags: $tags}) {\n id\n title\n weight\n is_visible\n category {\n id\n title\n }\n }\n}\n `;\nexport const GetArticlesDocument = `\n query GetArticles($category_id: String, $is_visible: Boolean, $page_size: Int) {\n article(\n filters: {category_id: $category_id, is_visible: $is_visible}\n page_size: $page_size\n ) {\n id\n title\n weight\n tags\n is_visible\n }\n}\n `;\nexport const GetHomeArticlesDocument = `\n query GetHomeArticles($weight: Int) {\n article(filters: {weight: $weight}, sort_by: \"created_at\", sort_dir: \"desc\") {\n id\n title\n description\n layout_id\n content\n tags\n is_visible\n category_id\n category {\n title\n sub_category_id\n }\n }\n}\n `;\nexport const GetCategoriesIdNameDocument = `\n query GetCategoriesIdName($locale: String, $sub_category_id: Int) {\n category(\n filters: {hitseeker_locale: $locale, sub_category_id: $sub_category_id}\n ) {\n id\n title\n icon\n }\n}\n `;\nexport const GetArticleDocument = `\n query GetArticle($id: Int!) {\n article(filters: {id: $id}) {\n id\n title\n description\n layout_id\n content\n tags\n is_visible\n parent_id\n category {\n parent_id\n }\n }\n}\n `;\nexport const GetArticleTitleWithParentDocument = `\n query GetArticleTitleWithParent($id: Int, $parent_id: Int, $locale: String) {\n article(filters: {id: $id, parent_id: $parent_id, hitseeker_locale: $locale}) {\n id\n title\n parent_id\n category {\n id\n parent_id\n }\n }\n}\n `;\nexport const GetArticlesIdNameDocument = `\n query GetArticlesIdName($locale: String, $category_id: String) {\n article(filters: {category_id: $category_id, hitseeker_locale: $locale}) {\n id\n title\n }\n}\n `;\nexport const CreateArticleDocument = `\n mutation CreateArticle($category_id: String!, $title: String!, $content: String!, $description: String!, $layout: String!, $tags: [String]!, $parent_id: Int) {\n create_article(\n category_id: $category_id\n title: $title\n content: $content\n description: $description\n layout_id: $layout\n tags: $tags\n parent_id: $parent_id\n ) {\n ok\n article {\n id\n }\n }\n}\n `;\nexport const UpdateArticleContentsDocument = `\n mutation UpdateArticleContents($id: Int!, $content: String!, $tags: [String], $title: String, $description: String, $parent_id: Int) {\n update_article(\n id: $id\n content: $content\n tags: $tags\n title: $title\n description: $description\n parent_id: $parent_id\n ) {\n ok\n }\n}\n `;\nexport const UpdateArticleWeightDocument = `\n mutation UpdateArticleWeight($id: Int!, $weight: Int!) {\n update_article(id: $id, weight: $weight) {\n ok\n }\n}\n `;\nexport const DeleteArticleDocument = `\n mutation DeleteArticle($id: Int!) {\n delete_article(id: $id) {\n ok\n }\n}\n `;\n\nconst injectedRtkApi = api.injectEndpoints({\n endpoints: (build) => ({\n GetCategoryList: build.query({\n query: (variables) => ({ document: GetCategoryListDocument, variables })\n }),\n GetCategoryTitle: build.query({\n query: (variables) => ({ document: GetCategoryTitleDocument, variables })\n }),\n GetCategoryTitleWithParent: build.query({\n query: (variables) => ({ document: GetCategoryTitleWithParentDocument, variables })\n }),\n UpdateCategoryWeight: build.mutation({\n query: (variables) => ({ document: UpdateCategoryWeightDocument, variables })\n }),\n CreateCategory: build.mutation({\n query: (variables) => ({ document: CreateCategoryDocument, variables })\n }),\n UpdateCategory: build.mutation({\n query: (variables) => ({ document: UpdateCategoryDocument, variables })\n }),\n DeleteCategory: build.mutation({\n query: (variables) => ({ document: DeleteCategoryDocument, variables })\n }),\n GetFurtherReading: build.query({\n query: (variables) => ({ document: GetFurtherReadingDocument, variables })\n }),\n GetArticles: build.query({\n query: (variables) => ({ document: GetArticlesDocument, variables })\n }),\n GetHomeArticles: build.query({\n query: (variables) => ({ document: GetHomeArticlesDocument, variables })\n }),\n GetCategoriesIdName: build.query({\n query: (variables) => ({ document: GetCategoriesIdNameDocument, variables })\n }),\n GetArticle: build.query({\n query: (variables) => ({ document: GetArticleDocument, variables })\n }),\n GetArticleTitleWithParent: build.query({\n query: (variables) => ({ document: GetArticleTitleWithParentDocument, variables })\n }),\n GetArticlesIdName: build.query({\n query: (variables) => ({ document: GetArticlesIdNameDocument, variables })\n }),\n CreateArticle: build.mutation({\n query: (variables) => ({ document: CreateArticleDocument, variables })\n }),\n UpdateArticleContents: build.mutation({\n query: (variables) => ({ document: UpdateArticleContentsDocument, variables })\n }),\n UpdateArticleWeight: build.mutation({\n query: (variables) => ({ document: UpdateArticleWeightDocument, variables })\n }),\n DeleteArticle: build.mutation({\n query: (variables) => ({ document: DeleteArticleDocument, variables })\n }),\n }),\n});\n\nexport { injectedRtkApi as api };\nexport const { useGetCategoryListQuery, useLazyGetCategoryListQuery, useGetCategoryTitleQuery, useLazyGetCategoryTitleQuery, useGetCategoryTitleWithParentQuery, useLazyGetCategoryTitleWithParentQuery, useUpdateCategoryWeightMutation, useCreateCategoryMutation, useUpdateCategoryMutation, useDeleteCategoryMutation, useGetFurtherReadingQuery, useLazyGetFurtherReadingQuery, useGetArticlesQuery, useLazyGetArticlesQuery, useGetHomeArticlesQuery, useLazyGetHomeArticlesQuery, useGetCategoriesIdNameQuery, useLazyGetCategoriesIdNameQuery, useGetArticleQuery, useLazyGetArticleQuery, useGetArticleTitleWithParentQuery, useLazyGetArticleTitleWithParentQuery, useGetArticlesIdNameQuery, useLazyGetArticlesIdNameQuery, useCreateArticleMutation, useUpdateArticleContentsMutation, useUpdateArticleWeightMutation, useDeleteArticleMutation } = injectedRtkApi;\n\n","import { api as generatedApi } from \"./KnowledgeBase.generated\"\nimport { api as restApi } from \"@/app/services/rest/api\"\n\nexport const api = generatedApi.enhanceEndpoints({\n addTagTypes: [\"Category\", \"Article\", \"FurtherReading\"],\n endpoints: {\n GetCategoryList: {\n providesTags: () => [{ type: \"Category\", id: \"LIST\" }],\n },\n GetCategoryTitle: {\n providesTags: (result, error, arg) => [{ type: \"Category\", id: arg.id }],\n },\n UpdateCategoryWeight: {\n invalidatesTags: (result, error, arg) => [\n { type: \"Category\", id: \"LIST\" },\n { type: \"Category\", id: arg.id },\n ],\n },\n CreateCategory: {\n invalidatesTags: () => [{ type: \"Category\", id: \"LIST\" }],\n },\n UpdateCategory: {\n invalidatesTags: (result, error, arg) => [\n { type: \"Category\" },\n { type: \"Article\" },\n ],\n },\n DeleteCategory: {\n invalidatesTags: (result, error, arg) => [\n { type: \"Category\", id: \"LIST\" },\n { type: \"Category\", id: arg.id },\n ],\n },\n GetFurtherReading: {\n providesTags: (result, error, arg) => [\n { type: \"FurtherReading\", id: \"LIST\" },\n ],\n },\n GetArticles: {\n providesTags: () => [{ type: \"Article\", id: \"LIST\" }],\n },\n GetHomeArticles: {\n providesTags: () => [{ type: \"Article\", id: \"LIST\" }],\n },\n GetArticle: {\n providesTags: (result, error, arg) => [{ type: \"Article\", id: arg.id }],\n },\n CreateArticle: {\n invalidatesTags: () => [\n { type: \"Article\", id: \"LIST\" },\n { type: \"Category\", id: \"LIST\" },\n ],\n onQueryStarted: async (_, { dispatch, queryFulfilled }) => {\n await queryFulfilled\n\n dispatch(\n restApi.util.invalidateTags([{ type: \"FurtherReading\", id: \"LIST\" }]),\n )\n },\n },\n UpdateArticleContents: {\n invalidatesTags: (result, error, arg) => [\n { type: \"Article\", id: arg.id },\n ],\n },\n UpdateArticleWeight: {\n invalidatesTags: (_, __, args) => [\n { type: \"Category\", id: \"LIST\" },\n { type: \"Article\", id: \"LIST\" },\n { type: \"Article\", id: args.id },\n ],\n },\n DeleteArticle: {\n invalidatesTags: (_, __, args) => [\n { type: \"Category\", id: \"LIST\" },\n { type: \"Article\", id: \"LIST\" },\n { type: \"FurtherReading\", id: \"LIST\" },\n { type: \"Article\", id: args.id },\n ],\n onQueryStarted: async (_, { dispatch, queryFulfilled }) => {\n await queryFulfilled\n\n dispatch(\n restApi.util.invalidateTags([{ type: \"FurtherReading\", id: \"LIST\" }]),\n )\n },\n },\n\n GetCategoriesIdName: {\n providesTags: () => [{ type: \"Category\", id: \"IDs\" }],\n },\n\n GetArticlesIdName: {\n providesTags: () => [{ type: \"Article\", id: \"IDs\" }],\n },\n\n GetCategoryTitleWithParent: {\n providesTags: () => [{ type: \"Category\", id: \"PARENT_IDs\" }],\n },\n },\n})\n\nexport const {\n useGetCategoryListQuery,\n useGetCategoryTitleQuery,\n useUpdateCategoryWeightMutation,\n useCreateCategoryMutation,\n useUpdateCategoryMutation,\n useDeleteCategoryMutation,\n useGetFurtherReadingQuery,\n useGetArticlesQuery,\n useGetArticleQuery,\n useCreateArticleMutation,\n useUpdateArticleContentsMutation,\n useUpdateArticleWeightMutation,\n useDeleteArticleMutation,\n useGetHomeArticlesQuery,\n useGetCategoriesIdNameQuery,\n useGetArticlesIdNameQuery,\n useGetCategoryTitleWithParentQuery,\n} = api\n\nexport const {\n GetCategoryList,\n GetCategoryTitle,\n UpdateCategoryWeight,\n CreateCategory,\n UpdateCategory,\n DeleteCategory,\n GetFurtherReading,\n GetArticles,\n GetArticle,\n CreateArticle,\n UpdateArticleContents,\n UpdateArticleWeight,\n DeleteArticle,\n GetHomeArticles,\n GetCategoryTitleWithParent,\n GetArticleTitleWithParent,\n} = api.endpoints\n","import { store } from \"@/app/store\"\nimport ProtectedRoute from \"@/components/ProtectedRoute\"\nimport {\n GetArticle,\n GetArticleTitleWithParent,\n} from \"@/features/knowledgeBase/KnowledgeBase\"\nimport { CategoryParams } from \"@/pages/KnowledgeBase/Category/route\"\nimport i18next from \"i18next\"\nimport { lazy } from \"react\"\nimport { LoaderFunctionArgs, RouteObject, redirect } from \"react-router-dom\"\n\nconst getMappedArticlesIds = async (\n article: string,\n): Promise<{\n categoryId?: string | number | undefined\n articleId?: string | number | undefined\n}> => {\n let categoryId: string | number | undefined\n let articleId: string | number | undefined\n\n const parentCategoryGetter = store.dispatch(\n GetArticleTitleWithParent.initiate({\n parent_id: parseInt(article),\n }),\n )\n\n const childCategoryGetter = store.dispatch(\n GetArticleTitleWithParent.initiate({\n id: parseInt(article),\n locale: \"ar-SA\",\n }),\n )\n\n await Promise.allSettled([parentCategoryGetter, childCategoryGetter])\n\n const parentCategoryResponse = GetArticleTitleWithParent.select({\n parent_id: parseInt(article),\n })(store.getState())\n\n const childCategoryResponse = GetArticleTitleWithParent.select({\n id: parseInt(article),\n locale: \"ar-SA\",\n })(store.getState())\n\n articleId =\n parentCategoryResponse.data?.article?.[0]?.id ??\n childCategoryResponse.data?.article?.[0]?.parent_id\n\n categoryId =\n parentCategoryResponse.data?.article?.[0]?.category?.id ??\n childCategoryResponse.data?.article?.[0]?.category?.parent_id\n\n parentCategoryGetter.unsubscribe()\n childCategoryGetter.unsubscribe()\n\n return { articleId, categoryId }\n}\n\nexport type ArticleParams = CategoryParams & {\n article: string\n}\n\nconst KnowledgeBaseArticle = lazy(\n () => import(\"@/pages/KnowledgeBase/Article/KnowledgeBaseArticle\"),\n)\nconst KnowledgeBaseArticleView = lazy(\n () => import(\"@/pages/KnowledgeBase/Article/KnowledgeBaseArticleView\"),\n)\nconst KnowledgeBaseArticleCreate = lazy(\n () => import(\"@/pages/KnowledgeBase/Article/KnowledgeBaseArticleCreate\"),\n)\nconst KnowledgeBaseArticleEdit = lazy(\n () => import(\"@/pages/KnowledgeBase/Article/KnowledgeBaseArticleEdit\"),\n)\n\nconst route: RouteObject[] = [\n {\n path: \"/knowledge-base/:category/create\",\n element: (\n state.auth.scope === \"internal\"}\n >\n \n \n ),\n handle: {\n crumb: () => i18next.t(\"label.createArticle\", { ns: \"knowledgeBase\" }),\n },\n },\n {\n path: \"/knowledge-base/:category/:article/edit\",\n element: (\n state.auth.scope === \"internal\"}\n >\n \n \n ),\n handle: {\n crumb: () => i18next.t(\"label.editArticle\", { ns: \"knowledgeBase\" }),\n },\n loader: async ({ params }: LoaderFunctionArgs) => {\n let title = null\n\n // @ts-ignore\n if (!isNaN(params.article)) {\n const parsedParams = { id: parseInt(params.article) }\n const getter = store.dispatch(GetArticle.initiate(parsedParams))\n await getter\n\n const response = GetArticle.select(parsedParams)(store.getState())\n\n if (\n (response.data?.article?.length ?? 0) > 0 &&\n response.data!.article![0].title\n ) {\n title = response.data!.article![0].title\n }\n\n getter.unsubscribe()\n }\n\n if (!title && !isNaN(params.article)) {\n const { articleId, categoryId } = await getMappedArticlesIds(\n params.article,\n )\n\n if (categoryId && articleId) {\n return redirect(`/knowledge-base/${categoryId}/${articleId}/edit`)\n }\n }\n\n return title\n },\n },\n {\n path: \"/knowledge-base/:category/:article\",\n element: ,\n handle: {\n crumb: (data: string) =>\n data ?? i18next.t(\"label.unknownArticle\", { ns: \"knowledgeBase\" }),\n },\n loader: async ({ params }: LoaderFunctionArgs) => {\n let title = null\n\n // @ts-ignore\n if (!isNaN(params.article)) {\n const parsedParams = { id: parseInt(params.article) }\n const getter = store.dispatch(GetArticle.initiate(parsedParams))\n await getter\n\n const response = GetArticle.select(parsedParams)(store.getState())\n\n if (\n (response.data?.article?.length ?? 0) > 0 &&\n response.data!.article![0].title\n ) {\n title = response.data!.article![0].title\n }\n\n getter.unsubscribe()\n }\n\n if (!title && !isNaN(params.article)) {\n const { articleId, categoryId } = await getMappedArticlesIds(\n params.article,\n )\n\n if (categoryId && articleId) {\n return redirect(`/knowledge-base/${categoryId}/${articleId}`)\n }\n }\n\n return title\n },\n children: [\n {\n index: true,\n element: ,\n },\n ],\n },\n]\n\nexport default route\n","import { store } from \"@/app/store\"\nimport {\n GetCategoryTitle,\n GetCategoryTitleWithParent,\n} from \"@/features/knowledgeBase/KnowledgeBase\"\nimport { lazy } from \"react\"\nimport { LoaderFunctionArgs, RouteObject, redirect } from \"react-router-dom\"\nimport articleRoutes from \"../Article/route\"\nimport i18next from \"i18next\"\n\nexport type CategoryParams = {\n category: string\n article: string\n}\n\nconst KnowledgeBaseCategory = lazy(\n () => import(\"@/pages/KnowledgeBase/Category/KnowledgeBaseCategory\"),\n)\n\nconst route: RouteObject = {\n path: \"/knowledge-base/:category\",\n handle: {\n crumb: (data: string) =>\n data ?? i18next.t(\"label.unknownCategory\", { ns: \"knowledgeBase\" }),\n },\n loader: async ({ params }: LoaderFunctionArgs) => {\n let title = null\n\n // @ts-ignore\n if (!isNaN(params.category)) {\n const parsedParams = { id: parseInt(params.category) }\n const getter = store.dispatch(GetCategoryTitle.initiate(parsedParams))\n await getter\n\n const response = GetCategoryTitle.select(parsedParams)(store.getState())\n\n if (\n (response.data?.category?.length ?? 0) > 0 &&\n response.data!.category![0].title\n ) {\n title = response.data!.category![0].title\n }\n\n getter.unsubscribe()\n }\n\n if (!title && !isNaN(params.category) && !params.article) {\n let categoryId: string | number | undefined\n\n const parentCategoryGetter = store.dispatch(\n GetCategoryTitleWithParent.initiate({\n parent_id: parseInt(params.category),\n }),\n )\n\n const childCategoryGetter = store.dispatch(\n GetCategoryTitleWithParent.initiate({\n id: parseInt(params.category),\n locale: \"ar-SA\",\n }),\n )\n\n await Promise.allSettled([parentCategoryGetter, childCategoryGetter])\n\n const parentCategoryResponse = GetCategoryTitleWithParent.select({\n parent_id: parseInt(params.category),\n })(store.getState())\n\n const childCategoryResponse = GetCategoryTitleWithParent.select({\n id: parseInt(params.category),\n locale: \"ar-SA\",\n })(store.getState())\n\n categoryId =\n parentCategoryResponse.data?.category?.[0]?.id ??\n childCategoryResponse.data?.category?.[0]?.parent_id\n\n parentCategoryGetter.unsubscribe()\n childCategoryGetter.unsubscribe()\n\n if (categoryId) {\n return redirect(`/knowledge-base/${categoryId}`)\n }\n }\n\n return title\n },\n children: [\n {\n index: true,\n element: ,\n },\n ...articleRoutes,\n ],\n}\n\nexport default route\n","import ProtectedRoute from \"@/components/ProtectedRoute\"\nimport articleRoutes from \"@/pages/KnowledgeBase/Article/route\"\nimport categoryRoute from \"@/pages/KnowledgeBase/Category/route\"\nimport { hasModuleRoutePermission } from \"@/util/permissions\"\nimport i18next from \"i18next\"\nimport { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\n\nconst KnowledgeBase = lazy(() => import(\"@/pages/KnowledgeBase/KnowledgeBase\"))\nconst KnowledgeBaseIndex = lazy(\n () => import(\"@/pages/KnowledgeBase/KnowledgeBaseIndex\"),\n)\n\nconst route: RouteObject = {\n path: \"/knowledge-base\",\n element: (\n \n \n \n ),\n handle: {\n pageTitle: () => i18next.t(\"docTitle\", { ns: \"knowledgeBase\" }),\n title: () => i18next.t(\"pageTitle\", { ns: \"knowledgeBase\" }),\n crumb: () => i18next.t(\"pageTitle\", { ns: \"knowledgeBase\" }),\n },\n children: [\n {\n index: true,\n element: ,\n },\n categoryRoute,\n ...articleRoutes,\n ],\n}\n\nexport default route\n","import { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\nimport i18next from \"i18next\"\n\nconst Analytics = lazy(() => import(\"@/pages/Analytics/Analytics\"))\nconst route: RouteObject = {\n path: \"/analytics\",\n element: ,\n handle: {\n pageTitle: () =>\n `${i18next.t(\"pageTitle\", { ns: \"analytics\" })} - ${i18next.t(\n \"label.hitseeker\",\n { ns: \"common\" },\n )}`,\n title: () => i18next.t(\"pageTitle\", { ns: \"analytics\" }),\n crumb: () => i18next.t(\"pageTitle\", { ns: \"analytics\" }),\n },\n}\nexport default route\n","import { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\nimport i18next from \"i18next\"\n\nconst Notification = lazy(() => import(\"@/pages/AppNotifications/Notification\"))\n\nconst route: RouteObject = {\n path: \"/notifications\",\n element: ,\n handle: {\n pageTitle: () => i18next.t(\"docTitle\", { ns: \"notification\" }),\n title: () => i18next.t(\"pageTitle\", { ns: \"notification\" }),\n crumb: () => i18next.t(\"pageTitle\", { ns: \"notification\" }),\n },\n}\nexport default route\n","import { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\nimport ProtectedRoute from \"@/components/ProtectedRoute\"\nimport i18next from \"i18next\"\n\nconst ManageAdAccount = lazy(\n () => import(\"@/pages/FacebookAdAccount/ManageAdAccount\"),\n)\n\nconst route: RouteObject = {\n path: \"/fb-ad-account\",\n element: (\n auth.scope === \"internal\"}\n redirectTo=\"/\"\n >\n \n \n ),\n handle: {\n pageTitle: () => i18next.t(\"fb_ad_account.docTitle\", { ns: \"cpiTest\" }),\n title: () => i18next.t(\"fb_ad_account.title\", { ns: \"cpiTest\" }),\n crumb: () => i18next.t(\"fb_ad_account.title\", { ns: \"cpiTest\" }),\n },\n}\nexport default route\n","import i18next from \"i18next\"\nimport { lazy } from \"react\"\nimport { RouteObject } from \"react-router-dom\"\n\nconst HomeIndex = lazy(() => import(\"@/pages/Home/HomeIndex\"))\n\nconst route: RouteObject = {\n path: \"/\",\n element: ,\n handle: {\n title: () => i18next.t(\"pageTitle\", { ns: \"dashboard\" }),\n },\n}\n\nexport default route\n","import { PropsWithChildren, useLayoutEffect } from \"react\"\nimport { useMatches } from \"react-router-dom\"\n\nconst PageTitleProvider = ({ children }: PropsWithChildren) => {\n const matches = useMatches()\n\n useLayoutEffect(() => {\n const reversedMatches = [...matches].reverse()\n const lastMatch = reversedMatches.find((match) => !!match.handle?.pageTitle)\n\n if (lastMatch) {\n document.title = lastMatch.handle?.pageTitle?.() ?? \"Hitseeker\"\n }\n }, [matches])\n\n return children\n}\n\nexport default PageTitleProvider\n","import { useAuth } from \"@/app/hooks\"\nimport { PropsWithChildren, useEffect } from \"react\"\nimport { useLocation } from \"react-router-dom\"\nimport ReactGA from \"react-ga4\"\n\nexport default function GoogleAnalyticsProvider({\n children,\n}: PropsWithChildren) {\n const { scope } = useAuth()\n const location = useLocation()\n\n useEffect(() => {\n if (!scope || scope === \"external\") {\n ReactGA.send({\n hitType: \"pageview\",\n page: location.pathname + location.search,\n title: document.title,\n })\n }\n }, [location, scope])\n\n return children\n}\n","import * as React from \"react\";\nconst SvgSomethingWrong = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 259, height: 230, viewBox: \"0 0 259 230\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M163.376 110.018L183.943 89.4515H214.274C238.965 89.4515 259 69.4167 259 44.7258C259 20.0348 238.965 0 214.274 0H173.726C149.008 0 129 20.0348 129 44.7258C129 64.4945 141.824 81.2301 159.598 87.1367V108.449C159.598 110.444 161.966 111.429 163.376 110.018Z\", fill: \"#FFCB05\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M196.868 46.64V42.12L211.428 60H202.108L192.148 47.16H195.748L185.748 60H176.588L191.228 42.16V46.6L177.508 30H186.908L195.988 41.6H192.348L201.268 30H210.508L196.868 46.64Z\", fill: \"#FAF9FE\" }), /* @__PURE__ */ React.createElement(\"ellipse\", { cx: 87, cy: 225.5, rx: 81, ry: 4.5, fill: \"#F3F3F3\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M2 97.5L17.5 112\", stroke: \"#FFCB05\", strokeWidth: 3, strokeLinecap: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M20.5 94L23.5 106.5\", stroke: \"#FFCB05\", strokeWidth: 3, strokeLinecap: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16 119.5L2.5 121\", stroke: \"#FFCB05\", strokeWidth: 3, strokeLinecap: \"round\" }), /* @__PURE__ */ React.createElement(\"rect\", { x: 21.75, y: 112.75, width: 128.5, height: 98.4999, rx: 9.25, fill: \"#F3F3F3\", stroke: \"#FFCB05\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22 132L152 132\", stroke: \"#FFCB05\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 34.5, cy: 122.5, r: 2.5, fill: \"#D9D9D9\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 44.5, cy: 122.5, r: 2.5, fill: \"#D9D9D9\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 54.5, cy: 122.5, r: 2.5, fill: \"#D9D9D9\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 50, cy: 175, r: 5, fill: \"#FFCB05\", fillOpacity: 0.63 }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 124, cy: 175, r: 5, fill: \"#FFCB05\", fillOpacity: 0.63 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M87 172C79.8802 172 73.8465 176.65 71.7709 183.079C70.9224 185.707 73.2386 188 76 188H98C100.761 188 103.078 185.707 102.229 183.079C100.153 176.65 94.1198 172 87 172Z\", fill: \"#D9D9D9\" }));\nexport default SvgSomethingWrong;\n","import * as React from \"react\";\nconst SvgNewBuildFrame = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 259, height: 230, viewBox: \"0 0 259 230\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M163.376 110.018L183.943 89.4515H214.274C238.965 89.4515 259 69.4167 259 44.7258C259 20.0348 238.965 0 214.274 0H173.726C149.008 0 129 20.0348 129 44.7258C129 64.4945 141.824 81.2301 159.598 87.1367V108.449C159.598 110.444 161.966 111.429 163.376 110.018Z\", fill: \"#FFCB05\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M165.978 53.356L163.782 53.752V31H170.37V58H161.802L145.35 35.248L147.546 34.852V58H140.958V31H149.778L165.978 53.356ZM198.338 41.98V47.02H178.79V41.98H198.338ZM183.398 44.5L181.598 55.66L178.754 52.42H199.49V58H174.794L176.882 44.5L174.794 31H199.31V36.58H178.754L181.598 33.34L183.398 44.5ZM237.227 55.156L235.031 55.192L242.123 31H249.287L240.827 58H232.151L223.979 34.528H226.823L218.687 58H209.975L201.515 31H208.715L215.807 55.156L213.647 55.12L221.819 31H229.019L237.227 55.156Z\", fill: \"#FAF9FE\" }), /* @__PURE__ */ React.createElement(\"ellipse\", { cx: 87, cy: 225.5, rx: 81, ry: 4.5, fill: \"#F3F3F3\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M2 97.5L17.5 112\", stroke: \"#FFCB05\", strokeWidth: 3, strokeLinecap: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M20.5 94L23.5 106.5\", stroke: \"#FFCB05\", strokeWidth: 3, strokeLinecap: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16 119.5L2.5 121\", stroke: \"#FFCB05\", strokeWidth: 3, strokeLinecap: \"round\" }), /* @__PURE__ */ React.createElement(\"rect\", { x: 21.75, y: 112.75, width: 128.5, height: 98.4999, rx: 9.25, fill: \"#F3F3F3\", stroke: \"#FFCB05\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 59, cy: 147, r: 5, fill: \"#767676\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 113, cy: 147, r: 5, fill: \"#767676\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 61, cy: 146, r: 2, fill: \"white\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 115, cy: 146, r: 2, fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86 182C93.1198 182 99.1535 177.35 101.229 170.921C102.078 168.293 99.7614 166 97 166L75 166C72.2386 166 69.9224 168.293 70.7709 170.921C72.8465 177.35 78.8802 182 86 182Z\", fill: \"#D9D9D9\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22 132L152 132\", stroke: \"#FFCB05\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 34.5, cy: 122.5, r: 2.5, fill: \"#D9D9D9\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 44.5, cy: 122.5, r: 2.5, fill: \"#D9D9D9\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 54.5, cy: 122.5, r: 2.5, fill: \"#D9D9D9\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 50, cy: 175, r: 5, fill: \"#FFCB05\", fillOpacity: 0.63 }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 124, cy: 175, r: 5, fill: \"#FFCB05\", fillOpacity: 0.63 }));\nexport default SvgNewBuildFrame;\n","import SomethingWentWrongImage from \"@/assets/SomethingWrong.svg?react\"\nimport NewReleaseFrameIcon from \"@/assets/new-build-frame.svg?react\"\nimport { Box, Button, Typography } from \"@mui/material\"\nimport { FC } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useRouteError } from \"react-router-dom\"\n\nconst SomethingWentWrong: FC = () => {\n const { t } = useTranslation(\"common\")\n const error = useRouteError()\n\n return (\n \n \n {error\n ?.toString()\n .includes(\"Failed to fetch dynamically imported module\") ||\n error?.toString().includes(\"Importing a module script failed\") ? (\n <>\n \n \n {t(\"label.newVersion\")}\n \n {t(\"label.newVersionInfo\")}\n window.location.reload()}\n >\n {t(\"button.refresh\")}\n \n \n ) : (\n <>\n \n \n {t(\"label.error\")}\n \n \n {t(\"label.somethingWentWrong\")}\n \n \n \n )}\n \n \n )\n}\n\nexport default SomethingWentWrong\n","import * as React from \"react\";\nconst SvgAppMaintenance = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 708, height: 493, viewBox: \"0 0 708 493\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M430.018 152.455C428.651 155.567 428.243 159.019 428.847 162.366C429.451 165.713 431.04 168.802 433.408 171.234L434.025 171.853C435.935 173.769 437.45 176.045 438.484 178.55C439.518 181.056 440.05 183.741 440.05 186.453C440.05 189.165 439.518 191.85 438.484 194.355C437.45 196.861 435.935 199.137 434.025 201.053C432.116 202.972 429.85 204.494 427.356 205.533C424.862 206.571 422.189 207.106 419.489 207.106C416.789 207.106 414.115 206.571 411.621 205.533C409.127 204.494 406.861 202.972 404.953 201.053L404.336 200.434C401.915 198.055 398.84 196.46 395.508 195.853C392.175 195.246 388.738 195.656 385.64 197.029C382.602 198.337 380.01 200.509 378.185 203.277C376.36 206.045 375.38 209.289 375.367 212.61V214.364C375.367 219.837 373.203 225.086 369.35 228.956C365.497 232.826 360.271 235 354.822 235C349.373 235 344.147 232.826 340.294 228.956C336.441 225.086 334.276 219.837 334.276 214.364V213.435C334.197 210.02 333.096 206.708 331.118 203.929C329.139 201.15 326.374 199.034 323.182 197.855C320.083 196.481 316.646 196.071 313.314 196.678C309.982 197.285 306.907 198.881 304.485 201.26L303.869 201.879C301.961 203.797 299.695 205.319 297.201 206.358C294.707 207.396 292.033 207.931 289.333 207.931C286.633 207.931 283.96 207.396 281.465 206.358C278.971 205.319 276.705 203.797 274.797 201.879C272.887 199.962 271.372 197.686 270.338 195.181C269.304 192.676 268.772 189.99 268.772 187.278C268.772 184.566 269.304 181.881 270.338 179.376C271.372 176.871 272.887 174.595 274.797 172.678L275.414 172.059C277.782 169.627 279.371 166.539 279.975 163.192C280.579 159.844 280.171 156.392 278.804 153.28C277.501 150.228 275.339 147.625 272.583 145.792C269.827 143.959 266.597 142.975 263.292 142.962H261.545C256.096 142.962 250.871 140.788 247.018 136.918C243.165 133.047 241 127.799 241 122.325C241 116.852 243.165 111.603 247.018 107.733C250.871 103.863 256.096 101.689 261.545 101.689H262.47C265.87 101.609 269.168 100.504 271.934 98.5164C274.701 96.529 276.808 93.7517 277.982 90.5455C279.349 87.4333 279.757 83.9811 279.153 80.6339C278.549 77.2868 276.96 74.1981 274.592 71.7664L273.975 71.1473C272.065 69.2307 270.55 66.9548 269.516 64.4495C268.482 61.9443 267.95 59.259 267.95 56.547C267.95 53.8351 268.482 51.1498 269.516 48.6446C270.55 46.1393 272.065 43.8634 273.975 41.9468C275.884 40.0281 278.15 38.506 280.644 37.4675C283.138 36.429 285.811 35.8944 288.511 35.8944C291.211 35.8944 293.885 36.429 296.379 37.4675C298.873 38.506 301.139 40.0281 303.047 41.9468L303.664 42.5659C306.085 44.9446 309.16 46.5403 312.492 47.1472C315.825 47.7541 319.262 47.3444 322.36 45.9709H323.182C326.22 44.6629 328.811 42.4912 330.637 39.7229C332.462 36.9546 333.441 33.7107 333.455 30.3905V28.6364C333.455 23.1633 335.619 17.9143 339.472 14.0443C343.325 10.1742 348.551 8 354 8C359.449 8 364.675 10.1742 368.528 14.0443C372.381 17.9143 374.545 23.1633 374.545 28.6364V29.565C374.559 32.8853 375.538 36.1292 377.363 38.8974C379.189 41.6657 381.78 43.8375 384.818 45.1455C387.917 46.519 391.354 46.9287 394.686 46.3218C398.018 45.7149 401.093 44.1192 403.515 41.7405L404.131 41.1214C406.039 39.2027 408.305 37.6806 410.799 36.642C413.293 35.6035 415.967 35.069 418.667 35.069C421.367 35.069 424.04 35.6035 426.535 36.642C429.029 37.6806 431.295 39.2027 433.203 41.1214C435.113 43.0379 436.628 45.3139 437.662 47.8191C438.696 50.3243 439.228 53.0097 439.228 55.7216C439.228 58.4335 438.696 61.1189 437.662 63.6241C436.628 66.1293 435.113 68.4053 433.203 70.3218L432.586 70.9409C430.218 73.3727 428.629 76.4613 428.025 79.8085C427.421 83.1556 427.829 86.6079 429.196 89.72V90.5455C430.499 93.5973 432.661 96.2 435.417 98.0333C438.173 99.8666 441.403 100.85 444.708 100.864H446.455C451.904 100.864 457.129 103.038 460.982 106.908C464.835 110.778 467 116.027 467 121.5C467 126.973 464.835 132.222 460.982 136.092C457.129 139.962 451.904 142.136 446.455 142.136H445.53C442.224 142.15 438.995 143.133 436.239 144.967C433.483 146.8 431.32 149.403 430.018 152.455Z\", fill: \"#F0F0F0\", stroke: \"#DBD9D0\", strokeWidth: 15, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M354 152C371.121 152 385 138.345 385 121.5C385 104.655 371.121 91 354 91C336.879 91 323 104.655 323 121.5C323 138.345 336.879 152 354 152Z\", fill: \"#FAF9FE\", stroke: \"#DBD9D0\", strokeWidth: 15, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M707.015 431.851C707.015 465.231 548.748 492.27 353.507 492.27C158.266 492.27 0 465.21 0 431.851C0 398.491 158.266 371.431 353.507 371.431C548.748 371.431 707.015 398.491 707.015 431.851Z\", fill: \"#E9E9E9\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M423.45 388.25H283.543V413.061H423.45V388.25Z\", fill: \"#B7B4A7\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M445.365 430.372H261.649L283.543 413.061H423.45L445.365 430.372Z\", fill: \"#CCA307\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M154.625 115.354H552.39C559.652 115.354 565.543 121.246 565.543 128.51V379.637C565.543 386.9 559.652 392.792 552.39 392.792H154.625C147.363 392.792 141.471 386.9 141.471 379.637V128.51C141.471 121.246 147.363 115.354 154.625 115.354Z\", fill: \"#FFCB05\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M552.39 115.354H154.625C147.384 115.354 141.471 121.268 141.471 128.51V355.105H565.522V128.51C565.522 121.268 559.609 115.354 552.369 115.354H552.39Z\", fill: \"#B7B4A7\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M550.741 129.217H156.274V340.6H550.741V129.217Z\", fill: \"#FEFDFC\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M353.507 380.323C358.24 380.323 362.076 376.486 362.076 371.752C362.076 367.019 358.24 363.182 353.507 363.182C348.775 363.182 344.938 367.019 344.938 371.752C344.938 376.486 348.775 380.323 353.507 380.323Z\", fill: \"#FEFDFC\" }), /* @__PURE__ */ React.createElement(\"g\", { opacity: 0.4 }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M421.308 141.965H169.642V194.457H421.308V141.965Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M537.03 141.965H435.275V243.736H537.03V141.965Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M248.903 202.492H169.642V243.736H248.903V202.492Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M334.592 202.492H255.33V243.736H334.592V202.492Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M420.28 202.492H341.018V243.736H420.28V202.492Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M248.903 251.92H169.642V259.805H248.903V251.92Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M248.903 273.345H169.642V281.23H248.903V273.345Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M248.903 294.771H169.642V302.655H248.903V294.771Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M248.903 316.196H169.642V324.081H248.903V316.196Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M334.592 251.92H255.33V259.805H334.592V251.92Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M334.592 273.345H255.33V281.23H334.592V273.345Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M334.592 294.771H255.33V302.655H334.592V294.771Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M334.592 316.196H255.33V324.081H334.592V316.196Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M420.28 251.92H341.018V259.805H420.28V251.92Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M420.28 273.345H341.018V281.23H420.28V273.345Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M420.28 294.771H341.018V302.655H420.28V294.771Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M420.28 316.196H341.018V324.081H420.28V316.196Z\", fill: \"#BDBDBD\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M537.03 255.734H435.275V324.102H537.03V255.734Z\", fill: \"#BDBDBD\" })), /* @__PURE__ */ React.createElement(\"path\", { d: \"M459.354 328.773H444.766V435.064H459.354V328.773Z\", fill: \"#9C7E09\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M472.593 430.715C472.593 433.115 470.665 435.043 468.265 435.043H435.854C433.455 435.043 431.527 433.115 431.527 430.715C431.527 428.315 433.455 426.387 435.854 426.387H468.265C470.665 426.387 472.593 428.315 472.593 430.715Z\", fill: \"#9C7E09\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M616.806 328.773H602.218V435.064H616.806V328.773Z\", fill: \"#9C7E09\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M630.045 430.715C630.045 433.115 628.117 435.043 625.718 435.043H593.306C590.907 435.043 588.979 433.115 588.979 430.715C588.979 428.315 590.907 426.387 593.306 426.387H625.718C628.117 426.387 630.045 428.315 630.045 430.715Z\", fill: \"#9C7E09\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M642.341 281.68H421.694V345.828H642.341V281.68Z\", fill: \"#FFC536\" }), /* @__PURE__ */ React.createElement(\"mask\", { id: \"mask0_6289_3767\", style: {\n maskType: \"luminance\"\n}, maskUnits: \"userSpaceOnUse\", x: 421, y: 281, width: 222, height: 65 }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M642.341 281.68H421.694V345.828H642.341V281.68Z\", fill: \"white\" })), /* @__PURE__ */ React.createElement(\"g\", { mask: \"url(#mask0_6289_3767)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M429.727 345.849H390.182L415.032 281.68H454.577L429.727 345.849Z\", fill: \"#0B3A42\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M504.255 345.849H464.709L489.559 281.68H529.104L504.255 345.849Z\", fill: \"#0B3A42\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M578.782 345.849H539.237L564.087 281.68H603.632L578.782 345.849Z\", fill: \"#0B3A42\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M653.31 345.849H613.764L638.614 281.68H678.159L653.31 345.849Z\", fill: \"#0B3A42\" })), /* @__PURE__ */ React.createElement(\"path\", { opacity: 0.2, d: \"M642.341 328.773H421.694V345.849H642.341V328.773Z\", fill: \"#9C7E09\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.033 328.773H87.445V435.064H102.033V328.773Z\", fill: \"#9C7E09\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M115.272 430.715C115.272 433.115 113.344 435.043 110.945 435.043H78.5334C76.1341 435.043 74.2061 433.115 74.2061 430.715C74.2061 428.315 76.1341 426.387 78.5334 426.387H110.945C113.344 426.387 115.272 428.315 115.272 430.715Z\", fill: \"#9C7E09\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M259.486 328.773H244.897V435.064H259.486V328.773Z\", fill: \"#9C7E09\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M272.725 430.715C272.725 433.115 270.797 435.043 268.397 435.043H235.986C233.586 435.043 231.659 433.115 231.659 430.715C231.659 428.315 233.586 426.387 235.986 426.387H268.397C270.797 426.387 272.725 428.315 272.725 430.715Z\", fill: \"#9C7E09\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M285.021 281.68H64.3734V345.828H285.021V281.68Z\", fill: \"#FFC536\" }), /* @__PURE__ */ React.createElement(\"mask\", { id: \"mask1_6289_3767\", style: {\n maskType: \"luminance\"\n}, maskUnits: \"userSpaceOnUse\", x: 64, y: 281, width: 222, height: 65 }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M285.021 281.68H64.3734V345.828H285.021V281.68Z\", fill: \"white\" })), /* @__PURE__ */ React.createElement(\"g\", { mask: \"url(#mask1_6289_3767)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.4067 345.849H32.8615L57.7111 281.68H97.2563L72.4067 345.849Z\", fill: \"#0B3A42\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M146.934 345.849H107.389L132.239 281.68H171.784L146.934 345.849Z\", fill: \"#0B3A42\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M221.462 345.849H181.916L206.766 281.68H246.311L221.462 345.849Z\", fill: \"#0B3A42\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M295.989 345.849H256.444L281.294 281.68H320.839L295.989 345.849Z\", fill: \"#0B3A42\" })), /* @__PURE__ */ React.createElement(\"path\", { opacity: 0.2, d: \"M285.021 328.773H64.3734V345.849H285.021V328.773Z\", fill: \"#9C7E09\" }));\nexport default SvgAppMaintenance;\n","export default \"__VITE_ASSET__eb38e206__\"","export default \"__VITE_ASSET__0abad3e3__\"","export default \"__VITE_ASSET__ab82922e__\"","export default \"__VITE_ASSET__a0552d6b__\"","import AppMaintenanceFrame from \"@/assets/AppMaintenance.svg?react\"\nimport HitSeekerLogo from \"@/assets/HitseekerLogoPrimary.png\"\nimport HitSeekerLogoDark from \"@/assets/HitseekerLogoPrimaryDark.png\"\nimport HitSeekerArLogo from \"@/assets/HitseekerArLogo.png\"\nimport HitSeekerArLogoDark from \"@/assets/HitseekerArLogoDark.png\"\nimport { Box, Button, Divider, Typography, useTheme } from \"@mui/material\"\nimport { FC } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { Refresh } from \"@mui/icons-material\"\n\nconst AppMaintenance: FC = () => {\n const { t, i18n } = useTranslation(\"common\")\n const lightModeLogo =\n i18n.language === \"ar-SA\" ? HitSeekerArLogo : HitSeekerLogo\n const darkModeLogo =\n i18n.language === \"ar-SA\" ? HitSeekerArLogoDark : HitSeekerLogoDark\n\n const theme = useTheme()\n\n return (\n \n \n \n \n \n \n \n \n {t(\"appMaintenance.underMaintenance\")}\n \n \n {t(\"appMaintenance.secondaryNote\")}\n \n \n {t(\"appMaintenance.backShortly\")}\n \n \n }\n sx={{ mt: 2 }}\n color=\"primary\"\n onClick={() => window.location.reload()}\n >\n {t(\"button.refresh\")}\n \n \n \n \n )\n}\n\nexport default AppMaintenance\n","import { useAppSelector } from \"@/app/hooks\"\nimport Loading from \"@/components/Loading\"\nimport AuthorisationRoute from \"@/components/AuthorisedRoute\"\nimport ProtectedRoute from \"@/components/ProtectedRoute\"\nimport { selectIsAuthenticated } from \"@/features/auth/authSlice\"\nimport discussionForumRoute from \"@/pages/DiscussionForum/route\"\nimport myOrganisationRoute from \"@/pages/MyOrganisation/route\"\nimport allOrganisationsRoute from \"@/pages/AllOrganisations/route\"\nimport allUsersRoute from \"@/pages/AllUsers/route\"\nimport allInternalUsersRoute from \"@/pages/InternalUsers/route\"\nimport profileRoute from \"@/pages/Profile/route\"\nimport fileManagementRoute from \"@/pages/FileManagement/route\"\nimport gamesRoute from \"@/pages/Games/route\"\nimport unityTest from \"@/pages/UnityTest/route\"\nimport knowledgeBaseRoute from \"@/pages/KnowledgeBase/route\"\nimport analytics from \"@/pages/Analytics/route\"\nimport notificationRoute from \"@/pages/AppNotifications/route\"\nimport facebookAdAccountRoute from \"@/pages/FacebookAdAccount/route\"\nimport homeRoute from \"@/pages/Home/route\"\nimport PageTitleProvider from \"@/providers/PageTitleProvider\"\nimport GoogleAnalyticsProvider from \"@/providers/GoogleAnalyticsProvider\"\nimport SomethingWentWrong from \"@/components/SomethingWentWrong\"\nimport { Box } from \"@mui/material\"\nimport { lazy, PropsWithChildren, Suspense, useMemo } from \"react\"\nimport { createBrowserRouter, Navigate, RouterProvider } from \"react-router-dom\"\nimport ReactGA from \"react-ga4\"\nimport { getCurrentLocale } from \"./util/i18n\"\nimport { useTranslation } from \"react-i18next\"\nimport moment from \"moment/moment\"\nimport \"moment/locale/ar-sa\"\nimport AppMaintenance from \"@/components/AppMaintenance\"\nimport { HITSEEKER_EVENT } from \"@/util/hitseekerEvents\"\n\nconst Layout = lazy(() => import(\"@/components/Layout/Layout\"))\nconst OnboardingLayout = lazy(\n () => import(\"@/components/Layout/Onboarding/OnboardingLayout\"),\n)\n\nconst Login = lazy(() => import(\"@/pages/Login/Login\"))\nconst AdminLogin = lazy(() => import(\"@/pages/Login/AdminLogin\"))\n\nconst Register = lazy(() => import(\"@/pages/Register/Register\"))\nconst RegisterSuccess = lazy(() => import(\"@/pages/Register/RegisterSuccess\"))\n\nconst Auth = lazy(() => import(\"@/pages/Auth/Auth\"))\n\nconst VerifyEmail = lazy(() => import(\"@/pages/VerifyEmail/VerifyEmail\"))\nconst ForgotPassword = lazy(\n () => import(\"@/pages/ForgotPassword/ForgotPassword\"),\n)\n\nconst OrganisationSetup = lazy(\n () => import(\"@/pages/OrganisationSetup/OrganisationSetup\"),\n)\n\nconst HybridSubmission = lazy(\n () => import(\"@/pages/Games/hybrid-submission/HybridSubmission\"),\n)\n\nconst PageNotFound = lazy(() => import(\"@/components/NotFound/PageNotFound\"))\n\nif (import.meta.env.VITE_ENABLE_GA === \"true\") {\n ReactGA.initialize(import.meta.env.VITE_GA_MEASUREMENT_ID)\n}\n\nif (import.meta.env.VITE_MIXPANEL_TOKEN) {\n HITSEEKER_EVENT.init(import.meta.env.VITE_MIXPANEL_TOKEN, {\n track_pageview: \"full-url\",\n persistence: \"localStorage\",\n })\n}\n\nexport default function App() {\n const { t } = useTranslation(\"common\")\n\n const appMaintenanceRouter = useMemo(() => {\n return createBrowserRouter([\n {\n path: \"*\",\n element: ,\n },\n ])\n }, [])\n\n const router = useMemo(() => {\n const locale = getCurrentLocale()\n const routerBasePath = locale ? `/${locale}` : undefined\n\n moment.locale(locale === \"ar-SA\" ? \"ar-sa\" : \"en\")\n\n return createBrowserRouter(\n [\n {\n element: (\n \n \n \n \n \n ),\n errorElement: ,\n children: [\n {\n path: \"/login\",\n handle: {\n pageTitle: () =>\n `${t(\"pageTitle.loginPage\", {\n ns: \"onboarding\",\n })} - ${t(\"label.hitseeker\", { ns: \"common\" })}`,\n },\n element: ,\n },\n {\n path: \"/register\",\n handle: {\n pageTitle: () =>\n `${t(\"pageTitle.registerPage\", {\n ns: \"onboarding\",\n })} - ${t(\"label.hitseeker\", { ns: \"common\" })}`,\n },\n element: ,\n },\n { path: \"/register-success\", element: },\n {\n path: \"/forgot-password\",\n handle: {\n pageTitle: () =>\n `${t(\"pageTitle.forgotPasswordPage\", {\n ns: \"onboarding\",\n })} - ${t(\"label.hitseeker\", { ns: \"common\" })}`,\n },\n element: ,\n },\n { path: \"/set-password\", element: },\n { path: \"/auth\", element: },\n { path: \"/admin/login\", element: },\n { path: \"/admin/auth\", element: },\n { path: \"/verify\", element: },\n ],\n },\n {\n path: \"/organisation-setup\",\n handle: { pageTitle: () => \"Organisation Setup - Hitseeker\" },\n errorElement: ,\n element: (\n \n \n \n \n \n \n \n ),\n },\n {\n path: \"/hybrid\",\n element: ,\n },\n {\n path: \"/\",\n element: (\n \n \n \n \n \n \n \n \n \n ),\n errorElement: ,\n handle: {\n pageTitle: () => `${t(\"label.home\")} - ${t(\"label.hitseeker\")}`,\n crumb: () => t(\"label.home\"),\n },\n children: [\n homeRoute,\n analytics,\n knowledgeBaseRoute,\n fileManagementRoute,\n discussionForumRoute,\n myOrganisationRoute,\n allOrganisationsRoute,\n profileRoute,\n gamesRoute,\n unityTest,\n notificationRoute,\n facebookAdAccountRoute,\n allUsersRoute,\n allInternalUsersRoute,\n ],\n },\n /* Redirection URLS for old portal routes */\n {\n path: \"/signup\",\n element: ,\n },\n {\n path: \"/submit-game/info\",\n element: ,\n },\n {\n path: \"/coaching\",\n element: ,\n },\n {\n path: \"/wallet\",\n element: ,\n },\n {\n path: \"/account\",\n element: ,\n },\n /* Redirection URLS end */\n {\n path: \"*\",\n element: ,\n },\n ],\n {\n basename: routerBasePath,\n },\n )\n }, [t])\n return (\n \n \n \n }\n >\n \n \n )\n}\n\nfunction AuthenticatedRoute({ children }: PropsWithChildren) {\n const isAuthenticated = useAppSelector(selectIsAuthenticated)\n\n return (\n {children}\n )\n}\n","import * as React from \"react\";\nconst SvgNotificationError = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 25 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.64511 17.597L10.7232 12.4167L5.64511 7.23646L7.20845 5.64514L13.861 12.4167L7.20845 19.1883L5.64511 17.597Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M18.669 7.23656L13.5909 12.4168L18.669 17.5971L17.1057 19.1884L10.4532 12.4168L17.1057 5.64524L18.669 7.23656Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 12.5, cy: 12.5, r: 11, stroke: \"currentColor\", strokeWidth: 2 }));\nexport default SvgNotificationError;\n","import * as React from \"react\";\nconst SvgNotificationInfo = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 25 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"circle\", { cx: 12.5, cy: 12.5, r: 11, stroke: \"currentColor\", strokeWidth: 2 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M13.197 16.1243H10.9997C11.0076 15.3683 11.0746 14.75 11.2006 14.2696C11.3344 13.7813 11.551 13.3364 11.8503 12.9347C12.1496 12.5331 12.5473 12.0763 13.0434 11.5644C13.4057 11.1942 13.7365 10.8477 14.0357 10.5248C14.3429 10.194 14.591 9.83965 14.78 9.46163C14.969 9.07573 15.0635 8.61501 15.0635 8.07948C15.0635 7.53607 14.9651 7.06747 14.7682 6.6737C14.5792 6.27992 14.2956 5.97672 13.9176 5.76408C13.5475 5.55144 13.0867 5.44512 12.5355 5.44512C12.0787 5.44512 11.6455 5.52781 11.236 5.6932C10.8265 5.85858 10.4957 6.11454 10.2437 6.46106C9.99167 6.79971 9.86172 7.24467 9.85385 7.79596H7.6684C7.68415 6.90603 7.90466 6.1421 8.32994 5.50419C8.76309 4.86627 9.34588 4.37799 10.0783 4.03934C10.8107 3.7007 11.6298 3.53137 12.5355 3.53137C13.5356 3.53137 14.3862 3.71251 15.0871 4.07478C15.7959 4.43706 16.3354 4.95684 16.7055 5.63413C17.0757 6.30355 17.2608 7.09898 17.2608 8.02041C17.2608 8.7292 17.1151 9.38287 16.8237 9.98141C16.5402 10.5721 16.1739 11.1273 15.725 11.6471C15.2761 12.1669 14.7997 12.663 14.2956 13.1355C13.8625 13.5372 13.5711 13.99 13.4215 14.4941C13.2718 14.9981 13.197 15.5415 13.197 16.1243ZM10.9052 19.8691C10.9052 19.5147 11.0155 19.2154 11.236 18.9713C11.4565 18.7272 11.7755 18.6051 12.1929 18.6051C12.6182 18.6051 12.941 18.7272 13.1616 18.9713C13.3821 19.2154 13.4923 19.5147 13.4923 19.8691C13.4923 20.2078 13.3821 20.4991 13.1616 20.7433C12.941 20.9874 12.6182 21.1095 12.1929 21.1095C11.7755 21.1095 11.4565 20.9874 11.236 20.7433C11.0155 20.4991 10.9052 20.2078 10.9052 19.8691Z\", fill: \"currentColor\" }));\nexport default SvgNotificationInfo;\n","import * as React from \"react\";\nconst SvgNotificationSuccess = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 25 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M4.82579 10.4439L10.0342 15.4531L19.3678 6.4516L20.9677 7.99374L10.0342 18.5484L3.22581 11.9861L4.82579 10.4439Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 12.5, cy: 12.5, r: 11, stroke: \"currentColor\", strokeWidth: 2 }));\nexport default SvgNotificationSuccess;\n","import * as React from \"react\";\nconst SvgNotificationWarning = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 25 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"circle\", { cx: 12.5, cy: 12.5, r: 11, stroke: \"currentColor\", strokeWidth: 2 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 19.6342L12 20\", stroke: \"currentColor\", strokeWidth: 3, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 5L12 15.2439\", stroke: \"currentColor\", strokeWidth: 3, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgNotificationWarning;\n","import ErrorIcon from \"@/assets/notification_error.svg?react\"\nimport InfoIcon from \"@/assets/notification_info.svg?react\"\nimport SuccessIcon from \"@/assets/notification_success.svg?react\"\nimport WarningIcon from \"@/assets/notification_warning.svg?react\"\nimport { useAppDispatch } from \"@/app/hooks\"\nimport { closeSnackbar } from \"@/features/notifier/notifierSlice\"\nimport {\n Box,\n IconButton,\n Paper,\n Typography,\n styled,\n useMediaQuery,\n useTheme,\n} from \"@mui/material\"\nimport { CancelOutlined as CancelIcon } from \"@mui/icons-material\"\nimport { CustomContentProps, SnackbarContent, VariantType } from \"notistack\"\nimport { CSSProperties, forwardRef, useMemo } from \"react\"\nimport { useTranslation } from \"react-i18next\"\n\nconst StyledIconButton = styled(IconButton)(({ theme }) => ({\n position: \"absolute\",\n background: theme.palette.background.paper,\n padding: 0,\n left: theme.spacing(-1),\n top: theme.spacing(-1),\n}))\n\nfunction Icon({\n variant,\n style,\n className,\n}: {\n variant: VariantType\n style?: CSSProperties\n className?: string\n}) {\n const theme = useTheme()\n\n switch (variant) {\n case \"success\":\n return (\n \n )\n case \"error\":\n return (\n \n )\n case \"info\":\n return (\n \n )\n case \"warning\":\n return (\n \n )\n case \"default\":\n default:\n return null\n }\n}\n\ninterface NotificationComponentProps extends CustomContentProps {\n title?: string\n}\n\nconst NotifierComponent = forwardRef<\n HTMLDivElement,\n NotificationComponentProps\n>((props, ref) => {\n const { id, message, variant, title: notificationTitle, ...other } = props\n\n const { t } = useTranslation(\"common\")\n\n const theme = useTheme()\n const isMobileDevice = useMediaQuery(theme.breakpoints.down(\"md\"))\n\n const dispatch = useAppDispatch()\n\n const title = useMemo(() => {\n let newTitle = notificationTitle\n if (!newTitle) {\n switch (variant) {\n case \"success\":\n newTitle = t(\"label.success\")\n break\n case \"error\":\n newTitle = t(\"label.error\")\n break\n case \"info\":\n newTitle = t(\"label.help\")\n break\n case \"warning\":\n newTitle = t(\"label.warning\")\n break\n case \"default\":\n default:\n newTitle = t(\"label.notification\")\n break\n }\n }\n\n return newTitle\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [notificationTitle, t])\n\n const handleCloseSnackbar = () => {\n dispatch(closeSnackbar(id))\n }\n\n return (\n \n \n \n \n \n \n \n {title}\n \n {message}\n \n \n )\n})\n\nexport default NotifierComponent\n","import NotifierComponent from \"@/components/Notifier/NotifierComponent\"\nimport { SnackbarKey, SnackbarProvider, useSnackbar } from \"notistack\"\nimport React, { useEffect } from \"react\"\nimport { useAppDispatch, useAppSelector } from \"@/app/hooks\"\nimport { Notification } from \"@/model/Notifier/notification\"\nimport {\n removeSnackbar,\n selectNotifications,\n} from \"@/features/notifier/notifierSlice\"\n\nlet displayed: SnackbarKey[] = []\n\ntype Props = {\n children: React.ReactNode\n}\n\nexport default function Notifier({ children }: Props) {\n return (\n \n \n\n {children}\n \n )\n}\n\nfunction NotificationRenderer() {\n const dispatch = useAppDispatch()\n const notifications = useAppSelector(selectNotifications)\n const { enqueueSnackbar, closeSnackbar } = useSnackbar()\n\n const storeDisplayed = (key: SnackbarKey) => {\n displayed = [...displayed, key]\n }\n\n const removeDisplayed = (key: SnackbarKey) => {\n displayed = [...displayed.filter((k) => key !== k)]\n }\n\n useEffect(() => {\n notifications.forEach(\n ({ message, options, dismissed = false }: Notification) => {\n const { key } = options as { key: SnackbarKey }\n\n if (dismissed) {\n // dismiss snackbar using notistack\n closeSnackbar(key)\n return\n }\n\n // do nothing if snackbar is already displayed\n if (displayed.includes(key)) {\n return\n }\n\n // display snackbar using notistack\n enqueueSnackbar(message, {\n anchorOrigin: {\n vertical: \"bottom\",\n horizontal: \"right\",\n },\n ...options,\n onClose: (event, reason, key) => {\n if (options.onClose) {\n options.onClose(event, reason, key)\n }\n },\n onExited: (event, key) => {\n // remove this snackbar from redux store\n dispatch(removeSnackbar(key))\n removeDisplayed(key)\n },\n })\n\n // keep track of snackbars that we've displayed\n storeDisplayed(key)\n },\n )\n }, [notifications, closeSnackbar, enqueueSnackbar, dispatch])\n\n return null\n}\n","import { Theme, alpha } from \"@mui/material\"\n\nconst Button: NonNullable[\"MuiButton\"] = {\n defaultProps: {\n variant: \"contained\",\n color: \"secondary\",\n disableRipple: true,\n disableElevation: true,\n },\n styleOverrides: {\n root: ({ ownerState, theme }) => ({\n borderRadius: 8,\n\n \"& .MuiButton-endIcon svg\": {\n height: 17,\n width: 17,\n },\n ...(ownerState.color === \"secondary\" &&\n theme.palette.mode === \"dark\" &&\n ownerState.variant === \"contained\" && {\n backgroundColor: theme.palette.tertiary.main,\n color: theme.palette.tertiary.contrastText,\n }),\n ...(ownerState.color === \"tertiary\" &&\n ownerState.variant === \"text\" && {\n color: theme.palette.tertiary.dark,\n }),\n ...(ownerState.color === \"tertiary\" &&\n ownerState.variant === \"contained\" &&\n theme.palette.mode === \"dark\" && {\n backgroundColor: \"#A0A0A0\",\n }),\n ...(ownerState.variant === \"text\" &&\n ownerState.color === \"secondary\" && {\n color: theme.palette.mode === \"dark\" ? \"#FFF\" : \"#000\",\n }),\n \":hover\": {\n ...(ownerState.color === \"primary\" &&\n ownerState.variant === \"contained\" && {\n backgroundColor: theme.palette.secondary.main,\n color: theme.palette.primary.main,\n }),\n ...(ownerState.color === \"secondary\" &&\n ownerState.variant === \"contained\" && {\n backgroundColor: theme.palette.tertiary.main,\n color: theme.palette.tertiary.contrastText,\n }),\n ...(ownerState.color === \"tertiary\" &&\n ownerState.variant === \"contained\" && {\n backgroundColor: theme.palette.secondary.main,\n color: theme.palette.secondary.contrastText,\n }),\n ...(ownerState.color === \"tertiary\" &&\n ownerState.variant === \"text\" && {\n color: theme.palette.primary.main,\n }),\n ...(ownerState.color === \"primary\" &&\n ownerState.variant === \"contained\" &&\n theme.palette.mode === \"dark\" && {\n backgroundColor: alpha(theme.palette.primary.main, 0.7),\n color: theme.palette.primary.contrastText,\n }),\n ...(ownerState.color === \"secondary\" &&\n ownerState.variant === \"contained\" &&\n theme.palette.mode === \"dark\" && {\n backgroundColor: alpha(theme.palette.tertiary.main, 0.7),\n }),\n ...(ownerState.color === \"tertiary\" &&\n ownerState.variant === \"contained\" &&\n theme.palette.mode === \"dark\" && {\n backgroundColor: alpha(\"#A0A0A0\", 0.7),\n color: theme.palette.tertiary.contrastText,\n }),\n ...(ownerState.color === \"kwalee\" &&\n ownerState.variant === \"contained\" &&\n theme.palette.mode === \"dark\" && {\n backgroundColor: alpha(theme.palette.kwalee.main, 0.7),\n }),\n ...(ownerState.color === \"primary\" &&\n ownerState.variant === \"outlined\" && {\n backgroundColor: alpha(theme.palette.primary.main, 0.4),\n }),\n },\n }),\n },\n}\n\nexport default Button\n","import { checkboxClasses, Theme } from \"@mui/material\"\n\nconst Checkbox: NonNullable[\"MuiCheckbox\"] = {\n defaultProps: {\n disableRipple: true,\n },\n styleOverrides: {\n root: ({ ownerState, theme }) => ({\n color: theme.palette.primary.contrastText,\n padding: 1,\n marginRight: 10,\n\n [`&.${checkboxClasses.checked}`]: {\n \"span:after\": {\n ...(ownerState.disabled\n ? {\n backgroundColor: theme.palette.tertiary.dark,\n }\n : // @ts-ignore\n { backgroundColor: `${theme.palette[ownerState.color].main}` }),\n },\n },\n }),\n },\n}\n\nexport default Checkbox\n","import { alpha, Theme } from \"@mui/material\"\n\nconst CssBaseline: NonNullable[\"MuiCssBaseline\"] = {\n styleOverrides: (theme) => ({\n body: {\n \"::-webkit-scrollbar, & *::-webkit-scrollbar\": {\n width: 10,\n height: 10,\n background: \"transparent\",\n },\n\n \"::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner\": {\n background: \"transparent\",\n },\n\n \"::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb\": {\n borderRadius: 12,\n background: alpha(theme.palette.text.primary, 0.07),\n transition: theme.transitions.create([\"background-color\"], {\n duration: theme.transitions.duration.shortest,\n }),\n\n \"&:hover\": {\n background: alpha(theme.palette.text.primary, 0.15),\n },\n },\n\n \"::-webkit-scrollbar-track, & *::-webkit-scrollbar-track\": {\n borderRadius: 12,\n background: \"transparent\",\n },\n },\n }),\n}\n\nexport default CssBaseline\n","import { Theme } from \"@mui/material\"\n\nconst IconButton: NonNullable[\"MuiIconButton\"] = {\n defaultProps: { disableRipple: true },\n styleOverrides: {\n root: ({ theme }) => ({\n svg: {\n \"&:hover\": {\n color: theme.palette.primary.main,\n },\n },\n }),\n },\n}\n\nexport default IconButton\n","import { Theme } from \"@mui/material\"\n\nconst Paper: NonNullable[\"MuiPaper\"] = {\n styleOverrides: {\n root: ({ ownerState, theme }) => ({\n ...(!ownerState.square && {\n borderRadius: theme.spacing(1),\n }),\n ...(ownerState.color === \"secondary\" &&\n theme.palette.mode === \"dark\" && {\n backgroundColor: \"#313131\",\n }),\n ...(ownerState.color === \"secondary\" &&\n theme.palette.mode !== \"dark\" && {\n backgroundColor: \"#FDFDFD\",\n }),\n }),\n },\n}\n\nexport default Paper\n","import { radioClasses, Theme } from \"@mui/material\"\n\nconst Radio: NonNullable[\"MuiRadio\"] = {\n defaultProps: {\n disableRipple: true,\n },\n styleOverrides: {\n root: ({ ownerState, theme }) => ({\n color: theme.palette.primary.contrastText,\n\n [`&.${radioClasses.checked}`]: {\n \"span:after\": {\n ...(ownerState.disabled\n ? {\n backgroundColor: theme.palette.primary.contrastText,\n }\n : // @ts-ignore\n { backgroundColor: `${theme.palette[ownerState.color].main}` }),\n },\n },\n }),\n },\n}\n\nexport default Radio\n","import { Theme } from \"@mui/material\"\n\nconst Select: NonNullable[\"MuiSelect\"] = {\n defaultProps: {\n inputProps: {\n disableUnderline: true,\n },\n },\n styleOverrides: {\n root: ({ ownerState, theme }) => ({\n textTransform: \"capitalize\",\n ...(ownerState.variant === \"outlined\" && {\n \"&.MuiInputBase-root.Mui-error .MuiSelect-outlined\": {\n borderColor: \"#F64B3C\",\n },\n \"& .MuiSelect-outlined\": {\n borderRadius: 4,\n fontSize: 14,\n border: `1px solid`,\n borderColor: theme.palette.tertiary.light,\n background: \"transparent\",\n padding: \"6px\",\n [theme.breakpoints.only(\"xs\")]: { fontSize: 12 },\n },\n \"fieldset.MuiOutlinedInput-notchedOutline\": {\n borderColor: \"none !important\",\n },\n }),\n\n ...(ownerState.variant === \"outlined\" &&\n ownerState.size === \"medium\" && {\n \"& .MuiInputBase-input\": {\n padding: theme.spacing(2, 1),\n },\n }),\n\n ...(ownerState.variant === \"standard\" && {\n \"& .MuiSelect-standard\": {\n backgroundColor:\n theme.palette.mode === \"dark\" ? \"#313131\" : \"#FDFDFD\",\n color: `${theme.palette.getContrastText(\n theme.palette.mode === \"dark\" ? \"#313131\" : \"#FDFDFD\",\n )}`,\n borderRadius: 8,\n padding: theme.spacing(1, 1.5),\n fontSize: 14,\n position: \"relative\",\n boxShadow: \"none\",\n \":focus\": {\n backgroundColor:\n theme.palette.mode === \"dark\" ? \"#313131\" : \"#FDFDFD\",\n borderRadius: 8,\n },\n },\n }),\n ...(ownerState.variant === \"filled\" && {\n backgroundColor: theme.palette.mode === \"dark\" ? \"#313131\" : \"#F5F5F7\",\n borderRadius: 8,\n border: `1px solid`,\n borderColor: theme.palette.tertiary.light,\n\n \"&.MuiInputBase-root.Mui-error\": { borderColor: \"#F64B3C\" },\n \"& .MuiSelect-filled\": {\n \":focus\": {\n background: theme.palette.mode === \"dark\" ? \"#19191A\" : \"#FFF\",\n },\n },\n svg: {\n color: theme.palette.mode === \"dark\" ? \"#A0A0A0\" : \"#1E1E1E\",\n },\n \"& .MuiInputBase-input\": {\n background: theme.palette.mode === \"dark\" ? \"#19191A\" : \"#FFF\",\n width: \"100%\",\n borderRadius: 4,\n outline: 0,\n padding: 4,\n border: `1px solid transparent`,\n margin: \"6px 6px 6px 20px\",\n fontSize: 13,\n \":focus\": {\n border: `1px solid`,\n borderColor: theme.palette.tertiary.light,\n },\n },\n }),\n }),\n },\n}\n\nexport default Select\n","import { Theme } from \"@mui/material\"\n\nconst Tabs: NonNullable[\"MuiTabs\"] = {\n styleOverrides: {\n indicator: {\n height: 3,\n borderRadius: 3,\n },\n },\n}\n\nexport const Tab: NonNullable[\"MuiTab\"] = {\n styleOverrides: {\n root: {\n textTransform: \"none\",\n fontWeight: 300,\n letterSpacing: 1,\n\n \"&.Mui-selected\": {\n color: \"black\",\n fontWeight: 500,\n },\n },\n },\n}\n\nexport default Tabs\n","import { Theme } from \"@mui/material\"\n\nconst defaultOverrides: NonNullable[\"MuiTextField\"] = {\n defaultProps: {\n variant: \"standard\",\n InputLabelProps: {\n shrink: true,\n },\n InputProps: {\n disableUnderline: true,\n },\n },\n styleOverrides: {\n root: ({ ownerState, theme }) => ({\n \"& .MuiInputBase-root\": { marginTop: 0 },\n \"& .MuiInputBase-root.Mui-error\": { borderColor: \"#F64B3C\" },\n\n \"input, textarea, .MuiSelect-standard\": {\n fontSize: 14,\n marginTop: theme.spacing(2),\n },\n \"& input::-webkit-outer-spin-button, & input::-webkit-inner-spin-button\":\n {\n display: \"none\",\n },\n \"& input[type=number]\": {\n MozAppearance: \"textfield\",\n },\n ...(ownerState.variant === \"outlined\" && {\n label: {\n fontSize: 14,\n textTransform: \"capitalize\",\n },\n input: {\n fontSize: 14,\n marginTop: 0,\n },\n }),\n ...(ownerState.variant === \"filled\" && {\n \"& .MuiFilledInput-root\": {\n borderRadius: 8,\n border: `1px solid`,\n borderColor: theme.palette.tertiary.light,\n backgroundColor:\n theme.palette.theme === \"dark\" ? \"#313131\" : \"#F5F5F7\",\n \":focus\": {\n backgroundColor: \"inherit\",\n },\n svg: {\n color: theme.palette.theme === \"dark\" ? \"#A0A0A0\" : \"#1E1E1E\",\n },\n input: {\n background: theme.palette.theme === \"dark\" ? \"#19191A\" : \"#FFF\",\n width: \"100%\",\n borderRadius: 4,\n outline: 0,\n padding: 4,\n border: `1px solid transparent`,\n margin: \"6px 6px 6px 20px\",\n fontSize: 14,\n\n \":focus\": {\n border: `1px solid`,\n borderColor: theme.palette.tertiary.light,\n },\n },\n },\n }),\n ...(ownerState.variant === \"outlined\" && {\n label: {\n fontSize: 18,\n textTransform: \"capitalize\",\n },\n \"& .MuiOutlinedInput-notchedOutline\": {\n borderColor: theme.palette.tertiary.light,\n },\n }),\n }),\n },\n}\n\nexport default defaultOverrides\n","import { TypographyOptions } from \"@mui/material/styles/createTypography\"\n\nconst TypographyEn: TypographyOptions = {\n fontFamily: [\n \"Roboto\",\n \"Unbounded\",\n \"Inter\",\n \"-apple-system\",\n \"BlinkMacSystemFont\",\n '\"Segoe UI\"',\n '\"Helvetica Neue\"',\n \"Arial\",\n \"sans-serif\",\n '\"Apple Color Emoji\"',\n '\"Segoe UI Emoji\"',\n '\"Segoe UI Symbol\"',\n ].join(\",\"),\n\n h1: {\n fontSize: 46,\n lineHeight: \"70px\",\n fontWeight: 700,\n fontFamily: \"Unbounded\",\n \"@media (max-width:600px)\": {\n fontSize: 30,\n lineHeight: \"40px\",\n },\n },\n h2: {\n fontSize: 36,\n lineHeight: \"46px\",\n fontWeight: 600,\n fontFamily: \"Unbounded\",\n \"@media (max-width:600px)\": {\n fontSize: 24,\n lineHeight: \"36px\",\n },\n },\n h3: {\n fontSize: 26,\n lineHeight: \"40px\",\n fontWeight: 600, //500\n fontFamily: \"Unbounded\",\n \"@media (max-width:600px)\": {\n fontSize: 18,\n lineHeight: \"26px\",\n },\n },\n h4: {\n fontSize: 22,\n lineHeight: \"30px\",\n fontWeight: 400,\n fontFamily: \"Unbounded\",\n \"@media (max-width:600px)\": {\n fontSize: 14,\n lineHeight: \"20px\",\n fontWeight: 700,\n },\n },\n h5: {\n fontSize: 20,\n lineHeight: \"30px\",\n fontWeight: 400,\n fontFamily: \"Unbounded\",\n \"@media (max-width:600px)\": {\n fontSize: 13,\n lineHeight: \"20px\",\n fontWeight: 700,\n },\n },\n h6: {\n fontSize: 16,\n lineHeight: \"30px\",\n fontWeight: 600,\n fontFamily: \"Unbounded\",\n \"@media (max-width:600px)\": {\n fontSize: 11,\n lineHeight: \"18px\",\n fontWeight: 700,\n },\n },\n body1: {\n fontSize: 16,\n fontWeight: 300,\n \"@media (max-width:600px)\": {\n fontSize: 12,\n },\n },\n body2: {\n \"@media (max-width:600px)\": {\n fontSize: 11,\n },\n },\n caption: {\n \"@media (max-width:600px)\": {\n fontSize: 10,\n },\n },\n\n subtitle2: {\n fontSize: 20,\n },\n button: {\n fontSize: 12,\n fontWeight: 700,\n \"@media (max-width:600px)\": {\n fontSize: 10,\n },\n },\n}\n\nexport default TypographyEn\n","import { TypographyOptions } from \"@mui/material/styles/createTypography\"\n\nconst TypographyAr: TypographyOptions = {\n fontFamily: [\"Roboto\", \"Noto Naskh Arabic\", \"serif\"].join(\",\"),\n\n h1: {\n fontSize: 48,\n lineHeight: \"70px\",\n fontWeight: 700,\n \"@media (max-width:600px)\": {\n fontSize: 32,\n lineHeight: \"40px\",\n },\n },\n h2: {\n fontSize: 38,\n lineHeight: \"46px\",\n fontWeight: 700,\n \"@media (max-width:600px)\": {\n fontSize: 26,\n lineHeight: \"36px\",\n },\n },\n h3: {\n fontSize: 28,\n lineHeight: \"40px\",\n fontWeight: 700,\n \"@media (max-width:600px)\": {\n fontSize: 20,\n lineHeight: \"26px\",\n },\n },\n h4: {\n fontSize: 24,\n lineHeight: \"30px\",\n fontWeight: 700,\n \"@media (max-width:600px)\": {\n fontSize: 16,\n lineHeight: \"20px\",\n fontWeight: 700,\n },\n },\n h5: {\n fontSize: 22,\n lineHeight: \"30px\",\n fontWeight: 700,\n \"@media (max-width:600px)\": {\n fontSize: 15,\n lineHeight: \"20px\",\n fontWeight: 700,\n },\n },\n h6: {\n fontSize: 18,\n lineHeight: \"30px\",\n fontWeight: 700,\n \"@media (max-width:600px)\": {\n fontSize: 13,\n lineHeight: \"18px\",\n fontWeight: 700,\n },\n },\n body1: {\n fontSize: 18,\n fontWeight: 500,\n \"@media (max-width:600px)\": {\n fontSize: 14,\n },\n },\n body2: {\n fontSize: 18,\n fontWeight: 500,\n \"@media (max-width:600px)\": {\n fontSize: 12,\n },\n },\n caption: {\n fontSize: 16,\n fontWeight: 500,\n \"@media (max-width:600px)\": {\n fontSize: 11,\n },\n },\n subtitle2: {\n fontSize: 22,\n fontWeight: 500,\n },\n button: {\n fontSize: 14,\n fontWeight: \"700 !important\",\n\n \"&.MuiButton-sizeSmall\": {\n fontSize: 14,\n fontWeight: \"700 !important\",\n },\n\n \"@media (max-width:600px)\": {\n fontSize: 12,\n },\n },\n}\n\nexport default TypographyAr\n","import { SupportedLanguagesType } from \"@/constants/i18n\"\nimport { Theme } from \"@mui/material\"\n\nconst Tooltip: NonNullable[\"MuiTooltip\"] = {\n defaultProps: {\n enterTouchDelay: 0,\n },\n}\n\nconst TooltipAr: NonNullable[\"MuiTooltip\"] = {\n defaultProps: {\n enterTouchDelay: 0,\n },\n styleOverrides: {\n tooltip: () => ({\n fontSize: 16,\n fontWeight: 600,\n }),\n },\n}\n\nconst getTooltipOverrides = (\n locale: SupportedLanguagesType,\n): NonNullable[\"MuiTooltip\"] => {\n switch (locale) {\n case \"en-GB\":\n return Tooltip\n case \"ar-SA\":\n return TooltipAr\n default:\n return Tooltip\n }\n}\n\nexport default getTooltipOverrides\n","import { SupportedLanguagesType } from \"@/constants/i18n\"\nimport { Theme } from \"@mui/material\"\n\nconst TableCell: NonNullable[\"MuiTableCell\"] = {}\n\nconst TableCellAr: NonNullable[\"MuiTableCell\"] = {\n styleOverrides: {\n root: () => ({\n fontSize: 16,\n }),\n },\n}\n\nconst getTableCellOverrides = (\n locale: SupportedLanguagesType,\n): NonNullable[\"MuiTableCell\"] => {\n switch (locale) {\n case \"en-GB\":\n return TableCell\n case \"ar-SA\":\n return TableCellAr\n default:\n return TableCell\n }\n}\n\nexport default getTableCellOverrides\n","import { SupportedLanguagesType } from \"@/constants/i18n\"\nimport { Theme } from \"@mui/material\"\n\nconst InputLabel: NonNullable[\"MuiInputLabel\"] = {}\n\nconst InputLabelAr: NonNullable[\"MuiInputLabel\"] = {\n styleOverrides: {\n root: () => ({\n fontSize: 20,\n fontWeight: 600,\n }),\n },\n}\n\nconst getInputLabelOverrides = (\n locale: SupportedLanguagesType,\n): NonNullable[\"MuiInputLabel\"] => {\n switch (locale) {\n case \"en-GB\":\n return InputLabel\n case \"ar-SA\":\n return InputLabelAr\n default:\n return InputLabel\n }\n}\n\nexport default getInputLabelOverrides\n","import Button from \"@/theme/variant/Button\"\nimport Checkbox from \"@/theme/variant/Checkbox\"\nimport CssBaseline from \"@/theme/variant/CssBaseline\"\nimport IconButton from \"@/theme/variant/IconButton\"\nimport Paper from \"@/theme/variant/Paper\"\nimport Radio from \"@/theme/variant/Radio\"\nimport Select from \"@/theme/variant/Select\"\nimport Tabs, { Tab } from \"@/theme/variant/Tabs\"\nimport TextField from \"@/theme/variant/TextField\"\nimport TypographyEn from \"@/theme/variant/TypographyEn\"\nimport TypographyAr from \"@/theme/variant/TypographyAr\"\nimport { getCurrentLocale } from \"@/util/i18n\"\nimport { ThemeOptions } from \"@mui/material\"\nimport { CSSProperties } from \"@mui/material/styles/createMixins\"\nimport { SupportedLanguagesType } from \"@/constants/i18n\"\nimport { TypographyOptions } from \"@mui/material/styles/createTypography\"\nimport getTooltipOverrides from \"./Tooltip\"\nimport getTableCellOverrides from \"./TableCell\"\nimport getInputLabelOverrides from \"./InputLabel\"\n\nconst typography: Record = {\n \"en-GB\": TypographyEn,\n \"ar-SA\": TypographyAr,\n}\n\nconst baseTheme: ThemeOptions = {\n palette: {\n mode: \"light\",\n theme: \"light\",\n primary: {\n main: \"#FFCB05\",\n contrastText: \"#1E1E1E\",\n },\n secondary: {\n main: \"#1E1E1E\",\n contrastText: \"#F7F7F7\",\n },\n tertiary: {\n main: \"#E0E0E0\",\n light: \"#E8E8E8\",\n dark: \"#BDBDBD\",\n contrastText: \"#1E1E1E\",\n },\n kwalee: {\n main: \"#ffcd05\",\n light: \"#ffd844\",\n dark: \"#ffc400\",\n contrastText: \"#1E1E1E\",\n },\n background: {\n default: \"#F2F3F7\",\n paper: \"#FAF9FE\",\n card: \"#FFFFFF\",\n },\n bgSvgShade: {\n startColor: \"#FFCD05\",\n stopColor: \"#FAA51A\",\n },\n ctaSvgShade: {\n startColor: \"#FFCD05\",\n stopColor: \"#FAA51A\",\n },\n },\n typography: typography[getCurrentLocale() ?? \"en-GB\"],\n components: {\n MuiButton: Button,\n MuiCheckbox: Checkbox,\n MuiCssBaseline: CssBaseline,\n MuiIconButton: IconButton,\n MuiPaper: Paper,\n MuiRadio: Radio,\n MuiSelect: Select,\n MuiTabs: Tabs,\n MuiTab: Tab,\n MuiTextField: TextField,\n MuiInputLabel: getInputLabelOverrides(getCurrentLocale() ?? \"en-GB\"),\n MuiTooltip: getTooltipOverrides(getCurrentLocale() ?? \"en-GB\"),\n MuiTableCell: getTableCellOverrides(getCurrentLocale() ?? \"en-GB\"),\n },\n mixins: {\n flex: ({\n justifyContent = \"center\",\n alignItems = \"center\",\n flexDirection = \"row\",\n }) =>\n ({\n display: \"flex\",\n justifyContent,\n alignItems,\n flexDirection,\n } as CSSProperties),\n },\n}\n\nexport default baseTheme\n","import baseTheme from \"@/theme/variant/base\"\nimport { createTheme } from \"@mui/material\"\n\nexport default createTheme(baseTheme)\n","import baseTheme from \"@/theme/variant/base\"\nimport { createTheme, ThemeOptions } from \"@mui/material\"\nimport cloneDeep from \"lodash.clonedeep\"\nimport merge from \"lodash.merge\"\n\nconst dark = createTheme(\n merge(cloneDeep(baseTheme), {\n palette: {\n mode: \"dark\",\n theme: \"dark\",\n background: {\n default: \"#1E1E1E\",\n paper: \"#19191A\",\n card: \"#282828\",\n },\n tertiary: { light: \"#454545\" },\n bgSvgShade: {\n startColor: \"rgba(30, 30, 30, 0.2)\",\n stopColor: \"rgba(255, 255, 255, 0.05)\",\n },\n },\n } as ThemeOptions),\n)\n\nexport default dark\n","import baseTheme from \"@/theme/variant/base\"\nimport { createTheme, ThemeOptions } from \"@mui/material\"\nimport cloneDeep from \"lodash.clonedeep\"\nimport merge from \"lodash.merge\"\n\nconst blue = createTheme(\n merge(cloneDeep(baseTheme), {\n palette: {\n theme: \"blue\",\n primary: {\n main: \"#64C0FF\",\n light: \"#9FDDFF\",\n contrastText: \"#1E1E1E\",\n },\n bgSvgShade: {\n startColor: \"#64C0FF\",\n stopColor: \"#9FDDFF\",\n },\n ctaSvgShade: {\n startColor: \"#64C0FF\",\n stopColor: \"#9FDDFF\",\n },\n },\n } as ThemeOptions),\n)\n\nexport default blue\n","import baseTheme from \"@/theme/variant/base\"\nimport { createTheme } from \"@mui/material\"\nimport cloneDeep from \"lodash.clonedeep\"\nimport merge from \"lodash.merge\"\n\nconst purple = createTheme(\n merge(cloneDeep(baseTheme), {\n palette: {\n theme: \"purple\",\n primary: {\n main: \"#A493ED\",\n contrastText: \"#1E1E1E\",\n },\n bgSvgShade: {\n startColor: \"#A493ED\",\n stopColor: \"#C9BDF5\",\n },\n ctaSvgShade: {\n startColor: \"#A493ED\",\n stopColor: \"#C9BDF5\",\n },\n },\n }),\n)\n\nexport default purple\n","import baseTheme from \"@/theme/variant/base\"\nimport { createTheme } from \"@mui/material\"\nimport cloneDeep from \"lodash.clonedeep\"\nimport merge from \"lodash.merge\"\n\nconst green = createTheme(\n merge(cloneDeep(baseTheme), {\n palette: {\n theme: \"green\",\n primary: {\n main: \"#47CFAF\",\n light: \"#92EEDB\",\n contrastText: \"#1E1E1E\",\n },\n bgSvgShade: {\n startColor: \"#47CFAF\",\n stopColor: \"#92EEDB\",\n },\n ctaSvgShade: {\n startColor: \"#47CFAF\",\n stopColor: \"#92EEDB\",\n },\n },\n }),\n)\n\nexport default green\n","import baseTheme from \"@/theme/variant/base\"\nimport { createTheme } from \"@mui/material\"\nimport cloneDeep from \"lodash.clonedeep\"\nimport merge from \"lodash.merge\"\n\nconst orange = createTheme(\n merge(cloneDeep(baseTheme), {\n palette: {\n theme: \"orange\",\n primary: {\n main: \"#FAA401\",\n contrastText: \"#1E1E1E\",\n },\n bgSvgShade: {\n startColor: \"#FAA51A\",\n stopColor: \"#FFCD05\",\n },\n ctaSvgShade: {\n startColor: \"#FAA51A\",\n stopColor: \"#FFCD05\",\n },\n },\n }),\n)\n\nexport default orange\n","import { useAppDispatch, useAppSelector, useAuth } from \"@/app/hooks\"\nimport { selectIsAuthenticated } from \"@/features/auth/authSlice\"\nimport { selectTheme, setTheme } from \"@/features/general/generalSlice\"\nimport { useGetOrganisationsQuery } from \"@/features/userManagement/UserManagement\"\nimport { blue, dark, green, light, orange, purple } from \"@/theme/variant\"\nimport { ThemeMode } from \"@/theme\"\nimport {\n CssBaseline,\n Theme as ThemeObject,\n ThemeProvider,\n useMediaQuery,\n} from \"@mui/material\"\nimport React, { PropsWithChildren, useEffect, useMemo } from \"react\"\nimport { CacheProvider } from \"@emotion/react\"\nimport createCache from \"@emotion/cache\"\nimport { prefixer } from \"stylis\"\nimport rtlPlugin from \"stylis-plugin-rtl\"\nimport { useTranslation } from \"react-i18next\"\n\nconst rtlCache = createCache({\n key: \"muirtl\",\n stylisPlugins: [prefixer, rtlPlugin],\n})\n\nconst ltrCache = createCache({\n key: \"mui\",\n})\n\nconst Theme = ({ children }: PropsWithChildren) => {\n const { i18n } = useTranslation()\n\n const prefersDarkMode = useMediaQuery(\"(prefers-color-scheme: dark)\")\n\n const dispatch = useAppDispatch()\n const selectedTheme = useAppSelector(selectTheme)\n const isAuthenticated = useAppSelector(selectIsAuthenticated)\n\n const { scope } = useAuth()\n const isInternalUser = scope === \"internal\"\n\n const { data: organisationData } = useGetOrganisationsQuery(undefined, {\n skip: isInternalUser || !isAuthenticated,\n })\n const organisation = organisationData?.organisations?.[0]\n\n useEffect(() => {\n if (organisation?.theme) {\n dispatch(setTheme(organisation.theme as ThemeMode))\n }\n }, [organisation, dispatch])\n\n useEffect(() => {\n document.dir = i18n.dir()\n }, [i18n])\n\n const theme = useMemo(() => {\n let theme: ThemeObject\n switch (selectedTheme) {\n case \"light\":\n theme = light\n break\n case \"dark\":\n theme = dark\n break\n case \"blue\":\n theme = blue\n break\n case \"purple\":\n theme = purple\n break\n case \"green\":\n theme = green\n break\n case \"orange\":\n theme = orange\n break\n default:\n theme = prefersDarkMode ? dark : light\n break\n }\n\n return theme\n }, [selectedTheme, prefersDarkMode])\n\n return (\n \n \n \n {children}\n \n \n )\n}\n\nexport default Theme\n","import i18n from \"i18next\"\nimport LanguageDetector from \"i18next-browser-languagedetector\"\nimport { initReactI18next } from \"react-i18next\"\nimport Backend from \"i18next-http-backend\"\n\nimport { SUPPORTED_LANGUAGES } from \"@/constants/i18n\"\n\ni18n\n .use(Backend)\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n ns: [\n \"common\",\n \"dashboard\",\n \"analytics\",\n \"games\",\n \"cpiTest\",\n \"feedback\",\n \"organisation\",\n \"onboarding\",\n \"fileManagement\",\n \"discussionForum\",\n \"notification\",\n \"knowledgeBase\",\n \"customEvents\",\n \"creativeManagement\",\n \"unityTest\",\n ],\n fallbackLng: \"en-GB\",\n supportedLngs: SUPPORTED_LANGUAGES,\n detection: {\n order: [\"path\"],\n },\n interpolation: {\n escapeValue: false,\n },\n })\n","import App from \"@/App\"\nimport Notifier from \"@/components/Notifier/Notifier\"\nimport { Theme } from \"@/theme\"\nimport \"@fontsource/roboto/300.css\"\nimport \"@fontsource/roboto/400.css\"\nimport \"@fontsource/roboto/500.css\"\nimport \"@fontsource/roboto/700.css\"\nimport \"@fontsource/unbounded/400.css\"\nimport \"@fontsource/unbounded/600.css\"\nimport \"@fontsource/unbounded/700.css\"\nimport \"@fontsource/noto-naskh-arabic\"\nimport \"@fontsource/noto-naskh-arabic/500.css\"\nimport \"@fontsource/noto-naskh-arabic/600.css\"\nimport \"@fontsource/noto-naskh-arabic/700.css\"\nimport React, { Suspense } from \"react\"\nimport ReactDOM from \"react-dom/client\"\nimport { Provider } from \"react-redux\"\nimport { PersistGate } from \"redux-persist/integration/react\"\nimport { store, storePersistor } from \"./app/store\"\n\nimport * as Sentry from \"@sentry/react\"\n\nimport \"@/app/i18n\"\n\nwindow.addEventListener(\"vite:preloadError\", (event) => {\n console.log(\"event\", event)\n window.location.reload()\n})\n\nif (import.meta.env.VITE_SENTRY_DSN?.trim()) {\n Sentry.init({\n dsn: import.meta.env.VITE_SENTRY_DSN,\n integrations: [\n Sentry.browserTracingIntegration(),\n Sentry.replayIntegration({\n maskAllText: true,\n blockAllMedia: false,\n }),\n ],\n normalizeDepth: 5,\n environment: import.meta.env.MODE,\n // Performance Monitoring\n tracesSampleRate: 1.0, // Capture 100% of the transactions\n // Set 'tracePropagationTargets' to control for which URLs distributed tracing should be enabled\n tracePropagationTargets: [\n \"localhost\",\n /^https:\\/\\/[A-Za-z]+-publishing-portal-backend\\.kwalee\\.com\\//,\n ],\n // Session Replay\n replaysSessionSampleRate: 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production.\n replaysOnErrorSampleRate: 1.0, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur.\n })\n}\n\nReactDOM.createRoot(document.getElementById(\"root\")!).render(\n \n \n \n \n \n \n \n \n \n \n \n \n ,\n)\n"],"file":"assets/index-83093e68.js"}