{"version":3,"sources":["_constants/alert.constants.js","_constants/user.constants.js","_constants/general.constants.js","_constants/main.constants.js","_constants/favorite.constants.js","_constants/account.constants.js","_constants/language.constants.js","_constants/information.constants.js","_services/axios-nomura.services.js","_constants/fund-ranking.constants.js","_constants/investment.constant.js","_constants/order-request.constants.js","_constants/authentication.constants.js","_actions/investment.actions.js","_utils/information.utils.js","_constants/compare.constants.js","_actions/authentication.actions.js","_actions/information.actions.js","_constants/search.constants.js","_constants/home.constants.js","_constants/advance-search.constants.js","_constants/monthly-report.constants.js","_utils/general.utils.js","_services/information.services.js","_services/investment.services.js","_actions/fund-ranking.actions.js","_constants/calendar.constants.js","_utils/cookie.utils.js","_utils/fund-ranking.utils.js","_constants/ipo.constants.js","_actions/order-request.actions.js","_actions/favorite.actions.js","_constants/hotfund.constants.js","_services/order-request.services.js","_services/advance-search.services.js","_actions/home.actions.js","_utils/calendar.utils.js","_actions/compare.actions.js","_reducers/main.reducer.js","_utils/search.utils.js","_reducers/search.reducer.js","_reducers/authentication.reducer.js","_reducers/users.reducer.js","_reducers/alert.reducer.js","_utils/investment.utils.js","_reducers/investment.reducer.js","_reducers/favorite.reducer.js","_reducers/fund-ranking.reducer.js","_utils/advance-search.utils.js","_reducers/advance-search.reducer.js","_reducers/hotfund.reducer.js","_reducers/compare.reducer.js","_reducers/information.reducer.js","_reducers/order-request.reducer.js","_reducers/ipo.reducer.js","_reducers/monthly-report.reducer.js","_reducers/calendar.reducer.js","_reducers/transfer.reducer.js","_utils/home.utils.js","_reducers/home.reducer.js","_reducers/general.reducer.js","redux/root-reducer.js","_sagas/search.sagas.js","_services/authentication.services.js","_constants/twoFactorAuthenticationMethod.constants.js","_utils/service.utils.js","_sagas/authentication.sagas.js","_services/favorite.services.js","_sagas/favorite.sagas.js","_sagas/hotfund.sagas.js","_services/compare.services.js","_sagas/compare.sagas.js","_sagas/investment.sagas.js","_sagas/information.sagas.js","_sagas/order-request.sagas.js","_sagas/advance-search.sagas.js","_services/ipo.services.js","_sagas/ipo.sagas.js","_services/fund-ranking.services.js","_services/home.services.js","_sagas/fund-ranking.sagas.js","_services/monthly-report.services.js","_sagas/monthly-report.sagas.js","_sagas/calendar.sagas.js","_sagas/home.sagas.js","_sagas/general.sagas.js","_actions/general.actions.js","_middlewares/middlewares.js","redux/store.js","redux/root-saga.js","_components/spinner/spinner.component.jsx","_actions/monthly-report.actions.js","_actions/advance-search.actions.js","_services/axios-cns-auth.services.js","_actions/search.actions.js","_helpers/auth-header.js","_actions/main.actions.js","_services/calendar.services.js","_configs/index.js","_actions/calendar.actions.js","_selectors/authentication.selectors.js","_utils/ipo.utils.js","_services/search.services.js","_services/axios-mock.services.js","_services/general.service.js","_services/user.service.js","_actions/hotfund.actions.js","_actions/ipo.actions.js","_services/hotfund.services.js","_helpers/body-class.js","_constants/transfer.constants.js","assets/loading-yellow.gif","Pages/ad-login/index.jsx","Pages/dsa-login/index.jsx","Pages/sso-login/index.jsx","_components/icons/icons.js","_utils/order-request.utils.js","routes.js","App/App.js","index.js"],"names":["alertConstants","SUCCESS","ERROR","CLEAR","userConstants","REGISTER_REQUEST","REGISTER_SUCCESS","REGISTER_FAILURE","LOGIN_REQUEST","LOGIN_SUCCESS","LOGIN_FAILURE","GETALL_REQUEST","GETALL_SUCCESS","GETALL_FAILURE","DELETE_REQUEST","DELETE_SUCCESS","DELETE_FAILURE","accountTypeConstants","O","S","logInTypeConstants","general","AD","generalConstants","DEFAULT_ROUTE","DEFAULT_PAGE","path","name","icon","layout","section","GET_COLOR_LIST_START","GET_COLOR_LIST_SUCCESS","GET_COLOR_LIST_FAILURE","CLEAR_COLOR_LIST","mainConstants","TOGGLE_SCREEN_SIZE","TOGGLE_SIDE_BAR","TOGGLE_ACTIVE_PAGE","INSERT_ROUTES","FETCH_ROUTES_START","FETCH_ROUTES_SUCCESS","FETCH_ROUTES_FAILURE","ENABLE_PAGING","DISABLE_PAGING","INSERT_PAGES","UPDATE_ERROR_MODAL","CLEAR_ERROR_MODAL","favoriteConstants","UPDATE_FAVORITE_FUNDS_QUERIES","UPDATE_FAVORITE_FUNDS_TABLE_COLUMNS","UPDATE_LOCAL_FAVORITE_FUNDS","ADD_FAVORITE_FUND","DELETE_FAVORITE_FUND","PUT_FAVORITE_FUNDS","FETCH_FAVORITE_FUNDS_BY_ACCOUNT_START","FETCH_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS","FETCH_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE","FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_START","FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS","FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE","FETCH_FAVORITE_COPYPORT_START","FETCH_FAVORITE_COPYPORT_SUCCESS","FETCH_FAVORITE_COPYPORT_FAILURE","ACCOUNT_TYPES","TYPE_P","TYPE_A","LANGUAGE","TH","EN","informationConstants","FETCH_FUND_INFO_START","FETCH_FUND_INFO_SUCCESS","FETCH_FUND_INFO_FAILURE","CLEAR_FUND_INFO","FETCH_PORTFOLIO_INFO_START","FETCH_PORTFOLIO_INFO_SUCCESS","FETCH_PORTFOLIO_INFO_FAILURE","UPDATE_FUND_ID","UPDATE_RECENT_TAB","FETCH_TRADING_INFO_START","FETCH_TRADING_INFO_SUCCESS","FETCH_TRADING_INFO_FAILURE","FETCH_FUND_AVERAGE_RATING_START","FETCH_FUND_AVERAGE_RATING_SUCCESS","FETCH_FUND_AVERAGE_RATING_FAILURE","VOTE_FUND_AVERAGE_RATING","FETCH_CALENDAR_FUND_START","FETCH_CALENDAR_FUND_SUCCESS","FETCH_CALENDAR_FUND_FAILURE","FETCH_FUND_PORT_INFO_START","FETCH_FUND_PORT_INFO_SUCCESS","FETCH_FUND_PORT_INFO_FAILURE","FETCH_FUND_PORT_CHART_BY_CHART_TYPE_START","FETCH_FUND_PORT_CHART_BY_CHART_TYPE_SUCCESS","FETCH_FUND_PORT_CHART_BY_CHART_TYPE_FAILURE","FETCH_WEEKLY_FUND_RANKING_START","FETCH_WEEKLY_FUND_RANKING_SUCCESS","FETCH_WEEKLY_FUND_RANKING_FAILURE","FETCH_DRAWDOWN_BY_DATE_START","FETCH_DRAWDOWN_BY_DATE_SUCCESS","FETCH_DRAWDOWN_BY_DATE_FAILURE","FETCH_MAXIMUM_DRAWDOWN_START","FETCH_MAXIMUM_DRAWDOWN_SUCCESS","FETCH_MAXIMUM_DRAWDOWN_FAILURE","FETCH_DRAWDOWN_NAV_GRAPH_START","FETCH_DRAWDOWN_NAV_GRAPH_SUCCESS","FETCH_DRAWDOWN_NAV_GRAPH_FAILURE","CHANGE_DRAWDOWN_STATISTIC_FILTERS","CHANGE_NAV_GRAPH_DATE","CHANGE_SORTED_DRAWDOWN","FETCH_MONTHLY_RETURN_START","FETCH_MONTHLY_RETURN_SUCCESS","FETCH_MONTHLY_RETURN_FAILURE","FETCH_PRICE_RANGE_START","FETCH_PRICE_RANGE_SUCCESS","FETCH_PRICE_RANGE_FAILURE","FETCH_VOLATILITIES_START","FETCH_VOLATILITIES_SUCCESS","FETCH_VOLATILITIES_FAILURE","FETCH_RETURN_EXPENSE_RATIO_START","FETCH_RETURN_EXPENSE_RATIO_SUCCESS","FETCH_RETURN_EXPENSE_RATIO_FAILURE","FETCH_MONTHLY_PROFIT_START","FETCH_MONTHLY_PROFIT_SUCCESS","FETCH_MONTHLY_PROFIT_FAILURE","FETCH_RETURN_HISTORY_START","FETCH_RETURN_HISTORY_SUCCESS","FETCH_RETURN_HISTORY_FAILURE","FETCH_RANKING_HISTORY_START","FETCH_RANKING_HISTORY_SUCCESS","FETCH_RANKING_HISTORY_FAILURE","FETCH_RETURN_MONTHLY_START","FETCH_RETURN_MONTHLY_SUCCESS","FETCH_RETURN_MONTHLY_FAILURE","FETCH_HISTORICAL_NAV_START","FETCH_HISTORICAL_NAV_SUCCESS","FETCH_HISTORICAL_NAV_FAILURE","FETCH_HISTORICAL_NAV_CHANGE_PAGE","FETCH_HISTORICAL_NAV_GRAPH_START","FETCH_HISTORICAL_NAV_GRAPH_SUCCESS","FETCH_HISTORICAL_NAV_GRAPH_FAILURE","FETCH_DIVIDEND_START","FETCH_DIVIDEND_SUCCESS","FETCH_DIVIDEND_FAILURE","FETCH_DIVIDEND_CHANGE_PAGE","FETCH_DIVIDEND_GROUP_BY_YEAR_START","FETCH_DIVIDEND_GROUP_BY_YEAR_SUCCESS","FETCH_DIVIDEND_GROUP_BY_YEAR_FAILURE","FETCH_DIVIDEND_DESCRIPTION_START","FETCH_DIVIDEND_DESCRIPTION_SUCCESS","FETCH_DIVIDEND_DESCRIPTION_FAILURE","FETCH_CHANGE_ACTIVE_BTN","apiKey","global","gConfig","instance","axios","create","baseURL","process","headers","Accept","defaults","post","interceptors","request","use","state","store","getState","token","getCookie","user","authentication","hasOwnProperty","console","log","accessToken","userType","username","url","includes","error","Promise","reject","response","data","isMobileApp","isSignIn","status","window","location","href","dispatch","refreshToken","fundRankingConstants","SET_CURRENT_FUND_RANKING_PAGE","SET_TOTAL_RANKING_PAGE","UPDATE_FUND_RANKING_QUERIES","RESET_FUND_RANKING_QUERIES","UPDATE_FUND_RANKING_TABLE_COLUMNS","SET_DEFAULT_FUND_RANKING_QUERIES","FETCH_RANK_START","FETCH_RANK_SUCCESS","FETCH_RANK_FAILURE","SET_FUND_ID_RANK","FETCH_FUND_RANK_START","FETCH_FUND_RANK_SUCCESS","FETCH_FUND_RANK_FAILURE","FETCH_RANK_SEARCH_FILTERS_START","FETCH_RANK_SEARCH_FILTERS_SUCCESS","FETCH_RANK_SEARCH_FILTERS_FAILURE","FETCH_RANKINGS_START","FETCH_RANKINGS_SUCCESS","FETCH_RANKINGS_FAILURE","SET_NAV_TYPE_RANKING","UPDATE_NAV_DATE_FUND_RANKING","FETCH_NAV_RANKINGS_START","FETCH_NAV_RANKINGS_SUCCESS","FETCH_NAV_RANKINGS_FAILURE","SET_HIGHLIGHT_FUND_PERIOD","FETCH_HIGHLIGHT_FUND_START","FETCH_HIGHLIGHT_FUND_SUCCESS","FETCH_HIGHLIGHT_FUND_FAILURE","FETCH_CATEGORIES_START","FETCH_CATEGORIES_SUCCESS","FETCH_CATEGORIES_FAILURE","UPDATE_CATEGORIES","APPEND_CATEGORY","REMOVE_CATEGORY","FETCH_USER_CATEGORIES_START","FETCH_USER_CATEGORIES_SUCCESS","FETCH_USER_CATEGORIES_FAILURE","UPDATE_USER_CATEGORIES","RESET_USER_CATEGORIES","SAVE_USER_CATEGORIES_START","SAVE_USER_CATEGORIES_SUCCESS","SAVE_USER_CATEGORIES_FAILURE","investmentConstants","UPDATE_USER_ACCOUNTS","RESET_INVESTMENT","FETCH_ACTIVED_FUNDS_START","FETCH_ACTIVED_FUNDS_SUCCESS","FETCH_ACTIVED_FUNDS_FAILURE","FETCH_ALL_FUNDS_START","FETCH_ALL_FUNDS_SUCCESS","FETCH_ALL_FUNDS_FAILURE","FETCH_ALL_FUND_CODES_START","FETCH_ALL_FUND_CODES_SUCCESS","FETCH_ALL_FUND_CODES_FAILURE","UPDATE_PORTFOLIOS_QUERIES","FETCH_PORTFOLIOS_START","FETCH_PORTFOLIOS_SUCCESS","FETCH_PORTFOLIOS_FAILURE","FETCH_NAV_PORTFOLIO_START","FETCH_NAV_PORTFOLIO_SUCCESS","FETCH_NAV_PORTFOLIO_FAILURE","FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START","FETCH_PREVIOUS_RETURN_BY_ACCOUNT_SUCCESS","FETCH_PREVIOUS_RETURN_BY_ACCOUNT_FAILURE","FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START","FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_SUCCESS","FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_FAILURE","FETCH_HISTORY_GRAPH_BY_ACCOUNT_START","FETCH_HISTORY_GRAPH_BY_ACCOUNT_SUCCESS","FETCH_HISTORY_GRAPH_BY_ACCOUNT_FAILURE","FETCH_MONTHLY_RETURN_BY_ACCOUNT_START","FETCH_MONTHLY_RETURN_BY_ACCOUNT_SUCCESS","FETCH_MONTHLY_RETURN_BY_ACCOUNT_FAILURE","FETCH_PROFIT_BY_ACCOUNT_START","FETCH_PROFIT_BY_ACCOUNT_SUCCESS","FETCH_PROFIT_BY_ACCOUNT_FAILURE","FETCH_VOLATILITY_BY_ACCOUNT_START","FETCH_VOLATILITY_BY_ACCOUNT_SUCCESS","FETCH_VOLATILITY_BY_ACCOUNT_FAILURE","FETCH_MAX_DRAWDOWN_BY_ACCOUNT_START","FETCH_MAX_DRAWDOWN_BY_ACCOUNT_SUCCESS","FETCH_MAX_DRAWDOWN_BY_ACCOUNT_FAILURE","FETCH_DRAWDOWN_BY_ACCOUNT_START","FETCH_DRAWDOWN_BY_ACCOUNT_SUCCESS","FETCH_DRAWDOWN_BY_ACCOUNT_FAILURE","SET_DEFAULT_PORT_STAT","CLEAR_DEFAULT_PORT_STAT","FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_SUCCESS","FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_FAILURE","UPDATE_LOT_QUERIES","FETCH_LOTS_START","FETCH_LOTS_SUCCESS","FETCH_LOTS_FAILURE","FETCH_NAVS_LOTS_START","FETCH_NAVS_LOTS_SUCCESS","FETCH_NAVS_LOTS_FAILURE","UPDATE_BOOK_QUERIES","FETCH_BOOKS_START","FETCH_BOOKS_SUCCESS","FETCH_BOOKS_FAILURE","UPDATE_DIVIDEND_QUERIES","FETCH_DIVIDENDS_START","FETCH_DIVIDENDS_SUCCESS","FETCH_DIVIDENDS_FAILURE","UPDATE_INVESTMENT_HISTORIES_QUERIES","FETCH_HISTORIES_START","FETCH_HISTORIES_SUCCESS","FETCH_HISTORIES_FAILURE","FETCH_HISTORIES_CHANGE_PAGE","UPDATE_INVESTMENT_DCA_QUERIES","DELETE_DCA_ORDER_REQUEST_START","DELETE_DCA_ORDER_REQUEST_SUCCESS","DELETE_DCA_ORDER_REQUEST_FAILURE","CLEAR_DCA_ORDER_ERROR_MESSAGE","FETCH_DCAS_START","FETCH_DCAS_SUCCESS","FETCH_DCAS_FAILURE","DELETE_ORDER_REQUEST_START","DELETE_ORDER_REQUEST_SUCCESS","DELETE_ORDER_REQUEST_FAILURE","FETCH_ORDERS_START","FETCH_ORDERS_SUCCESS","FETCH_ORDERS_FAILURE","UPDATE_ORDERS_QUERIES","CLEAR_ORDER_ERROR_MESSAGE","SET_INVEST_SEARCH","TRADE_TYPES","SWITCH","DCA","INVESTMENT_STATUS","STATUS_P","STATUS_A","STATUS_I","orderRequestConstants","TOGGLED_ORDER_FUNDS_REQUEST_MODAL","CLEAR_ERROR_MESSAGE","UPDATE_ACTIVE_TAB_ORDER_FUNDS_REQUEST_MODAL","UPDATE_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL","CLEAR_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL","FETCH_BUY_FUND_INFO_START","FETCH_SELL_FUND_INFO_START","UPDATE_FUND_INFO","FETCH_SWITCH_FUND_INFO_START","UPDATE_FUNDS_INFO_2","CLEAR_FUND_INFO_2","CLEAR_CHECKED_FUND_ABLE","CHECKED_BUYABLE_FUND_START","CHECKED_SELLABLE_FUND_START","CHECKED_SWITCHABLE_FUND_START","CHECKED_FUND_ABLE_TO_ORDER_SUCCESS","CHECKED_FUND_ABLE_TO_ORDER_FAILURE","GET_SWITCHABLE_FUNDS_START","GET_SWITCHABLE_FUNDS_SUCCESS","GET_SWITCHABLE_FUNDS_FAILURE","CONFIRM_ORDER_FUND_START","CONFIRM_ORDER_FUND_SUCCESS","CONFIRM_ORDER_FUND_FAILURE","RESET_CONFIRM_ORDER_FUND","CLEAR_SEARCH_FUNDS_INFO","UPDATE_SEARCH_FUNDS_INFO","REMOVE_SEARCH_FUNDS_INFO","UPDATE_SEARCH_PORTFOLIOS","TOGGLE_MODAL_MESSAGE","UPDATE_LATEST_PLAN","CLEAR_LATEST_PLAN","UPDATE_LATEST_SETTLE_DATE","authenticationConstants","TOGGLED_SIGN_IN_MODAL","TOGGLED_ERROR_MESSAGE_MODAL","REFRESH_TOKEN","SIGN_IN_START","SIGN_IN_SUCCESS","SIGN_IN_FAILURE","VERIFY_2FA_OPEN","TOGGLED_2FA_MODAL","VERIFY_2FA_START","SET_2FA_LOADING","CLEAR_SIGN_IN_ERROR_MESSAGE","SIGN_IN_CREDENTIAL_START","SIGN_IN_DSA_START","SIGN_IN_SSO_START","SIGN_IN_SUCCESS_FOR_MOBILE","UPDATE_SIGN_IN_STATUS_FOR_MOBILE","GET_ACCOUNT_MKT","GET_ACCOUNT_LIST_START","GET_ACCOUNT_LIST_SUCCESS","UPDATE_ACCOUNT_LIST_MOBILE_SUCCESS","GET_ACCOUNT_LIST_FAILURE","GET_ACCOUNT_INFO_START","GET_ACCOUNT_INFO_SUCCESS","GET_ACCOUNT_INFO_FAILURE","GET_ACCOUNT_NAME_START","GET_ACCOUNT_NAME_SUCCESS","GET_ACCOUNT_NAME_FAILURE","SIGN_OUT","updateUserAccounts","accountNumbers","type","payload","resetInvestment","fetchActivedFundsStart","fetchActivedFundsSuccess","fetchActivedFundsFailure","errorMessage","fetchAllFundsStart","fetchAllFundsSuccess","fetchAllFundsFailure","fetchAllFundCodesStart","fetchAllFundCodesSuccess","fetchAllFundCodesFailure","updatePortfoliosQueries","queries","fetchPortfoliosStart","fetchPortfoliosSuccess","fetchPortfoliosFailure","fetchNavPortfoliosStart","fetchNavPortfoliosSuccess","fetchNavPortfoliosFailure","fetchPreviousReturnByAccountStart","account","fetchPreviousReturnByAccountSuccess","fetchPreviousReturnByAccountFailure","fetchPreviousReturnGraphByAccountStart","fetchPreviousReturnGraphByAccountSuccess","fetchPreviousReturnGraphByAccountFailure","fetchHistoryGraphByAccountStart","fetchHistoryGraphByAccountSuccess","fetchHistoryGraphByAccountFailure","fetchMonthlyReturnByAccountStart","fetchMonthlyReturnByAccountSuccess","fetchMonthlyReturnByAccountFailure","fetchProfitByAccountStart","fetchProfitByAccountSuccess","fetchProfitByAccountFailure","fetchVolatilityByAccountStart","fetchVolatilityByAccountSuccess","fetchVolatilityByAccountFailure","fetchMaxDrawdownByAccountStart","fetchMaxDrawdownByAccountSuccess","fetchMaxDrawdownByAccountFailure","fetchDrawdownByAccountStart","fetchDrawdownByAccountSuccess","fetchDrawdownByAccountFailure","setDefaultPortStat","clearDefaultPortStat","fetchLastDateOfAccountNumberSuccess","date","fetchLastDateOfAccountNumberFailure","deleteOrderRequestStart","deleteOrderRequestSuccess","deleteOrderRequestFailure","fetchOrdersStart","id","fetchOrdersSuccess","fetchOrdersFailure","updateOrdersQueries","clearOrderErrorMessage","updateLotQueries","fetchLotsStart","fetchLotsSuccess","fetchLotsFailure","fetchNavsLotsSuccess","fetchNavsLotsFailure","updateBookQueries","fetchBooksStart","fetchBooksSuccess","fetchBooksFailure","updateHistoriesQueries","fetchHistoriesStart","page","fetchHistoriesSuccess","fetchHistoriesFailure","updateDividendQueries","fetchDividendsStart","fetchDividendsSuccess","fetchDividendsFailure","updateDCAQueries","fetchDCAsStart","fetchDCAsSuccess","fetchDCAsFailure","deleteDCAOrderRequestStart","deleteDCAOrderRequestSuccess","deleteDCAOrderRequestFailure","clearDCAOrderErrorMessage","setInvestSearch","isSearch","changePage","currentPage","filterMaximumDrawdown","maximumDrawdownList","resetMaximumDrawdown","resetMonthlyReturn","monthlyReturns","filterPriceRange","priceRangeList","time","maxValue","maxOfWeek","minValue","minOfWeek","value","current","maxOfMonth","minOfMonth","maxOfThreeMonths","minOfThreeMonths","maxOfSixMonths","minOfSixMonths","maxOfOneYear","minOfOneYear","priceRanges","resetPriceRange","filterVolatilities","volatilities","resetVolatilities","filterReturnExpenseRatio","returnExpenseRatio","resetReturnExpenseRatio","filterMonthlyProfit","monthlyProfit","resetMonthlyProfit","filterReturnHistory","returnHistory","resetReturnHistory","changeDrawdownSortingFilters","currentDrawdownSortingFilters","changeNavGraphDate","navGraphDateRange","startDate","endDate","changeSortedDrawdown","setIsFetching","isFetching","filterDataResult","resetDataResult","message","resetDataResultToObject","filterTypeList","dateType","key","detailName","defaultColors","convertDataToPortChart","dataObj","filterType","summary","colors","lenght","product","find","obj","categoryList","returnFormatData","list","i","length","push","category","toFixed","map","sort","a","b","reduce","prev","cur","parseFloat","forEach","index","color","handleRedirectPage","e","item","attr","arguments","undefined","preventDefault","accountStatus","compareConstants","TOGGLED_COMPARE_MODAL","ADD_FUNDIDS_TO_COMPARE_FUNDS","UPDATE_FUNDIDS_TO_COMPARE_FUNDS","UPDATE_TEMPORARY_COMPARE_FUNDS","REMOVED_TEMPORARY_COMPARE_FUNDS","RESET_TEMPORARY_COMPARE_FUNDS","FETCH_COMPARE_START","FETCH_COMPARE_SUCCESS","FETCH_COMPARE_FAILURE","FETCH_COMPARE_FUNDS_BY_PERIOD_START","FETCH_COMPARE_FUNDS_BY_PERIOD_SUCCESS","FETCH_COMPARE_FUNDS_BY_PERIOD_FAILURE","FETCH_GRAPH_COMPARE_FUNDS_START","FETCH_GRAPH_COMPARE_FUNDS_SUCCESS","FETCH_GRAPH_COMPARE_FUNDS_FAILURE","FETCH_NAV_COMPARE_FUNDS_START","FETCH_NAV_COMPARE_FUNDS_SUCCESS","FETCH_NAV_COMPARE_FUNDS_FAILURE","CLEAR_FUND_COMPARE","TOGGLE_RETURN","TOGGLE_DRAWDOWN","TOGGLE_PROPORTION","INSERT_SEARCH_INDEX","toggleSignInModal","toggleErrorMessageModal","signInStart","credential","verify2FAOpen","referenceCode","toggle2FAModal","verify2FAStart","set2FALoading","isLoading","signInSuccess","signInFailure","clearSignInErrorMessage","signInCredentialStart","signInDSAStart","signInSSOStart","signInSuccessForMobile","updateSignInStatusForMobile","getAccountListStart","getAccountListSuccess","accounts","getAccountMKT","updateAccountListMobileSuccess","getAccountListFailure","getAccountInfoStart","accountNumber","getAccountInfoSuccess","information","getAccountInfoFailure","getAccountNameStart","getAccountNameSuccess","accountName","getAccountNameFailure","signOut","fetchFundInfoStart","fetchFundInfoSuccess","fetchFundInfoFailure","clearFundInfo","updateFundId","fundCode","updateRecentTab","tab","fetchTradingInformationStart","fetchTradingInformationSuccess","fetchTradingInformationFailure","fetchPortfolioInformationStart","fundId","fetchPortfolioInformationSuccess","fetchPortfolioInformationFailure","fetchFundAverageRatingStart","fetchFundAverageRatingSuccess","fetchFundAverageRatingFailure","voteFundAverageRating","fetchCalendarFundStart","fetchCalendarFundSuccess","fetchCalendarFundFailure","fetchFundPortInfoStart","fetchFundPortInfoSuccess","fetchFundPortInfoFailure","fetchFundPortChartByChartTypeStart","fetchFundPortChartByChartTypeSuccess","fetchFundPortChartByChartTypeFailure","fetchWeeklyFundRankingStart","fetchWeeklyFundRankingSuccess","fetchWeeklyFundRankingFailure","fetchDrawdownByDateStart","fetchDrawdownByDateSuccess","fetchDrawdownByDateFailure","fetchMaximumDrawdownStart","fetchMaximumDrawdownSuccess","fetchMaximumDrawdownFailure","fetchDrawdownNavGraphStart","fetchDrawdownNavGraphSuccess","fetchDrawdownNavGraphFailure","changeDrawdownStatisticFilters","fetchMonthlyReturnStart","fetchMonthlyReturnSuccess","fetchMonthlyReturnFailure","fetchPriceRangeStart","fetchPriceRangeSuccess","fetchPriceRangeFailure","fetchVolatilitiesStart","fetchVolatilitiesSuccess","fetchVolatilitiesFailure","fetchReturnExpenseRatioStart","fetchReturnExpenseRatioSuccess","fetchReturnExpenseRatioFailure","fetchMonthlyProfitStart","fetchMonthlyProfitSuccess","fetchMonthlyProfitFailure","fetchReturnHistoryStart","fetchReturnHistorySuccess","fetchReturnHistoryFailure","fetchHistoricalNavStart","fetchHistoricalNavSuccess","fetchHistoricalNavFailure","fetchHistoricalNavGraphStart","fetchHistoricalNavGraphSuccess","fetchHistoricalNavGraphFailure","fetchDividendStart","fetchDividendSuccess","fetchDividendFailure","fetchDividendGroupByYearStart","fetchDividendGroupByYearSuccess","fetchDividendGroupByYearFailure","fetchDividendDescriptionStart","fetchDividendDescriptionSuccess","fetchDividendDescriptionFailure","changeHistoricalNavPage","changeDividendPage","searchConstants","FETCH_MAIN_SEARCH_START","FETCH_MAIN_SEARCH_SUCCESS","FETCH_MAIN_SEARCH_FAILURE","CLEAR_MAIN_SEARCH","UPDATE_MAIN_SEARCH","REMOVE_MAIN_SEARCH","FETCH_SUBNAV_SEARCH_START","FETCH_SUBNAV_SEARCH_SUCCESS","FETCH_SUBNAV_SEARCH_FAILURE","CLEAR_SUBNAV_SEARCH","UPDATE_SUBNAV_SEARCH","REMOVE_SUBNAV_SEARCH","FETCH_SEARCH_FUND_CALENDAR_START","FETCH_SEARCH_FUND_CALENDAR_SUCCESS","FETCH_SEARCH_FUND_CALENDAR_FAILURE","CLEAR_SEARCH_FUND_CALENDAR","UPDATE_SEARCH_FUND_CALENDAR","REMOVE_SEARCH_FUND_CALENDAR","homeConstants","FETCH_BANNERS_START","FETCH_BANNERS_SUCCESS","FETCH_BANNERS_FAILURE","FETCH_HIGHLIGHT_FUNDS_START","FETCH_HIGHLIGHT_FUNDS_SUCCESS","FETCH_HIGHLIGHT_FUNDS_FAILURE","UPDATE_NAV_FUNDS","FETCH_NAV_FUNDS_START","FETCH_NAV_FUNDS_SUCCESS","FETCH_NAV_FUNDS_FAILURE","FETCH_TOP_SUB_CATEGORIES_START","FETCH_TOP_SUB_CATEGORIES_SUCCESS","FETCH_TOP_SUB_CATEGORIES_FAILURE","FETCH_ARTICLES_START","FETCH_ARTICLES_SUCCESS","FETCH_ARTICLES_FAILURE","TOGGLE_ARTICLE_MODAL","advanceSearchConstants","UPDATE_ADVANCE_SEARCH_QUERIES","UPDATE_DEFAULT_QUERIES_ADVANCE_SEARCH","RESET_QUERIES_ADVANCE_SEARCH","FETCH_ADVANCE_SEARCH_FILTERS_START","FETCH_ADVANCE_SEARCH_FILTERS_SUCCESS","FETCH_ADVANCE_SEARCH_FILTERS_FAILURE","FETCH_ADVANCE_SEARCH_START","FETCH_ADVANCE_SEARCH_SUCCESS","FETCH_ADVANCE_SEARCH_FAILURE","UPDATE_NAV_DATE_ADVANCE_SEARCH","FETCH_NAV_ADVANCE_SEARCH_START","FETCH_NAV_ADVANCE_SEARCH_SUCCESS","FETCH_NAV_ADVANCE_SEARCH_FAILURE","UPDATE_CURRENT_PAGE_SEARCH","UPDATE_TABLE_COLUMN","monthlyReportConstants","FETCH_MONTHLY_REPORT_START","FETCH_MONTHLY_REPORT_SUCCESS","FETCH_MONTHLY_REPORT_FAILURE","FETCH_MONTHLY_REPORT_CHART_START","FETCH_MONTHLY_REPORT_CHART_SUCCESS","FETCH_MONTHLY_REPORT_CHART_FAILURE","SET_MONTHLY_REPORT_SHARED_QUERIES","SET_MONTHLY_REPORT_TABLE_QUERIES","CLEAR_MONTHLY_REPORT_TABLE_RESPONSES","CLEAR_MONTHLY_REPORT_TABLE_QUERIES","CLEAR_MONTHLY_REPORT_CHART_QUERIES","CLEAR_MONTHLY_REPORT_SHARED_QUERIES","CLEAR_MONTHLY_REPORT_QUERIES_START","defaultData","result","resetResponseDataObject","resetResponseDataArrays","filterResponseData","transformDisplayName","toUpperCase","baseSort","item1","item2","sortType","groupItemsByAttr","items","groupBy","target","getScrollPosition","element","_target$scrollLeft","_target$scrollTop","x","y","document","querySelector","position","getBoundingClientRect","scrollLeft","left","scrollTop","top","setScrollPosition","scrollType","scrollTo","behavior","switchOrderNumberRegEx","onlyNumberRegEx","fetchFundSearch","async","axios_nomura","body","fetchPortfolioInformation","get","fetchFundInfo","fetchTradingInformation","fetchFundAverageRating","getUserFundVote","rating","parseInt","fetchPortChartByFundIdAndChartType","params","holdingType","chartType","fetchPortByFundId","fetchDrawdownByDate","_data$startDate","_data$endDate","start","end","fetchMaximumDrawdown","fetchMonthlyReturn","fetchPriceRange","fetchVolatilities","_data$startAt","_data$endAt","startAt","endAt","fetchReturnExpenseRatio","fetchMonthlyProfit","fetchReturnHistory","fetchWeeklyFundRanking","_data$startDate2","_data$endDate2","fetchHistoricalNav","_data$startDate3","_data$endDate3","pageSize","fetchHistoricalNavGraph","_data$startDate4","_data$endDate4","mode","fetchDividend","_data$startDate5","_data$endDate5","_data$page","fetchDividendDescription","fetchDividendGroupByYear","fetchNavChartByDate","_data$startDate6","_data$endDate6","fetchPortfolioGroups","convertDataToJson","JSON","stringify","fetchNavPortfolios","fetchPreviousReturnByAccount","fetchPreviousReturnGraphByAccount","_data$dateType","fetchAumGraphByAccount","_data$startAt2","_data$endAt2","_data$dateType2","fetchMonthlyReturnByAccount","fetchProfitByAccount","fetchVolatilityByAccount","fetchMaxDrawdownByAccount","fetchDrawdownByAccount","_data$startAt3","_data$endAt3","fetchLastDateOfAccountNumber","fetchOrders","uploadOrderDocument","orderNumber","formData","FormData","append","deleteOrderRequestFund","number","getOrderAttachment","responseType","fetchLots","fetchBooks","fetchHistories","_data$startedAt","_data$endedAt","fundCodes","startedAt","endedAt","sortBy","isRemarkExists","remark","fetchDCAs","deleteDCAOrderRequestFund","fetchDividends","_data$startedAt2","_data$endedAt2","fundIds","fetchActivedFunds","fetchAllFunds","fetchAllFundCodes","updatePage","setFundIdRank","fetchFundRankStart","fetchFundRankSuccess","fetchFundRankFailure","fetchRankingSearchFiltersStart","fetchRankingSearchFiltersSuccess","fetchRankingSearchFiltersFailure","fetchRankingsStart","fetchRankingsSuccess","rankings","fetchRankingsFailure","fetchHighlightFundStart","fetchHighlightFundSuccess","nav","fetchHighlightFundFailure","updateNavDateChart","fetchNavRankingsStart","fetchNavRankingsSuccess","fetchNavRankingsFailure","fetchCategoriesStart","fetchCategoriesSuccess","categories","fetchCategoriesFailure","updateCategories","appendCategory","removeCategory","fetchUserCategoriesStart","fetchUserCategoriesSuccess","userCategories","fetchUserCategoriesFailure","resetUserCategories","updateUserCategories","fetchRankStart","fetchRankSuccess","fetchRankFailure","saveUserCategoriesStart","saveUserCategoriesFailure","updateFundRankingQueries","resetFundRankingQueries","setDefaultFundRankingQueries","updateTableColumns","columns","calendarConstants","FETCH_CALENDAR_BY_YEAR_START","FETCH_CALENDAR_BY_YEAR_SUCCESS","FETCH_CALENDAR_BY_YEAR_FAILURE","UPDATE_CALENDAR_YEAR","UPDATE_USER_FUND_CALENDAR","FETCH_CALENDAR_BY_DATE_START","FETCH_CALENDAR_BY_DATE_SUCCESS","FETCH_CALENDAR_BY_DATE_FAILURE","UPDATE_USER_CALENDAR_DATE","cookie","split","el","k","v","trim","clearCookies","names","setCookie","options","expires","Date","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","tempList","filter","categoryCode","userCategoryFetching","userCategory","userCategoryData","userCategoryError","saveUserCategories","idx","subCategory","sequence","pullUserCategories","main","apply","checkExistedCategory","some","j","saveFavCategories","setDefaultQueriesFundRanking","dividendPolicy","code","fundTypes","investorRatings","purchaseFee","currencyPolicy","riskLevels","morningStarRatings","company","ipoConstants","FETCH_IPOS_START","FETCH_IPOS_SUCCESS","FETCH_IPOS_FAILURE","TOGGLE_DETAIL_MODAL","SET_CURRENT_DETAIL_MODAL","UPDATE_IPO_QUERIES","toggleOrderRequestModal","clearErrorMessage","updateActiveTabOrderRequestModal","updateNavigationFundToOrderRequestModal","fund","clearNavigationFundToOrderRequestModal","fetchBuyFundInfoStart","fetchSellFundInfoStart","updateFundInfo","fetchSwitchFundInfoStart","updateFundInfo2","clearSearchFundInfo2","clearCheckedFundAble","checkedBuyableFundStart","checkedSellableFundStart","checkedSwitchableFundStart","checkedFundAbleToOrderSuccess","checkedFundAbleToOrderFailure","confirmOrderFundStart","confirmOrderFundSuccess","confirmOrderFundFailure","resetConfirmOrderFund","clearSearchFundInfo","updateLatestPlan","clearLatestPlan","updateLatestSettleDate","updateFavoriteQueries","updateFavoriteTableColumns","updateLocalFavoriteFunds","addFavoriteFund","deleteFavoriteFund","putFavoriteFunds","fetchFavoriteFundsByAccountStart","fetchFavoriteFundsByAccountSuccess","funds","fetchFavoriteFundsByAccountFailure","fetchNavFavoriteFundsByAccountStart","fetchNavFavoriteFundsByAccountSuccess","fetchNavFavoriteFundsByAccountFailure","hotfundConstants","FETCH_HOTFUND_START","FETCH_HOTFUND_SUCCESS","FETCH_HOTFUND_FAILURE","UPDATE_HOTFUND_QUERIES","UPDATE_HOTFUND_TABLE_COLUMNS","fetchSearchBuyableFunds","fetchBuyFundInfo","fetchBuyableFund","fetchSellableFund","fetchSwitchableOutFunds","fetchSwitchableFunds","accountType","isDCA","fetchCheckedSwitchableFund","fetchSellFundInfo","fetchSwitchFundInfo","fetchChannelByAccount","fetchSendQuestionBackToConfirm","fetchConfirmSellFund","fetchConfirmSwitchFund","fetchGetReceivingDate","fetchAdvanceSearchFilters","fetchNavForAdvanceSearch","fetchBannersStart","fetchBannersSuccess","fetchBannersFailure","fetchHighlightFundsStart","period","fetchHighlightFundsSuccess","fetchHighlightFundsFailure","updateNavFunds","fetchNavFundsSuccess","fetchNavFundsFailure","fetchTopSubCategoriesStart","fetchTopSubCategoriesSuccess","fetchTopSubCategoriesFailure","fetchArticlesStart","fetchArticlesSuccess","fetchArticlesFailure","toggleArticleModal","filterCalendarResults","checked","month","events","dates","resetCalendarResults","filterUserFund","thailandFundCode","filterCalendarByDate","addFundIdsToCompareFunds","updateFundIdsToCompareFunds","updateTemporaryCompareFunds","removedTemporaryCompareFunds","resetTemporaryCompareFunds","fetchCompareFundsStart","fetchCompareFundsSuccess","compareFunds","fetchCompareFundsFailure","fetchCompareFundsByPeriodStart","fetchCompareFundsByPeriodSuccess","fetchCompareFundsByPeriodFailure","fetchGraphCompareFundsStart","fetchGraphCompareFundsSuccess","fetchGraphCompareFundsFailure","fetchNavCompareFundsStart","fetchNavCompareFundsSuccess","fetchNavCompareFundsFailure","toggleCompareModal","clearCompareFund","initialState","isOpenSideBar","routes","isPaging","pages","isMobileScreenSize","errorModal","mainReducer","action","clearSearch","Object","keys","object","check","cleanSearch","resetSearchResults","searchList","resetSearchText","searchText","filterSearchResults","clearSearchResults","updateSearchText","mainNavs","fundInformation","copyPort","copyPortInformation","modelPort","modelPortInformation","article","articleInformation","subNavs","calendarSearch","searchReducer","isOpenModal","isOpenErrorMessageModal","isOpenVerify2FactorModal","isLoading2FA","accountList","mkt","isMobileCompletedLogin","accountInfo","twoFactorId","twoFactorAuthenticationMethod","twoFactorToken","logInType","authenticationReducer","_action$payload","_action$payload2","_action$payload3","usersReducer","loading","users","deleting","userCopy","deleteError","alertReducer","historiesChangePage","history","newPage","dividendsData","dividend","dividends","dividendsError","filterMonthlyReturn","dataList","monthList","years","dataMonth","year","total","yearlyReturn","transformOrderData","orders","cloneOrders","slice","order","test","tradeType","toFund","fromFund","duplicateNumber","newDate","userAccounts","investSearch","activedFunds","allFunds","allFundCodes","lot","tableHeaders","header","sortKey","groupTypeList","fundType","groupType","navs","fundList","columnList","table","remarkList","statusList","sub","toJSON","totalPage","dca","tradeTypeList","book","portfolio","portfolios","navPortfolios","portfolioStatistic","previousReturn","historyGraph","graphModeList","previousReturnGraph","monthlyReturn","profit","volatility","maxDrawdown","drawdown","sortFilters","lastDate","investmentReducer","_action$payload4","_transformOrderData","_action$payload5","_action$payload6","_action$payload7","_action$payload8","_action$payload9","_action$payload10","updateAttribute","attribute","DELETE_ORDER_dca_REQUEST_FAILURE","group","nanoid","favoriteCopyport","currentColumns","defaultColumns","tableColumns","favoriteFunds","navFunds","returnDateType","navDateType","favoriteReducer","_action$payload$map","rank","fundRankInfo","fundRankSearchResponse","favCategories","navResponse","navDate","searchFilters","sortingFilter","highlightFunds","periodList","fundRankingReducer","_state$defaultQueries","_action$payload$total","_action$payload$curre","_action$payload$items","defaultQueries","SET_RANKING_TOTAL_PAGE","filterSearchNavResult","resetSearchNavResult","setDefaultQueriesAdvanceSearch","indexFund","filters","currentHeaders","defaultHeaders","searchResponse","searchNavResults","topHoldingType","includeTopHoldngs","excludeTopHoldngs","returnPercentage","advanceSearchReducer","cnsCategoryList","viewList","cnsCategories","viewType","responses","hotfundReducer","tempCompareFunds","isOpenCompareModal","searchIndex","statusReturn","statusDrawdown","statusProportion","graph","fundByPeriod","compareReducer","_fund$isShowGraph","isShowGraph","isAddedFundId","compareFund","portfolioInfo","recentTab","informationWidget","tabList","graphMode","selectedBtn","navGraph","tradingInformation","averageRating","calendar","fundPortInfo","portInformation","portChartByChartType","statistic","monthlyPofit","weeklyRanking","drawdownListByDate","drawdownNavGraph","drawdownSortingFilters","graphInfo","historicalNavGraph","fundHistoricalNav","historicalNav","dividendGroupByYear","dividendByDateType","descriptions","informationReducer","activeTab","subActiveTab","navigationFund","checkedFundAbleToOrder","orderRequestForm","fundInfo","fundInfo2","confirmOrderFund","responseMessage","searchFundInfo","showResponseMessage","latestPlan","latestSettleDate","orderRequestReducer","resetSubActiveTab","ipos","ipoResults","detailModal","currentDetailModal","ipoReducer","filterIpoResults","resetIpoResults","sharedQueries","monthlyReportTable","monthlyReportChart","chartViewList","chartView","cnsCategory","monthlyReportReducer","SET_MONTHLY_REPORT_CHART_QUERIES","mainItem","subCategories","subItem","CLEAR_MONTHLY_REPORT_CHART_RESPONSES","calendarByYear","calendarByDate","calendarYear","getFullYear","userFund","userDate","calendarReducer","transferReducer","transferConstants","TOGGLED_TRANSFER_MODAL","filterDataResults","resetDataResults","filterIsOpenModal","updateFundIds","banner","highlightFund","navFund","topSubCategory","openSectionModal","homeReducer","generalReducer","sessionConfig","authPersistConfig","storage","storageSession","persistReducer","persistConfig","localforage","reducers","search","alert","investment","favorite","advanceSearch","hotfund","compare","orderRequest","ipo","monthlyReport","transfer","home","fundRanking","rootReducer","combineReducers","searchStartAsync","_ref","call","searchInformation","put","searchSuccess","searchFailure","subNavSearchStartAsync","_ref2","subNavSearchSuccess","subNavSearchFailure","searchFundCalendarStartAsync","_ref3","queryString","keyword","searchFundCalendarSuccess","searchFundCalendarFailure","searchStart","takeLatest","subNavSearchStart","searchFundCalendarStart","searchSagas","all","signIn","axios_cns_auth","send2FA","applicationId","Authorization","verify2FA","verifyCredential","verify2FACode","verify2FAAuthenticator","signInCredential","signInDSA","DSACode","signInSSO","SSOCode","fetchAccountList","fetchAccountInfo","fetchAccountName","refreshWithCookies","cookies","signOutWithCookies","twoFactorAuthenticationMethodConstants","tranformErrorResponses","_error$response","errorResponse","_error$response$data$","_error$response2","_error$response2$data","_error$response2$data2","_error$response3","_error$response3$data","_error$response4","_error$response4$data","_error$response4$data2","title","buttons","_error$response5","_error$response5$data","_error$response6","statusText","errorMessageResponse","_error$response7","_error$response7$data","_error$response8","signOutAsync","err","refreshTokenAsync","newAccessToken","updateErrorModal","signInAsync","password","credentials","ipAddress","deviceId","deviceName","navigator","userAgent","isTwoFactorAuthenticated","_accountListResult$da","_accountListResult$da2","_accountListResult$da3","accountListResult","newRefreshToken","_accountListResult$da4","_send2FAResult$data$r","application","send2FAResult","twoFactorInfo","verify2FAAsync","_accountListResult$da5","_accountListResult$da6","_accountListResult$da7","_Object$keys","_accountListResult$da8","verifyCode","_accountListResult$da9","updateSignInStatusForMobileAsync","decodedJwt","jwt_decode","isExpiredToken","exp","getTime","_accountListResult$da10","_accountListResult$da11","_accountListResult$da12","_accountListResult$da13","_accountListResult$da14","signInCredentialAsync","_accountListResult$da15","_accountListResult$da16","_accountListResult$da17","_accountListResult$da18","signInDSAAsync","_ref4","_accountListResult$da19","_accountListResult$da20","_accountListResult$da21","signInSSOAsync","_ref5","_accountListResult$da22","_accountListResult$da23","_accountListResult$da24","_accountListResult$da25","getAccountListAsync","_ref6","_result$data","_result$data2","getAccountInfoAsync","_ref7","getAccountNameAsync","_ref8","signOutStart","refreshTokenStart","getAccountListSaga","getAccountInfoSaga","getAccountNameSaga","authenticationSagas","fetchFavoriteFundsByAccount","addFavoriteFundAsync","deleteFavoriteFundAsync","_result$code","putFavoriteFundsAsync","fetchFavoriteFundsByAccountAsync","fetchNavFavoriteFundsByAccountAsync","addFavoriteFundStart","deleteFavoriteFundStart","putFavoriteFundsStart","favoriteSagas","fetchHotfundAsync","resultAll","fetchHotfundAll","fetchHotfundSuccess","resultTopBottom","fetchHotfundByTopBottom","fetchHotfundFailure","fetchHotfundStart","hotfundSagas","fetchCompareFunds","fetchCompareFundsByPeriod","fetchGraphCompareFunds","fetchCompareFundsAsync","fetchCompareFundsByPeriodAsync","fetchGraphCompareFundsAsync","fetchNavCompareFundsAsync","compareSagas","fetchActivedFundsAsync","fetchAllFundsAsync","fetchAllFundCodesAsync","fetchHistoriesAsync","deleteDCAOrderRequestStartAsync","_dcaOrderQueries$stat","_dcaOrderQueries$type","_dcaOrderQueries$fund","dcaOrderQueries","isActive","fetchDCAsAsync","fetchPortfoliosAsync","fetchNavPortfoliosAsync","fetchPreviousReturnByAccountAsync","fetchHistoryGraphByAccountAsync","_ref9","aum","secondValue","obj2","leftGraphPoint","rightGraphPoint","fetchPreviousReturnGraphByAccountAsync","_ref10","fetchProfitByAccountAsync","_ref11","fetchMonthlyReturnByAccountAsync","_ref12","fetchMaxDrawdownByAccountAsync","_ref13","fetchDrawdownByAccountAsync","_ref14","setDefaultPortStatAsync","_state$investment$use","fetchVolatilityByAccountAsync","_ref15","fetchLotsAsync","_ref16","fetchNavsLotsAsync","_ref17","fetchBooksAsync","_investment$userAccou","fetchDividendsAsync","_ref18","fetchOrdersAsync","_ref19","deleteOrderRequestStartAsync","_ref20","_orderQueries$status","_orderQueries$tradeTy","_orderQueries$remark","orderQueries","fetchDCAsSagaStart","setDefaultPortStatStart","fetchNavsLotsStart","fetchOrdersSagaStart","investmentSagas","fetchFundInfoAsync","fetchPortfolioInformationAsync","fetchTradingInformationAsync","fetchHistoricalNavAsync","fetchFundAverageRatingAsync","voteFundAverageRatingAsync","fetchPortByFundIdAsync","fetchPortChartByChartTypeAsync","convertData","fetchCalendarFundStartAsync","fetchCalendarByDate","fetchHistoricalNavGraphAsync","fetchWeeklyFundRankingAsync","fetchDrawdownByDateAsync","fetchMaximumDrawdownAsync","fetchDrawdownNavGraphAsync","fetchMonthlyReturnAsync","fetchVolatilitiesAsync","fetchPriceRangeAsync","fetchReturnExpenseRatioAsync","fetchMonthlyProfitAsync","fetchReturnHistoryAsync","fetchDividendAsync","_ref21","fetchDividendGroupByYearAsync","_ref22","fetchDividendDescriptionAsync","_ref23","fetchFundAverageRatingStartSaga","voteFundAverageRatingStart","fetchPortByFundIdStart","fetchPortChartByChartTypeStart","informationSagas","fetchBuyFundInfoAsync","riskLevel","categoryName","fetchCheckedBuyableFundAsync","fetchCheckedSellableFundAsync","fetchCheckedSwitchableFundAsync","fetchConfirmOrderFundAsync","urlAPI","fetchSellFundInfoAsync","_payload$fund","mapData","fetchSwitchFundInfoAsync","_payload$toFund","_payload$toFund2","_payload$toFund3","_payload$toFund4","tempPayload","toFundId","toFundCode","fetchCheckedBuyableFundStart","fetchCheckedSellableFundStart","fetchCheckedSwitchableFundStart","fetchConfirmOrderFundStart","orderRequestSagas","fetchAdvanceSearchFiltersAsync","updateDefaultQueriesAdvanceSearch","fetchAdvanceSearchFiltersSuccess","fetchAdvanceSearchFiltersFailure","fetchAdvanceSearchAsync","fetchAdvanceSearchSuccess","fetchAdvanceSearchFailure","fetchNavAdvanceSearchAsync","fetchNavAdvanceSearchSuccess","fetchNavAdvanceSearchFailure","fetchAdvanceSearchFiltersToSaga","fetchAdvanceSearchToSaga","fetchNavAdvanceSearchToSaga","advanceSearchSagas","fetchIpos","ipoType","fetchIpoStartAsync","fetchIposSuccess","fetchIposFailure","fetchIpoStart","ipoSagas","fetchRank","fetchFundRank","fetchCategories","fetchUserCategories","fetchBanners","fetchHighlightFunds","fetchTopSubCategories","fetchArticles","fetchRankingSearchFiltersAsync","fetchFundRankAsync","fetchNavRankingsAsync","fetchRankStartAsync","fetchRankingsStartAsync","fetchCategoriesStartAsync","first","second","fetchUserCategoriesStartAsync","fetchUserCategoriesStartSaga","saveUserCategoriesStartAsync","fetchHighlightFundStartAsync","fundRankingSagas","fetchMonthlyReport","toString","fetchMonthlyReportChart","fetchMonthlyReportChartForPortFolios","fetchMonthlyReportTableStartAsync","tableQueries","acc","fetchMonthlyReportSuccess","fetchMonthlyReportFailure","fetchMonthlyReportChartStartAsync","Error","fetchMonthlyReportChartSuccess","fetchMonthlyReportChartFailure","clearMonthlyReportQueriesStart","clearMonthluReportTableQueries","clearMonthluReportChartQueries","clearMonthluReportSharedQueries","fetchMonthlyReportTableStart","fetchMonthlyReportChartStart","clearQueriesStart","monthlyReportSagas","fetchCalendarByYearStartAsync","fetchCalendarByYear","fetchCalendarByYearSuccess","fetchCalendarByYearFailure","fetchCalendarByYearStart","fetchCalendarByDateStartAsync","fetchCalendarByDateSuccess","fetchCalendarByDateFailure","fetchCalendarByDateStart","calendarSagas","fetchBannersStartAsync","fetchHighlightFundsStartAsync","fetchNavFundsAsync","fetchTopSubCategoriesStartAsync","fetchArticlesStartAsync","fetchNavFundsStart","HomeSagas","getColorListAsync","fetchColors","getColorListFailure","getColorListStart","generalSagas","getMiddlewares","thunk","sagaMiddleware","createSagaMiddleware","middlewares","enhancers","createStore","compose","applyMiddleware","run","persistor","persistStore","Spinner","React","createElement","className","src","Loading","width","height","setMonthlyReportTableQueries","setMonthlyReportSharedQueries","clearMonthluReportResponses","clearMonthluReportQueries","updateAdvanceSearchQueries","resetQueriesAdvanceSearch","fetchAdvanceSearchFiltersStart","fetchAdvanceSearchStart","fetchNavAdvanceSearchStart","updateCurrentPageSearch","updateTableColumn","updateSearch","removeSearch","clearSubNavSearch","updateSubNavSearch","removeSubNavSearch","clearSearchFundCalendar","updateSearchFundCalendar","removeSearchFundCalendar","authHeader","parse","localStorage","getItem","toggleScreenSize","toggleSideBar","toggleActivePage","insertRoutes","enablePaging","disablePaging","insertPages","clearErrorModal","fetchCalendarThaiHolidays","REACT_APP_STAGE","updateCalendarYear","updateUserFundCalendar","updateUserCalendarDate","selectAuthentication","selectLogInType","createSelector","userCredential","selectSignInStatus","selectIsOpenErrorMessageModal","selectErrorMessage","selectIsOpenSignInModal","selectIsLoading2FA","selectIsOpenVerify2FactorModal","select2FAToken","select2FAReferenceCode","select2FATwoFactorId","select2FATwoFactorAuthenticationMethod","selectUserInformation","selectUserType","userInformation","selectAccountMKT","selectAccountList","selectGetAccountListSuccess","selectIsMobileCompletedLogin","selectAccountInfo","selectAccountName","selectIsFetchingAuthentication","sortItems","sellEndedAt","initialPurchase","forecastingReturn","isInRangeDate","checkedDate","config","handleResponse","userService","generalService","getMenus","requestOptions","method","fetch","webUrl","then","logout","removeItem","text","ok","reload","login","register","apiUrl","getAll","getById","update","delete","updateHotfundQueries","updateHotfundTableColumns","fetchIposStart","toggleDetailModal","setCurrentDetailModal","updateIPOQueries","_data$fundTypes","_data$fundTypes2","fetchGraphCompareCategories","categoryCodes","toggleActiveClass","event","currentTarget","classList","toggle","module","exports","mapStateToProps","createStructuredSelector","signInStatus","signInErrorMessage","connect","props","useHistory","useEffect","Fragment","checkColorType","strColor","Option","style","PortfolioIcon","fill","xmlns","viewBox","d","transform","OrderStatusIcon","HistoricalTradeIcon","styel","InvestmentIcon","InvestmentStatisticIcon","SentOrderIcon","WatchListIcon","FundRankingIcon","InvestorRankingIcon","HotFundIcon","FavoriteIcon","stroke","data-original","StarIcon","data-name","FundCompareIcon","IPOFundIcon","xlink","clipPath","FeedIcon","PortIcon","rx","ServiceIcon","MiscellaneousIcon","SignInIcon","SignOutIcon","UserIcon","strokeMiterlimit","strokeWidth","CaretIcon","direction","display","BarIcon","FilterIcon","BuyIcon","CalendarIcon","cx","cy","r","DCAIcon","DividendIcon","CancelIcon","UpIcon","DownIcon","DownloadIcon","ExcelIcon","InformationIcon","ListIcon","ry","MenuIcon","PdfIcon","RemarkIcon","SearchAdvanceIcon","SearchIcon","class","SellIcon","TransferIcon","SwitchIcon","HomeIcon","FAQIcon","HeartIcon","BookIcon","SecurityIcon","GlobeIcon","IndustryIcon","BookmarkIcon","CompareIcon","HistoryIcon","ChartIcon","MultipleChartIcon","ArrowIcon","LongArrowIcon","WarningIcon","CheckedIcon","strokeLinecap","strokeLinejoin","EditIcon","DocumentIcon","MonthlyReportIcon","DocumentFormIcon","formType","DeleteIcon","DragIcon","LockIcon","stroke-width","RefreshIcon","fill-rule","secondsOfDay","str","initTime","seconds","handlePreventDefault","blur","getFundList","filterFunds","filterFundBy","groupFilterFunds","filterNames","targetValue","filterBy","_item$key","findNode","tree","childrenKey","node","desiredNode","flatNode","subItems","rest","flatMap","menus","component","onSidebar","showTitle","subMenus","isLoggedIn","searchAble","Main","lazy","TagManager","initialize","gtmId","BrowserRouter","basename","Switch","Suspense","fallback","Route","exact","render","AdLogin","DSALogin","SSOLogin","Redirect","from","to","rootElement","getElementById","ReactDOM","Provider","PersistGate","App"],"mappings":"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","file":"static/js/main.6531a19c.chunk.js","sourcesContent":["export const alertConstants = {\n SUCCESS: 'ALERT_SUCCESS',\n ERROR: 'ALERT_ERROR',\n CLEAR: 'ALERT_CLEAR'\n};","export const userConstants = {\n\tREGISTER_REQUEST: 'USERS_REGISTER_REQUEST',\n\tREGISTER_SUCCESS: 'USERS_REGISTER_SUCCESS',\n\tREGISTER_FAILURE: 'USERS_REGISTER_FAILURE',\n\n\tLOGIN_REQUEST: 'USERS_LOGIN_REQUEST',\n\tLOGIN_SUCCESS: 'USERS_LOGIN_SUCCESS',\n\tLOGIN_FAILURE: 'USERS_LOGIN_FAILURE',\n\n\tGETALL_REQUEST: 'USERS_GETALL_REQUEST',\n\tGETALL_SUCCESS: 'USERS_GETALL_SUCCESS',\n\tGETALL_FAILURE: 'USERS_GETALL_FAILURE',\n\n\tDELETE_REQUEST: 'USERS_DELETE_REQUEST',\n\tDELETE_SUCCESS: 'USERS_DELETE_SUCCESS',\n\tDELETE_FAILURE: 'USERS_DELETE_FAILURE'\n};\n\nexport const accountTypeConstants = {\n\tO: 'Omnibus',\n\tS: 'Selling agent',\n}\n\nexport const logInTypeConstants = {\n\tgeneral: 'general',\n\tAD: 'AD',\n}\n","export const generalConstants = {\n DEFAULT_ROUTE: '/home/investment/portfolio',\n DEFAULT_PAGE:[\n {\n path: \"/investment/portfolio\",\n name: \"การลงทุนของฉัน\",\n icon: \"InvestmentIcon\",\n layout: \"/home\",\n section: \"sidebar\"\n }\n ],\n\n GET_COLOR_LIST_START: 'GET_COLOR_LIST_START',\n GET_COLOR_LIST_SUCCESS: 'GET_COLOR_LIST_SUCCESS',\n GET_COLOR_LIST_FAILURE: 'GET_COLOR_LIST_FAILURE',\n \n CLEAR_COLOR_LIST: 'CLEAR_COLOR_LIST'\n}","export const mainConstants = {\n TOGGLE_SCREEN_SIZE: 'TOGGLE_SCREEN_SIZE',\n \n TOGGLE_SIDE_BAR: 'TOGGLE_SIDE_BAR',\n TOGGLE_ACTIVE_PAGE: 'TOGGLE_ACTIVE_PAGE',\n INSERT_ROUTES: 'INSERT_ROUTES',\n FETCH_ROUTES_START: 'FETCH_ROUTES_START',\n FETCH_ROUTES_SUCCESS: 'FETCH_ROUTES_SUCCESS',\n FETCH_ROUTES_FAILURE: 'FETCH_ROUTES_FAILURE',\n ENABLE_PAGING: 'ENABLE_PAGING',\n DISABLE_PAGING: 'DISABLE_PAGING',\n INSERT_PAGES: 'INSERT_PAGES',\n UPDATE_ERROR_MODAL: 'UPDATE_ERROR_MODAL',\n CLEAR_ERROR_MODAL: 'CLEAR_ERROR_MODAL'\n};\n","export const favoriteConstants = {\n UPDATE_FAVORITE_FUNDS_QUERIES: 'UPDATE_FAVORITE_FUNDS_QUERIES',\n UPDATE_FAVORITE_FUNDS_TABLE_COLUMNS: 'UPDATE_FAVORITE_FUNDS_TABLE_COLUMNS',\n\n // Favorite Funds\n UPDATE_LOCAL_FAVORITE_FUNDS: 'UPDATE_LOCAL_FAVORITE_FUNDS',\n ADD_FAVORITE_FUND: 'ADD_FAVORITE_FUND',\n DELETE_FAVORITE_FUND: 'DELETE_FAVORITE_FUND',\n PUT_FAVORITE_FUNDS: 'PUT_FAVORITE_FUNDS',\n\n FETCH_FAVORITE_FUNDS_BY_ACCOUNT_START: 'FETCH_FAVORITE_FUNDS_BY_ACCOUNT_START',\n FETCH_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS: 'FETCH_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS',\n FETCH_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE: 'FETCH_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE',\n\n FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_START: 'FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_START',\n FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS: 'FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS',\n FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE: 'FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE',\n \n // Favorite Copyports\n FETCH_FAVORITE_COPYPORT_START: 'FETCH_FAVORITE_COPYPORT_START',\n FETCH_FAVORITE_COPYPORT_SUCCESS: 'FETCH_FAVORITE_COPYPORT_SUCCESS',\n FETCH_FAVORITE_COPYPORT_FAILURE: 'FETCH_FAVORITE_COPYPORT_FAILURE' \n};\n","export const ACCOUNT_TYPES = {\n TYPE_P: 'P',\n TYPE_A: 'A',\n}","export const LANGUAGE = {\n TH: \"th\",\n EN: \"en\",\n};\n","export const informationConstants = {\n\tFETCH_FUND_INFO_START: 'FETCH_FUND_INFO_START',\n\tFETCH_FUND_INFO_SUCCESS: 'FETCH_FUND_INFO_SUCCESS',\n\tFETCH_FUND_INFO_FAILURE: 'FETCH_FUND_INFO_FAILURE',\n\n\tCLEAR_FUND_INFO: 'CLEAR_FUND_INFO',\n\n\tFETCH_PORTFOLIO_INFO_START: 'FETCH_PORTFOLIO_INFO_START',\n\tFETCH_PORTFOLIO_INFO_SUCCESS: 'FETCH_PORTFOLIO_INFO_SUCCESS',\n\tFETCH_PORTFOLIO_INFO_FAILURE: 'FETCH_PORTFOLIO_INFO_FAILURE',\n\n\tUPDATE_FUND_ID: 'UPDATE_FUND_ID',\n\tUPDATE_RECENT_TAB: 'UPDATE_RECENT_TAB',\n\n\tFETCH_TRADING_INFO_START: 'FETCH_TRADING_INFO_START',\n\tFETCH_TRADING_INFO_SUCCESS: 'FETCH_TRADING_INFO_SUCCESS',\n\tFETCH_TRADING_INFO_FAILURE: 'FETCH_TRADING_INFO_FAILURE',\n\n\tFETCH_FUND_AVERAGE_RATING_START: 'FETCH_FUND_AVERAGE_RATING_START',\n\tFETCH_FUND_AVERAGE_RATING_SUCCESS: 'FETCH_FUND_AVERAGE_RATING_SUCCESS',\n\tFETCH_FUND_AVERAGE_RATING_FAILURE: 'FETCH_FUND_AVERAGE_RATING_FAILURE',\n\n\tVOTE_FUND_AVERAGE_RATING: 'VOTE_FUND_AVERAGE_RATING',\n\n\tFETCH_CALENDAR_FUND_START: 'FETCH_CALENDAR_FUND_START',\n\tFETCH_CALENDAR_FUND_SUCCESS: 'FETCH_CALENDAR_FUND_SUCCESS',\n\tFETCH_CALENDAR_FUND_FAILURE: 'FETCH_CALENDAR_FUND_FAILURE',\n\n\t// Port Info\n\tFETCH_FUND_PORT_INFO_START: 'FETCH_FUND_PORT_INFO_START',\n\tFETCH_FUND_PORT_INFO_SUCCESS: 'FETCH_FUND_PORT_INFO_SUCCESS',\n\tFETCH_FUND_PORT_INFO_FAILURE: 'FETCH_FUND_PORT_INFO_FAILURE',\n\n\tFETCH_FUND_PORT_CHART_BY_CHART_TYPE_START: 'FETCH_FUND_PORT_CHART_BY_CHART_TYPE_START',\n\tFETCH_FUND_PORT_CHART_BY_CHART_TYPE_SUCCESS: 'FETCH_FUND_PORT_CHART_BY_CHART_TYPE_SUCCESS',\n\tFETCH_FUND_PORT_CHART_BY_CHART_TYPE_FAILURE: 'FETCH_FUND_PORT_CHART_BY_CHART_TYPE_FAILURE',\n\n\t// STATISTIC\n\tFETCH_WEEKLY_FUND_RANKING_START: 'FETCH_WEEKLY_FUND_RANKING_START',\n\tFETCH_WEEKLY_FUND_RANKING_SUCCESS: 'FETCH_WEEKLY_FUND_RANKING_SUCCESS',\n\tFETCH_WEEKLY_FUND_RANKING_FAILURE: 'FETCH_WEEKLY_FUND_RANKING_FAILURE',\n\n\n\tFETCH_DRAWDOWN_BY_DATE_START: 'FETCH_DRAWDOWN_BY_DATE_START',\n\tFETCH_DRAWDOWN_BY_DATE_SUCCESS: 'FETCH_DRAWDOWN_BY_DATE_SUCCESS',\n\tFETCH_DRAWDOWN_BY_DATE_FAILURE: 'FETCH_DRAWDOWN_BY_DATE_FAILURE',\n\n\tFETCH_MAXIMUM_DRAWDOWN_START: 'FETCH_MAXIMUM_DRAWDOWN_START',\n\tFETCH_MAXIMUM_DRAWDOWN_SUCCESS: 'FETCH_MAXIMUM_DRAWDOWN_SUCCESS',\n\tFETCH_MAXIMUM_DRAWDOWN_FAILURE: 'FETCH_MAXIMUM_DRAWDOWN_FAILURE',\n\n\tFETCH_DRAWDOWN_NAV_GRAPH_START: 'FETCH_DRAWDOWN_NAV_GRAPH_START',\n\tFETCH_DRAWDOWN_NAV_GRAPH_SUCCESS: 'FETCH_DRAWDOWN_NAV_GRAPH_SUCCESS',\n\tFETCH_DRAWDOWN_NAV_GRAPH_FAILURE: 'FETCH_DRAWDOWN_NAV_GRAPH_FAILURE',\n\n\tCHANGE_DRAWDOWN_STATISTIC_FILTERS: 'CHANGE_DRAWDOWN_STATISTIC_FILTERS',\n\tCHANGE_NAV_GRAPH_DATE: 'CHANGE_NAV_GRAPH_DATE',\n\tCHANGE_SORTED_DRAWDOWN: 'CHANGE_SORTED_DRAWDOWN',\n\n\tFETCH_MONTHLY_RETURN_START: 'FETCH_MONTHLY_RETURN_START',\n\tFETCH_MONTHLY_RETURN_SUCCESS: 'FETCH_MONTHLY_RETURN_SUCCESS',\n\tFETCH_MONTHLY_RETURN_FAILURE: 'FETCH_MONTHLY_RETURN_FAILURE',\n\n\tFETCH_PRICE_RANGE_START: 'FETCH_PRICE_RANGE_START',\n\tFETCH_PRICE_RANGE_SUCCESS: 'FETCH_PRICE_RANGE_SUCCESS',\n\tFETCH_PRICE_RANGE_FAILURE: 'FETCH_PRICE_RANGE_FAILURE',\n\n\tFETCH_VOLATILITIES_START: 'FETCH_VOLATILITIES_START',\n\tFETCH_VOLATILITIES_SUCCESS: 'FETCH_VOLATILITIES_SUCCESS',\n\tFETCH_VOLATILITIES_FAILURE: 'FETCH_VOLATILITIES_FAILURE',\n\n\tFETCH_RETURN_EXPENSE_RATIO_START: 'FETCH_RETURN_EXPENSE_RATIO_START',\n\tFETCH_RETURN_EXPENSE_RATIO_SUCCESS: 'FETCH_RETURN_EXPENSE_RATIO_SUCCESS',\n\tFETCH_RETURN_EXPENSE_RATIO_FAILURE: 'FETCH_RETURN_EXPENSE_RATIO_FAILURE',\n\n\tFETCH_MONTHLY_PROFIT_START: 'FETCH_MONTHLY_PROFIT_START',\n\tFETCH_MONTHLY_PROFIT_SUCCESS: 'FETCH_MONTHLY_PROFIT_SUCCESS',\n\tFETCH_MONTHLY_PROFIT_FAILURE: 'FETCH_MONTHLY_PROFIT_FAILURE',\n\n\tFETCH_RETURN_HISTORY_START: 'FETCH_RETURN_HISTORY_START',\n\tFETCH_RETURN_HISTORY_SUCCESS: 'FETCH_RETURN_HISTORY_SUCCESS',\n\tFETCH_RETURN_HISTORY_FAILURE: 'FETCH_RETURN_HISTORY_FAILURE',\n\n\t// HISTORICAL\n\tFETCH_RETURN_HISTORY_START: 'FETCH_RETURN_HISTORY_START',\n\tFETCH_RETURN_HISTORY_SUCCESS: 'FETCH_RETURN_HISTORY_SUCCESS',\n\tFETCH_RETURN_HISTORY_FAILURE: 'FETCH_RETURN_HISTORY_FAILURE',\n\n\tFETCH_RANKING_HISTORY_START: 'FETCH_RANKING_HISTORY_START',\n\tFETCH_RANKING_HISTORY_SUCCESS: 'FETCH_RANKING_HISTORY_SUCCESS',\n\tFETCH_RANKING_HISTORY_FAILURE: 'FETCH_RANKING_HISTORY_FAILURE',\n\n\tFETCH_PRICE_RANGE_START: 'FETCH_PRICE_RANGE_START',\n\tFETCH_PRICE_RANGE_SUCCESS: 'FETCH_PRICE_RANGE_SUCCESS',\n\tFETCH_PRICE_RANGE_FAILURE: 'FETCH_PRICE_RANGE_FAILURE',\n\n\tFETCH_RETURN_MONTHLY_START: 'FETCH_RETURN_MONTHLY_START',\n\tFETCH_RETURN_MONTHLY_SUCCESS: 'FETCH_RETURN_MONTHLY_SUCCESS',\n\tFETCH_RETURN_MONTHLY_FAILURE: 'FETCH_RETURN_MONTHLY_FAILURE',\n\n\tFETCH_HISTORICAL_NAV_START: 'FETCH_HISTORICAL_NAV_START',\n\tFETCH_HISTORICAL_NAV_SUCCESS: 'FETCH_HISTORICAL_NAV_SUCCESS',\n\tFETCH_HISTORICAL_NAV_FAILURE: 'FETCH_HISTORICAL_NAV_FAILURE',\n\tFETCH_HISTORICAL_NAV_CHANGE_PAGE: 'FETCH_HISTORICAL_NAV_CHANGE_PAGE',\n\n\tFETCH_HISTORICAL_NAV_GRAPH_START: 'FETCH_HISTORICAL_NAV_GRAPH_START',\n\tFETCH_HISTORICAL_NAV_GRAPH_SUCCESS: 'FETCH_HISTORICAL_NAV_GRAPH_SUCCESS',\n\tFETCH_HISTORICAL_NAV_GRAPH_FAILURE: 'FETCH_HISTORICAL_NAV_GRAPH_FAILURE',\n\n\t// Dividend\n\tFETCH_DIVIDEND_START: 'FETCH_DIVIDEND_START',\n\tFETCH_DIVIDEND_SUCCESS: 'FETCH_DIVIDEND_SUCCESS',\n\tFETCH_DIVIDEND_FAILURE: 'FETCH_DIVIDEND_FAILURE',\n\tFETCH_DIVIDEND_CHANGE_PAGE: 'FETCH_DIVIDEND_CHANGE_PAGE',\n\n\tFETCH_DIVIDEND_GROUP_BY_YEAR_START: 'FETCH_DIVIDEND_GROUP_BY_YEAR_START',\n\tFETCH_DIVIDEND_GROUP_BY_YEAR_SUCCESS: 'FETCH_DIVIDEND_GROUP_BY_YEAR_SUCCESS',\n\tFETCH_DIVIDEND_GROUP_BY_YEAR_FAILURE: 'FETCH_DIVIDEND_GROUP_BY_YEAR_FAILURE',\n\n\tFETCH_DIVIDEND_DESCRIPTION_START: 'FETCH_DIVIDEND_DESCRIPTION_START',\n\tFETCH_DIVIDEND_DESCRIPTION_SUCCESS: 'FETCH_DIVIDEND_DESCRIPTION_SUCCESS',\n\tFETCH_DIVIDEND_DESCRIPTION_FAILURE: 'FETCH_DIVIDEND_DESCRIPTION_FAILURE',\n\n\tFETCH_CHANGE_ACTIVE_BTN: 'FETCH_CHANGE_ACTIVE_BTN',\n\t// INSERT_SCROLL_POSITION: 'INSERT_SCROLL_POSITION'\n};\n","import axios from 'axios';\nimport '../_configs';\nimport { store } from '../redux/store';\nimport { getCookie } from '../_utils/cookie.utils';\nimport { refreshToken } from '../_actions/authentication.actions';\n\nconst config = global.gConfig;\n// let mainUrl = `${config.webUrl}/ifund2/`;\nlet mainUrl = process.env.REACT_APP_IFUND2_URL;\nlet apiKey = config.apiKey;\n\nconst instance = axios.create({\n\tbaseURL: mainUrl,\n\theaders: { Accept: 'application/json' },\n});\n\n// For Add Instance Options In the Future\n// axios.defaults.headers.common['Authorization'] = 'AUTH TOKEN';\ninstance.defaults.headers.post['Content-Type'] = 'application/json';\n// instance.defaults.headers.delete['Content-Type'] = 'application/json';\n// axios.defaults.headers.common['api key'] = 'x-api-key';\ninstance.defaults.headers['x-api-key'] = apiKey;\n// instance.defaults.headers.post['x-api-key'] = apiKey;\n\n// Interceptors Request\ninstance.interceptors.request.use(\n\t(request) => {\n\t\t// Edit request config\n\t\t// const user = localStorage.getItem('user');\n\t\tconst state = store.getState();\n\t\tconst token = getCookie('accessToken');\n\t\tconst user = state.authentication.user;\n\n\t\tif (!request.headers.hasOwnProperty('Authorization')) {\n\t\t\tif (token) {\n\t\t\t\trequest.headers['Authorization'] = 'Bearer ' + token;\n\t\t\t} else if (user?.accessToken) {\n\t\t\t\trequest.headers['Authorization'] = 'Bearer ' + user.accessToken;\n\t\t\t} else if (user?.userType === 'DSA') {\n\t\t\t\trequest.headers['Authorization'] = 'Basic ' + user.username;\n\t\t\t} \n\t\t\telse if (user?.userType === 'SSO' && !request.url.includes('login/sso')) {\n\t\t\t\trequest.headers['Authorization'] = 'SSO ' + user.username;\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.log(request)\n\t\t}\n\t\treturn request;\n\t},\n\t(error) => {\n\t\tconsole.log(error);\n\t\treturn Promise.reject(error);\n\t}\n);\n\n// Interceptors Response\ninstance.interceptors.response.use(\n\t(response) => {\n\t\t// Edit response config\n\t\treturn response.data;\n\t},\n\t(error) => {\n\t\tconst isMobileApp = getCookie('isMobileApp') === 'true';\n\t\tconst { authentication: { isSignIn } } = store.getState();\n\t\tconst { status } = error.response\n\t\tif(!isSignIn) {\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t\tif (status === 401) {\n\t\t\tif(isMobileApp) {\n\t\t\t\treturn window.location.href = '/main/refresh_token'\n\t\t\t}\n\t\t\tconst { dispatch } = store;\n\t\t\treturn dispatch(refreshToken())\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n);\n\nexport default instance;\n","export const fundRankingConstants = {\n SET_CURRENT_FUND_RANKING_PAGE: 'SET_CURRENT_FUND_RANKING_PAGE',\n SET_TOTAL_RANKING_PAGE: 'SET_TOTAL_RANKING_PAGE',\n\n UPDATE_FUND_RANKING_QUERIES: 'UPDATE_FUND_RANKING_QUERIES',\n RESET_FUND_RANKING_QUERIES: 'RESET_FUND_RANKING_QUERIES',\n\n UPDATE_FUND_RANKING_TABLE_COLUMNS: 'UPDATE_FUND_RANKING_TABLE_COLUMNS',\n\n SET_DEFAULT_FUND_RANKING_QUERIES: 'SET_DEFAULT_FUND_RANKING_QUERIES',\n\n FETCH_RANK_START: 'FETCH_RANK_START',\n FETCH_RANK_SUCCESS: 'FETCH_RANK_SUCCESS',\n FETCH_RANK_FAILURE: 'FETCH_RANK_FAILURE',\n\n SET_FUND_ID_RANK: 'SET_FUND_ID_RANK',\n FETCH_FUND_RANK_START: 'FETCH_FUND_RANK_START',\n FETCH_FUND_RANK_SUCCESS: 'FETCH_FUND_RANK_SUCCESS',\n FETCH_FUND_RANK_FAILURE: 'FETCH_FUND_RANK_FAILURE',\n\n FETCH_RANK_SEARCH_FILTERS_START: 'FETCH_RANK_SEARCH_FILTERS_START',\n FETCH_RANK_SEARCH_FILTERS_SUCCESS: 'FETCH_RANK_SEARCH_FILTERS_SUCCESS',\n FETCH_RANK_SEARCH_FILTERS_FAILURE: 'FETCH_RANK_SEARCH_FILTERS_FAILURE',\n\n FETCH_RANKINGS_START: 'FETCH_RANKINGS_START',\n FETCH_RANKINGS_SUCCESS: 'FETCH_RANKINGS_SUCCESS',\n FETCH_RANKINGS_FAILURE: 'FETCH_RANKINGS_FAILURE',\n\n SET_NAV_TYPE_RANKING : 'SET_NAV_TYPE_RANKING',\n UPDATE_NAV_DATE_FUND_RANKING: 'UPDATE_NAV_DATE_FUND_RANKING',\n FETCH_NAV_RANKINGS_START: 'FETCH_NAV_RANKINGS_START',\n FETCH_NAV_RANKINGS_SUCCESS: 'FETCH_NAV_RANKINGS_SUCCESS',\n FETCH_NAV_RANKINGS_FAILURE: 'FETCH_NAV_RANKINGS_FAILURE',\n\n SET_HIGHLIGHT_FUND_PERIOD: 'SET_HIGHLIGHT_FUND_PERIOD',\n FETCH_HIGHLIGHT_FUND_START: 'FETCH_HIGHLIGHT_FUND_START',\n FETCH_HIGHLIGHT_FUND_SUCCESS: 'FETCH_HIGHLIGHT_FUND_SUCCESS',\n FETCH_HIGHLIGHT_FUND_FAILURE: 'FETCH_HIGHLIGHT_FUND_FAILURE',\n\n FETCH_CATEGORIES_START: 'FETCH_CATEGORIES_START',\n FETCH_CATEGORIES_SUCCESS: 'FETCH_CATEGORIES_SUCCESS',\n FETCH_CATEGORIES_FAILURE: 'FETCH_CATEGORIES_FAILURE',\n\n UPDATE_CATEGORIES: 'UPDATE_CATEGORIES',\n APPEND_CATEGORY: 'APPEND_CATEGORY',\n REMOVE_CATEGORY: 'REMOVE_CATEGORY',\n\n FETCH_USER_CATEGORIES_START: 'FETCH_USER_CATEGORIES_START',\n FETCH_USER_CATEGORIES_SUCCESS: 'FETCH_USER_CATEGORIES_SUCCESS',\n FETCH_USER_CATEGORIES_FAILURE: 'FETCH_USER_CATEGORIES_FAILURE',\n UPDATE_USER_CATEGORIES: 'UPDATE_USER_CATEGORIES',\n RESET_USER_CATEGORIES: 'RESET_USER_CATEGORIES',\n\n SAVE_USER_CATEGORIES_START: 'SAVE_USER_CATEGORIES_START',\n SAVE_USER_CATEGORIES_SUCCESS: 'SAVE_USER_CATEGORIES_SUCCESS',\n SAVE_USER_CATEGORIES_FAILURE: 'SAVE_USER_CATEGORIES_FAILURE',\n};\n","export const investmentConstants = {\n // USER's ACCOUNTS\n UPDATE_USER_ACCOUNTS: \"UPDATE_USER_ACCOUNTS\",\n\n RESET_INVESTMENT: \"RESET_INVESTMENT\",\n\n // GENERAL\n FETCH_ACTIVED_FUNDS_START: \"FETCH_ACTIVED_FUNDS_START\",\n FETCH_ACTIVED_FUNDS_SUCCESS: \"FETCH_ACTIVED_FUNDS_SUCCESS\",\n FETCH_ACTIVED_FUNDS_FAILURE: \"FETCH_ACTIVED_FUNDS_FAILURE\",\n\n FETCH_ALL_FUNDS_START: \"FETCH_ALL_FUNDS_START\",\n FETCH_ALL_FUNDS_SUCCESS: \"FETCH_ALL_FUNDS_SUCCESS\",\n FETCH_ALL_FUNDS_FAILURE: \"FETCH_ALL_FUNDS_FAILURE\",\n\n FETCH_ALL_FUND_CODES_START: \"FETCH_ALL_FUND_CODES_START\",\n FETCH_ALL_FUND_CODES_SUCCESS: \"FETCH_ALL_FUND_CODES_SUCCESS\",\n FETCH_ALL_FUND_CODES_FAILURE: \"FETCH_ALL_FUND_CODES_FAILURE\",\n\n // PORTFOLIOS\n UPDATE_PORTFOLIOS_QUERIES: \"UPDATE_PORTFOLIOS_QUERIES\",\n FETCH_PORTFOLIOS_START: \"FETCH_PORTFOLIOS_START\",\n FETCH_PORTFOLIOS_SUCCESS: \"FETCH_PORTFOLIOS_SUCCESS\",\n FETCH_PORTFOLIOS_FAILURE: \"FETCH_PORTFOLIOS_FAILURE\",\n\n FETCH_NAV_PORTFOLIO_START: \"FETCH_NAV_PORTFOLIO_START\",\n FETCH_NAV_PORTFOLIO_SUCCESS: \"FETCH_NAV_PORTFOLIO_SUCCESS\",\n FETCH_NAV_PORTFOLIO_FAILURE: \"FETCH_NAV_PORTFOLIO_FAILURE\",\n\n // PORTFOLIO STATISTICS\n FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START:\n \"FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START\",\n FETCH_PREVIOUS_RETURN_BY_ACCOUNT_SUCCESS:\n \"FETCH_PREVIOUS_RETURN_BY_ACCOUNT_SUCCESS\",\n FETCH_PREVIOUS_RETURN_BY_ACCOUNT_FAILURE:\n \"FETCH_PREVIOUS_RETURN_BY_ACCOUNT_FAILURE\",\n\n FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START:\n \"FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START\",\n FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_SUCCESS:\n \"FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_SUCCESS\",\n FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_FAILURE:\n \"FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_FAILURE\",\n\n FETCH_HISTORY_GRAPH_BY_ACCOUNT_START: \"FETCH_HISTORY_GRAPH_BY_ACCOUNT_START\",\n FETCH_HISTORY_GRAPH_BY_ACCOUNT_SUCCESS:\n \"FETCH_HISTORY_GRAPH_BY_ACCOUNT_SUCCESS\",\n FETCH_HISTORY_GRAPH_BY_ACCOUNT_FAILURE:\n \"FETCH_HISTORY_GRAPH_BY_ACCOUNT_FAILURE\",\n\n FETCH_MONTHLY_RETURN_BY_ACCOUNT_START:\n \"FETCH_MONTHLY_RETURN_BY_ACCOUNT_START\",\n FETCH_MONTHLY_RETURN_BY_ACCOUNT_SUCCESS:\n \"FETCH_MONTHLY_RETURN_BY_ACCOUNT_SUCCESS\",\n FETCH_MONTHLY_RETURN_BY_ACCOUNT_FAILURE:\n \"FETCH_MONTHLY_RETURN_BY_ACCOUNT_FAILURE\",\n\n FETCH_PROFIT_BY_ACCOUNT_START: \"FETCH_PROFIT_BY_ACCOUNT_START\",\n FETCH_PROFIT_BY_ACCOUNT_SUCCESS: \"FETCH_PROFIT_BY_ACCOUNT_SUCCESS\",\n FETCH_PROFIT_BY_ACCOUNT_FAILURE: \"FETCH_PROFIT_BY_ACCOUNT_FAILURE\",\n\n FETCH_VOLATILITY_BY_ACCOUNT_START: \"FETCH_VOLATILITY_BY_ACCOUNT_START\",\n FETCH_VOLATILITY_BY_ACCOUNT_SUCCESS: \"FETCH_VOLATILITY_BY_ACCOUNT_SUCCESS\",\n FETCH_VOLATILITY_BY_ACCOUNT_FAILURE: \"FETCH_VOLATILITY_BY_ACCOUNT_FAILURE\",\n\n FETCH_MAX_DRAWDOWN_BY_ACCOUNT_START: \"FETCH_MAX_DRAWDOWN_BY_ACCOUNT_START\",\n FETCH_MAX_DRAWDOWN_BY_ACCOUNT_SUCCESS:\n \"FETCH_MAX_DRAWDOWN_BY_ACCOUNT_SUCCESS\",\n FETCH_MAX_DRAWDOWN_BY_ACCOUNT_FAILURE:\n \"FETCH_MAX_DRAWDOWN_BY_ACCOUNT_FAILURE\",\n\n FETCH_DRAWDOWN_BY_ACCOUNT_START: \"FETCH_DRAWDOWN_BY_ACCOUNT_START\",\n FETCH_DRAWDOWN_BY_ACCOUNT_SUCCESS: \"FETCH_DRAWDOWN_BY_ACCOUNT_SUCCESS\",\n FETCH_DRAWDOWN_BY_ACCOUNT_FAILURE: \"FETCH_DRAWDOWN_BY_ACCOUNT_FAILURE\",\n\n SET_DEFAULT_PORT_STAT: \"SET_DEFAULT_PORT_STAT\",\n CLEAR_DEFAULT_PORT_STAT: \"CLEAR_DEFAULT_PORT_STAT\",\n\n FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_SUCCESS:\n \"FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_SUCCESS\",\n FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_FAILURE:\n \"FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_FAILURE\",\n\n // LOT\n UPDATE_LOT_QUERIES: \"UPDATE_LOT_QUERIES\",\n FETCH_LOTS_START: \"FETCH_LOTS_START\",\n FETCH_LOTS_SUCCESS: \"FETCH_LOTS_SUCCESS\",\n FETCH_LOTS_FAILURE: \"FETCH_LOTS_FAILURE\",\n\n FETCH_NAVS_LOTS_START: \"FETCH_NAVS_LOTS_START\",\n FETCH_NAVS_LOTS_SUCCESS: \"FETCH_NAVS_LOTS_SUCCESS\",\n FETCH_NAVS_LOTS_FAILURE: \"FETCH_NAVS_LOTS_FAILURE\",\n\n // BOOK\n UPDATE_BOOK_QUERIES: \"UPDATE_BOOK_QUERIES\",\n FETCH_BOOKS_START: \"FETCH_BOOKS_START\",\n FETCH_BOOKS_SUCCESS: \"FETCH_BOOKS_SUCCESS\",\n FETCH_BOOKS_FAILURE: \"FETCH_BOOKS_FAILURE\",\n\n // DIVIDEND\n UPDATE_DIVIDEND_QUERIES: \"UPDATE_DIVIDEND_QUERIES\",\n\n FETCH_DIVIDENDS_START: \"FETCH_DIVIDENDS_START\",\n FETCH_DIVIDENDS_SUCCESS: \"FETCH_DIVIDENDS_SUCCESS\",\n FETCH_DIVIDENDS_FAILURE: \"FETCH_DIVIDENDS_FAILURE\",\n\n // HISTORIES\n UPDATE_INVESTMENT_HISTORIES_QUERIES: \"UPDATE_INVESTMENT_HISTORIES_QUERIES\",\n\n FETCH_HISTORIES_START: \"FETCH_HISTORIES_START\",\n FETCH_HISTORIES_SUCCESS: \"FETCH_HISTORIES_SUCCESS\",\n FETCH_HISTORIES_FAILURE: \"FETCH_HISTORIES_FAILURE\",\n\n FETCH_HISTORIES_CHANGE_PAGE: \"FETCH_HISTORIES_CHANGE_PAGE\",\n\n // DCA\n UPDATE_INVESTMENT_DCA_QUERIES: \"UPDATE_INVESTMENT_DCA_QUERIES\",\n DELETE_DCA_ORDER_REQUEST_START: \"DELETE_DCA_ORDER_REQUEST_START\",\n DELETE_DCA_ORDER_REQUEST_SUCCESS: \"DELETE_DCA_ORDER_REQUEST_SUCCESS\",\n DELETE_DCA_ORDER_REQUEST_FAILURE: \"DELETE_DCA_ORDER_REQUEST_FAILURE\",\n CLEAR_DCA_ORDER_ERROR_MESSAGE: \"CLEAR_DCA_ORDER_ERROR_MESSAGE\",\n\n FETCH_DCAS_START: \"FETCH_DCAS_START\",\n FETCH_DCAS_SUCCESS: \"FETCH_DCAS_SUCCESS\",\n FETCH_DCAS_FAILURE: \"FETCH_DCAS_FAILURE\",\n\n // ORDERS\n DELETE_ORDER_REQUEST_START: \"DELETE_ORDER_REQUEST_START\",\n DELETE_ORDER_REQUEST_SUCCESS: \"DELETE_ORDER_REQUEST_SUCCESS\",\n DELETE_ORDER_REQUEST_FAILURE: \"DELETE_ORDER_REQUEST_FAILURE\",\n FETCH_ORDERS_START: \"FETCH_ORDERS_START\",\n FETCH_ORDERS_SUCCESS: \"FETCH_ORDERS_SUCCESS\",\n FETCH_ORDERS_FAILURE: \"FETCH_ORDERS_FAILURE\",\n UPDATE_ORDERS_QUERIES: \"UPDATE_ORDERS_QUERIES\",\n CLEAR_ORDER_ERROR_MESSAGE: \"CLEAR_ORDER_ERROR_MESSAGE\",\n\n // INVESTMENT\n SET_INVEST_SEARCH: \"SET_INVEST_SEARCH\",\n};\n\nexport const TRADE_TYPES = {\n SWITCH: \"W\",\n DCA: \"DCA\",\n};\n\nexport const INVESTMENT_STATUS = {\n STATUS_P: \"P\",\n STATUS_A: \"A\",\n STATUS_I: \"I\",\n};\n","export const orderRequestConstants = {\n // Toggled Buy-Sell Modals.\n TOGGLED_ORDER_FUNDS_REQUEST_MODAL: 'TOGGLED_ORDER_FUNDS_REQUEST_MODAL',\n CLEAR_ERROR_MESSAGE: 'CLEAR_ERROR_MESSAGE',\n\n // Updated Active Tab (buy, sell, switch).\n UPDATE_ACTIVE_TAB_ORDER_FUNDS_REQUEST_MODAL: 'UPDATE_ACTIVE_TAB_ORDER_FUNDS_REQUEST_MODAL',\n\n // Updated Fund Id to order request.\n UPDATE_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL: 'UPDATE_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL',\n CLEAR_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL: 'CLEAR_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL',\n \n // Get Fund Information (Buy, Sell).\n FETCH_BUY_FUND_INFO_START: 'FETCH_BUY_FUND_INFO_START',\n FETCH_SELL_FUND_INFO_START: 'FETCH_SELL_FUND_INFO_START',\n UPDATE_FUND_INFO: 'UPDATE_FUND_INFO',\n CLEAR_FUND_INFO: 'CLEAR_FUND_INFO',\n\n // Fund Information 2 (Switch).\n FETCH_SWITCH_FUND_INFO_START: 'FETCH_SWITCH_FUND_INFO_START',\n UPDATE_FUNDS_INFO_2: 'UPDATE_FUNDS_INFO_2',\n CLEAR_FUND_INFO_2: 'CLEAR_FUND_INFO_2',\n\n // Checked Fund able to order. (Buy, Switch)\n CLEAR_CHECKED_FUND_ABLE: 'CLEAR_CHECKED_FUND_ABLE',\n CHECKED_BUYABLE_FUND_START: 'CHECKED_BUYABLE_FUND_START',\n CHECKED_SELLABLE_FUND_START: 'CHECKED_SELLABLE_FUND_START',\n CHECKED_SWITCHABLE_FUND_START: 'CHECKED_SWITCHABLE_FUND_START',\n CHECKED_FUND_ABLE_TO_ORDER_SUCCESS: 'CHECKED_FUND_ABLE_TO_ORDER_SUCCESS',\n CHECKED_FUND_ABLE_TO_ORDER_FAILURE: 'CHECKED_FUND_ABLE_TO_ORDER_FAILURE',\n\n // Switch Fund\n GET_SWITCHABLE_FUNDS_START: 'GET_SWITCHABLE_FUNDS_START',\n GET_SWITCHABLE_FUNDS_SUCCESS: 'GET_SWITCHABLE_FUNDS_SUCCESS',\n GET_SWITCHABLE_FUNDS_FAILURE: 'GET_SWITCHABLE_FUNDS_FAILURE',\n\n // SEND_QUESTION_BACK_TO_CONFIRM\n CONFIRM_ORDER_FUND_START: 'CONFIRM_ORDER_FUND_START',\n CONFIRM_ORDER_FUND_SUCCESS: 'CONFIRM_ORDER_FUND_SUCCESS',\n CONFIRM_ORDER_FUND_FAILURE: 'CONFIRM_ORDER_FUND_FAILURE',\n \n RESET_CONFIRM_ORDER_FUND: 'RESET_CONFIRM_ORDER_FUND',\n\n // SEARCH FUND INFORMATION\n CLEAR_SEARCH_FUNDS_INFO: 'CLEAR_SEARCH_FUNDS_INFO',\n UPDATE_SEARCH_FUNDS_INFO: 'UPDATE_SEARCH_FUNDS_INFO',\n REMOVE_SEARCH_FUNDS_INFO: 'REMOVE_SEARCH_FUNDS_INFO',\n\n CLEAR_FUND_INFO_2: 'CLEAR_FUND_INFO_2',\n\n UPDATE_SEARCH_PORTFOLIOS: 'UPDATE_SEARCH_PORTFOLIOS',\n\n TOGGLE_MODAL_MESSAGE: 'TOGGLE_MODAL_MESSAGE',\n\n // FORM\n // GET_LATEST_PLAN: 'GET_LATEST_PLAN',\n UPDATE_LATEST_PLAN: 'UPDATE_LATEST_PLAN',\n CLEAR_LATEST_PLAN: 'CLEAR_LATEST_PLAN',\n UPDATE_LATEST_SETTLE_DATE: 'UPDATE_LATEST_SETTLE_DATE',\n};\n","export const authenticationConstants = {\n TOGGLED_SIGN_IN_MODAL: \"TOGGLED_SIGN_IN_MODAL\",\n TOGGLED_ERROR_MESSAGE_MODAL: \"TOGGLED_ERROR_MESSAGE_MODAL\",\n\n REFRESH_TOKEN: \"REFRESH_TOKEN\",\n\n SIGN_IN_START: \"SIGN_IN_START\",\n SIGN_IN_SUCCESS: \"SIGN_IN_SUCCESS\",\n SIGN_IN_FAILURE: \"SIGN_IN_FAILURE\",\n\n VERIFY_2FA_OPEN: \"VERIFY_2FA_OPEN\",\n TOGGLED_2FA_MODAL: \"TOGGLED_2FA_MODAL\",\n VERIFY_2FA_START: \"VERIFY_2FA_START\",\n\n SET_2FA_LOADING: \"SET_2FA_LOADING\",\n\n CLEAR_SIGN_IN_ERROR_MESSAGE: \"CLEAR_SIGN_IN_ERROR_MESSAGE\",\n\n SIGN_IN_CREDENTIAL_START: \"SIGN_IN_CREDENTIAL_START\",\n SIGN_IN_DSA_START: \"SIGN_IN_DSA_START\",\n SIGN_IN_SSO_START: \"SIGN_IN_SSO_START\",\n\n SIGN_IN_SUCCESS_FOR_MOBILE: \"SIGN_IN_SUCCESS_FOR_MOBILE\",\n UPDATE_SIGN_IN_STATUS_FOR_MOBILE: \"UPDATE_SIGN_IN_STATUS_FOR_MOBILE\",\n\n GET_ACCOUNT_MKT: \"GET_ACCOUNT_MKT\",\n\n GET_ACCOUNT_LIST_START: \"GET_ACCOUNT_LIST_START\",\n GET_ACCOUNT_LIST_SUCCESS: \"GET_ACCOUNT_LIST_SUCCESS\",\n UPDATE_ACCOUNT_LIST_MOBILE_SUCCESS: \"UPDATE_ACCOUNT_LIST_MOBILE_SUCCESS\",\n GET_ACCOUNT_LIST_FAILURE: \"GET_ACCOUNT_LIST_FAILURE\",\n\n GET_ACCOUNT_INFO_START: \"GET_ACCOUNT_INFO_START\",\n GET_ACCOUNT_INFO_SUCCESS: \"GET_ACCOUNT_INFO_SUCCESS\",\n GET_ACCOUNT_INFO_FAILURE: \"GET_ACCOUNT_INFO_FAILURE\",\n\n GET_ACCOUNT_NAME_START: \"GET_ACCOUNT_NAME_START\",\n GET_ACCOUNT_NAME_SUCCESS: \"GET_ACCOUNT_NAME_SUCCESS\",\n GET_ACCOUNT_NAME_FAILURE: \"GET_ACCOUNT_NAME_FAILURE\",\n\n SIGN_OUT: \"SIGN_OUT\",\n};\n","import { investmentConstants } from \"../_constants\";\n// USER's ACCOUNTS\nexport const updateUserAccounts = (accountNumbers) => ({\n type: investmentConstants.UPDATE_USER_ACCOUNTS,\n payload: accountNumbers,\n});\n\nexport const resetInvestment = () => ({\n type: investmentConstants.RESET_INVESTMENT,\n});\n\n// INVESTMENT GENERAL\nexport const fetchActivedFundsStart = (accountNumbers) => ({\n type: investmentConstants.FETCH_ACTIVED_FUNDS_START,\n payload: accountNumbers,\n});\nexport const fetchActivedFundsSuccess = (data) => ({\n type: investmentConstants.FETCH_ACTIVED_FUNDS_SUCCESS,\n payload: data,\n});\nexport const fetchActivedFundsFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_ACTIVED_FUNDS_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchAllFundsStart = (accountNumbers) => ({\n type: investmentConstants.FETCH_ALL_FUNDS_START,\n payload: accountNumbers,\n});\nexport const fetchAllFundsSuccess = (data) => ({\n type: investmentConstants.FETCH_ALL_FUNDS_SUCCESS,\n payload: data,\n});\nexport const fetchAllFundsFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_ALL_FUNDS_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchAllFundCodesStart = () => ({\n type: investmentConstants.FETCH_ALL_FUND_CODES_START,\n});\nexport const fetchAllFundCodesSuccess = (data) => ({\n type: investmentConstants.FETCH_ALL_FUND_CODES_SUCCESS,\n payload: data,\n});\nexport const fetchAllFundCodesFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_ALL_FUND_CODES_FAILURE,\n payload: errorMessage,\n});\n\n// INVESTMENT PORTFOLIO\nexport const updatePortfoliosQueries = (queries) => ({\n type: investmentConstants.UPDATE_PORTFOLIOS_QUERIES,\n payload: queries,\n});\n\nexport const fetchPortfoliosStart = (queries) => ({\n type: investmentConstants.FETCH_PORTFOLIOS_START,\n payload: queries,\n});\nexport const fetchPortfoliosSuccess = (data) => ({\n type: investmentConstants.FETCH_PORTFOLIOS_SUCCESS,\n payload: data,\n});\nexport const fetchPortfoliosFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_PORTFOLIOS_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchNavPortfoliosStart = (data) => ({\n type: investmentConstants.FETCH_NAV_PORTFOLIO_START,\n payload: data,\n});\nexport const fetchNavPortfoliosSuccess = (data) => ({\n type: investmentConstants.FETCH_NAV_PORTFOLIO_SUCCESS,\n payload: data,\n});\nexport const fetchNavPortfoliosFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_NAV_PORTFOLIO_FAILURE,\n payload: errorMessage,\n});\n\n// PORTFOLIO STATISTICS\nexport const fetchPreviousReturnByAccountStart = (account) => ({\n type: investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START,\n payload: account,\n});\nexport const fetchPreviousReturnByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchPreviousReturnByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchPreviousReturnGraphByAccountStart = (payload) => ({\n type: investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START,\n payload: payload,\n});\nexport const fetchPreviousReturnGraphByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchPreviousReturnGraphByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchHistoryGraphByAccountStart = (payload) => ({\n type: investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_START,\n payload: payload,\n});\nexport const fetchHistoryGraphByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchHistoryGraphByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchMonthlyReturnByAccountStart = (account) => ({\n type: investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_START,\n payload: account,\n});\nexport const fetchMonthlyReturnByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchMonthlyReturnByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchProfitByAccountStart = (account) => ({\n type: investmentConstants.FETCH_PROFIT_BY_ACCOUNT_START,\n payload: account,\n});\nexport const fetchProfitByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_PROFIT_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchProfitByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_PROFIT_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchVolatilityByAccountStart = (account) => ({\n type: investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_START,\n payload: account,\n});\nexport const fetchVolatilityByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchVolatilityByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchMaxDrawdownByAccountStart = (account) => ({\n type: investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_START,\n payload: account,\n});\nexport const fetchMaxDrawdownByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchMaxDrawdownByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchDrawdownByAccountStart = (payload) => ({\n type: investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_START,\n payload: payload,\n});\nexport const fetchDrawdownByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchDrawdownByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\n// Default Port stat\nexport const setDefaultPortStat = () => ({\n type: investmentConstants.SET_DEFAULT_PORT_STAT,\n});\n\nexport const clearDefaultPortStat = () => ({\n type: investmentConstants.CLEAR_DEFAULT_PORT_STAT,\n});\nexport const fetchLastDateOfAccountNumberSuccess = (date) => ({\n type: investmentConstants.FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_SUCCESS,\n payload: date,\n});\nexport const fetchLastDateOfAccountNumberFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_FAILURE,\n payload: errorMessage,\n});\n\n// INVESTMENT ORDERS\nexport const deleteOrderRequestStart = (payload) => ({\n type: investmentConstants.DELETE_ORDER_REQUEST_START,\n payload: payload,\n});\nexport const deleteOrderRequestSuccess = (data) => ({\n type: investmentConstants.DELETE_ORDER_REQUEST_SUCCESS,\n payload: data,\n});\nexport const deleteOrderRequestFailure = (payload) => ({\n type: investmentConstants.DELETE_ORDER_REQUEST_FAILURE,\n payload,\n});\nexport const fetchOrdersStart = (id) => ({\n type: investmentConstants.FETCH_ORDERS_START,\n payload: id,\n});\nexport const fetchOrdersSuccess = (data) => ({\n type: investmentConstants.FETCH_ORDERS_SUCCESS,\n payload: data,\n});\nexport const fetchOrdersFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_ORDERS_FAILURE,\n payload: errorMessage,\n});\nexport const updateOrdersQueries = (queries) => ({\n type: investmentConstants.UPDATE_ORDERS_QUERIES,\n payload: queries,\n});\nexport const clearOrderErrorMessage = () => ({\n type: investmentConstants.CLEAR_ORDER_ERROR_MESSAGE,\n});\n\n// INVESTMENT LOTS\nexport const updateLotQueries = (payload) => ({\n type: investmentConstants.UPDATE_LOT_QUERIES,\n payload: payload,\n});\n\nexport const fetchLotsStart = (data) => ({\n type: investmentConstants.FETCH_LOTS_START,\n payload: data,\n});\nexport const fetchLotsSuccess = (data) => ({\n type: investmentConstants.FETCH_LOTS_SUCCESS,\n payload: data,\n});\nexport const fetchLotsFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_LOTS_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchNavsLotsStart = (fundIds) => ({\n type: investmentConstants.FETCH_NAVS_LOTS_START,\n payload: fundIds,\n});\nexport const fetchNavsLotsSuccess = (data) => ({\n type: investmentConstants.FETCH_NAVS_LOTS_SUCCESS,\n payload: data,\n});\nexport const fetchNavsLotsFailure = (error) => ({\n type: investmentConstants.FETCH_NAVS_LOTS_FAILURE,\n payload: error,\n});\n\n// INVESTMENT BOOK\nexport const updateBookQueries = (payload) => ({\n type: investmentConstants.UPDATE_BOOK_QUERIES,\n payload: payload,\n});\n\nexport const fetchBooksStart = () => ({\n type: investmentConstants.FETCH_BOOKS_START,\n});\nexport const fetchBooksSuccess = (data) => ({\n type: investmentConstants.FETCH_BOOKS_SUCCESS,\n payload: data,\n});\nexport const fetchBooksFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_BOOKS_FAILURE,\n payload: errorMessage,\n});\n\n// INVESTMENT HISTORIES\nexport const updateHistoriesQueries = (queries) => ({\n type: investmentConstants.UPDATE_INVESTMENT_HISTORIES_QUERIES,\n payload: queries,\n});\nexport const fetchHistoriesStart = (page) => ({\n type: investmentConstants.FETCH_HISTORIES_START,\n payload: page,\n});\nexport const fetchHistoriesSuccess = (data) => ({\n type: investmentConstants.FETCH_HISTORIES_SUCCESS,\n payload: data,\n});\nexport const fetchHistoriesFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_HISTORIES_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchHistoriesChangePage = (page) => ({\n type: investmentConstants.FETCH_HISTORIES_CHANGE_PAGE,\n payload: page,\n});\n\n// DIVIDEND\nexport const updateDividendQueries = (queries) => ({\n type: investmentConstants.UPDATE_DIVIDEND_QUERIES,\n payload: queries,\n});\n\nexport const fetchDividendsStart = (data) => ({\n type: investmentConstants.FETCH_DIVIDENDS_START,\n payload: data,\n});\nexport const fetchDividendsSuccess = (data) => ({\n type: investmentConstants.FETCH_DIVIDENDS_SUCCESS,\n payload: data,\n});\nexport const fetchDividendsFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_DIVIDENDS_FAILURE,\n payload: errorMessage,\n});\n\n// INVESTMENT DCA\nexport const updateDCAQueries = (queries) => ({\n type: investmentConstants.UPDATE_INVESTMENT_DCA_QUERIES,\n payload: queries,\n});\nexport const fetchDCAsStart = (queries) => ({\n type: investmentConstants.FETCH_DCAS_START,\n payload: queries,\n});\nexport const fetchDCAsSuccess = (data) => ({\n type: investmentConstants.FETCH_DCAS_SUCCESS,\n payload: data,\n});\nexport const fetchDCAsFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_DCAS_FAILURE,\n payload: errorMessage,\n});\nexport const deleteDCAOrderRequestStart = (payload) => ({\n type: investmentConstants.DELETE_DCA_ORDER_REQUEST_START,\n payload: payload,\n});\nexport const deleteDCAOrderRequestSuccess = (data) => ({\n type: investmentConstants.DELETE_DCA_ORDER_REQUEST_SUCCESS,\n payload: data,\n});\nexport const deleteDCAOrderRequestFailure = (errorMessage) => ({\n type: investmentConstants.DELETE_DCA_ORDER_REQUEST_FAILURE,\n payload: errorMessage,\n});\nexport const clearDCAOrderErrorMessage = () => ({\n type: investmentConstants.CLEAR_DCA_ORDER_ERROR_MESSAGE,\n});\n\n// INVEST SEARCH\nexport const setInvestSearch = (isSearch) => ({\n type: investmentConstants.SET_INVEST_SEARCH,\n payload: isSearch,\n});\n","export const fundInfoFetching = (fundInfo) => {\n const result = {\n ...fundInfo,\n isFetching: true\n };\n return result;\n};\n\nexport const fundInfoData = (fundInfo, data) => {\n const result = {\n ...fundInfo,\n data: cleanColor(data),\n isFetching: false\n };\n return result;\n};\n\nexport const fundInfoError = (fundInfo, error) => {\n const result = {\n ...fundInfo,\n errorMessage: error,\n isFetching: false\n };\n return result;\n};\n\nconst cleanColor = (data) => {\n return {\n ...data,\n color: data.color ? data.color : '#CB2427'\n };\n};\n\nexport const filterHistoricalNav = (historicalNav, data) => {\n const result = {\n ...historicalNav,\n currentPage: data.currentPage ? data.currentPage : 1,\n totalPage: data.totalPage ? data.totalPage : 1,\n items: data.items ? data.items : []\n };\n return result;\n};\n\nexport const filterHistoricalNavGraph = (informationWidget, data) => {\n const result = {\n ...informationWidget,\n historicalNavGraph: data ? data : []\n };\n return result;\n};\n\nexport const filterDividend = (dividend, data) => {\n const result = {\n ...dividend,\n currentPage: data.currentPage ? data.currentPage : 1,\n totalPage: data.totalPage ? data.totalPage : 1,\n items: data ? data : []\n };\n return result;\n};\n\nexport const changePage = (state, page) => {\n const result = {\n ...state,\n currentPage: page !== state.currentPage ? page : state.currentPage\n };\n return result;\n};\n\nexport const filterDrawdownByDate = (state, data) => {\n const result = {\n ...state,\n drawdownListByDate: data\n };\n return result;\n};\n\nexport const resetDrawdownByDate = (state) => {\n const result = {\n ...state,\n drawdownListByDate: []\n };\n return result;\n};\n\nexport const filterMaximumDrawdown = (state, data) => {\n const result = {\n ...state,\n maximumDrawdownList: data\n };\n return result;\n};\n\nexport const resetMaximumDrawdown = (state) => {\n const result = {\n ...state,\n maximumDrawdownList: []\n };\n return result;\n};\n\nexport const resetMonthlyReturn = (state) => {\n const result = {\n ...state,\n monthlyReturns: []\n };\n return result;\n};\n\nexport const filterPriceRange = (state, data) => {\n let priceRangeList = [];\n if (data) {\n priceRangeList = [\n {\n time: '1 สัปดาห์',\n maxValue: data.maxOfWeek,\n minValue: data.minOfWeek,\n value: data.current\n },\n {\n time: '1 เดือน',\n maxValue: data.maxOfMonth,\n minValue: data.minOfMonth,\n value: data.current\n },\n {\n time: '3 เดือน',\n maxValue: data.maxOfThreeMonths,\n minValue: data.minOfThreeMonths,\n value: data.current\n },\n {\n time: '6 เดือน',\n maxValue: data.maxOfSixMonths,\n minValue: data.minOfSixMonths,\n value: data.current\n },\n {\n time: '1 ปี',\n maxValue: data.maxOfOneYear,\n minValue: data.minOfOneYear,\n value: data.current\n }\n ];\n }\n\n const result = {\n ...state,\n priceRanges: state.priceRanges !== priceRangeList ? priceRangeList : state.priceRanges\n };\n return result;\n};\n\nexport const resetPriceRange = (state) => {\n const result = {\n ...state,\n priceRanges: []\n };\n return result;\n};\n\nexport const filterVolatilities = (state, data) => {\n const result = {\n ...state,\n volatilities: data ? data : state.volatilities\n };\n return result;\n};\n\nexport const resetVolatilities = (state) => {\n const result = {\n ...state,\n volatilities: []\n };\n return result;\n};\n\nexport const filterReturnExpenseRatio = (state, data) => {\n const result = {\n ...state,\n returnExpenseRatio: data ? data : null\n };\n return result;\n};\n\nexport const resetReturnExpenseRatio = (state) => {\n const result = {\n ...state,\n returnExpenseRatio: null\n };\n return result;\n};\n\nexport const filterMonthlyProfit = (state, data) => {\n const result = {\n ...state,\n monthlyProfit: data ? data : null\n };\n return result;\n};\n\nexport const resetMonthlyProfit = (state) => {\n const result = {\n ...state,\n monthlyProfit: null\n };\n return result;\n};\n\nexport const filterReturnHistory = (state, data) => {\n const result = {\n ...state,\n returnHistory: data ? data : null\n };\n return result;\n};\n\nexport const resetReturnHistory = (state) => {\n const result = {\n ...state,\n returnHistory: null\n };\n return result;\n};\n\nexport const changeDrawdownSortingFilters = (state, data) => {\n const result = {\n ...state,\n currentDrawdownSortingFilters: data\n };\n return result;\n};\n\nexport const changeNavGraphDate = (state, data) => {\n if (state.navGraphDateRange.startDate !== data.startDate || state.navGraphDateRange.endDate !== data.endDate) {\n return {\n ...state,\n navGraphDateRange: {\n startDate: data.startDate,\n endDate: data.endDate\n }\n };\n } else {\n return {\n ...state\n };\n }\n};\n\nexport const changeSortedDrawdown = (state, data) => {\n const result = {\n ...state\n };\n return result;\n};\n\nexport const setIsFetching = (state) => {\n const result = {\n ...state,\n isFetching: true\n };\n return result;\n}\n\nexport const filterDataResult = (state, data) => {\n const result = {\n ...state,\n isFetching: false,\n data: data,\n errorMessage: null\n };\n return result;\n}\n\nexport const resetDataResult = (state, message) => {\n const result = {\n ...state,\n isFetching: false,\n data: [],\n errorMessage: message\n };\n return result;\n}\n\nexport const resetDataResultToObject = (state, message) => {\n const result = {\n ...state,\n isFetching: false,\n data: {},\n errorMessage: message\n };\n return result;\n}\n\n// Constant filter type\nconst filterTypeList = [\n {\n type: 'TOP_TEN_HOLDINGS',\n dateType: 'topHoldingDate',\n key: 'topHoldingDetails',\n detailName: 'holdingDetailName',\n value: 'holdingDetailWeighting'\n },\n {\n type: 'STOCKS',\n dateType: 'topHoldingDate',\n key: 'topHoldingDetails',\n detailName: 'holdingDetailName',\n value: 'holdingDetailWeighting'\n },\n {\n type: 'COUNTRY_EXPOSURE',\n dateType: 'countryExposureDate',\n key: 'countryExposureDetails',\n detailName: 'country',\n value: 'value'\n },\n {\n type: 'SECTOR_INDICES',\n dateType: 'globalSectorPortfolioDate',\n detailName: [\n 'equitySectorBasicMaterialsLongRescaled',\n 'equitySectorCommunicationServicesLongRescaled',\n 'equitySectorConsumerCyclicalLongRescaled',\n 'equitySectorConsumerDefensiveLongRescaled',\n 'equitySectorEnergyLongRescaled',\n 'equitySectorFinancialServicesLongRescaled',\n 'equitySectorHealthcareLongRescaled',\n 'equitySectorIndustrialsLongRescaled',\n 'equitySectorRealEstateLongRescaled',\n 'equitySectorTechnologyLongRescaled',\n 'equitySectorUtilitiesLongRescaled'\n ],\n value: '',\n }\n];\n\n// Constant default color\nconst defaultColors = [\n '#6EA7BC',\n '#1666C3',\n '#384C78',\n '#438A5D ',\n '#F5DF76',\n '#DFB621',\n '#CC5F06',\n '#874B4B',\n '#8A2224',\n '#CB2427',\n '#0A73EA',\n '#3190FB',\n '#77B2F5',\n '#8CBC5B',\n '#699953',\n '#C9C709',\n '#B569F7',\n '#D5A1DB',\n '#F0888A',\n '#E7581A',\n '#ECC405',\n '#EEB0B1',\n '#6B5948',\n '#688037',\n '#A2B8AB'\n];\n\nexport const convertDataToPortChart = (dataObj, filterType) => {\n let summary = 0;\n let colors = dataObj.colors && dataObj.colors.lenght > 0 ? dataObj.colors : defaultColors;\n let product = filterTypeList.find(obj => obj.type === filterType);\n let categoryList = [];\n let returnFormatData = { summary: 0, date: '', categoryList: [] }\n\n if (product.type === 'SECTOR_INDICES') {\n let list = product.detailName;\n\n if (dataObj) {\n // Push obj to List\n for (let i = 0; i < list.length; i++) {\n categoryList.push({\n category: dataObj[list[i]+'Name'] ? dataObj[list[i]+'Name'] : '-',\n value: dataObj[list[i]] ? dataObj[list[i]].toFixed(2) : '0',\n });\n }\n\n returnFormatData.date = dataObj[product.dateType];\n }\n } else {\n let data = dataObj[product.key];\n if (data) {\n // Push obj to List\n categoryList = data.map(obj => ({\n category : obj[product.detailName] ? obj[product.detailName] : '-',\n value : obj[product.value] ? obj[product.value].toFixed(2) : '0'\n }));\n\n returnFormatData.date = dataObj[product.dateType];\n }\n\n // // else if (count === 11 && summary != 100) {\n // // productLists.productList.push({\n // // category : 'Others',\n // // value : formatNumber(100 - summary),\n // // color : defaultColors[count],\n // // })\n // // summary = 100;\n // // }\n\n // // else {\n // // break;\n // // }\n }\n\n // Sorting large to small value.\n categoryList.sort((a, b) => b.value - a.value);\n\n // Summary percentage Item list\n summary = categoryList.reduce((prev, cur) => prev + parseFloat(cur.value), 0);\n\n // Insert Color\n categoryList.forEach((obj, index) => obj['color'] = colors[index]);\n\n if (categoryList.length > 0) {\n returnFormatData.summary = summary;\n returnFormatData.categoryList = categoryList;\n } else {\n returnFormatData = {\n summary: 0,\n categoryList: [{ category: 'No Data', value: 100, color: colors[0] }],\n date: ''\n };\n }\n\n return returnFormatData;\n};\n\nexport const refactorData = (data, axisX, axisY) => {\n axisX = axisX ? axisX : 'time';\n axisY = axisY ? axisY : 'value';\n\n let list= [];\n if (data && data.length > 0) {\n data.map((obj, index) => {\n list.push({\n time: obj[axisY],\n value: obj[axisX]\n })\n })\n }\n\n return list;\n}\n\nexport const handleRedirectPage = (e, item, attr= 'id') => {\n if (!item[attr] ) {\n e.preventDefault();\n }\n return;\n}\n\nexport const accountStatus = {\n 'Y': {\n color: 'success',\n status: 'Yes',\n },\n 'N': {\n color: 'danger',\n status: 'No',\n },\n}","export const compareConstants = {\n TOGGLED_COMPARE_MODAL: 'TOGGLED_COMPARE_MODAL',\n\tADD_FUNDIDS_TO_COMPARE_FUNDS: 'ADD_FUNDIDS_TO_COMPARE_FUNDS',\n\tUPDATE_FUNDIDS_TO_COMPARE_FUNDS: 'UPDATE_FUNDIDS_TO_COMPARE_FUNDS',\n\tUPDATE_TEMPORARY_COMPARE_FUNDS: 'UPDATE_TEMPORARY_COMPARE_FUNDS',\n\tREMOVED_TEMPORARY_COMPARE_FUNDS: 'REMOVED_TEMPORARY_COMPARE_FUNDS',\n\tRESET_TEMPORARY_COMPARE_FUNDS: 'RESET_TEMPORARY_COMPARE_FUNDS',\n\n\tFETCH_COMPARE_START: 'FETCH_COMPARE_START',\n\tFETCH_COMPARE_SUCCESS: 'FETCH_COMPARE_SUCCESS',\n\tFETCH_COMPARE_FAILURE: 'FETCH_COMPARE_FAILURE',\n\n\tFETCH_COMPARE_FUNDS_BY_PERIOD_START: 'FETCH_COMPARE_FUNDS_BY_PERIOD_START',\n\tFETCH_COMPARE_FUNDS_BY_PERIOD_SUCCESS: 'FETCH_COMPARE_FUNDS_BY_PERIOD_SUCCESS',\n\tFETCH_COMPARE_FUNDS_BY_PERIOD_FAILURE: 'FETCH_COMPARE_FUNDS_BY_PERIOD_FAILURE',\n\n\tFETCH_GRAPH_COMPARE_FUNDS_START: 'FETCH_GRAPH_COMPARE_FUNDS_START',\n\tFETCH_GRAPH_COMPARE_FUNDS_SUCCESS: 'FETCH_GRAPH_COMPARE_FUNDS_SUCCESS',\n\tFETCH_GRAPH_COMPARE_FUNDS_FAILURE: 'FETCH_GRAPH_COMPARE_FUNDS_FAILURE',\n\n\tFETCH_NAV_COMPARE_FUNDS_START: 'FETCH_NAV_COMPARE_FUNDS_START',\n\tFETCH_NAV_COMPARE_FUNDS_SUCCESS: 'FETCH_NAV_COMPARE_FUNDS_SUCCESS',\n\tFETCH_NAV_COMPARE_FUNDS_FAILURE: 'FETCH_NAV_COMPARE_FUNDS_FAILURE',\n\n\tCLEAR_FUND_COMPARE: 'CLEAR_FUND_COMPARE',\n\n\tTOGGLE_RETURN: 'TOGGLE_RETURN',\n\tTOGGLE_DRAWDOWN: 'TOGGLE_DRAWDOWN',\n\tTOGGLE_PROPORTION: 'TOGGLE_PROPORTION',\n\n\tINSERT_SEARCH_INDEX: 'INSERT_SEARCH_INDEX',\n\t// INSERT_SCROLL_POSITION: 'INSERT_SCROLL_POSITION'\n};\n","import { authenticationConstants } from \"../_constants/authentication.constants\";\n\nexport const toggleSignInModal = () => ({\n type: authenticationConstants.TOGGLED_SIGN_IN_MODAL,\n});\n\nexport const toggleErrorMessageModal = () => ({\n type: authenticationConstants.TOGGLED_ERROR_MESSAGE_MODAL,\n});\n\nexport const refreshToken = () => ({\n type: authenticationConstants.REFRESH_TOKEN,\n});\n\nexport const signInStart = (credential) => ({\n type: authenticationConstants.SIGN_IN_START,\n payload: credential,\n});\n\nexport const verify2FAOpen = (referenceCode) => ({\n type: authenticationConstants.VERIFY_2FA_OPEN,\n payload: referenceCode,\n});\n\nexport const toggle2FAModal = () => ({\n type: authenticationConstants.TOGGLED_2FA_MODAL,\n});\n\nexport const verify2FAStart = (credential) => ({\n type: authenticationConstants.VERIFY_2FA_START,\n payload: credential,\n});\n\nexport const set2FALoading = (isLoading) => ({\n type: \"SET_2FA_LOADING\",\n payload: isLoading,\n});\n\nexport const signInSuccess = (user) => ({\n type: authenticationConstants.SIGN_IN_SUCCESS,\n payload: user,\n});\n\nexport const signInFailure = (errorMessage) => ({\n type: authenticationConstants.SIGN_IN_FAILURE,\n payload: errorMessage,\n});\n\nexport const clearSignInErrorMessage = () => ({\n type: authenticationConstants.CLEAR_SIGN_IN_ERROR_MESSAGE,\n});\n\n// Sign in with credential with window authentication.\nexport const signInCredentialStart = (data) => ({\n type: authenticationConstants.SIGN_IN_CREDENTIAL_START,\n payload: data,\n});\n\nexport const signInDSAStart = (data) => ({\n type: authenticationConstants.SIGN_IN_DSA_START,\n payload: data,\n});\n\nexport const signInSSOStart = (data) => ({\n type: authenticationConstants.SIGN_IN_SSO_START,\n payload: data,\n});\n\nexport const signInSuccessForMobile = (data) => ({\n type: authenticationConstants.SIGN_IN_SUCCESS_FOR_MOBILE,\n payload: data,\n});\n\nexport const updateSignInStatusForMobile = () => ({\n type: authenticationConstants.UPDATE_SIGN_IN_STATUS_FOR_MOBILE,\n});\n\nexport const getAccountListStart = () => ({\n type: authenticationConstants.GET_ACCOUNT_LIST_START,\n});\n\nexport const getAccountListSuccess = (accounts) => ({\n type: authenticationConstants.GET_ACCOUNT_LIST_SUCCESS,\n payload: accounts,\n});\n\nexport const getAccountMKT = (accounts) => ({\n type: authenticationConstants.GET_ACCOUNT_MKT,\n payload: accounts,\n});\n\nexport const updateAccountListMobileSuccess = () => ({\n type: authenticationConstants.UPDATE_ACCOUNT_LIST_MOBILE_SUCCESS,\n});\n\nexport const getAccountListFailure = (errorMessage) => ({\n type: authenticationConstants.GET_ACCOUNT_LIST_FAILURE,\n payload: errorMessage,\n});\n\nexport const getAccountInfoStart = (accountNumber) => ({\n type: authenticationConstants.GET_ACCOUNT_INFO_START,\n payload: accountNumber,\n});\n\nexport const getAccountInfoSuccess = (information) => ({\n type: authenticationConstants.GET_ACCOUNT_INFO_SUCCESS,\n payload: information,\n});\n\nexport const getAccountInfoFailure = (errorMessage) => ({\n type: authenticationConstants.GET_ACCOUNT_INFO_FAILURE,\n payload: errorMessage,\n});\n\nexport const getAccountNameStart = (accountNumber) => ({\n type: authenticationConstants.GET_ACCOUNT_NAME_START,\n payload: accountNumber,\n});\n\nexport const getAccountNameSuccess = (accountName) => ({\n type: authenticationConstants.GET_ACCOUNT_NAME_SUCCESS,\n payload: accountName,\n});\n\nexport const getAccountNameFailure = (errorMessage) => ({\n type: authenticationConstants.GET_ACCOUNT_NAME_FAILURE,\n payload: errorMessage,\n});\n\nexport const signOut = () => ({\n type: authenticationConstants.SIGN_OUT,\n});\n","import { informationConstants } from '../_constants/information.constants';\n\n// InFormation\nexport const fetchFundInfoStart = (data) => ({\n\ttype: informationConstants.FETCH_FUND_INFO_START,\n\tpayload: data\n});\n\nexport const fetchFundInfoSuccess = (data) => ({\n\ttype: informationConstants.FETCH_FUND_INFO_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchFundInfoFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_FUND_INFO_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const clearFundInfo = () => ({\n\ttype: informationConstants.CLEAR_FUND_INFO\n});\n\nexport const updateFundId = (fundCode) => ({\n\ttype: informationConstants.UPDATE_FUND_ID,\n\tpayload: fundCode\n});\n\nexport const updateRecentTab = (tab) => ({\n\ttype: informationConstants.UPDATE_RECENT_TAB,\n\tpayload: tab\n});\n\nexport const fetchTradingInformationStart = (data) => ({\n\ttype: informationConstants.FETCH_TRADING_INFO_START,\n\tpayload: data\n});\n\nexport const fetchTradingInformationSuccess = (data) => ({\n\ttype: informationConstants.FETCH_TRADING_INFO_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchTradingInformationFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_TRADING_INFO_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchPortfolioInformationStart = (fundId) => ({\n\ttype: informationConstants.FETCH_PORTFOLIO_INFO_START,\n\tpayload: fundId\n});\n\nexport const fetchPortfolioInformationSuccess = (data) => ({\n\ttype: informationConstants.FETCH_PORTFOLIO_INFO_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchPortfolioInformationFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_PORTFOLIO_INFO_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchFundAverageRatingStart = (data) => ({\n\ttype: informationConstants.FETCH_FUND_AVERAGE_RATING_START,\n\tpayload: data\n});\n\nexport const fetchFundAverageRatingSuccess = (data) => ({\n\ttype: informationConstants.FETCH_FUND_AVERAGE_RATING_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchFundAverageRatingFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_FUND_AVERAGE_RATING_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const voteFundAverageRating = (data) => ({\n\ttype: informationConstants.VOTE_FUND_AVERAGE_RATING,\n\tpayload: data\n});\n\nexport const fetchCalendarFundStart = (data) => ({\n\ttype: informationConstants.FETCH_CALENDAR_FUND_START,\n\tpayload: data\n});\n\nexport const fetchCalendarFundSuccess = (data) => ({\n\ttype: informationConstants.FETCH_CALENDAR_FUND_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchCalendarFundFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_CALENDAR_FUND_FAILURE,\n\tpayload: errorMessage\n});\n\n// Port Info\nexport const fetchFundPortInfoStart = (fundId) => ({\n\ttype: informationConstants.FETCH_FUND_PORT_INFO_START,\n\tpayload: fundId\n});\n\nexport const fetchFundPortInfoSuccess = (data) => ({\n\ttype: informationConstants.FETCH_FUND_PORT_INFO_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchFundPortInfoFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_FUND_PORT_INFO_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchFundPortChartByChartTypeStart = (fundId) => ({\n\ttype: informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_START,\n\tpayload: fundId\n});\n\nexport const fetchFundPortChartByChartTypeSuccess = (data) => ({\n\ttype: informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchFundPortChartByChartTypeFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_FAILURE,\n\tpayload: errorMessage\n});\n\n// Statistic\nexport const fetchWeeklyFundRankingStart = (data) => ({\n\ttype: informationConstants.FETCH_WEEKLY_FUND_RANKING_START,\n\tpayload: data\n});\n\nexport const fetchWeeklyFundRankingSuccess = (data) => ({\n\ttype: informationConstants.FETCH_WEEKLY_FUND_RANKING_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchWeeklyFundRankingFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_WEEKLY_FUND_RANKING_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchDrawdownByDateStart = (data) => ({\n\ttype: informationConstants.FETCH_DRAWDOWN_BY_DATE_START,\n\tpayload: data\n});\n\nexport const fetchDrawdownByDateSuccess = (data) => ({\n\ttype: informationConstants.FETCH_DRAWDOWN_BY_DATE_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchDrawdownByDateFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_DRAWDOWN_BY_DATE_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchMaximumDrawdownStart = (data) => ({\n\ttype: informationConstants.FETCH_MAXIMUM_DRAWDOWN_START,\n\tpayload: data\n});\n\nexport const fetchMaximumDrawdownSuccess = (data) => ({\n\ttype: informationConstants.FETCH_MAXIMUM_DRAWDOWN_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchMaximumDrawdownFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_MAXIMUM_DRAWDOWN_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchDrawdownNavGraphStart = (data) => ({\n\ttype: informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_START,\n\tpayload: data\n});\n\nexport const fetchDrawdownNavGraphSuccess = (data) => ({\n\ttype: informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchDrawdownNavGraphFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const changeDrawdownStatisticFilters = (data) => ({\n\ttype: informationConstants.CHANGE_DRAWDOWN_STATISTIC_FILTERS,\n\tpayload: data\n});\n\nexport const changeNavGraphDate = (date) => ({\n\ttype: informationConstants.CHANGE_NAV_GRAPH_DATE,\n\tpayload: date\n});\n\nexport const changeSortedDrawdown = (date) => ({\n\ttype: informationConstants.CHANGE_SORTED_DRAWDOWN,\n\tpayload: date\n});\n\nexport const fetchMonthlyReturnStart = (data) => ({\n\ttype: informationConstants.FETCH_MONTHLY_RETURN_START,\n\tpayload: data\n});\n\nexport const fetchMonthlyReturnSuccess = (data) => ({\n\ttype: informationConstants.FETCH_MONTHLY_RETURN_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchMonthlyReturnFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_MONTHLY_RETURN_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchPriceRangeStart = (data) => ({\n\ttype: informationConstants.FETCH_PRICE_RANGE_START,\n\tpayload: data\n});\n\nexport const fetchPriceRangeSuccess = (data) => ({\n\ttype: informationConstants.FETCH_PRICE_RANGE_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchPriceRangeFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_PRICE_RANGE_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchVolatilitiesStart = (data) => ({\n\ttype: informationConstants.FETCH_VOLATILITIES_START,\n\tpayload: data\n});\n\nexport const fetchVolatilitiesSuccess = (data) => ({\n\ttype: informationConstants.FETCH_VOLATILITIES_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchVolatilitiesFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_VOLATILITIES_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchReturnExpenseRatioStart = (data) => ({\n\ttype: informationConstants.FETCH_RETURN_EXPENSE_RATIO_START,\n\tpayload: data\n});\n\nexport const fetchReturnExpenseRatioSuccess = (data) => ({\n\ttype: informationConstants.FETCH_RETURN_EXPENSE_RATIO_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchReturnExpenseRatioFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_RETURN_EXPENSE_RATIO_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchMonthlyProfitStart = (data) => ({\n\ttype: informationConstants.FETCH_MONTHLY_PROFIT_START,\n\tpayload: data\n});\n\nexport const fetchMonthlyProfitSuccess = (data) => ({\n\ttype: informationConstants.FETCH_MONTHLY_PROFIT_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchMonthlyProfitFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_MONTHLY_PROFIT_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchReturnHistoryStart = (data) => ({\n\ttype: informationConstants.FETCH_RETURN_HISTORY_START,\n\tpayload: data\n});\n\nexport const fetchReturnHistorySuccess = (data) => ({\n\ttype: informationConstants.FETCH_RETURN_HISTORY_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchReturnHistoryFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_RETURN_HISTORY_FAILURE,\n\tpayload: errorMessage\n});\n\n// HistoricalNav\nexport const fetchHistoricalNavStart = (data) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_START,\n\tpayload: data\n});\n\nexport const fetchHistoricalNavSuccess = (data) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchHistoricalNavFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_FAILURE,\n\tpayload: errorMessage\n});\n\n// HistoryNav Graph\nexport const fetchHistoricalNavGraphStart = (data) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_GRAPH_START,\n\tpayload: data\n});\n\nexport const fetchHistoricalNavGraphSuccess = (data) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_GRAPH_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchHistoricalNavGraphFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_GRAPH_FAILURE,\n\tpayload: errorMessage\n});\n\n// Dividend\nexport const fetchDividendStart = (data) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_START,\n\tpayload: data\n});\n\nexport const fetchDividendSuccess = (data) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchDividendFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchDividendGroupByYearStart = (fundId) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_START,\n\tpayload: fundId\n});\n\nexport const fetchDividendGroupByYearSuccess = (data) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchDividendGroupByYearFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchDividendDescriptionStart = (fundId) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_DESCRIPTION_START,\n\tpayload: fundId\n});\n\nexport const fetchDividendDescriptionSuccess = (data) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_DESCRIPTION_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchDividendDescriptionFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_DESCRIPTION_FAILURE,\n\tpayload: errorMessage\n});\n\n// Change Active Button\nexport const fetchChangeActiveBtn = (index) => ({\n\ttype: informationConstants.FETCH_CHANGE_ACTIVE_BTN,\n\tpayload: index\n});\n\n// Change Page\nexport const changeHistoricalNavPage = (page) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_CHANGE_PAGE,\n\tpayload: page\n});\n\nexport const changeDividendPage = (page) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_CHANGE_PAGE,\n\tpayload: page\n});\n\n// export const insertScrollPosition = (position) => ({\n// \ttype: informationConstants.INSERT_SCROLL_POSITION,\n// \tpayload: position\n// });","export const searchConstants = {\n FETCH_MAIN_SEARCH_START: 'FETCH_MAIN_SEARCH_START',\n FETCH_MAIN_SEARCH_SUCCESS: 'FETCH_MAIN_SEARCH_SUCCESS',\n FETCH_MAIN_SEARCH_FAILURE: 'FETCH_MAIN_SEARCH_FAILURE',\n CLEAR_MAIN_SEARCH: 'CLEAR_MAIN_SEARCH',\n UPDATE_MAIN_SEARCH: 'UPDATE_MAIN_SEARCH',\n REMOVE_MAIN_SEARCH: 'REMOVE_MAIN_SEARCH',\n\n FETCH_SUBNAV_SEARCH_START: 'FETCH_SUBNAV_SEARCH_START',\n FETCH_SUBNAV_SEARCH_SUCCESS: 'FETCH_SUBNAV_SEARCH_SUCCESS',\n FETCH_SUBNAV_SEARCH_FAILURE: 'FETCH_SUBNAV_SEARCH_FAILURE',\n CLEAR_SUBNAV_SEARCH: 'CLEAR_SUBNAV_SEARCH',\n UPDATE_SUBNAV_SEARCH: 'UPDATE_SUBNAV_SEARCH',\n REMOVE_SUBNAV_SEARCH: 'REMOVE_SUBNAV_SEARCH',\n\n FETCH_SEARCH_FUND_CALENDAR_START: 'FETCH_SEARCH_FUND_CALENDAR_START',\n FETCH_SEARCH_FUND_CALENDAR_SUCCESS: 'FETCH_SEARCH_FUND_CALENDAR_SUCCESS',\n FETCH_SEARCH_FUND_CALENDAR_FAILURE: 'FETCH_SEARCH_FUND_CALENDAR_FAILURE',\n CLEAR_SEARCH_FUND_CALENDAR: 'CLEAR_SEARCH_FUND_CALENDAR',\n UPDATE_SEARCH_FUND_CALENDAR: 'UPDATE_SEARCH_FUND_CALENDAR',\n REMOVE_SEARCH_FUND_CALENDAR: 'REMOVE_SEARCH_FUND_CALENDAR',\n};\n","export const homeConstants = {\n FETCH_BANNERS_START: 'FETCH_BANNERS_START',\n FETCH_BANNERS_SUCCESS: 'FETCH_BANNERS_SUCCESS',\n FETCH_BANNERS_FAILURE: 'FETCH_BANNERS_FAILURE',\n\n FETCH_HIGHLIGHT_FUNDS_START: 'FETCH_HIGHLIGHT_FUNDS_START',\n FETCH_HIGHLIGHT_FUNDS_SUCCESS: 'FETCH_HIGHLIGHT_FUNDS_SUCCESS',\n FETCH_HIGHLIGHT_FUNDS_FAILURE: 'FETCH_HIGHLIGHT_FUNDS_FAILURE',\n\n UPDATE_NAV_FUNDS: 'UPDATE_NAV_FUNDS',\n\n FETCH_NAV_FUNDS_START: 'FETCH_NAV_FUNDS_START',\n FETCH_NAV_FUNDS_SUCCESS: 'FETCH_NAV_FUNDS_SUCCESS',\n FETCH_NAV_FUNDS_FAILURE: 'FETCH_NAV_FUNDS_FAILURE',\n\n FETCH_TOP_SUB_CATEGORIES_START: 'FETCH_TOP_SUB_CATEGORIES_START',\n FETCH_TOP_SUB_CATEGORIES_SUCCESS: 'FETCH_TOP_SUB_CATEGORIES_SUCCESS',\n FETCH_TOP_SUB_CATEGORIES_FAILURE: 'FETCH_TOP_SUB_CATEGORIES_FAILURE',\n\n FETCH_ARTICLES_START: 'FETCH_ARTICLES_START',\n FETCH_ARTICLES_SUCCESS: 'FETCH_ARTICLES_SUCCESS',\n FETCH_ARTICLES_FAILURE: 'FETCH_ARTICLES_FAILURE',\n\n TOGGLE_ARTICLE_MODAL: 'TOGGLE_ARTICLE_MODAL'\n};","export const advanceSearchConstants = {\n UPDATE_ADVANCE_SEARCH_QUERIES: 'UPDATE_ADVANCE_SEARCH_QUERIES',\n UPDATE_DEFAULT_QUERIES_ADVANCE_SEARCH: 'UPDATE_DEFAULT_QUERIES_ADVANCE_SEARCH',\n RESET_QUERIES_ADVANCE_SEARCH: 'RESET_QUERIES_ADVANCE_SEARCH',\n \n FETCH_ADVANCE_SEARCH_FILTERS_START: 'FETCH_ADVANCE_SEARCH_FILTERS_START',\n FETCH_ADVANCE_SEARCH_FILTERS_SUCCESS: 'FETCH_ADVANCE_SEARCH_FILTERS_SUCCESS',\n FETCH_ADVANCE_SEARCH_FILTERS_FAILURE: 'FETCH_ADVANCE_SEARCH_FILTERS_FAILURE',\n\n FETCH_ADVANCE_SEARCH_START: 'FETCH_ADVANCE_SEARCH_START',\n FETCH_ADVANCE_SEARCH_SUCCESS: 'FETCH_ADVANCE_SEARCH_SUCCESS',\n FETCH_ADVANCE_SEARCH_FAILURE: 'FETCH_ADVANCE_SEARCH_FAILURE',\n\n UPDATE_NAV_DATE_ADVANCE_SEARCH: 'UPDATE_NAV_DATE_ADVANCE_SEARCH',\n \n FETCH_NAV_ADVANCE_SEARCH_START: 'FETCH_NAV_ADVANCE_SEARCH_START',\n FETCH_NAV_ADVANCE_SEARCH_SUCCESS: 'FETCH_NAV_ADVANCE_SEARCH_SUCCESS',\n FETCH_NAV_ADVANCE_SEARCH_FAILURE: 'FETCH_NAV_ADVANCE_SEARCH_FAILURE',\n\n UPDATE_CURRENT_PAGE_SEARCH: 'UPDATE_CURRENT_PAGE_SEARCH',\n\n UPDATE_TABLE_COLUMN: 'UPDATE_TABLE_COLUMN'\n};\n","export const monthlyReportConstants = {\n FETCH_MONTHLY_REPORT_START: 'FETCH_MONTHLY_REPORT_START',\n FETCH_MONTHLY_REPORT_SUCCESS: 'FETCH_MONTHLY_REPORT_SUCCESS',\n FETCH_MONTHLY_REPORT_FAILURE: 'FETCH_MONTHLY_REPORT_FAILURE',\n\n FETCH_MONTHLY_REPORT_CHART_START: 'FETCH_MONTHLY_REPORT_CHART_START',\n FETCH_MONTHLY_REPORT_CHART_SUCCESS: 'FETCH_MONTHLY_REPORT_CHART_SUCCESS',\n FETCH_MONTHLY_REPORT_CHART_FAILURE: 'FETCH_MONTHLY_REPORT_CHART_FAILURE',\n\n SET_MONTHLY_REPORT_SHARED_QUERIES: 'SET_MONTHLY_REPORT_SHARED_QUERIES',\n SET_MONTHLY_REPORT_TABLE_QUERIES: 'SET_MONTHLY_REPORT_TABLE_QUERIES',\n CLEAR_MONTHLY_REPORT_TABLE_RESPONSES: 'CLEAR_MONTHLY_REPORT_TABLE_RESPONSES',\n CLEAR_MONTHLY_REPORT_TABLE_QUERIES: 'CLEAR_MONTHLY_REPORT_TABLE_QUERIES',\n\n CLEAR_MONTHLY_REPORT_CHART_QUERIES: 'CLEAR_MONTHLY_REPORT_CHART_QUERIES',\n CLEAR_MONTHLY_REPORT_SHARED_QUERIES: 'CLEAR_MONTHLY_REPORT_SHARED_QUERIES',\n\n CLEAR_MONTHLY_REPORT_QUERIES_START: 'CLEAR_MONTHLY_REPORT_QUERIES_START'\n};\n","import { useHistory } from 'react-router-dom';\n\nexport const setIsFetching = (state, defaultData) => {\n const result = {\n ...state,\n isFetching: true,\n };\n\n if (defaultData !== undefined) {\n result['data'] = defaultData;\n }\n\n return result;\n};\n\nexport const resetResponseDataObject = (state, error) => {\n const result = {\n ...state,\n isFetching: false,\n data: {},\n errorMessage: error\n };\n\n return result;\n};\n\nexport const resetResponseDataArrays = (state, error) => {\n const result = {\n ...state,\n isFetching: false,\n data: [],\n errorMessage: error\n };\n\n return result;\n};\n\nexport const filterResponseData = (state, data) => {\n const result = {\n ...state,\n isFetching: false,\n data: data,\n errorMessage: null\n };\n\n return result;\n};\n\nexport const setErrorResponseData = (state, error) => {\n const result = {\n ...state,\n data: [],\n isFetching: false,\n errorMessage: error\n };\n\n return result;\n};\n\nexport const transformDisplayName = (item, type) => {\n let result = item;\n\n if (item && type) {\n if (type === 'YEAR') {\n result = `พศ. ${item}`\n } else if (type === 'ACCOUNT_TYPE') {\n result = item.toUpperCase() === 'O'\n ? 'OMNIBUS'\n : item.toUpperCase() === 'S'\n ? 'SELLING AGENT'\n : item\n }\n }\n\n return result;\n}\n\nexport const baseSort = (item1, item2, sortType) => {\n\tswitch (sortType) {\n\t\tcase 'a':\n\t\t\tif (item1 < item2) {\n\t\t\t\treturn -1;\n\t\t\t} else if (item2 < item1) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\tcase 'd':\n\t\t\tif (item1 > item2) {\n\t\t\t\treturn -1;\n\t\t\t} else if (item2 > item1) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\tdefault:\n\t\t\treturn 0;\n\t}\n}\n\nexport const groupItemsByAttr = (items, groupBy) => {\n if (!items || !items.length) return {};\n\n return items.reduce((prev, target) => {\n if (!prev.hasOwnProperty(target[groupBy])) {\n prev[target[groupBy]] = [target];\n } else {\n prev[target[groupBy]].push(target);\n }\n return prev;\n }, {});\n}\n\nexport const getScrollPosition = (element) => {\n if (typeof window === `undefined`) return { x: 0, y: 0 };\n\n const target = element ?? document.querySelector('div#root > .cns-wrapper');\n const position = target.getBoundingClientRect();\n\n return { x: target.scrollLeft ?? position.left, y: target.scrollTop ?? position.top };\n}\n\nexport const setScrollPosition = (value, scrollType, element) => {\n if (typeof window !== `undefined`) {\n const target = element ?? document.querySelector('div#root > .cns-wrapper');\n target.scrollTo(scrollType === 'x' ? {left: value, behavior: 'smooth'} : {top: value, behavior: 'smooth'});\n }\n}\n\nexport const switchOrderNumberRegEx = /\\d+[BS]/;\nexport const onlyNumberRegEx = /[^0-9.]/g;\n\nexport const useOpenWebView = () => {\n const history = useHistory()\n return (url) => {\n if(!url) return\n history.push(`/main/web_view?url=${encodeURIComponent(url)}`)\n }\n}","import axios_nomura from './axios-nomura.services';\n\n// Search Fund\nexport const fetchFundSearch = async (body) => {\n return await axios_nomura.post(`api/v1/funds/search`, body);\n};\n\n// Portfolio info\nexport const fetchPortfolioInformation = async (fundId) => {\n\treturn await axios_nomura.get(`/api/v1/funds/${fundId}/portfolio`);\n};\n\n// Fund Info\nexport const fetchFundInfo = async (fundId) => {\n\treturn await axios_nomura.get(`api/v1/funds/${fundId}`);\n};\n\nexport const fetchTradingInformation = async (fundId) => {\n\treturn await axios_nomura.get(`api/v1/funds/${fundId}/trading_information`);\n};\n\nexport const fetchFundAverageRating = async (fundId) => {\n\treturn await axios_nomura.get(`api/v1/funds/${fundId}/average_rating`);\n};\n\nexport const getUserFundVote = async (fundId) => {\n\treturn await axios_nomura.get(`api/v1/funds/${fundId}/vote`);\n};\n\nexport const voteFundAverageRating = async (data) => { //postUserFundVote\n\treturn await axios_nomura.post(`api/v1/funds/${data.fundId}/vote`, { rating: parseInt(data.rating)});\n};\n\n// Port Info\nexport const fetchPortChartByFundIdAndChartType = async (data) => {\n\treturn await axios_nomura.get(`api/v1/funds/${data.fundId}/top_holding`, { params: { holdingType: data.chartType } });\n};\n\nexport const fetchPortByFundId = async (fundId) => {\n\treturn await axios_nomura.get(`/api/v1/funds/${fundId}/portfolio`);\n};\n\n// Statistic\nexport const fetchDrawdownByDate = async (data) => {\n\treturn await axios_nomura.get(`api/v1/statistics/${data.fundId}/drawdowns`, { params: { start: data.startDate ?? '', end: data.endDate ?? '' }});\n};\n\nexport const fetchMaximumDrawdown = async (fundCode) => {\n\treturn await axios_nomura.get(`api/v1/statistics/${fundCode}/max_drawdown`);\n};\n\nexport const fetchMonthlyReturn = async (fundCode) => {\n\treturn await axios_nomura.get(`api/v1/statistics/${fundCode}/monthly_return`);\n};\n\nexport const fetchPriceRange = async (fundCode) => {\n\treturn await axios_nomura.get(`api/v1/statistics/${fundCode}/price_range`);\n};\n\nexport const fetchVolatilities = async (data) => {\n\treturn await axios_nomura.get(`api/v1/statistics/${data.fundId}/volatility`, {params: {start: data.startAt ?? '', end: data.endAt ?? ''}});\n};\n\nexport const fetchReturnExpenseRatio = async (fundCode) => {\n\treturn await axios_nomura.get(`/api/v1/statistics/${fundCode}/expense_ratio`);\n};\n\nexport const fetchMonthlyProfit = async (fundCode) => {\n\treturn await axios_nomura.get(`/api/v1/statistics/${fundCode}/profit`);\n};\n\nexport const fetchReturnHistory = async (fundCode) => {\n\treturn await axios_nomura.get(`/api/v1/statistics/${fundCode}/previous_return`);\n};\n\nexport const fetchWeeklyFundRanking = async (data) => {\n\treturn await axios_nomura.get(`/api/v1/statistics/${data.fundId}/rank?startDate=${data.startDate ?? ''}&endDate=${data.endDate ?? ''}`);\n};\n\n// Graph Info\nexport const fetchHistoricalNav = async (data) => {\n\treturn await axios_nomura.get(`api/v1/nav/${data.fundId}`, { params: { page: data.page, pageSize: data.pageSize , startDate: data.startDate ?? '', endDate: data.endDate ?? '' } });\n};\n\n// Historical Nav\nexport const fetchHistoricalNavGraph = async (data) => {\n\treturn await axios_nomura.get(`api/v1/nav/${data.fundId}/graph`, { params: { startDate: data.startDate ?? '', endDate: data.endDate ?? '', mode: data.mode } });\n};\n\n// Dividend\nexport const fetchDividend = async (data) => {\n\treturn await axios_nomura.get(`api/v1/dividend/${data.fundId}`, { params: { startDate: data.startDate ?? '', endDate: data.endDate ?? '', page: data.page ?? 1 } });\n};\n\nexport const fetchDividendDescription = async (fundId) => {\n\treturn await axios_nomura.get(`api/v1/dividend/${fundId}`);\n};\n\nexport const fetchDividendGroupByYear = async (fundId) => {\n\treturn await axios_nomura.get(`api/v1/dividend/${fundId}/group`);\n};\n\nexport const fetchNavChartByDate = async (data) => {\n\treturn await axios_nomura.get(`api/v1/nav/${data.fundCode}`, { params: { startDate: data.startDate ?? '', endDate: data.endDate ?? '' } });\n};\n","import axios_nomura from \"./axios-nomura.services\";\n\n// Portfolio Page\nexport const fetchPortfolioGroups = async (data) => {\n let convertDataToJson = JSON.stringify(data);\n return await axios_nomura.post(`api/v1/portfolios/groups`, convertDataToJson);\n};\n\nexport const fetchNavPortfolios = async (data) => {\n let convertDataToJson = JSON.stringify(data);\n return await axios_nomura.post(`api/v1/nav/portfolios`, convertDataToJson);\n};\n\n// Portfolio Statistics\nexport const fetchPreviousReturnByAccount = async (accountNumber) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/previous_return`\n );\n};\nexport const fetchPreviousReturnGraphByAccount = async (\n accountNumber,\n data\n) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/previous_return/graph`,\n {\n params: {\n startAt: data.startAt ?? \"\",\n endAt: data.endAt ?? \"\",\n dateType: data.dateType ?? \"\",\n },\n }\n );\n};\nexport const fetchAumGraphByAccount = async (accountNumber, data) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/aum/graph`,\n {\n params: {\n startAt: data.startAt ?? \"\",\n endAt: data.endAt ?? \"\",\n dateType: data.dateType ?? \"\",\n },\n }\n );\n};\nexport const fetchMonthlyReturnByAccount = async (accountNumber) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/monthly_return`\n );\n};\nexport const fetchProfitByAccount = async (accountNumber) => {\n return await axios_nomura.get(`api/v1/portfolios/${accountNumber}/profit`);\n};\nexport const fetchVolatilityByAccount = async (accountNumber) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/volatility`\n );\n};\nexport const fetchMaxDrawdownByAccount = async (accountNumber) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/max_drawdown`\n );\n};\nexport const fetchDrawdownByAccount = async (accountNumber, data) => {\n return await axios_nomura.get(`api/v1/portfolios/${accountNumber}/drawdown`, {\n params: { startAt: data.startAt ?? \"\", endAt: data.endAt ?? \"\" },\n });\n};\nexport const fetchLastDateOfAccountNumber = async (accountNumber) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/latest_data_date`\n );\n};\n\n// Order Page\nexport const fetchOrders = async (data) => {\n return await axios_nomura.get(`api/v1/orders`, { params: data });\n};\n\nexport const uploadOrderDocument = async (orderNumber, data) => {\n let formData = new FormData();\n formData.append(\"file\", data[0]);\n return await axios_nomura.post(\n `api/v1/orders/${orderNumber}/upload`,\n formData,\n {\n headers: { \"Content-Type\": \"multipart/form-data\" },\n }\n );\n};\n\nexport const deleteOrderRequestFund = async (data) => {\n return await axios_nomura.post(`api/v1/orders/${data.accountNumber}/cancel`, {\n number: data.number,\n fundCode: data.fundCode,\n });\n};\n\nexport const getOrderAttachment = async (orderNumber) => {\n return await axios_nomura.get(`api/v1/orders/${orderNumber}/attachment`, {\n responseType: \"blob\",\n });\n};\n\n// Lot Page\nexport const fetchLots = async (data) => {\n return await axios_nomura.get(`api/v1/portfolios/lots`, { params: data });\n};\n\n// Book Page\nexport const fetchBooks = async (data) => {\n // return await axios_nomura.get(`api/v2/portfolios/books`, {params: data});\n return await axios_nomura.post(`api/v1/portfolios/books`, data);\n};\n\n// Histories Page\nexport const fetchHistories = async (data) => {\n return await axios_nomura.get(`api/v1/portfolios/trades`, {\n params: {\n accountNumbers: data.accountNumbers,\n fundCodes: data.fundCodes,\n startedAt: data.startedAt ?? \"\",\n endedAt: data.endedAt ?? \"\",\n sortBy: data.sortBy,\n sortType: data.sortType,\n status: data.status,\n isRemarkExists: data.remark,\n },\n });\n};\n\n// DCAs Page\nexport const fetchDCAs = async (payload) => {\n return await axios_nomura.get(`api/v1/portfolios/dca`, { params: payload });\n};\n\nexport const deleteDCAOrderRequestFund = async (data) => {\n return await axios_nomura.post(\n `api/v1/orders/${data.accountNumber}/cancel_dca`,\n {\n number: data.number,\n fundCode: data.fundCode,\n }\n );\n};\n\n// Dividend Page\nexport const fetchDividends = async (data) => {\n return await axios_nomura.get(`api/v1/portfolios/dividends`, {\n params: {\n accountNumbers: data.accountNumbers,\n startedAt: data.startedAt ?? \"\",\n endedAt: data.endedAt ?? \"\",\n fundIds: data.fundIds,\n sortBy: data.sortBy,\n sortType: data.sortType,\n },\n });\n};\n\n// Get Actived Funds By Accounts\nexport const fetchActivedFunds = async (accountNumbers) => {\n return await axios_nomura.get(`api/v1/portfolios/funds?`, {\n params: { accountNumbers: accountNumbers },\n });\n};\n\n// Get All Funds By Accoutns\nexport const fetchAllFunds = async (accountNumbers) => {\n return await axios_nomura.get(`api/v1/accounts/funds?`, {\n params: { accountNumbers: accountNumbers },\n });\n};\n\n// Get All Fund Codes\nexport const fetchAllFundCodes = async () => {\n return await axios_nomura.get(`api/v1/funds?`);\n};\n","import { fundRankingConstants } from '../_constants/fund-ranking.constants';\n\n// Set Page\nexport const updatePage = (page) => ({\n\ttype: fundRankingConstants.SET_CURRENT_FUND_RANKING_PAGE,\n payload: page\n});\n\nexport const setTotalPage = (page) => ({\n\ttype: fundRankingConstants.SET_TOTAL_RANKING_PAGE,\n payload: page\n});\n\n// Get Rank Fund\nexport const setFundIdRank = (fundId) => ({\n type: fundRankingConstants.SET_FUND_ID_RANK,\n payload: fundId\n});\n\nexport const fetchFundRankStart = (data) => ({\n type: fundRankingConstants.FETCH_FUND_RANK_START,\n payload: data\n});\n\nexport const fetchFundRankSuccess = (data) => ({\n type: fundRankingConstants.FETCH_FUND_RANK_SUCCESS,\n payload: data\n});\n\nexport const fetchFundRankFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_FUND_RANK_FAILURE,\n payload: errorMessage\n});\n\n// Get Search Filters\nexport const fetchRankingSearchFiltersStart = () => ({\n\ttype: fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_START,\n});\n\nexport const fetchRankingSearchFiltersSuccess = (data) => ({\n\ttype: fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_SUCCESS,\n payload: data\n});\n\nexport const fetchRankingSearchFiltersFailure = (errorMessage) => ({\n\ttype: fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_FAILURE,\n payload: errorMessage\n});\n\n// Get Search fund\nexport const fetchRankingsStart = (body) => ({\n type: fundRankingConstants.FETCH_RANKINGS_START,\n payload: body\n});\n\nexport const fetchRankingsSuccess = (rankings) => ({\n type: fundRankingConstants.FETCH_RANKINGS_SUCCESS,\n payload: rankings\n});\n\nexport const fetchRankingsFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_RANKINGS_FAILURE,\n payload: errorMessage\n});\n\n// Highlight Funds\nexport const setHighlightFundPeriod = (period) => ({\n type: fundRankingConstants.SET_HIGHLIGHT_FUND_PERIOD,\n payload: period\n});\n\nexport const fetchHighlightFundStart = (fundCodes) => ({\n type: fundRankingConstants.FETCH_HIGHLIGHT_FUND_START,\n payload: fundCodes\n});\n\nexport const fetchHighlightFundSuccess = (nav) => ({\n type: fundRankingConstants.FETCH_HIGHLIGHT_FUND_SUCCESS,\n payload: nav\n});\n\nexport const fetchHighlightFundFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_HIGHLIGHT_FUND_FAILURE,\n payload: errorMessage\n});\n\n// Nav Ranking\nexport const updateNavDateChart = (dateType) => ({\n\ttype: fundRankingConstants.UPDATE_NAV_DATE_FUND_RANKING,\n\tpayload: dateType\n});\n\nexport const setNavTypeRanking = (navType) => ({\n type: fundRankingConstants.SET_NAV_TYPE_RANKING,\n payload: navType\n})\n\nexport const fetchNavRankingsStart = (fundCodes) => ({\n type: fundRankingConstants.FETCH_NAV_RANKINGS_START,\n payload: fundCodes\n});\n\nexport const fetchNavRankingsSuccess = (nav) => ({\n type: fundRankingConstants.FETCH_NAV_RANKINGS_SUCCESS,\n payload: nav\n});\n\nexport const fetchNavRankingsFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_NAV_RANKINGS_FAILURE,\n payload: errorMessage\n});\n\n// Get Default Categories\nexport const fetchCategoriesStart = () => ({\n type: fundRankingConstants.FETCH_CATEGORIES_START\n});\n\nexport const fetchCategoriesSuccess = (categories) => ({\n type: fundRankingConstants.FETCH_CATEGORIES_SUCCESS,\n payload: categories\n});\n\nexport const fetchCategoriesFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_CATEGORIES_FAILURE,\n payload: errorMessage\n});\n\nexport const updateCategories = (categories) => ({\n type: fundRankingConstants.UPDATE_CATEGORIES,\n payload: categories\n});\n\nexport const appendCategory = (category) => ({\n type: fundRankingConstants.APPEND_CATEGORY,\n payload: category\n});\n\nexport const removeCategory = (category) => ({\n type: fundRankingConstants.REMOVE_CATEGORY,\n payload: category\n});\n\n// Get User Categories\nexport const fetchUserCategoriesStart = () => ({\n type: fundRankingConstants.FETCH_USER_CATEGORIES_START\n});\n\nexport const fetchUserCategoriesSuccess = (userCategories) => ({\n type: fundRankingConstants.FETCH_USER_CATEGORIES_SUCCESS,\n payload: userCategories\n});\n\nexport const fetchUserCategoriesFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_USER_CATEGORIES_FAILURE,\n payload: errorMessage\n});\n\nexport const resetUserCategories = () => ({\n type: fundRankingConstants.RESET_USER_CATEGORIES,\n});\n\nexport const updateUserCategories = (payload) => ({\n type: fundRankingConstants.UPDATE_USER_CATEGORIES,\n payload\n});\n\nexport const fetchRankStart = (fundId) => ({\n type: fundRankingConstants.FETCH_RANK_START,\n payload: fundId\n});\n\nexport const fetchRankSuccess = (data) => ({\n type: fundRankingConstants.FETCH_RANK_SUCCESS,\n payload: data\n});\n\nexport const fetchRankFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_RANK_FAILURE,\n payload: errorMessage\n});\n\nexport const saveUserCategoriesStart = (data) => ({\n type: fundRankingConstants.SAVE_USER_CATEGORIES_START,\n payload: data\n});\n\nexport const saveUserCategoriesSuccess = () => ({\n type: fundRankingConstants.SAVE_USER_CATEGORIES_SUCCESS\n});\n\nexport const saveUserCategoriesFailure = () => ({\n type: fundRankingConstants.SAVE_USER_CATEGORIES_FAILURE\n});\n\n// Set Queries\nexport const updateFundRankingQueries = (data) => ({\n type: fundRankingConstants.UPDATE_FUND_RANKING_QUERIES,\n payload: data\n});\n\nexport const resetFundRankingQueries = () => ({\n\ttype: fundRankingConstants.RESET_FUND_RANKING_QUERIES\n});\n\nexport const setDefaultFundRankingQueries = (data) => ({\n\ttype: fundRankingConstants.SET_DEFAULT_FUND_RANKING_QUERIES,\n payload: data\n});\n\nexport const updateTableColumns = (columns) => ({\n\ttype: fundRankingConstants.UPDATE_FUND_RANKING_TABLE_COLUMNS,\n\tpayload: columns\n});","export const calendarConstants = {\n // Search calendar by year\n FETCH_CALENDAR_BY_YEAR_START: 'FETCH_CALENDAR_BY_YEAR_START',\n FETCH_CALENDAR_BY_YEAR_SUCCESS: 'FETCH_CALENDAR_BY_YEAR_SUCCESS',\n FETCH_CALENDAR_BY_YEAR_FAILURE: 'FETCH_CALENDAR_BY_YEAR_FAILURE',\n UPDATE_CALENDAR_YEAR: 'UPDATE_CALENDAR_YEAR',\n UPDATE_USER_FUND_CALENDAR: 'UPDATE_USER_FUND_CALENDAR',\n\n // Search fund calendar by date\n FETCH_CALENDAR_BY_DATE_START: 'FETCH_CALENDAR_BY_DATE_START',\n FETCH_CALENDAR_BY_DATE_SUCCESS: 'FETCH_CALENDAR_BY_DATE_SUCCESS',\n FETCH_CALENDAR_BY_DATE_FAILURE: 'FETCH_CALENDAR_BY_DATE_FAILURE',\n UPDATE_USER_CALENDAR_DATE: 'UPDATE_USER_CALENDAR_DATE'\n};\n","import { add, sub } from \"date-fns\";\n\n// Function cookies handler.\nexport const getCookie = (name) => {\n let cookie = {};\n document.cookie.split(';').forEach(function(el) {\n let [k,v] = el.split('=');\n cookie[k.trim()] = v;\n })\n return cookie[name];\n};\n\nexport function clearCookies(names) {\n if (names?.length > 0) {\n for(let name of names) {\n setCookie(name, '', { 'max-age': -1 })\n }\n } else {\n setCookie(names, '', { 'max-age': -1 })\n }\n\n return;\n}\n\nexport function setCookie(name, value, options = {}) {\n options = {\n path: '/',\n // add other defaults here if necessary\n ...options\n };\n\n if (options.expires instanceof Date) {\n options.expires = options.expires.toUTCString();\n }\n\n let updatedCookie = encodeURIComponent(name) + \"=\" + encodeURIComponent(value);\n\n for (let optionKey in options) {\n updatedCookie += \"; \" + optionKey;\n let optionValue = options[optionKey];\n if (optionValue !== true) {\n updatedCookie += \"=\" + optionValue;\n }\n }\n\n document.cookie = updatedCookie;\n return;\n}\n\n","export const rankingFetching = (ranking) => {\n const result = {\n ...ranking,\n isFetching: true,\n };\n return result;\n};\n\nexport const rankingData = (ranking, data) => {\n const result = {\n ...ranking,\n rankings: data,\n isFetching: false,\n };\n return result;\n};\n\nexport const rankingError = (ranking, error) => {\n const result = {\n ...ranking,\n errorMessage: error,\n isFetching: false,\n };\n return result;\n};\n\nexport const categoryFetching = (category) => {\n const result = {\n ...category,\n isFetching: true,\n };\n return result;\n};\n\nexport const categoryData = (category, data) => {\n const result = {\n ...category,\n categories: data,\n isFetching: false,\n };\n return result;\n};\n\nexport const categoryError = (category, error) => {\n const result = {\n ...category,\n errorMessage: error,\n isFetching: false,\n };\n return result;\n};\n\nexport const appendCategory = (category, categories) => {\n let tempList = categories.filter(\n (item) => item.categoryCode !== category.categoryCode\n );\n tempList.push(category);\n return tempList;\n};\n\nexport const removeCategory = (category, categories) => {\n let tempList = categories.filter(\n (item) => item.categoryCode !== category.categoryCode\n );\n return tempList;\n};\n\nexport const userCategoryFetching = (userCategory) => {\n const result = {\n ...userCategory,\n isFetching: true,\n };\n return result;\n};\n\nexport const userCategoryData = (userCategory, data) => {\n const result = {\n ...userCategory,\n userCategories: data,\n isFetching: false,\n };\n return result;\n};\n\nexport const userCategoryError = (userCategory, error) => {\n const result = {\n ...userCategory,\n userCategories: [],\n errorMessage: error,\n isFetching: false,\n };\n return result;\n};\n\nexport const queryData = (query, data) => {\n const result = {\n ...query,\n data,\n };\n return result;\n};\n\nexport const saveUserCategories = (categories) => {\n const result = categories.map((element, idx) => ({\n categoryCode: element.categoryCode,\n subCategory: element.subCategory,\n sequence: parseInt(idx + 1),\n color: element.color,\n }));\n\n return result;\n};\n\nexport const pullUserCategories = (data, main) => {\n let categories = [];\n main.forEach((element) => {\n categories.push.apply(categories, element.category);\n });\n\n const result = data.map((element, idx) => {\n const category = categories.filter(\n (item) => item.categoryCode === element.categoryCode\n )[0];\n return {\n subCategory: category.subCategory,\n categoryCode: category.categoryCode,\n sequence: idx + 1,\n color: element.color,\n };\n });\n return result;\n};\n\n// export const checkExistedCategory = (categoryCode, main) => {\n// let categories = [];\n// main.categoryList.forEach((element) => {\n// categories.push.apply(categories, element.category);\n// });\n// main.customCategoryList.forEach((element) => {\n// categories.push({\n// subCategory: element.customCategoryName,\n// categoryCode: element.customCategoryCode\n// });\n// });\n// if (categories.some((j) => j.categoryCode === categoryCode)) {\n// return true;\n// } else {\n// return false;\n// }\n// };\n\nexport const checkExistedCategory = (categoryCode, userCategories) => {\n if (userCategories.some((j) => j.categoryCode === categoryCode)) {\n let selectedCategory = userCategories.find(\n (j) => j.categoryCode === categoryCode\n );\n return selectedCategory.sequence;\n } else {\n return false;\n }\n};\n\n// Retunr Sequence and boolean\n// export const checkedCategory = (categoryCode, userCategories) => {\n// let fund = userCategories.filter((j) => j.categoryCode === categoryCode);\n// if (fund.length > 0) {\n// return {\n// value: true,\n// sequences: fund[0].sequences\n// };\n// } else {\n// return false;\n// }\n// };\n\nexport const saveFavCategories = (userCategories) => {\n return userCategories.map((item) => {\n return {\n categoryCode: item.categoryCode,\n subCategory: item.subCategory,\n sequence: item.sequence,\n color: item.color,\n };\n });\n};\n\nexport const setIsFetching = (state) => {\n const result = {\n ...state,\n isFetching: true,\n };\n return result;\n};\n\nexport const filterDataResult = (state, data) => {\n const result = {\n ...state,\n isFetching: false,\n data: data ?? {},\n errorMessage: null,\n };\n return result;\n};\n\nexport const resetDataResult = (state, message) => {\n const result = {\n ...state,\n isFetching: false,\n data: [],\n errorMessage: message,\n };\n return result;\n};\n\nexport const resetDataResultToObject = (state, message) => {\n const result = {\n ...state,\n isFetching: false,\n data: {},\n errorMessage: message,\n };\n return result;\n};\n\nexport const setDefaultQueriesFundRanking = (state, data) => {\n const result = {\n ...state,\n categoryCode: state.categoryCode.length > 0 ? state.categoryCode : [],\n dividendPolicy: data.dividendPolicy[0].code,\n fundTypes:\n state.fundTypes.length > 0\n ? state.fundTypes\n : data.fundTypes.map((item) => item.code),\n investorRatings: data.investorRatings.map((item) => item.code),\n purchaseFee: data.purchaseFee[0].code,\n currencyPolicy: data.currencyPolicy[0].code,\n riskLevels: data.riskLevels.map((item) => item.code),\n morningStarRatings: data.morningStarRatings.map((item) => item.code),\n company: data.company.map((item) => item.id),\n };\n return result;\n};\n","export const ipoConstants = {\n FETCH_IPOS_START: 'FETCH_IPOS_START',\n FETCH_IPOS_SUCCESS: 'FETCH_IPOS_SUCCESS',\n FETCH_IPOS_FAILURE: 'FETCH_IPOS_FAILURE',\n\n TOGGLE_DETAIL_MODAL: 'TOGGLE_DETAIL_MODAL',\n SET_CURRENT_DETAIL_MODAL: 'SET_CURRENT_DETAIL_MODAL',\n\n UPDATE_IPO_QUERIES: 'UPDATE_IPO_QUERIES'\n};\n","import { orderRequestConstants } from '../_constants/order-request.constants';\n\n// Toggled Buy-Sell Modals Action.\nexport const toggleOrderRequestModal = () => ({\n type: orderRequestConstants.TOGGLED_ORDER_FUNDS_REQUEST_MODAL\n});\nexport const clearErrorMessage = () => ({\n type: orderRequestConstants.CLEAR_ERROR_MESSAGE\n});\n\n// Updated Active Tab (buy, sell, switch).\nexport const updateActiveTabOrderRequestModal = (tab) => ({\n type: orderRequestConstants.UPDATE_ACTIVE_TAB_ORDER_FUNDS_REQUEST_MODAL,\n payload: tab\n});\n\n// Updated Fund Id to order request.\nexport const updateNavigationFundToOrderRequestModal = (fund) => ({\n type: orderRequestConstants.UPDATE_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL,\n payload: fund\n});\nexport const clearNavigationFundToOrderRequestModal = () => ({\n type: orderRequestConstants.CLEAR_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL,\n});\n\n// Get Fund Information (Buy, Sell, Switch-Out).\nexport const fetchBuyFundInfoStart = (data) => ({\n type: orderRequestConstants.FETCH_BUY_FUND_INFO_START,\n payload: data\n});\nexport const fetchSellFundInfoStart = (data) => ({\n type: orderRequestConstants.FETCH_SELL_FUND_INFO_START,\n payload: data\n});\nexport const updateFundInfo = (data) => ({\n type: orderRequestConstants.UPDATE_FUND_INFO,\n payload: data\n});\nexport const clearFundInfo = () => ({\n type: orderRequestConstants.CLEAR_FUND_INFO\n});\n\n// Fund Information 2 (Switch-In).\nexport const fetchSwitchFundInfoStart = (data) => ({\n type: orderRequestConstants.FETCH_SWITCH_FUND_INFO_START,\n payload: data\n});\nexport const updateFundInfo2 = (data) => ({\n type: orderRequestConstants.UPDATE_FUNDS_INFO_2,\n payload: data\n});\nexport const clearSearchFundInfo2 = () => ({\n type: orderRequestConstants.CLEAR_FUND_INFO_2\n});\n\n// Checked Fund able to order. (Buy, Switch).\nexport const clearCheckedFundAble = () => ({\n type: orderRequestConstants.CLEAR_CHECKED_FUND_ABLE\n});\nexport const checkedBuyableFundStart = (data) => ({\n type: orderRequestConstants.CHECKED_BUYABLE_FUND_START,\n payload: data\n});\nexport const checkedSellableFundStart = (data) => ({\n type: orderRequestConstants.CHECKED_SELLABLE_FUND_START,\n payload: data\n});\nexport const checkedSwitchableFundStart = (data) => ({\n type: orderRequestConstants.CHECKED_SWITCHABLE_FUND_START,\n payload: data\n});\nexport const checkedFundAbleToOrderSuccess = (data) => ({\n type: orderRequestConstants.CHECKED_FUND_ABLE_TO_ORDER_SUCCESS,\n payload: data\n});\nexport const checkedFundAbleToOrderFailure = (errorMessage) => ({\n type: orderRequestConstants.CHECKED_FUND_ABLE_TO_ORDER_FAILURE,\n payload: errorMessage\n});\n\n// Confirmed Order Fund.\nexport const confirmOrderFundStart = (data) => ({\n type: orderRequestConstants.CONFIRM_ORDER_FUND_START,\n payload: data\n});\nexport const confirmOrderFundSuccess = (data) => ({\n type: orderRequestConstants.CONFIRM_ORDER_FUND_SUCCESS,\n payload: data\n});\nexport const confirmOrderFundFailure = (data) => ({\n type: orderRequestConstants.CONFIRM_ORDER_FUND_FAILURE,\n payload: data\n});\nexport const resetConfirmOrderFund = () => ({\n type: orderRequestConstants.RESET_CONFIRM_ORDER_FUND\n});\n\n// SEARCH FUND INFORMATION\nexport const clearSearchFundInfo = () => ({\n type: orderRequestConstants.CLEAR_SEARCH_FUNDS_INFO\n});\nexport const updateSearchFundInfo = (searchText) => ({\n type: orderRequestConstants.UPDATE_SEARCH_FUNDS_INFO,\n payload: searchText\n});\nexport const removeSearchFundInfo = () => ({\n type: orderRequestConstants.REMOVE_SEARCH_FUNDS_INFO\n});\n\n// PORTIFOLIOS SEARCH\nexport const updateSearchPortfolios = (searchText) => ({\n type: orderRequestConstants.UPDATE_SEARCH_PORTFOLIOS,\n payload: searchText\n});\nexport const toggleModalMessage = () => ({\n type: orderRequestConstants.TOGGLE_MODAL_MESSAGE\n});\n\n// FORM\nexport const updateLatestPlan = (data) => ({\n type: orderRequestConstants.UPDATE_LATEST_PLAN,\n payload: data\n});\nexport const clearLatestPlan = () => ({\n type: orderRequestConstants.CLEAR_LATEST_PLAN\n});\nexport const updateLatestSettleDate = (data) => {\n console.log(data);\n return {\n type: orderRequestConstants.UPDATE_LATEST_SETTLE_DATE,\n payload: data\n}};","import { favoriteConstants } from '../_constants';\n\n// Favorite Funds\nexport const updateFavoriteQueries = (queries) => ({\n type: favoriteConstants.UPDATE_FAVORITE_FUNDS_QUERIES,\n payload: queries\n});\n\nexport const updateFavoriteTableColumns = (columns) => ({\n type: favoriteConstants.UPDATE_FAVORITE_FUNDS_TABLE_COLUMNS,\n payload: columns\n});\n\nexport const updateLocalFavoriteFunds = (data) => ({\n type: favoriteConstants.UPDATE_LOCAL_FAVORITE_FUNDS,\n payload: data\n});\n\nexport const addFavoriteFund = (data) => ({\n type: favoriteConstants.ADD_FAVORITE_FUND,\n payload: data\n});\n\nexport const deleteFavoriteFund = (data) => ({\n type: favoriteConstants.DELETE_FAVORITE_FUND,\n payload: data\n});\n\nexport const putFavoriteFunds = (data) => ({\n type: favoriteConstants.PUT_FAVORITE_FUNDS,\n payload: data\n});\n\nexport const fetchFavoriteFundsByAccountStart = () => ({\n type: favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_START\n});\n\nexport const fetchFavoriteFundsByAccountSuccess = (funds) => ({\n type: favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS,\n payload: funds\n});\n\nexport const fetchFavoriteFundsByAccountFailure = (errorMessage) => ({\n type: favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE,\n payload: errorMessage\n});\n\nexport const fetchNavFavoriteFundsByAccountStart = (data) => ({\n type: favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_START,\n payload: data\n});\n\nexport const fetchNavFavoriteFundsByAccountSuccess = (data) => ({\n type: favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS,\n payload: data\n});\n\nexport const fetchNavFavoriteFundsByAccountFailure = (errorMessage) => ({\n type: favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE,\n payload: errorMessage\n});\n\n// Favorite Copyport\nexport const fetchFavoriteCopyportStart = () => ({\n type: favoriteConstants.FETCH_FAVORITE_COPYPORT_START\n});\n\nexport const fetchFavoriteCopyportSuccess = (copyportList) => ({\n type: favoriteConstants.FETCH_FAVORITE_COPYPORT_SUCCESS,\n payload: copyportList\n});\n\nexport const fetchFavoriteCopyportFailure = (errorMessage) => ({\n type: favoriteConstants.FETCH_FAVORITE_COPYPORT_FAILURE,\n payload: errorMessage\n});\n","export const hotfundConstants = {\n FETCH_HOTFUND_START: 'FETCH_HOTFUND_START',\n FETCH_HOTFUND_SUCCESS: 'FETCH_HOTFUND_SUCCESS',\n FETCH_HOTFUND_FAILURE: 'FETCH_HOTFUND_FAILURE',\n\n UPDATE_HOTFUND_QUERIES: 'UPDATE_HOTFUND_QUERIES',\n UPDATE_HOTFUND_TABLE_COLUMNS: 'UPDATE_HOTFUND_TABLE_COLUMNS',\n};\n","import axios_nomura from './axios-nomura.services';\nimport axios_mock from './axios-mock.services';\n\n// Fetch Buy, Sell, Switch Fund Information\nexport const fetchSearchBuyableFunds = async (payload) => {\n return await axios_nomura.get(`/api/v1/search/buyable_funds`, { params: payload });\n};\n\nexport const fetchBuyFundInfo = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/buy_information`, data);\n};\n\nexport const fetchBuyableFund = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/buy/check`, data);\n};\n\nexport const fetchSellableFund = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/sell/check`, data);\n};\n\nexport const fetchSwitchableOutFunds = async (data) => {\n return await axios_nomura.get(`/api/v1/search/switchable_funds`, { params: data});\n};\n\nexport const fetchSwitchableFunds = async (data) => {\n return await axios_nomura.get(`/api/v1/orders/${data.accountNumber}/switchable_funds`, {\n params: {\n fundCode: data.fundCode,\n fundId: data.fundId,\n accountType: data.accountType,\n isDCA: data.isDCA\n }\n });\n};\n\nexport const fetchCheckedSwitchableFund = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/switch/check`, data);\n};\n\nexport const fetchSellFundInfo = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/sell_information`, data);\n};\n\nexport const fetchSwitchFundInfo = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/switch_information`, data);\n};\n\nexport const fetchChannelByAccount = async (data) => {\n return await axios_nomura.get(`/api/v1/orders/payments/channels`, { params: data });\n};\n\nexport const fetchSendQuestionBackToConfirm = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/buy`, data);\n};\n\nexport const fetchConfirmSellFund = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/sell`, data);\n};\n\nexport const fetchConfirmSwitchFund = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/switch`, data);\n};\n\nexport const fetchGetReceivingDate = async (data) => {\n return await axios_nomura.get(`/api/v1/orders/sell/receiving_date`, { params: data });\n};\n","import axios_nomura from './axios-nomura.services';\n\nexport const fetchAdvanceSearchFilters = async () => {\n return await axios_nomura.get(`api/v1/search/filters`);\n};\n\nexport const fetchNavForAdvanceSearch = async (data) => {\n let convertDataToJson = JSON.stringify(data);\n return await axios_nomura.post(`api/v1/nav/ByFundIdAndType`, convertDataToJson);\n};","import { homeConstants } from '../_constants/home.constants';\n\nexport const fetchBannersStart = () => ({\n type: homeConstants.FETCH_BANNERS_START,\n});\n\nexport const fetchBannersSuccess = (data) => ({\n type: homeConstants.FETCH_BANNERS_SUCCESS,\n payload: data\n});\n\nexport const fetchBannersFailure = (errorMessage) => ({\n type: homeConstants.FETCH_BANNERS_FAILURE,\n payload: errorMessage\n});\n\nexport const fetchHighlightFundsStart = (period) => ({\n type: homeConstants.FETCH_HIGHLIGHT_FUNDS_START,\n payload: period\n});\n\nexport const fetchHighlightFundsSuccess = (data) => ({\n type: homeConstants.FETCH_HIGHLIGHT_FUNDS_SUCCESS,\n payload: data\n});\n\nexport const fetchHighlightFundsFailure = (errorMessage) => ({\n type: homeConstants.FETCH_HIGHLIGHT_FUNDS_FAILURE,\n payload: errorMessage\n});\n\nexport const updateNavFunds = (data) => ({\n type: homeConstants.UPDATE_NAV_FUNDS,\n payload: data\n});\n\nexport const fetchNavFundsStart = (data) => ({\n type: homeConstants.FETCH_NAV_FUNDS_START,\n payload: data\n});\n\nexport const fetchNavFundsSuccess = (data) => ({\n type: homeConstants.FETCH_NAV_FUNDS_SUCCESS,\n payload: data\n});\n\nexport const fetchNavFundsFailure = (errorMessage) => ({\n type: homeConstants.FETCH_NAV_FUNDS_FAILURE,\n payload: errorMessage\n});\n\nexport const fetchTopSubCategoriesStart = () => ({\n type: homeConstants.FETCH_TOP_SUB_CATEGORIES_START,\n});\n\nexport const fetchTopSubCategoriesSuccess = (data) => ({\n type: homeConstants.FETCH_TOP_SUB_CATEGORIES_SUCCESS,\n payload: data\n});\n\nexport const fetchTopSubCategoriesFailure = (errorMessage) => ({\n type: homeConstants.FETCH_TOP_SUB_CATEGORIES_FAILURE,\n payload: errorMessage\n});\n\nexport const fetchArticlesStart = () => ({\n type: homeConstants.FETCH_ARTICLES_START,\n});\n\nexport const fetchArticlesSuccess = (data) => ({\n type: homeConstants.FETCH_ARTICLES_SUCCESS,\n payload: data\n});\n\nexport const fetchArticlesFailure = (errorMessage) => ({\n type: homeConstants.FETCH_ARTICLES_FAILURE,\n payload: errorMessage\n});\n\nexport const toggleArticleModal = (data) => ({\n type: homeConstants.TOGGLE_ARTICLE_MODAL,\n payload: data\n});","import { CheckedIcon } from \"../_components/icons/icons\";\n\nexport const setIsFetching = (state) => {\n return {\n ...state,\n isFetching: true\n }\n};\n\nexport const filterCalendarResults = (state, data) => {\n let result = [];\n for(let i = 1; i <= 12; i++) {\n let checked = data.length > 0 ? data.find(obj => obj.month === i): false;\n if (checked) {\n result.push({\n month: i,\n events: checked.events ? checked.events : checked.dates\n })\n } else {\n result.push({\n month: i,\n events: []\n })\n }\n }\n\n return {\n ...state,\n isFetching: false,\n data: result\n };\n};\n\nexport const resetCalendarResults = (state, data) => {\n return {\n ...state,\n isFetching: false,\n data: [],\n errorMessage: data\n };\n};\n\nexport const filterUserFund = (data) => {\n let result = null;\n \n if (data) {\n result = {\n fundId: data.fundId,\n fundCode: data.fundCode? data.fundCode: data.thailandFundCode,\n categoryCode: data.categoryCode,\n color: data.color\n }\n }\n\n return result;\n};\n\nexport const generateArrayOfYears = () => {\n let max = new Date().getFullYear()\n let min = max - 9\n let years = []\n\n for (let i = max; i >= min; i--) {\n years.push(i)\n }\n return years\n}\n\nexport const filterCalendarByDate = (state, data) => {\n let result = {\n ...state,\n isFetching: false,\n data: data.length > 0 ? data[0].events : []\n };\n\n return result;\n}","import { compareConstants } from '../_constants/compare.constants';\n\nexport const addFundIdsToCompareFunds = (fund) => ({\n\ttype: compareConstants.ADD_FUNDIDS_TO_COMPARE_FUNDS,\n\tpayload: fund\n});\n\nexport const updateFundIdsToCompareFunds = (fund) => ({\n\ttype: compareConstants.UPDATE_FUNDIDS_TO_COMPARE_FUNDS,\n\tpayload: fund\n});\n\nexport const updateTemporaryCompareFunds = (fund) => ({\n\ttype: compareConstants.UPDATE_TEMPORARY_COMPARE_FUNDS,\n\tpayload: fund\n});\n\nexport const removedTemporaryCompareFunds = (fund) => ({\n\ttype: compareConstants.REMOVED_TEMPORARY_COMPARE_FUNDS,\n\tpayload: fund\n});\n\nexport const resetTemporaryCompareFunds = () => ({\n\ttype: compareConstants.RESET_TEMPORARY_COMPARE_FUNDS,\n});\n\n\nexport const fetchCompareFundsStart = (fundId) => ({\n\ttype: compareConstants.FETCH_COMPARE_START,\n\tpayload: fundId\n});\n\nexport const fetchCompareFundsSuccess = (compareFunds) => ({\n\ttype: compareConstants.FETCH_COMPARE_SUCCESS,\n\tpayload: compareFunds\n});\n\nexport const fetchCompareFundsFailure = (errorMessage) => ({\n\ttype: compareConstants.FETCH_COMPARE_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchCompareFundsByPeriodStart = (data) => ({\n\ttype: compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_START,\n\tpayload: data\n});\n\nexport const fetchCompareFundsByPeriodSuccess = (compareFunds) => ({\n\ttype: compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_SUCCESS,\n\tpayload: compareFunds\n});\n\nexport const fetchCompareFundsByPeriodFailure = (errorMessage) => ({\n\ttype: compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchGraphCompareFundsStart = (data) => ({\n\ttype: compareConstants.FETCH_GRAPH_COMPARE_FUNDS_START,\n\tpayload: data\n});\n\nexport const fetchGraphCompareFundsSuccess = (compareFunds) => ({\n\ttype: compareConstants.FETCH_GRAPH_COMPARE_FUNDS_SUCCESS,\n\tpayload: compareFunds\n});\n\nexport const fetchGraphCompareFundsFailure = (errorMessage) => ({\n\ttype: compareConstants.FETCH_GRAPH_COMPARE_FUNDS_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchNavCompareFundsStart = (data) => ({\n\ttype: compareConstants.FETCH_NAV_COMPARE_FUNDS_START,\n\tpayload: data\n});\n\nexport const fetchNavCompareFundsSuccess = (data) => ({\n\ttype: compareConstants.FETCH_NAV_COMPARE_FUNDS_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchNavCompareFundsFailure = (errorMessage) => ({\n\ttype: compareConstants.FETCH_NAV_COMPARE_FUNDS_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const toggleCompareModal = () => ({\n\ttype: compareConstants.TOGGLED_COMPARE_MODAL\n});\n\nexport const toggleReturn = () => ({\n\ttype: compareConstants.TOGGLE_RETURN\n});\n\nexport const toggleDrawdown = () => ({\n\ttype: compareConstants.TOGGLE_DRAWDOWN\n});\n\nexport const toggleProportion = () => ({\n\ttype: compareConstants.TOGGLE_PROPORTION\n});\n\nexport const clearCompareFund = () => ({\n\ttype: compareConstants.CLEAR_FUND_COMPARE\n});\n\nexport const insertSearchIndex = (idx) => ({\n\ttype: compareConstants.INSERT_SEARCH_INDEX,\n\tpayload: idx\n});\n\n// export const insertScrollPosition = (position) => ({\n// \ttype: compareConstants.INSERT_SCROLL_POSITION,\n// \tpayload: position\n// });\n","import { mainConstants } from '../_constants';\n\nconst initialState = {\n isOpenSideBar: true,\n routes: null,\n isFetching: false,\n errorMessage: undefined,\n currentPage: 1,\n isPaging: false,\n pages: undefined,\n isMobileScreenSize: false,\n errorModal: null\n};\n\nconst mainReducer = (state = initialState, action) => {\n switch (action.type) {\n case mainConstants.TOGGLE_SCREEN_SIZE:\n return {\n ...state,\n isMobileScreenSize: !state.isMobileScreenSize\n };\n case mainConstants.TOGGLE_SIDE_BAR:\n return {\n ...state,\n isOpenSideBar: !state.isOpenSideBar\n };\n case mainConstants.TOGGLE_ACTIVE_PAGE:\n return {\n ...state,\n currentPage: action.payload\n };\n case mainConstants.INSERT_ROUTES:\n return {\n ...state,\n routes: action.payload\n };\n case mainConstants.FETCH_ROUTES_START:\n return {\n ...state,\n isFetching: true\n };\n case mainConstants.FETCH_ROUTES_SUCCESS:\n return {\n ...state,\n isFetching: false,\n routes: action.payload\n };\n case mainConstants.FETCH_ROUTES_FAILURE:\n return {\n ...state,\n isFetching: false,\n errorMessage: action.payload\n };\n case mainConstants.ENABLE_PAGING:\n return {\n ...state,\n isPaging: true\n };\n case mainConstants.DISABLE_PAGING:\n return {\n ...state,\n isPaging: false,\n pages: null\n };\n case mainConstants.INSERT_PAGES:\n return {\n ...state,\n pages: action.payload\n };\n case mainConstants.UPDATE_ERROR_MODAL:\n return {\n ...state,\n errorModal: action.payload\n };\n case mainConstants.CLEAR_ERROR_MODAL:\n return {\n ...state,\n errorModal: null\n };\n default:\n return state;\n }\n};\n\nexport default mainReducer;\n","export const clearSearch = (data) => {\n const information = ['fundInformation', 'copyPortInformation', 'modelPortInformation', 'articleInformation'];\n return Object.keys(data).reduce((object, key) => {\n const check = information.includes(key);\n if (check) {\n object[key] = [];\n } else {\n object[key] = data[key];\n }\n return object;\n }, {});\n};\n\nexport const cleanSearch = (data) => {\n const information = ['fundInformation', 'copyPortInformation', 'modelPortInformation', 'articleInformation'];\n return Object.keys(data).reduce((object, key) => {\n const check = information.includes(key);\n if (check && data[key] != null) {\n object[key] = data[key];\n } else if (check && data[key] == null) {\n object[key] = [];\n } else {\n object[key] = data[key];\n }\n return object;\n }, {});\n};\n\nexport const setIsFetching = (state) => {\n return {\n ...state,\n isFetching: true\n }\n};\n\nexport const resetSearchResults = (state, data) => {\n return {\n ...state,\n isFetching: false,\n searchList: clearSearch(data)\n }\n};\n\nexport const resetSearchText = (state) => {\n return {\n ...state,\n searchText: null\n }\n};\n\nexport const filterSearchResults = (state, data) => {\n return {\n ...state,\n isFetching: false,\n searchList: cleanSearch(data)\n }\n};\n\nexport const clearSearchResults = (state) => {\n return {\n ...state,\n searchList: clearSearch(state.searchList)\n }\n};\n\nexport const updateSearchText = (state, data) => {\n return {\n ...state,\n searchText: data\n }\n};\n","import { searchConstants } from '../_constants/search.constants';\nimport {\n setIsFetching,\n resetSearchResults,\n resetSearchText,\n filterSearchResults,\n clearSearchResults,\n updateSearchText\n} from '../_utils/search.utils';\n\nconst initialState = {\n mainNavs: {\n isFetching: false,\n errorMessage: undefined,\n searchList: {\n fund: 'กองทุน',\n fundInformation: [],\n copyPort: 'COPYPORT',\n copyPortInformation: [],\n modelPort: 'MODELPORT',\n modelPortInformation: [],\n article: 'บทความ',\n articleInformation: []\n },\n searchText: null,\n },\n subNavs: {\n isFetching: false,\n errorMessage: undefined,\n searchList: {\n fund: 'กองทุน',\n fundInformation: [],\n copyPort: 'COPYPORT',\n copyPortInformation: [],\n modelPort: 'MODELPORT',\n modelPortInformation: [],\n article: 'บทความ',\n articleInformation: []\n },\n searchText: null,\n },\n calendarSearch: {\n isFetching: false,\n errorMessage: undefined,\n searchList: {\n fund: 'กองทุน',\n fundInformation: [],\n copyPort: 'COPYPORT',\n copyPortInformation: [],\n modelPort: 'MODELPORT',\n modelPortInformation: [],\n article: 'บทความ',\n articleInformation: []\n },\n searchText: null,\n },\n};\n\nconst searchReducer = (state = initialState, action) => {\n switch (action.type) {\n case searchConstants.FETCH_MAIN_SEARCH_START:\n return {\n ...state,\n mainNavs: setIsFetching(state.mainNavs),\n };\n case searchConstants.FETCH_MAIN_SEARCH_SUCCESS:\n return {\n ...state,\n mainNavs: filterSearchResults(state.mainNavs, action.payload)\n };\n case searchConstants.FETCH_MAIN_SEARCH_FAILURE:\n return {\n ...state,\n mainNavs: resetSearchResults(state.mainNavs, action.payload)\n };\n case searchConstants.CLEAR_MAIN_SEARCH:\n return {\n ...state,\n mainNavs: clearSearchResults(state.mainNavs)\n };\n case searchConstants.UPDATE_MAIN_SEARCH:\n return {\n ...state,\n mainNavs: updateSearchText(state.mainNavs, action.payload)\n };\n case searchConstants.REMOVE_MAIN_SEARCH:\n return {\n ...state,\n mainNavs: resetSearchText(state.mainNavs)\n };\n case searchConstants.FETCH_SUBNAV_SEARCH_START:\n return {\n ...state,\n subNavs: setIsFetching(state.subNavs)\n };\n case searchConstants.FETCH_SUBNAV_SEARCH_SUCCESS:\n return {\n ...state,\n subNavs: filterSearchResults(state.subNavs, action.payload)\n };\n case searchConstants.FETCH_SUBNAV_SEARCH_FAILURE:\n return {\n ...state,\n subNavs: resetSearchResults(state.subNavs, action.payload)\n };\n case searchConstants.CLEAR_SUBNAV_SEARCH:\n return {\n ...state,\n subNavs: clearSearchResults(state.subNavs)\n };\n case searchConstants.UPDATE_SUBNAV_SEARCH:\n return {\n ...state,\n subNavs: updateSearchText(state.subNavs, action.payload)\n };\n case searchConstants.REMOVE_SUBNAV_SEARCH:\n return {\n ...state,\n subNavs: resetSearchText(state.subNavs)\n };\n case searchConstants.FETCH_SEARCH_FUND_CALENDAR_START:\n return {\n ...state,\n calendarSearch: setIsFetching(state.calendarSearch)\n };\n case searchConstants.FETCH_SEARCH_FUND_CALENDAR_SUCCESS:\n return {\n ...state,\n calendarSearch: filterSearchResults(state.calendarSearch, action.payload)\n };\n case searchConstants.FETCH_SEARCH_FUND_CALENDAR_FAILURE:\n return {\n ...state,\n calendarSearch: resetSearchResults(state.calendarSearch, action.payload)\n };\n case searchConstants.CLEAR_SEARCH_FUND_CALENDAR:\n return {\n ...state,\n calendarSearch: clearSearchResults(state.calendarSearch)\n };\n case searchConstants.UPDATE_SEARCH_FUND_CALENDAR:\n return {\n ...state,\n calendarSearch: updateSearchText(state.calendarSearch, action.payload)\n };\n case searchConstants.REMOVE_SEARCH_FUND_CALENDAR:\n return {\n ...state,\n calendarSearch: resetSearchText(state.calendarSearch)\n };\n default:\n return state;\n }\n};\n\nexport default searchReducer;\n","import { authenticationConstants } from \"../_constants/authentication.constants\";\n\nconst initialState = {\n isOpenModal: false,\n isOpenErrorMessageModal: false,\n isOpenVerify2FactorModal: false,\n isLoading2FA: false,\n\n user: null,\n accountList: [],\n mkt: null,\n isMobileCompletedLogin: false,\n getAccountMKT: false,\n getAccountListSuccess: false,\n accountInfo: null,\n accountName: null,\n isSignIn: false,\n isFetching: false,\n errorMessage: null,\n referenceCode: null,\n twoFactorId: null,\n twoFactorAuthenticationMethod: null,\n twoFactorToken: null,\n\n logInType: null,\n};\n\nconst authenticationReducer = (state = initialState, action) => {\n switch (action.type) {\n case authenticationConstants.TOGGLED_SIGN_IN_MODAL:\n return {\n ...state,\n isOpenModal: !state.isOpenModal,\n };\n case authenticationConstants.TOGGLED_ERROR_MESSAGE_MODAL:\n return {\n ...state,\n isOpenErrorMessageModal: !state.isOpenErrorMessageModal,\n };\n case authenticationConstants.SIGN_IN_CREDENTIAL_START:\n return {\n ...state,\n isFetching: true,\n };\n case authenticationConstants.SIGN_IN_DSA_START:\n return {\n ...state,\n isFetching: true,\n };\n case authenticationConstants.SIGN_IN_SSO_START:\n return {\n ...state,\n isFetching: true,\n };\n case authenticationConstants.SIGN_IN_START:\n return {\n ...state,\n isFetching: true,\n };\n case authenticationConstants.SIGN_IN_SUCCESS:\n return {\n ...state,\n isFetching: false,\n isSignIn: true,\n user: action.payload.user,\n logInType: action.payload.logInType,\n isLoading2FA: false,\n };\n case authenticationConstants.VERIFY_2FA_OPEN:\n return {\n ...state,\n twoFactorAuthenticationMethod:\n action.payload.twoFactorAuthenticationMethod,\n referenceCode: action.payload.referenceCode,\n twoFactorId: action.payload.twoFactorId,\n isOpenVerify2FactorModal: true,\n isLoading2FA: false,\n twoFactorToken: action.payload.twoFactorToken,\n };\n case authenticationConstants.TOGGLED_2FA_MODAL:\n return {\n ...state,\n isOpenVerify2FactorModal: !state.isOpenVerify2FactorModal,\n };\n case authenticationConstants.SET_2FA_LOADING:\n return {\n ...state,\n isLoading2FA: action.payload,\n };\n case authenticationConstants.SIGN_IN_SUCCESS_FOR_MOBILE:\n return {\n ...state,\n isFetching: false,\n isSignIn: true,\n logInType: action.payload.logInType,\n };\n case authenticationConstants.SIGN_IN_FAILURE:\n return {\n ...state,\n isFetching: false,\n errorMessage: action.payload,\n isSignIn: false,\n user: null,\n logInType: undefined,\n isLoading2FA: false,\n isOpenVerify2FactorModal:\n action.payload === \"Invalid OTP Reference\" ? true : false,\n };\n case authenticationConstants.CLEAR_SIGN_IN_ERROR_MESSAGE:\n return {\n ...state,\n errorMessage: null,\n };\n // case authenticationConstants.GET_ACCOUNT_LIST_START:\n // return {\n // ...state,\n // };\n case authenticationConstants.GET_ACCOUNT_MKT:\n return {\n ...state,\n mkt: action.payload ?? \"\",\n getAccountMKT: true,\n };\n case authenticationConstants.GET_ACCOUNT_LIST_SUCCESS:\n return {\n ...state,\n accountList: action.payload ?? [],\n getAccountListSuccess: true,\n };\n case authenticationConstants.UPDATE_ACCOUNT_LIST_MOBILE_SUCCESS:\n return {\n ...state,\n isMobileCompletedLogin: true,\n };\n case authenticationConstants.GET_ACCOUNT_LIST_FAILURE:\n return {\n ...state,\n accountList: [],\n errorMessage: action.payload ?? null,\n getAccountListSuccess: false,\n };\n case authenticationConstants.GET_ACCOUNT_INFO_START:\n return {\n ...state,\n isFetching: true,\n };\n case authenticationConstants.GET_ACCOUNT_INFO_SUCCESS:\n return {\n ...state,\n isFetching: false,\n accountInfo: action.payload,\n };\n case authenticationConstants.GET_ACCOUNT_INFO_FAILURE:\n return {\n ...state,\n accountInfo: null,\n };\n case authenticationConstants.GET_ACCOUNT_NAME_SUCCESS:\n return {\n ...state,\n accountName: action.payload,\n };\n case authenticationConstants.GET_ACCOUNT_NAME_FAILURE:\n return {\n ...state,\n accountName: null,\n };\n case authenticationConstants.SIGN_OUT: {\n return {\n ...initialState,\n };\n }\n default:\n return state;\n }\n};\n\nexport default authenticationReducer;\n","import { userConstants } from '../_constants';\n\nconst usersReducer = (state = {}, action) => {\n switch (action.type) {\n case userConstants.GETALL_REQUEST:\n return {\n loading: true\n };\n case userConstants.GETALL_SUCCESS:\n return {\n items: action.users\n };\n case userConstants.GETALL_FAILURE:\n return {\n error: action.error\n };\n case userConstants.DELETE_REQUEST:\n // add 'deleting:true' property to user being deleted\n return {\n ...state,\n items: state.items.map((user) => (user.id === action.id ? { ...user, deleting: true } : user))\n };\n case userConstants.DELETE_SUCCESS:\n // remove deleted user from state\n return {\n items: state.items.filter((user) => user.id !== action.id)\n };\n case userConstants.DELETE_FAILURE:\n // remove 'deleting:true' property and add 'deleteError:[error]' property to user\n return {\n ...state,\n items: state.items.map((user) => {\n if (user.id === action.id) {\n // make copy of user without 'deleting:true' property\n const { deleting, ...userCopy } = user;\n // return copy of user with 'deleteError:[error]' property\n return { ...userCopy, deleteError: action.error };\n }\n\n return user;\n })\n };\n default:\n return state;\n }\n};\n\nexport default usersReducer;\n","import { alertConstants } from '../_constants';\n\nconst alertReducer = (state = {}, action) => {\n switch (action.type) {\n case alertConstants.SUCCESS:\n return {\n type: 'alert-success',\n message: action.message\n };\n case alertConstants.ERROR:\n return {\n type: 'alert-danger',\n message: action.message\n };\n case alertConstants.CLEAR:\n return {};\n default:\n return state;\n }\n};\n\nexport default alertReducer;\n","import { switchOrderNumberRegEx } from \"./general.utils\";\n\nexport const historiesFetching = (history) => {\n const result = {\n ...history,\n isFetching: true\n };\n return result;\n};\n\nexport const historiesData = (history, data) => {\n const result = {\n ...history,\n histories: data,\n isFetching: false,\n currentPage: data.currentPage ? data.currentPage : 1,\n totalPage: data.totalPage ? data.totalPage : 1\n };\n return result;\n};\n\nexport const historiesError = (history, error) => {\n const result = {\n ...history,\n errorMessage: error,\n isFetching: false\n };\n return result;\n};\n\nexport const historiesChangePage = (history, newPage) => {\n const result = {\n ...history,\n currentPage: history.currentPage !== newPage ? newPage : history.currentPage\n };\n return result;\n};\n\nexport const portfoliosFetching = (portfolio) => {\n const result = {\n ...portfolio,\n isFetching: true\n };\n return result;\n};\n\nexport const portfoliosData = (portfolio, data) => {\n const result = {\n ...portfolio,\n portfolios: data,\n isFetching: false\n };\n return result;\n};\n\nexport const portfoliosError = (portfolio, error) => {\n const result = {\n ...portfolio,\n errorMessage: error,\n isFetching: false,\n portfolios: []\n };\n return result;\n};\n\nexport const changeCurrentGroupType = (state, currentGroupType) => {\n const result = {\n ...state,\n currentGroupType: currentGroupType ? currentGroupType : '0'\n }\n return result;\n}\n\nexport const dividendsData = (dividend, data) => {\n const result = {\n ...dividend,\n dividends: data,\n isFetching: false\n };\n return result;\n};\n\nexport const dividendsError = (dividend, error) => {\n const result = {\n ...dividend,\n errorMessage: error,\n isFetching: false\n };\n return result;\n};\n\nexport const setInitialAccountNumber = (accounts) => {\n let result = [];\n result.push(accounts.accounts[0].accountNumber);\n return result;\n};\n\nexport const filterAccountNumber = (state, accounts) => {\n let result = {\n ...state,\n accountNumbers: accounts ? accounts : []\n };\n\n return result;\n};\n\nexport const getFundListFromData = (state, data) => {\n let fundList = data \n ? data.map(x => x.funds.reduce((prev, curr) => \n prev.includes(curr.fundCode)\n ? prev \n : [...prev, curr.fundCode], [])).flat().map(item => {\n return { \n name: item,\n value: item.toUpperCase(),\n type: 'fundCode'\n };\n }) \n : [];\n return {\n ...state,\n fundList: fundList\n };\n};\n\nexport const filterMonthlyReturn = (dataList) => {\n var monthList = [];\n \n if (dataList.length > 0) {\n dataList.forEach((years) => {\n let data = [];\n for (let i = 0; i < 12; i++) {\n if (years.items.length > 0) {\n let dataMonth = years.items.find(item => item.month === i + 1);\n if (dataMonth) { \n data.push({ month: i+1, value: dataMonth.value });\n } else {\n data.push({ month: i+1, value: null });\n } \n } else {\n data.push({ month: i+1, value: null });\n }\n }\n\n monthList.push({\n year: years.year,\n items: data,\n total: years.yearlyReturn ? years.yearlyReturn : null\n });\n });\n }\n\n return monthList;\n};\n\nexport const transformOrderData = (orders) => {\n const cloneOrders = orders.slice();\n\n let result= [];\n cloneOrders.forEach((order) => {\n if (switchOrderNumberRegEx.test(order.number)) {\n if (order.tradeType === 'S') {\n const toFund = cloneOrders.find(x => switchOrderNumberRegEx.test(x.number) && x.tradeType === 'B' && x.number.slice(0, -1) === order.number.slice(0, -1));\n result.push({...order, toFund});\n } else if (order.tradeType === 'B') {\n const fromFund = cloneOrders.find(x => switchOrderNumberRegEx.test(x.number) && x.tradeType === 'S' && x.number.slice(0, -1) === order.number.slice(0, -1));\n delete order['toFund'];\n result.push({...order, fromFund});\n }\n } else {\n if (order.tradeType !== 'W') {\n delete order['toFund'];\n }\n result.push(order);\n }\n })\n \n return result;\n}\n\nexport const duplicateNumber = (data) => {\n const cloneData = [...data];\n\n return cloneData.map((item) => {\n return {\n ...item,\n number: item.orderNumber\n }\n })\n}","import { investmentConstants } from \"../_constants/investment.constant\";\n\nimport {\n historiesChangePage,\n dividendsData,\n dividendsError,\n filterMonthlyReturn,\n transformOrderData,\n duplicateNumber,\n} from \"../_utils/investment.utils\";\nimport { setIsFetching } from \"../_utils/general.utils\";\n\nimport { sub } from \"date-fns\";\nimport { nanoid } from \"nanoid\";\n\nlet newDate = new Date();\n\nconst initialState = {\n userAccounts: [],\n investSearch: false,\n isFetching: false,\n activedFunds: {\n funds: [],\n isFetching: false,\n errorMessage: null,\n },\n allFunds: {\n funds: [],\n isFetching: false,\n errorMessage: null,\n },\n allFundCodes: {\n funds: [],\n isFetching: false,\n errorMessage: null,\n },\n lot: {\n tableHeaders: [\n {\n header: \"วันที่\",\n sortKey: \"priceDate\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fundName\",\n },\n {\n header: \"กราฟตั้งแต่วันที่ลงทุน\",\n sortKey: \"chart\",\n },\n {\n header: \"เงินลงทุน\",\n sortKey: \"invest\",\n },\n {\n header: \"มูลค่าปัจจุบัน\",\n sortKey: \"value\",\n },\n {\n header: \"ราคาทุน\",\n sortKey: \"averagePrice\",\n },\n {\n header: \"ราคาปัจจุบัน\",\n sortKey: \"currentPrice\",\n },\n {\n header: \"P/L\",\n sortKey: \"pAndL\",\n },\n {\n header: \"%Port\",\n sortKey: \"portPercent\",\n },\n {\n header: \"%Yield\",\n sortKey: \"yieldPercent\",\n },\n ],\n groupTypeList: [\n {\n name: \"ประเภทบัญชี\",\n value: \"ACCOUNT_TYPE\",\n },\n {\n name: \"ประเภทกองทุน\",\n value: \"CATEGORY\",\n },\n {\n name: \"รายปี\",\n value: \"YEAR\",\n },\n {\n name: \"รายบลจ.\",\n value: \"COMPANY\",\n },\n ],\n queries: {\n fundType: {\n name: \"ทั้งหมด\",\n value: \"ALL\",\n },\n groupType: {\n name: \"รายปี\",\n value: \"YEAR\",\n },\n fundCode: null,\n },\n response: {\n isFetching: false,\n data: [],\n errorMessage: null,\n },\n navs: {\n isFetching: false,\n data: [],\n errorMessage: null,\n },\n fundList: [],\n },\n history: {\n columnList: [\n {\n header: \"Code\",\n sortKey: \"code\",\n },\n {\n header: \"ทำรายการ\",\n sortKey: \"date-list\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fund-name\",\n },\n {\n header: \"Activity\",\n sortKey: \"activity\",\n },\n {\n header: \"ยอดเงิน\",\n sortKey: \"balance\",\n },\n {\n header: \"จำนวนหน่วย\",\n sortKey: \"unit\",\n },\n {\n header: \"Nav\",\n sortKey: \"nav\",\n },\n {\n header: \"Status\",\n sortKey: \"status\",\n },\n {\n header: \"Payment\",\n sortKey: \"payment\",\n },\n {\n header: \"วันรับเงิน\",\n sortKey: \"received-date\",\n },\n {\n header: \"Remark\",\n sortKey: \"remark\",\n },\n {\n header: \"Order#\",\n sortKey: \"order-number\",\n },\n ],\n table: {\n header: \"Group Name\",\n headers: [\n {\n header: \"Code\",\n sortKey: \"code\",\n },\n {\n header: \"ทำรายการ\",\n sortKey: \"date-list\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fund-name\",\n },\n {\n header: \"Activity\",\n sortKey: \"activity\",\n },\n {\n header: \"ยอดเงิน\",\n sortKey: \"balance\",\n },\n {\n header: \"จำนวนหน่วย\",\n sortKey: \"unit\",\n },\n {\n header: \"Nav\",\n sortKey: \"nav\",\n },\n {\n header: \"Status\",\n sortKey: \"status\",\n },\n {\n header: \"Payment\",\n sortKey: \"payment\",\n },\n {\n header: \"วันรับเงิน\",\n sortKey: \"received-date\",\n },\n {\n header: \"Remark\",\n sortKey: \"remark\",\n },\n {\n header: \"Order#\",\n sortKey: \"order-number\",\n },\n ],\n },\n remarkList: [\n {\n name: \"ทั้งหมด\",\n value: \"\",\n },\n {\n name: \"มี Remark\",\n value: \"True\",\n },\n {\n name: \"ไม่มี Remark\",\n value: \"False\",\n },\n ],\n statusList: [\n {\n name: \"ทั้งหมด\",\n value: \"\",\n },\n {\n name: \"Complete\",\n value: \"C\",\n },\n {\n name: \"On Process\",\n value: \"P\",\n },\n {\n name: \"Canceled\",\n value: \"X\",\n },\n {\n name: \"Rejected\",\n value: \"R\",\n },\n ],\n queries: {\n fundType: {\n name: \"ทั้งหมด\",\n value: \"ALL\",\n },\n groupType: {\n name: \"ประเภทบัญชี\",\n value: \"ACCOUNT_TYPE\",\n },\n funds: [],\n date: {\n startDate: sub(newDate, { years: 1 }).toJSON(),\n endDate: newDate.toJSON(),\n },\n sortBy: null,\n sortType: \"d\",\n remark: \"\",\n status: \"\",\n },\n response: {\n isFetching: false,\n data: [],\n currentPage: 1,\n totalPage: 1,\n errorMessage: null,\n },\n },\n dca: {\n columnList: [\n {\n header: \"Code\",\n sortKey: \"accountNumber\",\n },\n {\n header: \"เริ่ม\",\n sortKey: \"tradeDate\",\n },\n {\n header: \"สิ้นสุด\",\n sortKey: \"endDate\",\n },\n {\n header: \"Activity\",\n sortKey: \"tradeType\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fundName\",\n },\n {\n header: \"แผนลงทุน\",\n sortKey: \"savingPlan\",\n },\n {\n header: \"จำนวน\",\n sortKey: \"amount\",\n },\n {\n header: \"Payment\",\n sortKey: \"payment\",\n },\n {\n header: \"วันที่ส่งคำสั่ง\",\n sortKey: \"entryDate\",\n },\n ],\n tradeTypeList: [\n {\n name: \"ทั้งหมด\",\n value: \"\",\n },\n {\n name: \"Buy\",\n value: \"B\",\n },\n // {\n // name: 'Sell',\n // value: 'S'\n // },\n {\n name: \"Switch\",\n value: \"W\",\n },\n ],\n statusList: [\n {\n name: \"ทั้งหมด\",\n value: \"\",\n },\n {\n name: \"มีผลอยู่\",\n value: true,\n },\n {\n name: \"หมดอายุ\",\n value: false,\n },\n ],\n queries: {\n funds: [],\n sortBy: null,\n sortType: \"a\",\n tradeType: { name: \"ทั้งหมด\", value: \"\" },\n status: { name: \"มีผลอยู่\", value: \"true\" },\n },\n response: {\n isFetching: false,\n data: [],\n errorMessage: null,\n },\n },\n book: {\n queries: {\n funds: [],\n date: {\n startDate: sub(newDate, { years: 1 }).toJSON(),\n endDate: newDate.toJSON(),\n },\n },\n response: {\n isFetching: false,\n data: undefined,\n errorMessage: null,\n },\n tableHeaders: [\n {\n header: \"วันที่\",\n sortKey: \"date\",\n },\n {\n header: \"ยอดเงิน\",\n sortKey: \"investValue\",\n },\n {\n header: \"หน่วย\",\n sortKey: \"investUnit\",\n },\n {\n header: \"ยอดเงิน\",\n sortKey: \"sellValue\",\n },\n {\n header: \"หน่วย\",\n sortKey: \"sellUnit\",\n },\n {\n header: \"NAV\",\n sortKey: \"nav\",\n },\n {\n header: \"P/L\",\n sortKey: \"pAndL\",\n },\n {\n header: \"ปันผล\",\n sortKey: \"dividend\",\n },\n {\n header: \"หน่วยคงเหลือ\",\n sortKey: \"balanceUnit\",\n },\n {\n header: \"มูลค่าคงเหลือ\",\n sortKey: \"balanceValue\",\n },\n ],\n },\n dividend: {\n queries: {\n funds: [],\n sortType: \"d\",\n sortBy: null,\n date: {\n startDate: sub(newDate, { years: 1 }).toJSON(),\n endDate: newDate.toJSON(),\n },\n },\n dividends: null,\n isFetching: false,\n errorMessage: undefined,\n table: {\n header: \"Group Name\",\n headers: [\n {\n header: \"Code\",\n sortKey: \"accountNumber\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fundCode\",\n },\n {\n header: \"วันปิดสมุดทะเบียน\",\n sortKey: \"xDate\",\n },\n {\n header: \"วันจ่ายเงินปันผล\",\n sortKey: \"payDate\",\n },\n {\n header: \"จำนวนหน่วย\",\n sortKey: \"unit\",\n },\n {\n header: \"ปันผลต่อหน่วย\",\n sortKey: \"rate\",\n },\n {\n header: \"ยอดเงินปันผล\",\n sortKey: \"amount\",\n },\n {\n header: \"หักภาษี\",\n sortKey: \"tax\",\n },\n {\n header: \"ยอดเงินสุทธิ\",\n sortKey: \"net\",\n },\n ],\n },\n },\n portfolio: {\n queries: {\n sortType: \"d\",\n sortKey: null,\n dateType: \"1Y\",\n groupType: \"ACCOUNT_TYPE\",\n },\n portfolios: {\n isFetching: false,\n data: {},\n errorMessage: null,\n },\n navPortfolios: {\n isFetching: false,\n data: [],\n errorMessage: undefined,\n },\n isFetching: false,\n errorMessage: undefined,\n headers: [\n {\n header: \"Code\",\n sortKey: \"accountNumber\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fundCode\",\n },\n {\n header: \"Chart\",\n sortKey: \"chart\",\n },\n {\n header: \"เงินลงทุน\",\n sortKey: \"investmentAmount\",\n },\n {\n header: \"มูลค่าปัจจุบัน\",\n sortKey: \"marketAmount\",\n },\n {\n header: \"ราคาทุนเฉลี่ย\",\n sortKey: \"averagePrice\",\n },\n {\n header: \"ราคาปัจจุบัน\",\n sortKey: \"nav\",\n },\n {\n header: \"P/L\",\n sortKey: \"profitLoss\",\n },\n {\n header: \"% Port\",\n sortKey: \"percentage\",\n },\n ],\n },\n portfolioStatistic: {\n previousReturn: {\n isFetching: false,\n data: {},\n errorMessage: null,\n },\n historyGraph: {\n isFetching: false,\n data: [],\n errorMessage: null,\n graphModeList: [\n {\n name: \"กราฟผลตอบแทนย้อนหลัง\",\n value: \"PREVIOUSE_RETURN\",\n },\n {\n name: \"กราฟมูลค่าพอร์ทย้อนหลัง\",\n value: \"AUM\",\n },\n {\n name: \"ทั้งหมด\",\n value: \"ALL\",\n },\n ],\n },\n previousReturnGraph: {\n isFetching: false,\n data: [],\n errorMessage: null,\n },\n monthlyReturn: {\n isFetching: false,\n data: [],\n errorMessage: null,\n },\n profit: {\n isFetching: false,\n data: {},\n errorMessage: null,\n },\n volatility: {\n isFetching: false,\n data: {},\n errorMessage: null,\n },\n maxDrawdown: {\n isFetching: false,\n data: {},\n errorMessage: null,\n },\n drawdown: {\n isFetching: false,\n data: [],\n errorMessage: null,\n sortFilters: [\n {\n name: \"% ติดลบ\",\n value: \"percentage\",\n },\n {\n name: \"ตามเวลา\",\n value: \"date\",\n },\n ],\n },\n lastDate: null,\n },\n order: {\n orders: {\n isFetching: false,\n data: null,\n errorMessage: undefined,\n },\n headers: [\n {\n header: \"Code\",\n sortKey: \"accountNumber\",\n },\n {\n header: \"ทำรายการ\",\n sortKey: \"tradeDate\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fundCode\",\n },\n {\n header: \"Activity\",\n sortKey: \"tradeType\",\n },\n {\n header: \"ยอดเงิน\",\n sortKey: \"amount\",\n },\n {\n header: \"จำนวนหน่วย\",\n sortKey: \"unit\",\n },\n {\n header: \"Status\",\n sortKey: \"status\",\n },\n {\n header: \"Payment\",\n sortKey: \"bankPayment\",\n },\n {\n header: \"วันรับเงิน\",\n sortKey: \"tradeDate\",\n },\n {\n header: \"Remark\",\n sortKey: \"remark\",\n },\n {\n header: \"Order#\",\n sortKey: \"number\",\n },\n ],\n queries: {\n status: null,\n tradeType: null,\n remark: null,\n sortType: \"a\",\n sortBy: null,\n },\n },\n information: {},\n};\n\nconst investmentReducer = (state = initialState, action) => {\n switch (action.type) {\n case investmentConstants.SET_INVEST_SEARCH: {\n return {\n ...state,\n investSearch: action.payload,\n };\n }\n\n case investmentConstants.UPDATE_USER_ACCOUNTS: {\n return {\n ...state,\n userAccounts: action.payload ?? [],\n };\n }\n\n // Investment Histories\n case investmentConstants.UPDATE_INVESTMENT_HISTORIES_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach((attribute) => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case \"sortBy\":\n if (value === \"nav\" || value === \"riskLevel\") {\n updateAttribute[\"sortType\"] =\n state.history.queries.sortBy === value &&\n state.history.queries.sortType !== \"d\"\n ? \"d\"\n : \"a\";\n } else {\n updateAttribute[\"sortType\"] =\n state.history.queries.sortBy === value &&\n value &&\n state.history.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\";\n }\n updateAttribute[\"sortBy\"] = value;\n break;\n default:\n updateAttribute[attribute] = value;\n break;\n }\n });\n\n return {\n ...state,\n history: {\n ...state.history,\n queries: {\n ...state.history.queries,\n ...updateAttribute,\n },\n response: {\n ...state.history.response,\n currentPage: 1,\n },\n },\n };\n }\n case investmentConstants.FETCH_ACTIVED_FUNDS_START: // need to recheck with line 689\n return {\n ...state,\n activedFunds: {\n ...state.activedFunds,\n isFetching: true,\n },\n };\n case investmentConstants.FETCH_ACTIVED_FUNDS_SUCCESS:\n return {\n ...state,\n activedFunds: {\n ...state.activedFunds,\n funds: action.payload?.length !== 0 ? action.payload : [],\n isFetching: false,\n },\n };\n case investmentConstants.FETCH_ACTIVED_FUNDS_FAILURE:\n return {\n ...state,\n activedFunds: {\n ...state.activedFunds,\n funds: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n };\n case investmentConstants.FETCH_ALL_FUNDS_START: // need to recheck with line 689\n return {\n ...state,\n allFunds: {\n ...state.allFunds,\n isFetching: true,\n },\n };\n case investmentConstants.FETCH_ALL_FUNDS_SUCCESS:\n return {\n ...state,\n allFunds: {\n ...state.allFunds,\n funds: action.payload?.length !== 0 ? action.payload : [],\n isFetching: false,\n },\n };\n case investmentConstants.FETCH_ALL_FUNDS_FAILURE:\n return {\n ...state,\n allFunds: {\n ...state.allFunds,\n funds: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n };\n case investmentConstants.FETCH_ALL_FUND_CODES_START:\n return {\n ...state,\n allFundCodes: {\n ...state.allFundCodes,\n isFetching: true,\n },\n };\n case investmentConstants.FETCH_ALL_FUND_CODES_SUCCESS:\n return {\n ...state,\n allFundCodes: {\n ...state.allFundCodes,\n funds: action.payload?.length !== 0 ? action.payload : [],\n isFetching: false,\n },\n };\n case investmentConstants.FETCH_ALL_FUND_CODES_FAILURE:\n return {\n ...state,\n allFundCodes: {\n ...state.allFundCodes,\n funds: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n };\n case investmentConstants.FETCH_HISTORIES_START:\n return {\n ...state,\n history: {\n ...state.history,\n response: {\n ...state.history.response,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_HISTORIES_SUCCESS:\n return {\n ...state,\n history: {\n ...state.history,\n response: {\n ...state.history.response,\n isFetching: false,\n data: transformOrderData(duplicateNumber(action.payload)) ?? [],\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_HISTORIES_FAILURE:\n return {\n ...state,\n history: {\n ...state.history,\n response: {\n ...state.history.response,\n isFetching: false,\n data: [],\n errorMessage: action.payload,\n },\n },\n };\n case investmentConstants.FETCH_HISTORIES_CHANGE_PAGE:\n return {\n ...state,\n history: historiesChangePage(state.history, action.payload),\n };\n\n // Investment DCA\n case investmentConstants.DELETE_DCA_ORDER_REQUEST_START:\n return {\n ...state,\n dca: {\n ...state.dca,\n },\n };\n case investmentConstants.DELETE_DCA_ORDER_REQUEST_SUCCESS:\n return {\n ...state,\n dca: {\n ...state.dca,\n },\n };\n case investmentConstants.DELETE_DCA_ORDER_REQUEST_FAILURE:\n return {\n ...state,\n dca: {\n ...state.dca,\n response: {\n ...state.dca.response,\n errorMessage: action?.payload?.message,\n },\n },\n };\n case investmentConstants.CLEAR_DCA_ORDER_ERROR_MESSAGE:\n return {\n ...state,\n dca: {\n ...state.dca,\n response: {\n ...state.dca.response,\n errorMessage: null,\n },\n },\n };\n case investmentConstants.DELETE_ORDER_dca_REQUEST_FAILURE:\n return {\n ...state,\n dca: {\n ...state.dca,\n },\n };\n case investmentConstants.UPDATE_INVESTMENT_DCA_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach((attribute) => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case \"sortBy\":\n if (value === \"nav\" || value === \"riskLevel\") {\n updateAttribute[\"sortType\"] =\n state.dca.queries.sortBy === value &&\n state.dca.queries.sortType !== \"d\"\n ? \"d\"\n : \"a\";\n } else {\n updateAttribute[\"sortType\"] =\n state.dca.queries.sortBy === value &&\n value &&\n state.dca.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\";\n }\n updateAttribute[\"sortBy\"] = value;\n break;\n default:\n updateAttribute[attribute] = value;\n break;\n }\n });\n\n return {\n ...state,\n dca: {\n ...state.dca,\n queries: {\n ...state.dca.queries,\n ...updateAttribute,\n },\n response: {\n ...state.dca.response,\n //currentPage: 1\n },\n },\n };\n }\n case investmentConstants.FETCH_DCAS_START:\n return {\n ...state,\n dca: {\n ...state.dca,\n response: {\n ...state.dca.response,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_DCAS_SUCCESS:\n return {\n ...state,\n dca: {\n ...state.dca,\n response: {\n ...state.dca.response,\n isFetching: false,\n data: action.payload ?? [],\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_DCAS_FAILURE:\n return {\n ...state,\n dca: {\n ...state.dca,\n response: {\n ...state.dca.response,\n isFetching: false,\n data: [],\n errorMessage: action.payload,\n },\n },\n };\n\n // Order\n case investmentConstants.DELETE_ORDER_REQUEST_START:\n return {\n ...state,\n };\n case investmentConstants.DELETE_ORDER_REQUEST_SUCCESS:\n return {\n ...state,\n };\n case investmentConstants.DELETE_ORDER_REQUEST_FAILURE:\n return {\n ...state,\n order: {\n ...state.order,\n orders: {\n ...state.order.orders,\n isFetching: false,\n errorMessage: action?.payload?.message,\n data: [...state.order.orders.data],\n },\n },\n };\n case investmentConstants.FETCH_ORDERS_START:\n return {\n ...state,\n order: {\n ...state.order,\n orders: {\n ...state.order.orders,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_ORDERS_SUCCESS:\n return {\n ...state,\n order: {\n ...state.order,\n orders: {\n ...state.order.orders,\n isFetching: false,\n data: transformOrderData(action.payload),\n },\n },\n };\n case investmentConstants.FETCH_ORDERS_FAILURE:\n return {\n ...state,\n order: {\n ...state.order,\n orders: {\n ...state.order.orders,\n isFetching: false,\n data: null,\n },\n },\n };\n case investmentConstants.UPDATE_ORDERS_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach((attribute) => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case \"sortBy\":\n if (value === \"nav\" || value === \"riskLevel\") {\n updateAttribute[\"sortType\"] =\n state.order.queries.sortBy === value &&\n state.order.queries.sortType !== \"d\"\n ? \"d\"\n : \"a\";\n } else {\n updateAttribute[\"sortType\"] =\n state.order.queries.sortBy === value &&\n value &&\n state.order.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\";\n }\n updateAttribute[\"sortBy\"] = value;\n break;\n default:\n updateAttribute[attribute] = value;\n break;\n }\n });\n\n return {\n ...state,\n order: {\n ...state.order,\n queries: {\n ...state.order.queries,\n ...updateAttribute,\n },\n },\n };\n }\n case investmentConstants.CLEAR_ORDER_ERROR_MESSAGE:\n return {\n ...state,\n order: {\n ...state.order,\n orders: {\n ...state.order.orders,\n errorMessage: undefined,\n },\n },\n };\n // PORTFOLIOS\n case investmentConstants.UPDATE_PORTFOLIOS_QUERIES: {\n let { key, value } = action.payload;\n let updateAttribute = {};\n\n switch (key) {\n case \"accountNumber\":\n updateAttribute[key] = value;\n break;\n case \"sortKey\":\n updateAttribute = {\n sortKey: value,\n sortType:\n value &&\n value === state.portfolio.queries.sortKey &&\n state.portfolio.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\",\n };\n break;\n default:\n updateAttribute[key] = value;\n break;\n }\n\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n queries: {\n ...state.portfolio.queries,\n ...updateAttribute,\n },\n },\n };\n }\n case investmentConstants.FETCH_PORTFOLIOS_START:\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n isFetching: true,\n portfolios: setIsFetching(state.portfolio.portfolios),\n },\n };\n case investmentConstants.FETCH_PORTFOLIOS_SUCCESS:\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n isFetching: false,\n portfolios: {\n isFetching: false,\n data: action.payload\n ? {\n ...action.payload,\n categories: action.payload.categories.map((group) => ({\n ...group,\n items: group.items.map((fund) => ({\n ...fund,\n id: nanoid(),\n })),\n })),\n }\n : {},\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_PORTFOLIOS_FAILURE:\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n isFetching: false,\n portfolios: {\n isFetching: false,\n data: {},\n errorMessage: action.payload,\n },\n },\n };\n case investmentConstants.FETCH_NAV_PORTFOLIO_START:\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n navPortfolios: {\n ...state.portfolio.navPortfolios,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_NAV_PORTFOLIO_SUCCESS:\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n navPortfolios: {\n ...state.portfolio.navPortfolios,\n isFetching: false,\n data: action.payload ?? [],\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_NAV_PORTFOLIO_FAILURE:\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n navPortfolios: {\n ...state.portfolio.navPortfolios,\n isFetching: false,\n data: [],\n errorMessage: action.payload,\n },\n },\n };\n case investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n previousReturn: setIsFetching(\n state.portfolioStatistic.previousReturn,\n {}\n ),\n },\n };\n case investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n previousReturn: {\n ...state.portfolioStatistic.previousReturn,\n data: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n previousReturn: {\n ...state.portfolioStatistic.previousReturn,\n data: {},\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n historyGraph: {\n ...state.portfolioStatistic.historyGraph,\n isFetching: true,\n data: [],\n },\n },\n };\n case investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n historyGraph: {\n ...state.portfolioStatistic.historyGraph,\n data: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n historyGraph: {\n ...state.portfolioStatistic.historyGraph,\n data: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n monthlyReturn: {\n ...state.portfolioStatistic.monthlyReturn,\n isFetching: true,\n data: [],\n },\n },\n };\n case investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n monthlyReturn: {\n ...state.portfolioStatistic.monthlyReturn,\n data: filterMonthlyReturn(action.payload),\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n monthlyReturn: {\n ...state.portfolioStatistic.monthlyReturn,\n data: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n previousReturnGraph: {\n ...state.portfolioStatistic.previousReturnGraph,\n isFetching: true,\n data: [],\n },\n },\n };\n case investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n previousReturnGraph: {\n ...state.portfolioStatistic.previousReturnGraph,\n data: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n previousReturnGraph: {\n ...state.portfolioStatistic.previousReturnGraph,\n data: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_PROFIT_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n profit: {\n ...state.portfolioStatistic.profit,\n isFetching: true,\n data: {},\n },\n },\n };\n case investmentConstants.FETCH_PROFIT_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n profit: {\n ...state.portfolioStatistic.profit,\n data: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_PROFIT_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n profit: {\n ...state.portfolioStatistic.profit,\n data: {},\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n volatility: {\n ...state.portfolioStatistic.volatility,\n isFetching: true,\n data: {},\n },\n },\n };\n case investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n volatility: {\n ...state.portfolioStatistic.volatility,\n data: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n volatility: {\n ...state.portfolioStatistic.volatility,\n data: {},\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n maxDrawdown: {\n ...state.portfolioStatistic.maxDrawdown,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n maxDrawdown: {\n ...state.portfolioStatistic.maxDrawdown,\n data: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n maxDrawdown: {\n ...state.portfolioStatistic.maxDrawdown,\n data: {},\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n drawdown: {\n ...state.portfolioStatistic.drawdown,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n drawdown: {\n ...state.portfolioStatistic.drawdown,\n data: action.payload || [],\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n drawdown: {\n ...state.portfolioStatistic.drawdown,\n data: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.CLEAR_DEFAULT_PORT_STAT:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n lastDate: null,\n drawdown: {\n ...state.portfolioStatistic.drawdown,\n data: [],\n },\n maxDrawdown: {\n ...state.portfolioStatistic.maxDrawdown,\n data: {},\n },\n previousReturnGraph: {\n ...state.portfolioStatistic.previousReturnGraph,\n data: [],\n },\n },\n };\n case investmentConstants.FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n lastDate: action.payload,\n },\n };\n case investmentConstants.FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n lastDate: null,\n },\n };\n\n // LOT\n case investmentConstants.UPDATE_LOT_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach((attribute) => {\n let value = action.payload[`${attribute}`];\n updateAttribute[attribute] = value;\n switch (attribute) {\n case \"accountNumber\":\n updateAttribute = { ...initialState.lot.queries };\n break;\n case \"sortBy\":\n if (value === \"nav\" || value === \"riskLevel\") {\n updateAttribute[\"sortType\"] =\n state.lot.queries.sortBy === value &&\n state.lot.queries.sortType !== \"d\"\n ? \"d\"\n : \"a\";\n } else {\n updateAttribute[\"sortType\"] =\n state.lot.queries.sortBy === value &&\n value &&\n state.lot.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\";\n }\n break;\n case \"groupType\":\n updateAttribute[attribute] = value;\n // ! Uncomment below line to cascading fund type and fund code when update group type.\n // updateAttribute['fundType'] = defaultFundTypeList[0];\n // updateAttribute['fundCode'] = null;\n break;\n case \"fundType\":\n updateAttribute[\"fundType\"] = value;\n updateAttribute[\"fundCode\"] = null;\n break;\n case \"fundCode\":\n updateAttribute[\"fundType\"] = null;\n updateAttribute[\"fundCode\"] = value;\n break;\n default:\n updateAttribute[attribute] = value;\n break;\n }\n });\n\n return {\n ...state,\n lot: {\n ...state.lot,\n queries: {\n ...state.lot.queries,\n ...updateAttribute,\n },\n },\n };\n }\n case investmentConstants.FETCH_LOTS_START:\n return {\n ...state,\n lot: {\n ...state.lot,\n response: {\n ...state.lot.response,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_LOTS_SUCCESS:\n return {\n ...state,\n lot: {\n ...state.lot,\n response: {\n ...state.lot.response,\n isFetching: false,\n data: action.payload ?? [],\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_LOTS_FAILURE:\n return {\n ...state,\n lot: {\n ...state.lot,\n response: {\n ...state.lot.response,\n isFetching: false,\n data: [],\n errorMessage: action.payload,\n },\n },\n };\n case investmentConstants.FETCH_NAVS_LOTS_START:\n return {\n ...state,\n lot: {\n ...state.lot,\n navs: {\n ...state.lot.navs,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_NAVS_LOTS_SUCCESS:\n return {\n ...state,\n lot: {\n ...state.lot,\n navs: {\n ...state.lot.navs,\n isFetching: false,\n data: action.payload,\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_NAVS_LOTS_FAILURE:\n return {\n ...state,\n lot: {\n ...state.lot,\n navs: {\n ...state.lot.navs,\n isFetching: false,\n data: [],\n errorMessage: action.payload,\n },\n },\n };\n\n // BOOK\n case investmentConstants.UPDATE_BOOK_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach((attribute) => {\n let value = action.payload[`${attribute}`];\n updateAttribute[attribute] = value;\n switch (attribute) {\n case \"accountNumber\":\n updateAttribute[\"funds\"] = [];\n break;\n case \"sortBy\":\n if (value === \"nav\" || value === \"riskLevel\") {\n updateAttribute[\"sortType\"] =\n state.book.queries.sortBy === value &&\n state.book.queries.sortType !== \"d\"\n ? \"d\"\n : \"a\";\n } else {\n updateAttribute[\"sortType\"] =\n state.book.queries.sortBy === value &&\n value &&\n state.book.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\";\n }\n break;\n default:\n updateAttribute[attribute] = value;\n break;\n }\n });\n\n return {\n ...state,\n book: {\n ...state.book,\n queries: {\n ...state.book.queries,\n ...updateAttribute,\n },\n },\n };\n }\n case investmentConstants.FETCH_BOOKS_START:\n return {\n ...state,\n book: {\n ...state.book,\n response: {\n ...state.book.response,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_BOOKS_SUCCESS:\n return {\n ...state,\n book: {\n ...state.book,\n response: {\n ...state.book.response,\n data: action.payload ?? [],\n isFetching: false,\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_BOOKS_FAILURE:\n return {\n ...state,\n book: {\n ...state.book,\n response: {\n ...state.book.response,\n data: undefined,\n isFetching: false,\n errorMessage: action.payload,\n },\n },\n };\n\n // Dividend\n case investmentConstants.UPDATE_DIVIDEND_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach((attribute) => {\n let value = action.payload[`${attribute}`];\n updateAttribute[attribute] = value;\n switch (attribute) {\n case \"accountNumber\":\n updateAttribute[\"funds\"] = [];\n break;\n case \"sortBy\":\n if (value === \"nav\" || value === \"riskLevel\") {\n updateAttribute[\"sortType\"] =\n state.dividend.queries.sortBy === value &&\n state.dividend.queries.sortType !== \"d\"\n ? \"d\"\n : \"a\";\n } else {\n updateAttribute[\"sortType\"] =\n state.dividend.queries.sortBy === value &&\n value &&\n state.dividend.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\";\n }\n break;\n default:\n updateAttribute[attribute] = value;\n break;\n }\n });\n\n return {\n ...state,\n dividend: {\n ...state.dividend,\n queries: {\n ...state.dividend.queries,\n ...updateAttribute,\n },\n },\n };\n }\n case investmentConstants.FETCH_DIVIDENDS_START:\n return {\n ...state,\n dividend: setIsFetching(state.dividend),\n };\n case investmentConstants.FETCH_DIVIDENDS_SUCCESS:\n return {\n ...state,\n dividend: dividendsData(state.dividend, action.payload),\n };\n case investmentConstants.FETCH_DIVIDENDS_FAILURE:\n return {\n ...state,\n dividend: dividendsError(state.dividend, action.payload),\n };\n case investmentConstants.RESET_INVESTMENT:\n return { ...initialState };\n default:\n return state;\n }\n};\n\nexport default investmentReducer;\n","import { favoriteConstants } from '../_constants';\n\nconst initialState = {\n favoriteCopyport: null,\n currentColumns: [],\n defaultColumns: [\n 'charts', \n 'riskLevel',\n 'nav',\n 'morningStarRating',\n 'fundFlow',\n 'performance'\n ],\n tableColumns: [\n {\n header: 'ชื่อกองทุน',\n sortKey: 'fundCode',\n section: 'main'\n },\n {\n header: 'Chart',\n sortKey: 'charts',\n section: 'other'\n },\n {\n header: 'ความเสี่ยง',\n sortKey: 'riskLevel',\n section: 'other'\n },\n {\n header: 'Rating',\n sortKey: 'morningStarRating',\n section: 'other'\n },\n {\n header: 'NAV',\n sortKey: 'nav',\n section: 'other'\n },\n {\n header: 'เงินเข้าออก',\n sortKey: 'fundFlow',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน',\n sortKey: 'performance',\n section: 'other'\n }\n ],\n favoriteFunds: {\n isFetching: false,\n funds: [],\n data: [],\n errorMessage: null\n },\n navFunds: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n queries: {\n returnDateType: '1Y',\n navDateType: '1Y',\n sortBy: null,\n sortType: 'd'\n },\n colors: ['g-bg-red', 'g-bg-purple', 'g-bg-green', 'g-bg-blue', 'g-bg-pink', 'g-bg-cyan', 'g-bg-orange', 'g-bg-teal']\n};\n\nconst favoriteReducer = (state = initialState, action) => {\n switch (action.type) {\n case favoriteConstants.UPDATE_LOCAL_FAVORITE_FUNDS:\n const {type, fundId} = action.payload;\n return {\n ...state,\n favoriteFunds: {\n ...state.favoriteFunds,\n funds: type === 'add' && !state.favoriteFunds.funds.includes(fundId) \n ? [...state.favoriteFunds.funds, fundId]\n : type === 'delete'\n ? state.favoriteFunds.funds.filter(x => x !== fundId)\n : state.favoriteFunds.funds,\n data: type === 'delete' && state.favoriteFunds.funds.includes(fundId)\n ? state.favoriteFunds.data.filter(x => x.fundId !== fundId)\n : state.favoriteFunds.data\n }\n };\n case favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_START:\n return {\n ...state,\n navFunds: {\n ...state.navFunds,\n isFetching: true\n }\n };\n case favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n navFunds: {\n ...state.navFunds,\n isFetching: false,\n data: action.payload ?? [],\n errorMessage: null\n }\n };\n case favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n navFunds: {\n ...state.navFunds,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n case favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_START:\n return {\n ...state,\n favoriteFunds: {\n ...state.favoriteFunds,\n isFetching: true\n }\n };\n case favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n favoriteFunds: {\n ...state.favoriteFunds,\n isFetching: false,\n funds: action.payload?.map(fund => fund.fundId) ?? [],\n data: action.payload ?? [],\n errorMessage: null\n }\n };\n case favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n favoriteFunds: {\n ...state.favoriteFunds,\n isFetching: false,\n funds: [],\n data: [],\n errorMessage: action.payload\n }\n };\n case favoriteConstants.FETCH_FAVORITE_COPYPORT_START:\n return {\n ...state,\n isFetching: true\n };\n case favoriteConstants.FETCH_FAVORITE_COPYPORT_SUCCESS:\n return {\n ...state,\n isFetching: false,\n favoriteCopyport: action.payload\n };\n case favoriteConstants.FETCH_FAVORITE_COPYPORT_FAILURE:\n return {\n ...state,\n isFetching: false,\n errorMessage: action.payload\n };\n case favoriteConstants.UPDATE_FAVORITE_FUNDS_TABLE_COLUMNS:\n return {\n ...state,\n currentColumns: action.payload ?? [] \n };\n case favoriteConstants.UPDATE_FAVORITE_FUNDS_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach(attribute => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case 'sortBy': {\n if (value === 'nav' || value === 'riskLevel') {\n updateAttribute['sortType'] = state.queries.sortBy === value && state.queries.sortType !== 'd' ? 'd' : 'a'\n } else {\n updateAttribute['sortType'] = state.queries.sortBy === value && value && state.queries.sortType !== 'a' ? 'a' : 'd'\n }\n updateAttribute['sortBy'] = value;\n break;\n };\n default: updateAttribute[attribute] = value; \n break;\n };\n })\n \n return {\n ...state,\n queries: {\n ...state.queries,\n ...updateAttribute\n }\n }\n }\n default:\n return state;\n }\n};\n\nexport default favoriteReducer;\n","import { fundRankingConstants } from '../_constants/fund-ranking.constants';\n\nimport {\n appendCategory,\n removeCategory,\n userCategoryFetching,\n userCategoryData,\n userCategoryError,\n setIsFetching,\n filterDataResult,\n resetDataResult,\n resetDataResultToObject,\n setDefaultQueriesFundRanking\n} from '../_utils/fund-ranking.utils';\n\nconst initialState = {\n rank: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n fundRankInfo: {\n fundId: null,\n data: {},\n isFetching: false,\n errorMessage: null,\n },\n fundRankSearchResponse: {\n // fundId: null,\n currentPage: 1,\n totalPage: 1,\n data: [],\n isFetching: false,\n errorMessage: null,\n },\n favCategories: [],\n category: {\n isFetching: false,\n categories: [],\n errorMessage: null\n },\n userCategory: {\n userCategories: [],\n isFetching: false,\n errorMessage: undefined\n },\n navResponse: {\n navDate: '1Y',\n isFetching: false,\n data: [],\n errorMessage: null,\n },\n searchFilters: {\n isFetching: false,\n data: null,\n errorMessage: null,\n sortingFilter: [\n {\n header: '%UNIT Change',\n sortKey: 'unitChange',\n },\n {\n header: 'Morningstar rating',\n sortKey: 'morningStarRating',\n }\n ]\n },\n queries: {\n categoryCode: [],\n dividendPolicy: null,\n fundTypes: [],\n returnDateType: '1Y',\n morningStarRatings: [],\n investorRatings: [],\n purchaseFee: null,\n currencyPolicy: null,\n company: [],\n riskLevels: [],\n sortBy: 'return1Y',\n sortType: 'd',\n pageSize: 20\n },\n currentColumns: [],\n defaultColumns: [\n 'charts',\n 'nav',\n 'return6M',\n 'return1Y',\n 'return3Y',\n ],\n columnList: [\n {\n header: 'อันดับ',\n sortKey: 'rank',\n section: 'main'\n },\n {\n header: 'ชื่อกองทุน',\n sortKey: 'fundCode',\n section: 'main'\n },\n {\n header: 'Chart',\n sortKey: 'charts',\n section: 'other'\n },\n {\n header: 'ความเสี่ยง',\n sortKey: 'riskLevel',\n section: 'other'\n },\n {\n header: 'Morningstar rating',\n sortKey: 'morningStarRating',\n section: 'other'\n },\n {\n header: 'NAV',\n sortKey: 'nav',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน YTD',\n sortKey: 'returnYTD',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน 1 สัปดาห์',\n sortKey: 'return1W',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน 1 เดือน',\n sortKey: 'return1M',\n section: 'other'\n },\n {\n header: ' ผลตอบแทน 3 เดือน',\n sortKey: 'return3M',\n section: 'other'\n },\n {\n header: ' ผลตอบแทน 6 เดือน',\n sortKey: 'return6M',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน 1 ปี',\n sortKey: 'return1Y',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน 3 ปี(ต่อปี)',\n sortKey: 'return3Y',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน 5 ปี(ต่อปี)',\n sortKey: 'return5Y',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน',\n sortKey: 'performance',\n section: 'other'\n },\n {\n header: '',\n sortKey: 'previous1Y',\n section: 'other'\n },\n {\n header: '',\n sortKey: 'previous2Y',\n section: 'other'\n },\n {\n header: '',\n sortKey: 'previous3Y',\n section: 'other'\n },\n {\n header: '',\n sortKey: 'previous4Y',\n section: 'other'\n },\n {\n header: '',\n sortKey: 'previous5Y',\n section: 'other'\n }\n ],\n highlightFunds: {\n period: '1Y',\n isFetching: false,\n data: [],\n errorMessage: null,\n periodList: [\n {\n name: '1 เดือน',\n value: '1M'\n },\n {\n name: '3 เดือน',\n value: '3M'\n },\n {\n name: '6 เดือน',\n value: '6M'\n },\n {\n name: '1 ปี',\n value: '1Y'\n }\n ]\n },\n colors: ['g-bg-red', 'g-bg-purple', 'g-bg-green', 'g-bg-blue', 'g-bg-pink', 'g-bg-cyan', 'g-bg-orange', 'g-bg-teal']\n};\n\nconst fundRankingReducer = (state = initialState, action) => {\n switch (action.type) {\n case fundRankingConstants.UPDATE_FUND_RANKING_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach(attribute => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case 'sortBy': {\n if (value === 'nav' || value === 'riskLevel') {\n updateAttribute['sortType'] = state.queries.sortBy === value && state.queries.sortType !== 'd' ? 'd' : 'a'\n } else {\n updateAttribute['sortType'] = state.queries.sortBy === value && value && state.queries.sortType !== 'a' ? 'a' : 'd'\n }\n updateAttribute['sortBy'] = value;\n break;\n };\n case 'pageSize': {\n if (value !== state.queries.pageSize) {\n updateAttribute['pageSize'] = value\n }\n break;\n }\n default: updateAttribute[attribute] = value;\n break;\n };\n })\n\n return {\n ...state,\n queries: {\n ...state.queries,\n ...updateAttribute\n },\n fundRankSearchResponse: {\n ...state.fundRankSearchResponse,\n currentPage: 1\n }\n }\n };\n case fundRankingConstants.RESET_FUND_RANKING_QUERIES:\n return {\n ...state,\n queries: state.defaultQueries ?? initialState.queries\n };\n case fundRankingConstants.SET_DEFAULT_FUND_RANKING_QUERIES:\n return {\n ...state,\n queries: setDefaultQueriesFundRanking(state.queries, action.payload),\n defaultQueries: setDefaultQueriesFundRanking(state.queries, action.payload)\n };\n case fundRankingConstants.SET_CURRENT_FUND_RANKING_PAGE:\n return {\n ...state,\n fundRankSearchResponse: {\n ...state.fundRankSearchResponse,\n currentPage: action.payload ? action.payload : 1\n }\n };\n\n // Highlight funds\n case fundRankingConstants.SET_HIGHLIGHT_FUND_PERIOD:\n return {\n ...state,\n highlightFunds: {\n ...state.highlightFunds,\n period: action.payload\n }\n };\n case fundRankingConstants.FETCH_HIGHLIGHT_FUND_START:\n return {\n ...state,\n highlightFunds: {\n ...state.highlightFunds,\n isFetching: true\n }\n };\n case fundRankingConstants.FETCH_HIGHLIGHT_FUND_SUCCESS:\n return {\n ...state,\n highlightFunds: {\n ...state.highlightFunds,\n isFetching: false,\n data: action.payload\n }\n };\n case fundRankingConstants.FETCH_HIGHLIGHT_FUND_FAILURE:\n return {\n ...state,\n highlightFunds: {\n ...state.highlightFunds,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n case fundRankingConstants.FETCH_RANK_START:\n return {\n ...state,\n rank: {\n ...state.rank,\n isFetching: true\n }\n };\n case fundRankingConstants.FETCH_RANK_SUCCESS:\n return {\n ...state,\n rank: {\n ...state.rank,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n };\n case fundRankingConstants.FETCH_RANK_FAILURE:\n return {\n ...state,\n rank: {\n ...state.rank,\n isFetching: false,\n data: {},\n errorMessage: action.payload\n }\n };\n case fundRankingConstants.SET_FUND_ID_RANK:\n return {\n ...state,\n fundRankInfo: {\n ...state.fundRankInfo,\n fundId: action.payload\n }\n };\n case fundRankingConstants.FETCH_FUND_RANK_START:\n return {\n ...state,\n fundRankInfo: setIsFetching(state.fundRankInfo)\n };\n case fundRankingConstants.FETCH_FUND_RANK_SUCCESS:\n return {\n ...state,\n fundRankInfo: filterDataResult(state.fundRankInfo, action.payload),\n };\n case fundRankingConstants.FETCH_FUND_RANK_FAILURE:\n return {\n ...state,\n fundRankInfo: resetDataResultToObject(state.fundRankInfo, action.payload)\n };\n case fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_START:\n return {\n ...state,\n searchFilters: setIsFetching(state.searchFilters)\n };\n case fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_SUCCESS:\n return {\n ...state,\n searchFilters: filterDataResult(state.searchFilters, action.payload),\n };\n case fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_FAILURE:\n return {\n ...state,\n searchFilters: resetDataResultToObject(state.searchFilters, action.payload)\n };\n case fundRankingConstants.SET_RANKING_TOTAL_PAGE:\n return {\n ...state,\n currentPage: action.payload\n };\n case fundRankingConstants.FETCH_RANKINGS_START:\n return {\n ...state,\n fundRankSearchResponse: {\n ...state.fundRankSearchResponse,\n isFetching: true\n }\n };\n case fundRankingConstants.FETCH_RANKINGS_SUCCESS:\n return {\n ...state,\n fundRankSearchResponse: {\n ...state.fundRankSearchResponse,\n isFetching: false,\n errorMessage: null,\n totalPage: action.payload?.totalPage ?? 1,\n currentPage: action.payload?.currentPage ?? 1,\n data: action.payload?.items ?? []\n }\n };\n case fundRankingConstants.FETCH_RANKINGS_FAILURE:\n return {\n ...state,\n fundRankSearchResponse: {\n ...state.fundRankSearchResponse,\n isFetching: false,\n errorMessage: action.payload,\n currentPage: 1,\n totalPage: 1,\n data: []\n }\n };\n case fundRankingConstants.UPDATE_NAV_DATE_FUND_RANKING:\n return {\n ...state,\n navResponse: {\n ...state.navResponse,\n navDate: action.payload\n }\n };\n case fundRankingConstants.SET_NAV_TYPE_RANKING:\n return {\n ...state,\n navResponse: {\n ...state.navResponse,\n type: action.payload\n }\n };\n case fundRankingConstants.FETCH_NAV_RANKINGS_START:\n return {\n ...state,\n navResponse: setIsFetching(state.navResponse)\n };\n case fundRankingConstants.FETCH_NAV_RANKINGS_SUCCESS:\n return {\n ...state,\n navResponse: filterDataResult(state.navResponse, action.payload)\n };\n case fundRankingConstants.FETCH_NAV_RANKINGS_FAILURE:\n return {\n ...state,\n navResponse: resetDataResult(state.navResponse, action.payload)\n };\n case fundRankingConstants.FETCH_CATEGORIES_START:\n return {\n ...state,\n category: {\n ...state.category,\n isFetching: true\n }\n };\n case fundRankingConstants.FETCH_CATEGORIES_SUCCESS:\n return {\n ...state,\n category: {\n ...state.category,\n categories: action.payload,\n isFetching: false\n }\n };\n case fundRankingConstants.FETCH_CATEGORIES_FAILURE:\n return {\n ...state,\n category: {\n ...state.category,\n isFetching: false,\n categories: [],\n errorMessage: action.payload\n }\n };\n case fundRankingConstants.UPDATE_CATEGORIES:\n return {\n ...state,\n favCategories: action.payload\n };\n case fundRankingConstants.APPEND_CATEGORY:\n return {\n ...state,\n favCategories: appendCategory(action.payload, state.favCategories)\n };\n case fundRankingConstants.REMOVE_CATEGORY:\n return {\n ...state,\n favCategories: removeCategory(action.payload, state.favCategories)\n };\n case fundRankingConstants.FETCH_USER_CATEGORIES_START:\n return {\n ...state,\n userCategory: userCategoryFetching(state.userCategory)\n };\n case fundRankingConstants.FETCH_USER_CATEGORIES_SUCCESS:\n return {\n ...state,\n userCategory: userCategoryData(state.userCategory, action.payload)\n };\n case fundRankingConstants.FETCH_USER_CATEGORIES_FAILURE:\n return {\n ...state,\n userCategory: userCategoryError(state.userCategory, action.payload)\n };\n case fundRankingConstants.RESET_USER_CATEGORIES:\n return {\n ...state,\n userCategory: userCategoryData(state.userCategory, [])\n };\n case fundRankingConstants.UPDATE_USER_CATEGORIES:\n return {\n ...state,\n userCategory: {\n ...state.userCategory,\n ...action.payload\n }\n };\n case fundRankingConstants.UPDATE_FUND_RANKING_TABLE_COLUMNS:\n return {\n ...state,\n currentColumns: action.payload ?? []\n };\n default:\n return state;\n }\n};\n\nexport default fundRankingReducer;\n","export const setIsFetching = (state) => {\n return {\n ...state,\n isFetching: true\n }\n};\n\nexport const filterSearchResult = (state, data) => {\n return {\n ...state,\n isFetching: false,\n // currentPage: data.currentPage > 0 ? data.currentPage : 1,\n totalPage: data.totalPage ? data.totalPage : 1,\n searchData: data.items,\n errorMessage: null,\n }\n};\n\nexport const resetSearchResult = (state, message) => {\n return {\n ...state,\n isFetching: false,\n currentPage: 1,\n totalPage: 1,\n searchData: [],\n errorMessage: message,\n }\n};\n\nexport const filterSearchNavResult = (state, data) => {\n return {\n ...state,\n isFetching: false,\n navs: data\n }\n};\n\nexport const resetSearchNavResult = (state, message) => {\n return {\n ...state,\n isFetching: false,\n navs: [],\n errorMessage: message,\n }\n};\n\nexport const checkExistedCategory = (categoryCode, userCategories) => {\n if (userCategories.some((obj) => obj.categoryCode === categoryCode)) {\n return true;\n } else {\n return false;\n }\n};\n\nexport const updateCurrentPage = (state, page) => {\n return {\n ...state,\n currentPage: page ? page : 1,\n }\n};\n\nexport const setDefaultQueriesAdvanceSearch = (state, data) => {\n\tconst result = {\n\t\t...state,\n\t\tcategoryCode: [],\n\t\tdividendPolicy: data.dividendPolicy[0].code,\n\t\tfundTypes: data.fundTypes.map(item => item.code),\n\t\tinvestorRatings : data.investorRatings.map(item => item.code),\n\t\tpurchaseFee : data.purchaseFee[0].code,\n\t\tcurrencyPolicy : data.currencyPolicy[0].code,\n\t\triskLevels : data.riskLevels.map(item => item.code),\n\t\tmorningStarRatings: data.morningStarRatings.map(item => item.code),\n\t\tcompany: data.company.map(item => item.id),\n\t\tindexFund: true\n\t};\n\treturn result;\n};\n","import { advanceSearchConstants } from '../_constants/advance-search.constants';\n\nimport { \n setIsFetching,\n filterSearchNavResult, \n resetSearchNavResult,\n setDefaultQueriesAdvanceSearch\n } from '../_utils/advance-search.utils';\n\nconst initialState = {\n filters: {\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n currentHeaders: [],\n defaultHeaders: [\n 'charts', \n 'riskLevel',\n 'morningStarRating',\n 'nav',\n 'performance'\n ],\n searchResponse: {\n isFetching: false,\n errorMessage: null,\n currentPage: 1,\n totalPage: 1,\n data: []\n },\n searchNavResults: {\n isFetching: false,\n navs: [],\n errorMessage: null\n },\n navResponse: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n tableHeaders: [\n {\n header: 'ชื่อกองทุน',\n sortKey: 'fundCode',\n section: 'main'\n },\n {\n header: 'Chart',\n sortKey: 'charts',\n section: 'other'\n },\n {\n header: 'ความเสี่ยง',\n sortKey: 'riskLevel',\n section: 'other'\n },\n {\n header: 'Morningstar rating',\n sortKey: 'morningStarRating',\n section: 'other'\n },\n {\n header: 'NAV',\n sortKey: 'nav',\n section: 'other'\n },\n {\n header: '%UNIT Change',\n sortKey: 'unitChange',\n section: 'other'\n },\n {\n header: 'เงินเข้าออก',\n sortKey: 'fundFlow',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน',\n sortKey: 'performance',\n section: 'other'\n }\n ],\n navDate: '1Y',\n defaultQueries: null,\n queries: {\n categoryCode: [],\n dividendPolicy: null,\n fundTypes: [],\n topHoldingType: 'I',\n includeTopHoldngs : [],\n excludeTopHoldngs : [],\n returnPercentage: null,\n returnDateType: '1Y',\n morningStarRatings : [],\n investorRatings : [],\n purchaseFee : null,\n currencyPolicy : null,\n company : [],\n riskLevels : [],\n sortBy: 'performance',\n sortType: 'd',\n pageSize: 20\n },\n colors: ['g-bg-red', 'g-bg-purple', 'g-bg-green', 'g-bg-blue', 'g-bg-pink', 'g-bg-cyan', 'g-bg-orange', 'g-bg-teal']\n};\n\nconst advanceSearchReducer = (state = initialState, action) => {\n switch (action.type) {\n case advanceSearchConstants.UPDATE_ADVANCE_SEARCH_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach(attribute => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case 'sortBy': {\n if (value === 'nav' || value === 'riskLevel') {\n updateAttribute['sortType'] = state.queries.sortBy === value && state.queries.sortType !== 'd' ? 'd' : 'a'\n } else {\n updateAttribute['sortType'] = state.queries.sortBy === value && value && state.queries.sortType !== 'a' ? 'a' : 'd'\n }\n updateAttribute['sortBy'] = value;\n break;\n };\n case 'pageSize': {\n if (value !== state.queries.pageSize) {\n updateAttribute['pageSize'] = value\n }\n break;\n }\n default: updateAttribute[attribute] = value; \n break;\n };\n })\n \n return {\n ...state,\n queries: {\n ...state.queries,\n ...updateAttribute\n },\n searchResponse: {\n ...state.searchResponse,\n currentPage: 1\n }\n }\n };\n case advanceSearchConstants.RESET_QUERIES_ADVANCE_SEARCH:\n return {\n ...state,\n queries: state.defaultQueries\n };\n case advanceSearchConstants.UPDATE_DEFAULT_QUERIES_ADVANCE_SEARCH:\n return {\n ...state,\n queries: setDefaultQueriesAdvanceSearch(state.queries, action.payload),\n defaultQueries: setDefaultQueriesAdvanceSearch(state.queries, action.payload)\n };\n case advanceSearchConstants.FETCH_ADVANCE_SEARCH_FILTERS_START:\n return {\n ...state,\n filters: {\n ...state.filters,\n isFetching: true\n }\n };\n case advanceSearchConstants.FETCH_ADVANCE_SEARCH_FILTERS_SUCCESS:\n return {\n ...state,\n filters: {\n ...state.filters,\n isFetching: false,\n data: action.payload,\n errorMessage: null,\n }\n };\n case advanceSearchConstants.FETCH_ADVANCE_SEARCH_FILTERS_FAILURE:\n return {\n ...state,\n filters: {\n ...state.filters,\n isFetching: false,\n data: null,\n errorMessage: action.payload,\n }\n };\n case advanceSearchConstants.FETCH_ADVANCE_SEARCH_START:\n return {\n ...state,\n searchResponse: {\n ...state.searchResponse,\n isFetching: true\n }\n };\n case advanceSearchConstants.FETCH_ADVANCE_SEARCH_SUCCESS:\n return {\n ...state,\n searchResponse: {\n ...state.searchResponse,\n isFetching: false,\n errorMessage: null,\n totalPage: action.payload?.totalPage ?? 1,\n currentPage: action.payload?.currentPage ?? 1,\n data: action.payload?.items ?? []\n }\n };\n case advanceSearchConstants.FETCH_ADVANCE_SEARCH_FAILURE:\n return {\n ...state,\n searchResponse: {\n ...state.searchResponse,\n isFetching: false,\n errorMessage: action.payload,\n currentPage: 1,\n totalPage: 1,\n data: []\n }\n }\n case advanceSearchConstants.UPDATE_NAV_DATE_ADVANCE_SEARCH:\n return {\n ...state,\n navDate: action.payload\n };\n case advanceSearchConstants.FETCH_NAV_ADVANCE_SEARCH_START:\n return {\n ...state,\n searchNavResults: setIsFetching(state.searchNavResults),\n navResponse: {\n ...state.navResponse,\n isFetching: true\n }\n };\n case advanceSearchConstants.FETCH_NAV_ADVANCE_SEARCH_SUCCESS:\n return {\n ...state,\n searchNavResults: filterSearchNavResult(state.searchNavResults, action.payload),\n navResponse: {\n ...state.navResponse,\n isFetching: false,\n data: action.payload ?? [],\n errorMessage: null\n }\n };\n case advanceSearchConstants.FETCH_NAV_ADVANCE_SEARCH_FAILURE:\n return {\n ...state,\n searchNavResults: resetSearchNavResult(state.searchNavResults, action.payload),\n navResponse: {\n ...state.navResponse,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n case advanceSearchConstants.UPDATE_CURRENT_PAGE_SEARCH:\n return {\n ...state,\n searchResponse: {\n ...state.searchResponse,\n currentPage: action.payload ?? 1\n }\n };\n case advanceSearchConstants.UPDATE_TABLE_COLUMN:\n return {\n ...state,\n currentHeaders: action.payload ?? [] \n };\n default:\n return state;\n }\n};\n\nexport default advanceSearchReducer;\n","import { hotfundConstants } from '../_constants/hotfund.constants';\n\nconst initialState = {\n currentColumns: [],\n defaultColumns: [\n 'averageReturn',\n 'fundFlow',\n 'chart',\n ],\n tableColumns: [\n {\n header: 'อันดับ',\n sortKey: 'rank',\n section: 'main',\n },\n {\n header: 'กลุ่มกองทุน',\n sortKey: 'fundCategory',\n section: 'main',\n },\n {\n header: 'ผลตอบแทนเฉลี่ย',\n sortKey: 'averageReturn',\n section: 'other',\n },\n {\n header: 'ยอดเงินเข้าออก',\n sortKey: 'fundFlow',\n section: 'other',\n },\n ],\n cnsCategoryList: [\n { \n key: 'GMF', \n name: 'กองทั่วไป' \n },\n { \n key: 'LTF', \n name: 'LTF' \n },\n { \n key: 'RMF', \n name: 'RMF' \n },\n { \n key: 'SSF', \n name: 'SSF' \n },\n { \n key: 'SSFX', \n name: 'SSFX' \n },\n { \n key: 'TESG', \n name: 'TESG' \n }\n ],\n viewList: [\n { \n key: 'MIN_MAX', \n name: '5 อันดับสูงสุดต่ำสุด' \n },\n { \n key: 'ALL', \n name: 'ทุกกลุ่มกองทุน' \n },\n ],\n queries: {\n cnsCategories: ['GMF', 'LTF', 'RMF', 'SSF', 'SSFX', 'TESG'],\n dateType: '1Y',\n sortBy: null,\n sortType: 'a',\n viewType: 'MIN_MAX',\n },\n responses: {\n isFetching: false,\n data: [],\n errorMessage: null\n }\n};\n\nconst hotfundReducer = (state = initialState, action) => {\n switch (action.type) {\n case hotfundConstants.FETCH_HOTFUND_START:\n return {\n ...state,\n responses: {\n ...state.responses,\n isFetching: true\n }\n };\n case hotfundConstants.FETCH_HOTFUND_SUCCESS:\n return {\n ...state,\n responses: {\n ...state.responses,\n isFetching: false,\n data: action.payload ?? [],\n errorMessage: null\n }\n };\n case hotfundConstants.FETCH_HOTFUND_FAILURE:\n return {\n ...state,\n responses: {\n ...state.responses,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n case hotfundConstants.UPDATE_HOTFUND_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach(attribute => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case 'sortBy': {\n updateAttribute['sortType'] = state.queries.sortBy === value && state.queries.sortType !== 'a' ? 'a' : 'd'\n updateAttribute['sortBy'] = value;\n break;\n };\n default: updateAttribute[attribute] = value; \n break;\n };\n })\n\n return {\n ...state,\n queries: {\n ...state.queries,\n ...updateAttribute\n }\n }\n }\n case hotfundConstants.UPDATE_HOTFUND_TABLE_COLUMNS:\n return {\n ...state,\n currentColumns: action.payload ?? [] \n };\n default:\n return state;\n }\n};\n\nexport default hotfundReducer;\n","import { compareConstants } from '../_constants/compare.constants';\n\nconst initialState = {\n compareFunds: null,\n tempCompareFunds: [],\n isFetching: false,\n isOpenCompareModal: false,\n errorMessage: undefined,\n searchIndex: 0,\n statusReturn: false,\n statusDrawdown: false,\n statusProportion: false,\n fundList: [],\n graph: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n funds: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n fundByPeriod: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n navFunds: {\n isFetching: false,\n data: [],\n errorMessage: null\n }\n};\n\nconst compareReducer = (state = initialState, action) => {\n switch (action.type) {\n case compareConstants.TOGGLED_COMPARE_MODAL:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisOpenCompareModal: !state.isOpenCompareModal\n\t\t\t};\n case compareConstants.ADD_FUNDIDS_TO_COMPARE_FUNDS:\n return {\n ...state,\n fundList: action.payload.map(fund => ({ ...fund, isShowGraph: fund.isShowGraph ?? true }))\n };\n case compareConstants.UPDATE_FUNDIDS_TO_COMPARE_FUNDS:\n const { type, fundId } = action.payload\n if (type === 'DELETE') {\n return {\n ...state,\n fundList: state.fundList.filter(fund => fund.fundId !== fundId)\n }\n }\n if (type === 'UPDATE') {\n return {\n ...state,\n fundList: state.fundList.map(fund => fund.fundId === fundId ?\n { ...fund, isShowGraph: !fund.isShowGraph } : fund)\n }\n }\n return\n case compareConstants.UPDATE_TEMPORARY_COMPARE_FUNDS: {\n let { fundId } = action.payload;\n let isAddedFundId = state.tempCompareFunds.some(compareFund => compareFund.fundId.includes(fundId));\n\n if (fundId && !isAddedFundId) {\n return {\n ...state,\n tempCompareFunds: [\n ...state.tempCompareFunds,\n action.payload\n ]\n };\n }\n\n return state;\n }\n case compareConstants.REMOVED_TEMPORARY_COMPARE_FUNDS: {\n let { fundId } = action.payload;\n\n return {\n ...state,\n tempCompareFunds: state.tempCompareFunds.filter(fund => fund.fundId !== fundId)\n };\n }\n case compareConstants.RESET_TEMPORARY_COMPARE_FUNDS:\n return {\n ...state,\n tempCompareFunds: state.fundList\n };\n case compareConstants.FETCH_COMPARE_START:\n return {\n ...state,\n funds: {\n ...state.funds,\n isFetching: true\n }\n };\n case compareConstants.FETCH_COMPARE_SUCCESS:\n return {\n ...state,\n compareFunds: action.payload,\n funds: {\n ...state.funds,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n };\n case compareConstants.FETCH_COMPARE_FAILURE:\n return {\n ...state,\n funds: {\n ...state.funds,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n // case compareConstants.CLEAR_FUND_COMPARE:\n // return {\n // ...state,\n // compareFunds: null,\n // funds: {\n // ...state.funds,\n // fundIds: [],\n // data: []\n // }\n // };\n case compareConstants.CLEAR_FUND_COMPARE:\n return {\n ...state,\n compareFunds: null,\n funds: {\n ...state.funds,\n fundIds: [],\n data: []\n }\n };\n case compareConstants.TOGGLE_RETURN:\n return {\n ...state,\n statusReturn: !state.statusReturn\n };\n case compareConstants.TOGGLE_DRAWDOWN:\n return {\n ...state,\n statusDrawdown: !state.statusDrawdown\n };\n case compareConstants.TOGGLE_PROPORTION:\n return {\n ...state,\n statusProportion: !state.statusProportion\n };\n case compareConstants.INSERT_SEARCH_INDEX:\n return {\n ...state,\n searchIndex: action.payload\n };\n case compareConstants.FETCH_GRAPH_COMPARE_FUNDS_START:\n return {\n ...state,\n graph: {\n ...state.graph,\n isFetching: true\n }\n };\n case compareConstants.FETCH_GRAPH_COMPARE_FUNDS_SUCCESS:\n return {\n ...state,\n graph: {\n ...state.graph,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n };\n case compareConstants.FETCH_GRAPH_COMPARE_FUNDS_FAILURE:\n return {\n ...state,\n graph: {\n ...state.graph,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n case compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_START:\n return {\n ...state,\n fundByPeriod: {\n ...state.fundByPeriod,\n isFetching: true\n }\n };\n case compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_SUCCESS:\n return {\n ...state,\n fundByPeriod: {\n ...state.fundByPeriod,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n };\n case compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_FAILURE:\n return {\n ...state,\n fundByPeriod: {\n ...state.fundByPeriod,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n case compareConstants.FETCH_NAV_COMPARE_FUNDS_START:\n return {\n ...state,\n navFunds: {\n ...state.navFunds,\n isFetching: true\n }\n };\n case compareConstants.FETCH_NAV_COMPARE_FUNDS_SUCCESS:\n return {\n ...state,\n navFunds: {\n ...state.navFunds,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n };\n case compareConstants.FETCH_NAV_COMPARE_FUNDS_FAILURE:\n return {\n ...state,\n navFunds: {\n ...state.navFunds,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n default:\n return state;\n }\n};\n\nexport default compareReducer;\n","import { informationConstants } from '../_constants/information.constants';\n\nimport { filterCalendarResults } from '../_utils/calendar.utils';\nimport {\n changePage,\n filterMaximumDrawdown,\n resetMaximumDrawdown,\n changeDrawdownSortingFilters,\n changeNavGraphDate,\n changeSortedDrawdown,\n resetMonthlyReturn,\n filterPriceRange,\n resetPriceRange,\n filterVolatilities,\n resetVolatilities,\n filterReturnExpenseRatio,\n resetReturnExpenseRatio,\n filterMonthlyProfit,\n resetMonthlyProfit,\n filterReturnHistory,\n resetReturnHistory,\n setIsFetching,\n filterDataResult,\n resetDataResult,\n resetDataResultToObject\n} from '../_utils/information.utils';\n\nimport { filterMonthlyReturn } from '../_utils/investment.utils';\nimport { sub } from 'date-fns';\n\nconst initialState = {\n fundCode: null,\n portfolioInfo: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n recentTab: '1',\n informationWidget: {\n tabList: [\n /*{\n name: 'ฟีดข่าว',\n icon: 'FeedIcon'\n },*/\n {\n name: 'ข้อมูลกองทุน',\n icon: 'InformationIcon'\n },\n {\n name: 'พอร์ต',\n icon: 'PortfolioIcon'\n },\n {\n name: 'สถิติ',\n icon: 'ChartIcon'\n },\n {\n name: 'กราฟ',\n icon: 'InvestmentStatisticIcon'\n },\n {\n name: 'NAV ย้อนหลัง',\n icon: 'HistoryIcon'\n },\n {\n name: 'ปันผล',\n icon: 'InvestmentIcon'\n }\n ],\n graphMode: [\n {\n name: 'NAV & AUM',\n value: 'NAV'\n },\n {\n name: 'ผลตอบแทน',\n value: 'PERCENT_CHANGE'\n },\n {\n name: 'เงินเข้าออก',\n value: 'FUND_FLOW'\n }\n ],\n selectedBtn: 0,\n fundInformation: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n navGraph: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n tradingInformation: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n averageRating: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n calendar: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n },\n fundPortInfo: {\n portInformation: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n portChartByChartType: {\n isFetching: false,\n data: {},\n errorMessage: null\n }\n },\n statistic: {\n monthlyReturns: [],\n monthlyPofit: null,\n priceRanges: [],\n volatilities: [],\n returnExpenseRatio: null,\n returnHistory: null,\n weeklyRanking: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n maximumDrawdownList: [],\n drawdownListByDate: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n navGraphDateRange: {\n startDate: (sub(new Date(), {years: 1})).toJSON(),\n endDate: (new Date()).toJSON()\n },\n drawdownNavGraph: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n currentDrawdownSortingFilters: 'sortedByPercentage',\n drawdownSortingFilters: [\n {\n name: 'ตามเวลา',\n value: 'sortedByDate'\n },\n {\n name: '% ติดลบ',\n value: 'sortedByPercentage'\n }\n ]\n },\n graphInfo: {\n graphMode: [\n {\n name: 'NAV & AUM',\n value: 'NAV'\n },\n {\n name: 'ผลตอบแทน',\n value: 'PERCENT_CHANGE'\n },\n {\n name: 'เงินเข้าออก',\n value: 'FUND_FLOW'\n }\n ],\n historicalNavGraph: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n },\n fundHistoricalNav: {\n currentPage: 1,\n totalPage: null,\n headers: [\n {\n header: 'วันที่',\n sortKey: 'dateTime'\n },\n {\n header: 'NAV',\n sortKey: 'navValue'\n },\n {\n header: 'ราคาขาย',\n sortKey: 'saleValue'\n },\n {\n header: 'ราคาซื้อคืน',\n sortKey: 'buyValue'\n },\n {\n header: 'เปลี่ยนแปลง',\n sortKey: 'changeValue'\n },\n {\n header: '%CHANGE',\n sortKey: 'changePercent'\n },\n {\n header: 'AUM',\n sortKey: 'aumValue'\n }\n ],\n historicalNav: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n },\n dividend: {\n currentPage: 1,\n totalPage: null,\n headers: [\n {\n header: 'ลำดับ',\n sortKey: 'order'\n },\n {\n header: 'วันปิดสมุดทะเบียน',\n sortKey: 'dividendDate'\n },\n {\n header: 'วันที่จ่ายปันผล',\n sortKey: 'paymentDate'\n },\n {\n header: 'บาท / หน่วย',\n sortKey: 'dividend'\n }\n ],\n dividendGroupByYear: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n dividendByDateType: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n descriptions: {\n isFetching: false,\n data: [],\n errorMessage: null\n }\n },\n};\n\nconst informationReducer = (state = initialState, action) => {\n switch (action.type) {\n case informationConstants.UPDATE_FUND_ID: // Update Fund Code to Fetching All APIs in This reducer\n return {\n ...state,\n fundCode: action.payload\n };\n case informationConstants.UPDATE_RECENT_TAB: // remember recent tab\n return {\n ...state,\n recentTab: action.payload\n };\n case informationConstants.FETCH_FUND_INFO_START: // Fetching Fund InFormation Data \n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n fundInformation: setIsFetching(state.informationWidget.fundInformation)\n }\n };\n case informationConstants.FETCH_FUND_INFO_SUCCESS:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n fundInformation: filterDataResult(state.informationWidget.fundInformation, action.payload)\n }\n };\n case informationConstants.FETCH_FUND_INFO_FAILURE:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n fundInformation: resetDataResultToObject(state.informationWidget.fundInformation)\n }\n };\n case informationConstants.CLEAR_FUND_INFO:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n fundInformation: resetDataResultToObject(state.informationWidget.fundInformation)\n }\n };\n case informationConstants.FETCH_TRADING_INFO_START: // Fetching Fund InFormation Data \n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n tradingInformation: setIsFetching(state.informationWidget.tradingInformation)\n }\n };\n case informationConstants.FETCH_TRADING_INFO_SUCCESS:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n tradingInformation: filterDataResult(state.informationWidget.tradingInformation, action.payload)\n }\n };\n case informationConstants.FETCH_TRADING_INFO_FAILURE:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n tradingInformation: resetDataResultToObject(state.informationWidget.tradingInformation)\n }\n };\n case informationConstants.FETCH_PORTFOLIO_INFO_START: // Fetching Fund InFormation Data \n return {\n ...state,\n portfolioInfo: {\n ...state.portfolioInfo,\n isFetching: true,\n }\n };\n case informationConstants.FETCH_PORTFOLIO_INFO_SUCCESS:\n return {\n ...state,\n portfolioInfo: {\n ...state.portfolioInfo,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n };\n case informationConstants.FETCH_PORTFOLIO_INFO_FAILURE:\n return {\n ...state,\n portfolioInfo: {\n ...state.portfolioInfo,\n isFetching: false,\n data: {},\n errorMessage: action.payload\n }\n };\n case informationConstants.FETCH_FUND_AVERAGE_RATING_START: // Fetching Fund InFormation Data \n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n averageRating: setIsFetching(state.informationWidget.averageRating)\n }\n };\n case informationConstants.FETCH_FUND_AVERAGE_RATING_SUCCESS:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n averageRating: filterDataResult(state.informationWidget.averageRating, action.payload)\n }\n };\n case informationConstants.FETCH_FUND_AVERAGE_RATING_FAILURE:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n averageRating: resetDataResultToObject(state.informationWidget.averageRating)\n }\n };\n case informationConstants.FETCH_CALENDAR_FUND_START:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n calendar: setIsFetching(state.informationWidget.calendar)\n }\n };\n case informationConstants.FETCH_CALENDAR_FUND_SUCCESS:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n calendar: filterCalendarResults(state.informationWidget.calendar, action.payload)\n }\n };\n case informationConstants.FETCH_CALENDAR_FUND_FAILURE:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n calendar: resetDataResult(state.informationWidget.calendar)\n }\n };\n case informationConstants.FETCH_FUND_PORT_INFO_START:\n return {\n ...state,\n fundPortInfo: {\n ...state.fundPortInfo,\n portInformation: setIsFetching(state.fundPortInfo.portInformation)\n }\n };\n case informationConstants.FETCH_FUND_PORT_INFO_SUCCESS:\n return {\n ...state,\n fundPortInfo: {\n ...state.fundPortInfo,\n portInformation: filterDataResult(state.fundPortInfo.portInformation, action.payload)\n }\n };\n case informationConstants.FETCH_FUND_PORT_INFO_FAILURE:\n return {\n ...state,\n fundPortInfo: {\n ...state.fundPortInfo,\n portInformation: resetDataResultToObject(state.fundPortInfo.portInformation)\n }\n };\n case informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_START:\n return {\n ...state,\n fundPortInfo: {\n ...state.fundPortInfo,\n portChartByChartType: setIsFetching(state.fundPortInfo.portChartByChartType)\n }\n };\n case informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_SUCCESS:\n return {\n ...state,\n fundPortInfo: {\n ...state.fundPortInfo,\n portChartByChartType: filterDataResult(state.fundPortInfo.portChartByChartType, action.payload)\n }\n };\n case informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_FAILURE:\n return {\n ...state,\n fundPortInfo: {\n ...state.fundPortInfo,\n portChartByChartType: resetDataResultToObject(state.fundPortInfo.portChartByChartType)\n }\n };\n case informationConstants.FETCH_HISTORICAL_NAV_START:\n return {\n ...state,\n fundHistoricalNav: {\n ...state.fundHistoricalNav,\n historicalNav: setIsFetching(state.fundHistoricalNav.historicalNav)\n }\n };\n case informationConstants.FETCH_HISTORICAL_NAV_SUCCESS:\n return {\n ...state,\n fundHistoricalNav: {\n ...state.fundHistoricalNav,\n currentPage: action.payload.currentPage,\n totalPage: action.payload.totalPage,\n historicalNav: filterDataResult(state.fundHistoricalNav.historicalNav, action.payload.items)\n }\n };\n case informationConstants.FETCH_HISTORICAL_NAV_FAILURE:\n return {\n ...state, \n fundHistoricalNav: {\n ...state.fundHistoricalNav,\n currentPage: 1,\n totalPage: 1,\n historicalNav: resetDataResult(state.fundHistoricalNav.historicalNav)\n }\n };\n case informationConstants.FETCH_HISTORICAL_NAV_CHANGE_PAGE:\n return {\n ...state,\n fundHistoricalNav: changePage(state.fundHistoricalNav, action.payload)\n };\n case informationConstants.FETCH_HISTORICAL_NAV_GRAPH_START:\n return {\n ...state,\n graphInfo: {\n ...state.graphInfo,\n historicalNavGraph: setIsFetching(state.graphInfo.historicalNavGraph)\n },\n };\n case informationConstants.FETCH_HISTORICAL_NAV_GRAPH_SUCCESS:\n return {\n ...state,\n graphInfo: {\n ...state.graphInfo,\n historicalNavGraph: filterDataResult(state.graphInfo.historicalNavGraph, action.payload)\n },\n };\n case informationConstants.FETCH_HISTORICAL_NAV_GRAPH_FAILURE:\n return {\n ...state,\n graphInfo: {\n ...state.graphInfo,\n historicalNavGraph: resetDataResult(state.graphInfo.historicalNavGraph)\n },\n };\n case informationConstants.FETCH_WEEKLY_FUND_RANKING_START:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n weeklyRanking: setIsFetching(state.statistic.weeklyRanking)\n }\n }; \n case informationConstants.FETCH_WEEKLY_FUND_RANKING_SUCCESS:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n weeklyRanking: filterDataResult(state.statistic.weeklyRanking, action.payload)\n }\n };\n case informationConstants.FETCH_WEEKLY_FUND_RANKING_FAILURE:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n weeklyRanking: resetDataResultToObject(state.statistic.weeklyRanking, action.payload)\n }\n };\n case informationConstants.FETCH_DRAWDOWN_BY_DATE_START:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n drawdownListByDate: setIsFetching(state.statistic.drawdownListByDate)\n }\n }; \n case informationConstants.FETCH_DRAWDOWN_BY_DATE_SUCCESS:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n drawdownListByDate: filterDataResult(state.statistic.drawdownListByDate, action.payload)\n }\n };\n case informationConstants.FETCH_DRAWDOWN_BY_DATE_FAILURE:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n drawdownListByDate: resetDataResult(state.statistic.drawdownListByDate, action.payload)\n }\n };\n case informationConstants.FETCH_MAXIMUM_DRAWDOWN_START:\n return {\n ...state,\n isFetching: true\n }; \n case informationConstants.FETCH_MAXIMUM_DRAWDOWN_SUCCESS:\n return {\n ...state,\n statistic: filterMaximumDrawdown(state.statistic, action.payload)\n };\n case informationConstants.FETCH_MAXIMUM_DRAWDOWN_FAILURE:\n return {\n ...state,\n statistic: resetMaximumDrawdown(state.statistic),\n errorMessage: action.payload\n };\n case informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_START:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n drawdownNavGraph: {\n ...state.statistic.drawdownNavGraph,\n isFetching: true\n }\n }\n }; \n case informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_SUCCESS:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n drawdownNavGraph: {\n ...state.statistic.drawdownNavGraph,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n }\n };\n case informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_FAILURE:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n drawdownNavGraph: {\n ...state.statistic.drawdownNavGraph,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n }\n };\n case informationConstants.FETCH_MONTHLY_RETURN_START:\n return {\n ...state,\n statistic: resetMonthlyReturn(state.statistic)\n }; \n case informationConstants.FETCH_MONTHLY_RETURN_SUCCESS:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n monthlyReturns: filterMonthlyReturn(action.payload)\n }\n };\n case informationConstants.FETCH_MONTHLY_RETURN_FAILURE:\n return {\n ...state,\n statistic: resetMonthlyReturn(state.statistic),\n errorMessage: action.payload\n };\n case informationConstants.FETCH_PRICE_RANGE_START:\n return {\n ...state,\n statistic: resetPriceRange(state.statistic)\n }; \n case informationConstants.FETCH_PRICE_RANGE_SUCCESS:\n return {\n ...state,\n statistic: filterPriceRange(state.statistic, action.payload)\n };\n case informationConstants.FETCH_PRICE_RANGE_FAILURE:\n return {\n ...state,\n statistic: resetPriceRange(state.statistic),\n errorMessage: action.payload\n };\n case informationConstants.FETCH_VOLATILITIES_START:\n return {\n ...state,\n statistic: resetVolatilities(state.statistic)\n }; \n case informationConstants.FETCH_VOLATILITIES_SUCCESS:\n return {\n ...state,\n statistic: filterVolatilities(state.statistic, action.payload)\n };\n case informationConstants.FETCH_VOLATILITIES_FAILURE:\n return {\n ...state,\n statistic: resetVolatilities(state.statistic),\n };\n case informationConstants.FETCH_RETURN_EXPENSE_RATIO_START:\n return {\n ...state,\n }; \n case informationConstants.FETCH_RETURN_EXPENSE_RATIO_SUCCESS:\n return {\n ...state,\n statistic: filterReturnExpenseRatio(state.statistic, action.payload)\n };\n case informationConstants.FETCH_RETURN_EXPENSE_RATIO_FAILURE:\n return {\n ...state,\n statistic: resetReturnExpenseRatio(state.statistic),\n };\n case informationConstants.FETCH_MONTHLY_PROFIT_START:\n return {\n ...state,\n }; \n case informationConstants.FETCH_MONTHLY_PROFIT_SUCCESS:\n return {\n ...state,\n statistic: filterMonthlyProfit(state.statistic, action.payload)\n };\n case informationConstants.FETCH_MONTHLY_PROFIT_FAILURE:\n return {\n ...state,\n statistic: resetMonthlyProfit(state.statistic),\n };\n case informationConstants.FETCH_RETURN_HISTORY_START:\n return {\n ...state,\n }; \n case informationConstants.FETCH_RETURN_HISTORY_SUCCESS:\n return {\n ...state,\n statistic: filterReturnHistory(state.statistic, action.payload)\n };\n case informationConstants.FETCH_RETURN_HISTORY_FAILURE:\n return {\n ...state,\n statistic: resetReturnHistory(state.statistic),\n };\n case informationConstants.CHANGE_DRAWDOWN_STATISTIC_FILTERS:\n return {\n ...state,\n statistic: changeDrawdownSortingFilters(state.statistic, action.payload)\n };\n case informationConstants.CHANGE_NAV_GRAPH_DATE:\n return {\n ...state,\n statistic: changeNavGraphDate(state.statistic, action.payload),\n };\n case informationConstants.CHANGE_SORTED_DRAWDOWN:\n return {\n ...state,\n statistic: changeSortedDrawdown(state.statistic, action.payload),\n };\n case informationConstants.FETCH_DIVIDEND_START:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n dividendByDateType: setIsFetching(state.dividend.dividendByDateType)\n }\n };\n case informationConstants.FETCH_DIVIDEND_SUCCESS:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n currentPage: action.payload.currentPage,\n totalPage: action.payload.totalPage,\n dividendByDateType: filterDataResult(state.dividend.dividendByDateType, action.payload.items)\n }\n };\n case informationConstants.FETCH_DIVIDEND_FAILURE:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n currentPage: 1,\n totalPage: 1,\n dividendByDateType: resetDataResult(state.dividend.dividendByDateType, action.payload)\n }\n };\n case informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_START:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n dividendGroupByYear: setIsFetching(state.dividend.dividendGroupByYear)\n }\n };\n case informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_SUCCESS:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n dividendGroupByYear: filterDataResult(state.dividend.dividendGroupByYear, action.payload)\n }\n };\n case informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_FAILURE:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n dividendGroupByYear: resetDataResult(state.dividend.dividendGroupByYear, action.payload)\n }\n };\n case informationConstants.FETCH_DIVIDEND_DESCRIPTION_START:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n descriptions: setIsFetching(state.dividend.descriptions)\n }\n };\n case informationConstants.FETCH_DIVIDEND_DESCRIPTION_SUCCESS:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n descriptions: filterDataResult(state.dividend.descriptions, action.payload)\n }\n };\n case informationConstants.FETCH_DIVIDEND_DESCRIPTION_FAILURE:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n descriptions: resetDataResult(state.dividend.descriptions, action.payload)\n }\n };\n case informationConstants.FETCH_DIVIDEND_CHANGE_PAGE:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n currentPage: action.payload\n }\n };\n default:\n return state;\n }\n};\n\nexport default informationReducer;\n","import { orderRequestConstants } from \"../_constants/order-request.constants\";\nimport {\n dispatchSearchFunds,\n dispatchSearchPortfolios,\n} from \"../_utils/order-request.utils\";\n\nconst initialState = {\n // Modal State\n isOpenModal: false,\n\n // Active tab\n activeTab: \"Buy\", // (eg. 'Buy', 'Sell', 'Switch')\n subActiveTab: \"SINGLE\", // (eg. 'SINGLE', 'DCA', 'BOTH')\n navigationFund: null,\n checkedFundAbleToOrder: {\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n orderRequestForm: null,\n\n // Fund Infomation\n fundInfo: {\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n\n fundInfo2: {\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n\n confirmOrderFund: {\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n\n isFetching: false,\n responseMessage: [],\n searchFundInfo: [],\n searchText: null,\n showResponseMessage: false,\n errorMessage: null,\n\n // form\n latestPlan: {},\n latestSettleDate: {},\n};\n\nconst orderRequestReducer = (state = initialState, action) => {\n switch (action.type) {\n // Toggled Buy-Sell Modals.\n case orderRequestConstants.TOGGLED_ORDER_FUNDS_REQUEST_MODAL:\n return {\n ...state,\n isOpenModal: !state.isOpenModal,\n fundId: state.isOpenModal ? null : state.fundId,\n };\n case orderRequestConstants.CLEAR_ERROR_MESSAGE:\n return {\n ...state,\n errorMessage: null,\n // showResponseMessage: false\n };\n // Updated Active Tab (buy, sell, switch).\n case orderRequestConstants.UPDATE_ACTIVE_TAB_ORDER_FUNDS_REQUEST_MODAL: {\n const { activeTab, subActiveTab } = action.payload;\n if (\n !action.payload ||\n (activeTab === state.activeTab && subActiveTab === state.subActiveTab)\n ) {\n return state;\n }\n\n let resetSubActiveTab = subActiveTab ?? state.subActiveTab;\n if (activeTab === \"Buy\") {\n resetSubActiveTab = \"SINGLE\";\n }\n\n if (activeTab === \"Sell\") {\n // REMOVE THIS CONDITION WHEN SUB ACTIVE HAVE SELL CONTINEOUS TAB.\n return {\n ...state,\n activeTab: activeTab,\n subActiveTab: subActiveTab ?? initialState.subActiveTab,\n };\n }\n\n return {\n ...state,\n activeTab: activeTab ?? state.activeTab,\n subActiveTab: subActiveTab ?? resetSubActiveTab,\n };\n }\n // Updated Fund Id to order request.\n case orderRequestConstants.UPDATE_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL:\n return !action.payload\n ? state\n : {\n ...state,\n navigationFund: action.payload,\n };\n case orderRequestConstants.CLEAR_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL:\n return {\n ...state,\n navigationFund: null,\n };\n // Fetch Fund Info (Buy, Sell, Switch-Out).\n case orderRequestConstants.FETCH_BUY_FUND_INFO_START:\n return {\n ...state,\n fundInfo: {\n ...state.fundInfo,\n isFetching: true,\n },\n };\n case orderRequestConstants.FETCH_SELL_FUND_INFO_START:\n return {\n ...state,\n isFetching: true,\n fundInfo: {\n ...state.fundInfo,\n isFetching: true,\n },\n };\n case orderRequestConstants.UPDATE_FUND_INFO:\n return {\n ...state,\n fundInfo: {\n ...state.fundInfo,\n isFetching: false,\n data: action.payload,\n errorMessage: null,\n },\n };\n case orderRequestConstants.CLEAR_FUND_INFO:\n return {\n ...state,\n fundInfo: {\n ...state.fundInfo,\n isFetching: false,\n data: null,\n errorMessage: action.payload,\n },\n };\n\n // Fetch Fund Info2 (Switch-In).\n case orderRequestConstants.FETCH_SWITCH_FUND_INFO_START:\n return {\n ...state,\n fundInfo2: {\n ...state.fundInfo2,\n isFetching: true,\n },\n };\n case orderRequestConstants.UPDATE_FUNDS_INFO_2:\n return {\n ...state,\n fundInfo2: {\n ...state.fundInfo2,\n isFetching: false,\n data: action.payload,\n errorMessage: null,\n },\n };\n case orderRequestConstants.CLEAR_FUND_INFO_2:\n return {\n ...state,\n fundInfo2: {\n ...state.fundInfo2,\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n };\n\n // Checked Fund able to order. (Buy, Switch)\n case orderRequestConstants.CLEAR_CHECKED_FUND_ABLE:\n return {\n ...state,\n checkedFundAbleToOrder: initialState.checkedFundAbleToOrder,\n showResponseMessage: false,\n orderRequestForm: null,\n };\n case orderRequestConstants.CHECKED_BUYABLE_FUND_START:\n return {\n ...state,\n orderRequestForm: action.payload,\n checkedFundAbleToOrder: {\n ...state.checkedFundAbleToOrder,\n isFetching: true,\n },\n };\n case orderRequestConstants.CHECKED_SELLABLE_FUND_START:\n return {\n ...state,\n orderRequestForm: action.payload,\n checkedFundAbleToOrder: {\n ...state.checkedFundAbleToOrder,\n isFetching: true,\n },\n };\n case orderRequestConstants.CHECKED_SWITCHABLE_FUND_START:\n return {\n ...state,\n orderRequestForm: action.payload,\n checkedFundAbleToOrder: {\n ...state.checkedFundAbleToOrder,\n isFetching: true,\n },\n };\n case orderRequestConstants.CHECKED_FUND_ABLE_TO_ORDER_SUCCESS:\n return {\n ...state,\n checkedFundAbleToOrder: {\n ...state.checkedFundAbleToOrder,\n isFetching: false,\n data: action.payload,\n errorMessage: null,\n },\n showResponseMessage: true,\n };\n case orderRequestConstants.CHECKED_FUND_ABLE_TO_ORDER_FAILURE:\n return {\n ...state,\n checkedFundAbleToOrder: {\n ...state.checkedFundAbleToOrder,\n isFetching: false,\n data: [],\n // errorMessage: action.payload\n },\n errorMessage: action.payload,\n };\n\n // Confirmed Order Fund.\n case orderRequestConstants.CONFIRM_ORDER_FUND_START:\n return {\n ...state,\n confirmOrderFund: {\n ...state.confirmOrderFund,\n isFetching: true,\n },\n };\n case orderRequestConstants.CONFIRM_ORDER_FUND_SUCCESS:\n return {\n ...state,\n confirmOrderFund: {\n ...state.confirmOrderFund,\n isFetching: false,\n data: action.payload,\n errorMessage: null,\n },\n };\n case orderRequestConstants.CONFIRM_ORDER_FUND_FAILURE:\n return {\n ...state,\n confirmOrderFund: {\n ...state.confirmOrderFund,\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n errorMessage: action.payload,\n };\n case orderRequestConstants.RESET_CONFIRM_ORDER_FUND:\n return {\n ...state,\n confirmOrderFund: {\n ...state.confirmOrderFund,\n data: null,\n errorMessage: null,\n },\n };\n // SEARCH FUND INFORMATION\n case orderRequestConstants.CLEAR_SEARCH_FUNDS_INFO:\n return {\n ...state,\n searchFundInfo: null,\n fundInfo: {\n ...state.fundInfo,\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n fundId: null,\n };\n case orderRequestConstants.UPDATE_SEARCH_FUNDS_INFO:\n return {\n ...state,\n searchText: action.payload,\n };\n case orderRequestConstants.REMOVE_SEARCH_FUNDS_INFO:\n return {\n ...state,\n searchText: null,\n };\n // PORTIFOLIOS SEARCH\n case orderRequestConstants.UPDATE_SEARCH_PORTFOLIOS:\n return {\n ...state,\n searchText: action.payload,\n };\n case orderRequestConstants.TOGGLE_MODAL_MESSAGE:\n return {\n ...state,\n showResponseMessage: !state.showResponseMessage,\n orderRequestForm: null,\n };\n // LATEST SELECT PLAN\n case orderRequestConstants.UPDATE_LATEST_PLAN:\n return {\n ...state,\n latestPlan: action.payload,\n };\n case orderRequestConstants.CLEAR_LATEST_PLAN:\n return {\n ...state,\n latestPlan: {},\n };\n // LATEST SELECT SETTLE DATE\n case orderRequestConstants.UPDATE_LATEST_SETTLE_DATE:\n return {\n ...state,\n latestSettleDate: action.payload,\n };\n default:\n return state;\n }\n};\n\nexport default orderRequestReducer;\n","import { ipoConstants } from '../_constants/ipo.constants';\nimport {\n setIsFetching,\n filterIpoResults, \n resetIpoResults, \n sortType\n} from '../_utils/ipo.utils';\n\nconst initialState = {\n ipos: {\n isFetching: false,\n ipoResults: [],\n errorMessage: null\n },\n detailModal: false,\n currentDetailModal: null,\n queries: {\n sortBy: null\n }\n};\n\nconst ipoReducer = (state = initialState, action) => {\n switch (action.type) {\n case ipoConstants.FETCH_IPOS_START:\n return {\n ...state,\n ipos: setIsFetching(state.ipos)\n };\n case ipoConstants.FETCH_IPOS_SUCCESS:\n return {\n ...state,\n ipos: filterIpoResults(state.ipos, action.payload)\n };\n case ipoConstants.FETCH_IPOS_FAILURE:\n return {\n ...state,\n ipos: resetIpoResults(state.ipos, action.payload)\n };\n case ipoConstants.TOGGLE_DETAIL_MODAL:\n return {\n ...state,\n detailModal: !state.detailModal\n };\n case ipoConstants.SET_CURRENT_DETAIL_MODAL:\n return {\n ...state,\n currentDetailModal: action.payload\n };\n case ipoConstants.UPDATE_IPO_QUERIES:{\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach(attribute => {\n let value = action.payload[`${attribute}`];\n updateAttribute[attribute] = value;\n })\n\n return {\n ...state,\n queries: {\n ...state.queries,\n ...updateAttribute\n }\n };\n }\n default:\n return state;\n }\n};\n\nexport default ipoReducer;\n","import { monthlyReportConstants } from '../_constants/monthly-report.constants';\nimport {\n setIsFetching,\n resetResponseDataArrays,\n filterResponseData,\n resetResponseDataObject\n} from '../_utils/general.utils';\n\nimport { nanoid } from 'nanoid';\n\nlet newDate = (new Date()).toJSON();\n\nconst initialState = {\n sharedQueries: {\n date: newDate\n },\n monthlyReportTable: {\n queries: {\n sortType: 'd',\n sortKey: null,\n groupType: 'ACCOUNT_TYPE'\n },\n headers : [\n {\n header: 'ชื่อกองทุน',\n sortKey: 'fundCode'\n },\n {\n header: 'เงินลงทุน',\n sortKey: 'investmentAmount'\n },\n {\n header: 'มูลค่าปัจจุบัน',\n sortKey: 'marketAmount'\n },\n {\n header: 'ราคาทุนเฉลี่ย',\n sortKey: 'price'\n },\n {\n header: 'ราคาตลาด',\n sortKey: 'nav'\n },\n {\n header: 'P/L',\n sortKey: 'profitLoss'\n },\n {\n header: '%Port',\n sortKey: 'percentage'\n }\n ],\n responses: {\n isFetching: false,\n data: {},\n errorMessage: null\n }\n },\n monthlyReportChart: {\n cnsCategoryList: [\n {\n key: 'GMF',\n name: 'กองทั่วไป'\n },\n {\n key: 'LTF',\n name: 'LTF'\n },\n {\n key: 'RMF',\n name: 'RMF'\n },\n {\n key: 'SSF',\n name: 'SSF'\n },\n {\n key: 'SSFX',\n name: 'SSFX'\n },\n {\n key: 'TESG',\n name: 'TESG'\n }\n ],\n headers : [\n {\n header: 'เงินลงทุน',\n sortKey: 'investmentAmount'\n },\n {\n header: 'P/L',\n sortKey: 'profitLoss'\n },\n {\n header: 'มูลค่าตลาด',\n sortKey: 'marketAmount'\n },\n {\n header: '%Port',\n sortKey: 'profitLossPercentage'\n }\n ],\n chartViewList: [\n {\n key: 'CATEGORY',\n name: 'ประเภทกองทุน'\n },\n {\n key: 'FUND_LIST',\n name: 'รายกองทุน'\n },\n {\n key: 'RISK_LEVEL',\n name: 'ตามความเสี่ยง'\n },\n {\n key: 'ASSET_ALOCATE',\n name: 'ประเภทสินทรัพย์'\n }\n ],\n queries: {\n groupType: 'ACCOUNT_TYPE',\n chartView: 'CATEGORY',\n cnsCategory: []\n },\n responses: {\n isFetching: false,\n data: [],\n errorMessage: null\n }\n }\n};\n\nconst monthlyReportReducer = (state = initialState, action) => {\n switch (action.type) {\n case monthlyReportConstants.SET_MONTHLY_REPORT_SHARED_QUERIES: {\n let {key, value} = action.payload;\n let updateAttribute = {};\n updateAttribute[key] = value;\n\n return {\n ...state,\n sharedQueries: {\n ...state.sharedQueries,\n ...updateAttribute\n }\n };\n }\n case monthlyReportConstants.CLEAR_MONTHLY_REPORT_SHARED_QUERIES:\n return {\n ...state,\n sharedQueries: {\n accountNumber: [],\n date: newDate\n }\n };\n\n // Monthly Report Table\n case monthlyReportConstants.SET_MONTHLY_REPORT_TABLE_QUERIES: {\n let {key, value} = action.payload;\n let updateAttribute = {};\n\n switch (key) {\n case 'accountNumber': updateAttribute[key] = value; break;\n case 'sortKey': updateAttribute = {\n sortKey: value,\n sortType: value\n && value === state.monthlyReportTable.queries.sortKey\n && state.monthlyReportTable.queries.sortType !== 'a'\n ? 'a'\n : 'd'\n }; break;\n default: updateAttribute[key] = value; break;\n };\n\n return {\n ...state,\n monthlyReportTable: {\n ...state.monthlyReportTable,\n queries: {\n ...state.monthlyReportTable.queries,\n ...updateAttribute\n }\n }\n };\n }\n case monthlyReportConstants.FETCH_MONTHLY_REPORT_START:\n return {\n ...state,\n monthlyReportTable: {\n ...state.monthlyReportTable,\n responses: setIsFetching(state.monthlyReportTable.responses)\n }\n };\n case monthlyReportConstants.FETCH_MONTHLY_REPORT_SUCCESS:\n return {\n ...state,\n monthlyReportTable: {\n ...state.monthlyReportTable,\n responses: filterResponseData(state.monthlyReportTable, action.payload)\n }\n };\n case monthlyReportConstants.FETCH_MONTHLY_REPORT_FAILURE:\n return {\n ...state,\n monthlyReportTable: {\n ...state.monthlyReportTable,\n responses: resetResponseDataArrays(state.monthlyReportTable, action.payload)\n }\n };\n case monthlyReportConstants.CLEAR_MONTHLY_REPORT_TABLE_RESPONSES:\n return {\n ...state,\n monthlyReportTable: {\n ...state.monthlyReportTable,\n responses: resetResponseDataObject(state.monthlyReportChart.responses, action.payload)\n }\n };\n case monthlyReportConstants.CLEAR_MONTHLY_REPORT_TABLE_QUERIES:\n return {\n ...state,\n monthlyReportTable: {\n ...state.monthlyReportTable,\n queries: {\n sortType: 'd',\n sortKey: null,\n groupType: 'ACCOUNT_TYPE'\n },\n }\n };\n\n // Monthly Report Chart\n case monthlyReportConstants.SET_MONTHLY_REPORT_CHART_QUERIES: {\n let {key, value} = action.payload;\n let updateAttribute = {};\n\n switch (key) {\n case 'categories': updateAttribute[key] = value; break;\n default: updateAttribute[key] = value; break;\n };\n\n return {\n ...state,\n monthlyReportChart: {\n ...state.monthlyReportChart,\n queries: {\n ...state.monthlyReportChart.queries,\n ...updateAttribute\n }\n }\n };\n }\n case monthlyReportConstants.FETCH_MONTHLY_REPORT_CHART_START:\n return {\n ...state,\n monthlyReportChart: {\n ...state.monthlyReportChart,\n responses: setIsFetching(state.monthlyReportChart.responses)\n }\n };\n case monthlyReportConstants.FETCH_MONTHLY_REPORT_CHART_SUCCESS:\n return {\n ...state,\n monthlyReportChart: {\n ...state.monthlyReportChart,\n responses: {\n ...state.responses,\n isFetching: false,\n data: action.payload\n ? action.payload.map( mainItem => ({\n ...mainItem,\n id: nanoid(),\n subCategories: mainItem.subCategories.map( subItem => ({\n ...subItem,\n id: nanoid(),\n }))\n }))\n : [],\n errorMessage: null\n }\n }\n };\n case monthlyReportConstants.FETCH_MONTHLY_REPORT_CHART_FAILURE:\n return {\n ...state,\n monthlyReportChart: {\n ...state.monthlyReportChart,\n responses: resetResponseDataArrays(state.monthlyReportChart.responses, action.payload)\n }\n };\n case monthlyReportConstants.CLEAR_MONTHLY_REPORT_CHART_RESPONSES:\n return {\n ...state,\n monthlyReportChart: {\n ...state.monthlyReportChart,\n responses: resetResponseDataArrays(state.monthlyReportChart.responses, null)\n }\n };\n case monthlyReportConstants.CLEAR_MONTHLY_REPORT_CHART_QUERIES:\n return {\n ...state,\n monthlyReportChart: {\n ...state.monthlyReportChart,\n queries: {\n groupType: 'ACCOUNT_TYPE',\n categories: null\n },\n }\n };\n default:\n return state;\n }\n};\n\nexport default monthlyReportReducer;\n","import { calendarConstants } from '../_constants/calendar.constants';\nimport {\n setIsFetching,\n filterCalendarResults, \n resetCalendarResults,\n filterUserFund,\n filterCalendarByDate\n} from '../_utils/calendar.utils';\n\nconst initialState = {\n calendarByYear: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n calendarByDate: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n calendarYear: (new Date()).getFullYear(),\n userFund: null,\n userDate: null,\n isOpenModal: false\n};\n\nconst calendarReducer = (state = initialState, action) => {\n switch (action.type) {\n case calendarConstants.FETCH_CALENDAR_BY_YEAR_START:\n return {\n ...state,\n calendarByYear: setIsFetching(state.calendarByYear)\n };\n case calendarConstants.FETCH_CALENDAR_BY_YEAR_SUCCESS:\n return {\n ...state,\n calendarByYear: filterCalendarResults(state.calendarByYear, action.payload)\n };\n case calendarConstants.FETCH_CALENDAR_BY_YEAR_FAILURE:\n return {\n ...state,\n calendarByYear: resetCalendarResults(state.calendarByYear, action.payload)\n };\n case calendarConstants.UPDATE_CALENDAR_YEAR:\n return {\n ...state,\n calendarYear: action.payload\n };\n case calendarConstants.UPDATE_USER_FUND_CALENDAR:\n return {\n ...state,\n userFund: filterUserFund(action.payload)\n };\n case calendarConstants.UPDATE_USER_CALENDAR_DATE:\n return {\n ...state,\n userDate: action.payload\n };\n case calendarConstants.FETCH_CALENDAR_BY_DATE_START:\n return {\n ...state,\n calendarByDate: setIsFetching(state.calendarByDate)\n };\n case calendarConstants.FETCH_CALENDAR_BY_DATE_SUCCESS:\n return {\n ...state,\n calendarByDate: filterCalendarByDate(state.calendarByDate, action.payload)\n };\n case calendarConstants.FETCH_CALENDAR_BY_DATE_FAILURE:\n return {\n ...state,\n calendarByDate: resetCalendarResults(state.calendarByDate, action.payload)\n };\n default:\n return state;\n }\n};\n\nexport default calendarReducer;\n","import { transferConstants } from '../_constants/transfer.constants';\n\nconst initialState = {\n // Modal State \n isOpenModal: false\n};\n\nconst transferReducer = (state = initialState, action) => {\n switch (action.type) {\n case transferConstants.TOGGLED_TRANSFER_MODAL:\n return {\n ...state,\n isOpenModal: !state.isOpenModal\n //fundId: state.isOpenModal ? null : state.fundId\n };\n default:\n return state;\n }\n};\n\nexport default transferReducer;\n","export const setIsFetching = (state) => {\n return {\n ...state,\n isFetching: true\n }\n};\n\nexport const filterDataResults = (state, data) => {\n return {\n ...state,\n isFetching: false,\n data: data,\n errorMessage: null\n };\n};\n\nexport const resetDataResults = (state, message) => {\n return {\n ...state,\n isFetching: false,\n data: [],\n errorMessage: message\n };\n};\n\nexport const filterIsOpenModal = (state, data) => {\n return {\n ...state,\n isOpenModal: data ? true : false,\n data: data ? data : null,\n };\n};\n\nexport const updateFundIds = (state, data) => {\n let fundIds = data.length > 0 ? data.map(obj => obj.fundId) : [];\n \n return {\n ...state,\n fundIds: fundIds,\n };\n};","import { homeConstants } from '../_constants/home.constants';\nimport {\n setIsFetching,\n filterDataResults,\n resetDataResults,\n filterIsOpenModal,\n updateFundIds\n} from '../_utils/home.utils';\n\nconst initialState = {\n banner: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n highlightFund: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n navFund: {\n fundIds: [],\n navDate: '1Y',\n isFetching: false,\n data: [],\n errorMessage: null\n },\n topSubCategory: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n article: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n openSectionModal: {\n isOpenModal: false,\n data: null\n }\n};\n\nconst homeReducer = (state = initialState, action) => {\n switch (action.type) {\n case homeConstants.FETCH_BANNERS_START:\n return {\n ...state,\n banner: setIsFetching(state.banner)\n };\n case homeConstants.FETCH_BANNERS_SUCCESS:\n return {\n ...state,\n banner: filterDataResults(state.banner, action.payload)\n };\n case homeConstants.FETCH_BANNERS_FAILURE:\n return {\n ...state,\n banner: resetDataResults(state.banner, action.payload)\n };\n case homeConstants.FETCH_HIGHLIGHT_FUNDS_START:\n return {\n ...state,\n highlightFund: setIsFetching(state.highlightFund)\n };\n case homeConstants.FETCH_HIGHLIGHT_FUNDS_SUCCESS:\n return {\n ...state,\n highlightFund: filterDataResults(state.highlightFund, action.payload)\n };\n case homeConstants.FETCH_HIGHLIGHT_FUNDS_FAILURE:\n return {\n ...state,\n highlightFund: resetDataResults(state.highlightFund, action.payload)\n };\n case homeConstants.UPDATE_NAV_FUNDS:\n return {\n ...state,\n navFund: updateFundIds(state.navFund, action.payload)\n };\n case homeConstants.FETCH_NAV_FUNDS_START:\n return {\n ...state,\n navFund: setIsFetching(state.navFund)\n };\n case homeConstants.FETCH_NAV_FUNDS_SUCCESS:\n return {\n ...state,\n navFund: filterDataResults(state.navFund, action.payload)\n };\n case homeConstants.FETCH_NAV_FUNDS_FAILURE:\n return {\n ...state,\n navFund: resetDataResults(state.navFund, action.payload)\n };\n case homeConstants.FETCH_TOP_SUB_CATEGORIES_START:\n return {\n ...state,\n topSubCategory: setIsFetching(state.topSubCategory)\n };\n case homeConstants.FETCH_TOP_SUB_CATEGORIES_SUCCESS:\n return {\n ...state,\n topSubCategory: filterDataResults(state.topSubCategory, action.payload)\n };\n case homeConstants.FETCH_TOP_SUB_CATEGORIES_FAILURE:\n return {\n ...state,\n topSubCategory: resetDataResults(state.topSubCategory, action.payload)\n };\n case homeConstants.FETCH_ARTICLES_START:\n return {\n ...state,\n article: setIsFetching(state.article)\n };\n case homeConstants.FETCH_ARTICLES_SUCCESS:\n return {\n ...state,\n article: filterDataResults(state.article, action.payload)\n };\n case homeConstants.FETCH_ARTICLES_FAILURE:\n return {\n ...state,\n article: resetDataResults(state.article, action.payload)\n };\n case homeConstants.TOGGLE_ARTICLE_MODAL:\n return {\n ...state,\n openSectionModal: filterIsOpenModal(state.openSectionModal, action.payload)\n };\n default:\n return state;\n }\n};\n\nexport default homeReducer;\n","import { generalConstants } from '../_constants';\n\nconst generalReducer = (state = {}, action) => {\n switch (action.type) {\n case generalConstants.GET_COLOR_LIST_SUCCESS:\n return {\n ...state,\n [action.payload.type]: action.payload.data\n };\n case generalConstants.GET_COLOR_LIST_FAILURE:\n return state;\n case generalConstants.CLEAR_COLOR_LIST:\n return {\n ...state,\n [action.payload.type]: action.payload.data\n };\n default:\n return state;\n }\n};\n\nexport default generalReducer;\n","import { combineReducers } from 'redux';\nimport { persistReducer } from 'redux-persist';\nimport localforage from 'localforage';\nimport storageSession from 'redux-persist/lib/storage/session'\n\nimport mainReducer from '../_reducers/main.reducer';\nimport searchReducer from '../_reducers/search.reducer';\nimport authenticationReducer from '../_reducers/authentication.reducer';\nimport usersReducer from '../_reducers/users.reducer';\nimport alertReducer from '../_reducers/alert.reducer';\nimport investmentReducer from '../_reducers/investment.reducer';\nimport favoriteReducer from '../_reducers/favorite.reducer';\nimport fundRankingReducer from '../_reducers/fund-ranking.reducer';\nimport advanceSearchReducer from '../_reducers/advance-search.reducer';\nimport hotfundReducer from '../_reducers/hotfund.reducer';\nimport compareReducer from '../_reducers/compare.reducer';\nimport informationReducer from '../_reducers/information.reducer';\nimport orderRequestReducer from '../_reducers/order-request.reducer';\nimport ipoReducer from '../_reducers/ipo.reducer';\nimport monthlyReportReducer from '../_reducers/monthly-report.reducer';\nimport calendarReducer from '../_reducers/calendar.reducer';\nimport transferReducer from '../_reducers/transfer.reducer';\nimport homeReducer from '../_reducers/home.reducer';\nimport generalReducer from '../_reducers/general.reducer';\n\nconst sessionConfig = (name, data) => {\n const authPersistConfig = {\n key: name,\n storage: storageSession,\n };\n\n return persistReducer(authPersistConfig, data)\n}\n\nconst persistConfig = {\n key: 'root',\n storage: localforage,\n //whitelist: ['main', 'authentication']\n};\n\nlet reducers = {\n main: mainReducer,\n search: searchReducer,\n authentication: authenticationReducer,\n users: usersReducer,\n alert: alertReducer,\n information: informationReducer,\n investment: sessionConfig('investment', investmentReducer),\n favorite: sessionConfig('favorite', favoriteReducer),\n advanceSearch: sessionConfig('advanceSearch', advanceSearchReducer),\n hotfund: hotfundReducer,\n compare: sessionConfig('compare', compareReducer),\n orderRequest: orderRequestReducer,\n ipo: ipoReducer,\n monthlyReport: sessionConfig('monthlyReport', monthlyReportReducer),\n calendar: calendarReducer,\n transfer: transferReducer,\n home: homeReducer,\n fundRanking: sessionConfig('fundRanking', fundRankingReducer),\n general: generalReducer//sessionConfig()\n};\n\nconst rootReducer = combineReducers({\n ...reducers\n});\n\nexport default persistReducer(persistConfig, rootReducer);\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { searchInformation } from '../_services/search.services';\nimport { fetchSearchBuyableFunds } from '../_services/order-request.services';\nimport { \n searchSuccess, \n searchFailure,\n subNavSearchSuccess,\n subNavSearchFailure,\n searchFundCalendarSuccess,\n searchFundCalendarFailure\n} from '../_actions/search.actions';\nimport { searchConstants } from '../_constants/search.constants';\n\nexport function* searchStartAsync({ payload }) {\n try {\n const result = yield call(searchInformation, payload);\n yield put(searchSuccess(result.data));\n } catch (error) {\n yield put(searchFailure(error.message));\n }\n}\n\nexport function* subNavSearchStartAsync({ payload }) {\n try {\n const result = yield call(searchInformation, payload);\n yield put(subNavSearchSuccess(result.data));\n } catch (error) {\n yield put(subNavSearchFailure(error.message));\n }\n}\n\nexport function* searchFundCalendarStartAsync({ payload }) {\n let queryString = { keyword: payload };\n try {\n const result = yield call(fetchSearchBuyableFunds, queryString);\n yield put(searchFundCalendarSuccess(result.data));\n } catch (error) {\n yield put(searchFundCalendarFailure(error.message));\n }\n}\nexport function* searchStart() {\n yield takeLatest(searchConstants.FETCH_MAIN_SEARCH_START, searchStartAsync);\n}\n\nexport function* subNavSearchStart() {\n yield takeLatest(searchConstants.FETCH_SUBNAV_SEARCH_START, subNavSearchStartAsync);\n}\n\nexport function* searchFundCalendarStart() {\n yield takeLatest(searchConstants.FETCH_SEARCH_FUND_CALENDAR_START, searchFundCalendarStartAsync);\n}\n\nexport function* searchSagas() {\n yield all([call(searchStart), call(subNavSearchStart), call(searchFundCalendarStart)]);\n}\n","import axios_nomura from './axios-nomura.services';\nimport axios_cns_auth from './axios-cns-auth.services';\n\n// export const signIn = async (credential) => {\n// const { username, password } = credential;\n// return await axios_nomura.post(`api/v1/login`, {\n// username: username,\n// password: password\n// });\n// };\nexport const signIn = async (credential) => {\n return await axios_cns_auth.post(`api/v1/login`, credential);\n};\n\nexport const send2FA = async ({ accessToken,...applicationId }) => {\n return await axios_cns_auth.post(`api/v1/login/two_factor/send_code`, applicationId, {\n headers: {\n Authorization: `Bearer ${accessToken}`\n }\n });\n};\n\nexport const verify2FA = async (verifyCredential) => {\n return await axios_cns_auth.post(`api/v1/login/two_factor/verify`,verifyCredential);\n};\n\nexport const verify2FACode = async (verifyCredential) => {\n return await axios_cns_auth.post(`api/v1/login/two_factor/verify_code`, verifyCredential, {\n headers: {\n Authorization: `Bearer ${verifyCredential.accessToken}`\n }\n });\n};\n\nexport const verify2FAAuthenticator = async (verifyCredential) => {\n return await axios_cns_auth.post(`api/v1/login/two_factor/authenticator`,verifyCredential);\n};\n\nexport const signInCredential = async () => {\n return await axios_nomura.get('api/v1/login/ad_test', { \n headers: { \n 'Access-Control-Allow-Credentials': true\n }\n });\n};\n\nexport const signInDSA = async (payload) => {\n const DSACode = payload !== '' ? payload.split('=')[1] : payload;\n return await axios_nomura.get(`api/v1/login/dsa${payload}`, { \n headers: { \n 'Authorization': `Basic ${DSACode}`\n }\n });\n};\n\nexport const signInSSO = async (payload) => {\n const SSOCode = payload !== '' ? payload.split('=')[1] : payload;\n return await axios_nomura.get(`api/v1/login/sso?p=${SSOCode}`);\n};\n\nexport const fetchAccountList = async () => {\n return await axios_nomura.get(`api/v1/accounts`);\n};\n\nexport const fetchAccountInfo = async (accountNumber) => {\n return await axios_nomura.get(`api/v1/accounts/${accountNumber}`);\n};\n\nexport const fetchAccountName = async (accountNumber) => {\n return await axios_nomura.get(`api/v1/accounts/${accountNumber}/name`);\n};\n\nexport const refreshWithCookies = async (cookies) => {\n return await axios_cns_auth.post(`api/v1/login/refresh_token`, cookies);\n};\n\nexport const signOutWithCookies = async (cookies) => {\n return await axios_cns_auth.post(`api/v1/logout`, cookies);\n};","export const twoFactorAuthenticationMethodConstants = {\n NONE:'None',\n SMS:'SMS',\n EMAIL:'Email',\n AUTHENTICATOR: 'Authenticator',\n BYPASS: 'Bypass',\n}","export const tranformErrorResponses = (error) => {\n let errorResponse = {};\n switch(error?.response?.status) {\n case 400: {\n errorResponse = {\n title: 'เกิดข้อผิดพลาด',\n message: error.response?.data?.data?.message ?? error.response?.data?.message,\n buttons: error.response?.data?.data?.buttons,\n };\n break;\n };\n case 403: {\n errorResponse = {\n title: 'เกิดข้อผิดพลาด',\n message: error.response?.data?.message\n };\n break;\n }\n case 500: {\n errorResponse = {\n title: 'เกิดข้อผิดพลาด',\n message: error.response?.statusText\n };\n break;\n }\n default: {\n errorResponse = error;\n break;\n }\n }\n return errorResponse;\n};\n\nexport const errorMessageResponse = (error) => error?.response?.data?.message || `An error occurred (${error?.response?.status})`","import { takeLatest, call, put, all } from \"redux-saga/effects\";\nimport {\n signIn,\n send2FA,\n verify2FA,\n verify2FACode,\n signOutWithCookies,\n refreshWithCookies,\n fetchAccountList,\n fetchAccountInfo,\n signInCredential,\n fetchAccountName,\n verify2FAAuthenticator,\n signInDSA,\n signInSSO,\n} from \"../_services/authentication.services\";\nimport {\n signInSuccess,\n signInSuccessForMobile,\n signInFailure,\n verify2FAOpen,\n // getAccountListStart,\n getAccountMKT,\n getAccountListSuccess,\n getAccountListFailure,\n getAccountInfoSuccess,\n getAccountInfoFailure,\n toggleErrorMessageModal,\n signOut,\n getAccountNameSuccess,\n getAccountNameFailure,\n set2FALoading,\n updateAccountListMobileSuccess,\n} from \"../_actions/authentication.actions\";\nimport { updateErrorModal } from \"../_actions/main.actions\";\n\nimport { fetchFavoriteFundsByAccountStart } from \"../_actions/favorite.actions\";\n\nimport { twoFactorAuthenticationMethodConstants } from \"../_constants/twoFactorAuthenticationMethod.constants\";\nimport { authenticationConstants } from \"../_constants/authentication.constants\";\nimport { clearCookies, getCookie, setCookie } from \"../_utils/cookie.utils\";\nimport {\n updateUserAccounts,\n resetInvestment,\n} from \"../_actions/investment.actions\";\nimport { resetUserCategories } from \"../_actions/fund-ranking.actions\";\nimport { nanoid } from \"nanoid\";\nimport jwt_decode from \"jwt-decode\";\nimport { errorMessageResponse } from \"../_utils/service.utils\";\n\n// Worker\nexport function* signOutAsync() {\n // clear refreshToken & accessToken in cookies.\n const cookies = {\n refreshToken: getCookie(\"refreshToken\"),\n accessToken: getCookie(\"accessToken\"),\n };\n try {\n yield call(signOutWithCookies, cookies);\n } catch (err) {}\n clearCookies([\"token\", \"accessToken\", \"refreshToken\"]);\n yield put(resetInvestment());\n yield put(resetUserCategories());\n}\n\nexport function* refreshTokenAsync() {\n const cookies = {\n refreshToken: getCookie(\"refreshToken\"),\n token: getCookie(\"accessToken\"),\n };\n try {\n const result = yield call(refreshWithCookies, cookies);\n const newAccessToken = result.data.token;\n if (result.data.token) {\n // Add accesstoken to cookies.\n let accessToken = getCookie(\"accessToken\");\n if (accessToken !== newAccessToken) {\n setCookie(\"accessToken\", newAccessToken);\n }\n }\n } catch (error) {\n if (error.response?.status === 401) {\n yield put(\n updateErrorModal({\n title: \"Session Expired\",\n message: \"Please log in again.\",\n })\n );\n yield put(signOut());\n }\n }\n}\n\nexport function* signInAsync({ payload }) {\n try {\n const { username, password, history } = payload;\n let credentials = {};\n credentials.applicationId = \"8961b7f1-e671-4262-b719-8c1fa1bcadd5\";\n credentials.username = username;\n credentials.password = password;\n credentials.ipAddress = \"127.0.0.1\";\n credentials.deviceId = nanoid(36);\n credentials.deviceName = navigator.userAgent;\n\n const result = yield call(signIn, credentials);\n if (\n !result.data.isTwoFactorAuthenticated &&\n result.data.twoFactorAuthenticationMethod !==\n twoFactorAuthenticationMethodConstants.BYPASS\n ) {\n if (\n result.data.twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.SMS ||\n result.data.twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.EMAIL\n ) {\n const application = {\n applicationId: credentials.applicationId,\n accessToken: result.data.accessToken,\n };\n const send2FAResult = yield call(send2FA, application);\n const twoFactorInfo = {\n twoFactorAuthenticationMethod:\n result.data.twoFactorAuthenticationMethod,\n referenceCode: send2FAResult.data.referenceCode ?? \"\",\n twoFactorId: null,\n twoFactorToken: result.data.accessToken,\n };\n yield put(verify2FAOpen(twoFactorInfo));\n } else if (\n result.data.twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.AUTHENTICATOR\n ) {\n const twoFactorInfo = {\n twoFactorAuthenticationMethod:\n result.data.twoFactorAuthenticationMethod,\n referenceCode: null,\n twoFactorId: result.data.twoFactorId,\n twoFactorToken: result.data.accessToken,\n };\n yield put(verify2FAOpen(twoFactorInfo));\n } else if (\n result.data.twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.NONE\n ) {\n yield put(set2FALoading(false));\n yield put(\n updateErrorModal({\n title: \"ช่องทางการยืนยันตัวตน\",\n message:\n \"กรุณาเลือกช่องทางยืนยันตัวตน ก่อนเข้าให้งาน Krungsri Securities iFund จากวิธีต่อไปนี้\\n1. SMS OTP ผ่านเบอร์มือถือที่ท่านแจ้งไว้\\n2. ผ่าน Google Authenticator\",\n })\n );\n }\n } else {\n yield put(signInSuccess({ user: result.data, logInType: \"general\" }));\n\n // Get User Account List.\n // yield put(getAccountListStart());\n const accountListResult = yield call(fetchAccountList);\n yield put(getAccountListSuccess(accountListResult.data?.accountList));\n yield put(getAccountMKT(accountListResult.data?.mkt));\n yield put(\n updateUserAccounts(accountListResult.data?.accountList.slice(0, 1))\n );\n\n // Store token in cookies.\n const newAccessToken = result.data.accessToken;\n if (result.data.accessToken) {\n // Add accesstoken to cookies.\n let accessToken = getCookie(\"accessToken\");\n if (accessToken !== newAccessToken) {\n setCookie(\"accessToken\", newAccessToken);\n }\n }\n const newRefreshToken = result.data.refreshToken;\n if (result.data.refreshToken) {\n // Add refreshtoken to cookies.\n let refreshToken = getCookie(\"refreshToken\");\n if (refreshToken !== newRefreshToken) {\n setCookie(\"refreshToken\", newRefreshToken);\n }\n }\n\n // Get Favorite funds.\n if (Object.keys(result.data).length && accountListResult.data.length) {\n yield put(fetchFavoriteFundsByAccountStart());\n yield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n }\n // Redirect to config page then log in success.\n // history.push('/main/investment');\n }\n } catch (error) {\n // Sign out and clear account list.\n yield put(signInFailure(errorMessageResponse(error)));\n yield put(toggleErrorMessageModal());\n // yield put(getAccountListFailure()); // to be check is this necessary to update\n }\n}\n\nexport function* verify2FAAsync({ payload }) {\n try {\n const {\n verifyCode,\n referenceCode,\n twoFactorId,\n twoFactorAuthenticationMethod,\n twoFactorToken,\n } = payload;\n let result = {};\n let credentials = {};\n credentials.applicationId = \"8961b7f1-e671-4262-b719-8c1fa1bcadd5\";\n credentials.code = verifyCode;\n credentials.ipAddress = \"127.0.0.1\";\n credentials.deviceId = nanoid(36);\n credentials.deviceName = navigator.userAgent;\n credentials.accessToken = twoFactorToken;\n\n if (\n twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.SMS ||\n twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.EMAIL\n ) {\n credentials.referenceCode = referenceCode;\n\n if (referenceCode === \"\") {\n result = yield call(verify2FA, credentials);\n } else {\n result = yield call(verify2FACode, credentials);\n }\n }\n if (\n twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.AUTHENTICATOR\n ) {\n try {\n credentials.twoFactorId = twoFactorId;\n result = yield call(verify2FAAuthenticator, credentials);\n } catch (error) {\n credentials.referenceCode = referenceCode;\n\n if (referenceCode === \"\") {\n result = yield call(verify2FA, credentials);\n } else {\n result = yield call(verify2FACode, credentials);\n }\n }\n }\n\n yield put(signInSuccess({ user: result.data, logInType: \"general\" }));\n\n // Get User Account List.\n // yield put(getAccountListStart());\n const accountListResult = yield call(fetchAccountList);\n yield put(getAccountListSuccess(accountListResult.data?.accountList));\n yield put(getAccountMKT(accountListResult.data?.mkt));\n yield put(\n updateUserAccounts(accountListResult.data?.accountList.slice(0, 1))\n );\n\n // Store token in cookies.\n const newAccessToken = result.data.accessToken;\n if (result.data.accessToken) {\n // Add accesstoken to cookies.\n let accessToken = getCookie(\"accessToken\");\n if (accessToken !== newAccessToken) {\n setCookie(\"accessToken\", newAccessToken);\n }\n }\n const newRefreshToken = result.data.refreshToken;\n if (result.data.refreshToken) {\n // Add refreshtoken to cookies.\n let refreshToken = getCookie(\"refreshToken\");\n if (refreshToken !== newRefreshToken) {\n setCookie(\"refreshToken\", newRefreshToken);\n }\n }\n\n // Get Favorite funds.\n if (Object.keys(result.data)?.length && accountListResult.data?.length) {\n yield put(fetchFavoriteFundsByAccountStart());\n yield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n }\n } catch (error) {\n // Sign out and clear account list.\n yield put(signInFailure(errorMessageResponse(error)));\n yield put(toggleErrorMessageModal());\n // yield put(getAccountListFailure()); // to be check is this necessary to update\n }\n}\n\nexport function* updateSignInStatusForMobileAsync() {\n try {\n const token = getCookie(\"accessToken\");\n const decodedJwt = token ? jwt_decode(token) : null;\n const isExpiredToken = decodedJwt\n ? new Date(decodedJwt.exp * 1000).getTime() < new Date().getTime()\n : false;\n\n if (token && !isExpiredToken) {\n yield put(\n signInSuccessForMobile({\n user: {\n accessToken: token,\n },\n logInType: \"token\",\n })\n );\n // Get User Account List.\n const accountListResult = yield call(fetchAccountList);\n yield put(getAccountListSuccess(accountListResult.data?.accountList));\n yield put(getAccountMKT(accountListResult.data?.mkt));\n\n const accountList = accountListResult.data?.accountList ?? [];\n\n yield put(\n updateUserAccounts(\n accountList.length > 0 ? accountList.slice(0, 1) : []\n )\n );\n\n // Get Favorite funds.\n if (accountListResult.data.length) {\n yield put(fetchFavoriteFundsByAccountStart());\n yield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n }\n }\n } catch (error) {\n clearCookies([\"accessToken\", \"refreshToken\"]);\n yield put(resetInvestment());\n yield put(signInFailure(error.message));\n }\n}\n\nexport function* signInCredentialAsync({ payload }) {\n const { history } = payload;\n try {\n // add Account List from user.\n const result = yield call(signInCredential);\n yield put(signInSuccess({ user: result.data, logInType: \"AD\" }));\n\n // Get User Account List.\n // yield put(getAccountListStart());\n const accountListResult = yield call(fetchAccountList);\n yield put(getAccountListSuccess(accountListResult.data?.accountList));\n yield put(getAccountMKT(accountListResult.data?.mkt));\n yield put(\n updateUserAccounts(accountListResult.data?.accountList.slice(0, 1))\n );\n\n // Get Favorite funds.\n if (Object.keys(result.data).length && accountListResult.data.length) {\n yield put(fetchFavoriteFundsByAccountStart());\n yield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n }\n\n // history.push('/main');\n } catch (error) {\n if (error.response.status === 401) {\n yield put(signInFailure(\"You are unauthorized to access\"));\n yield put(toggleErrorMessageModal());\n }\n // Sign out and clear account list.\n // yield put(signInFailure(error.message));\n // yield put(getAccountListFailure());\n // yield put(signOut());\n // history.push('/main');\n }\n}\n\nexport function* signInDSAAsync({ payload }) {\n const { history } = payload;\n try {\n // add Account List from user.\n const result = yield call(signInDSA, history.location.search);\n yield put(signInSuccess({ user: result.data, logInType: \"DSA\" }));\n\n // Get User Account List.\n const accountListResult = yield call(fetchAccountList);\n yield put(getAccountListSuccess(accountListResult.data?.accountList));\n yield put(getAccountMKT(accountListResult.data?.mkt));\n\n // Get Favorite funds.\n if (Object.keys(result.data).length && accountListResult.data.length) {\n yield put(fetchFavoriteFundsByAccountStart());\n yield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n }\n\n history.push(\"/main\");\n } catch (error) {\n yield put(signOut());\n }\n}\n\nexport function* signInSSOAsync({ payload }) {\n const { history } = payload;\n try {\n // add Account List from user.\n const result = yield call(signInSSO, history.location.search);\n yield put(signInSuccess({ user: result.data, logInType: \"SSO\" }));\n\n // Get User Account List.\n const accountListResult = yield call(fetchAccountList);\n yield put(getAccountListSuccess(accountListResult.data?.accountList));\n yield put(getAccountMKT(accountListResult.data?.mkt));\n yield put(\n updateUserAccounts(accountListResult.data?.accountList.slice(0, 1))\n );\n\n // Get Favorite funds.\n if (Object.keys(result.data).length && accountListResult.data.length) {\n yield put(fetchFavoriteFundsByAccountStart());\n yield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n }\n\n history.push(\"/main\");\n } catch (error) {\n yield put(signOut());\n }\n}\n\nexport function* getAccountListAsync({ payload }) {\n try {\n // add Account List from user.\n const result = yield call(fetchAccountList);\n yield put(getAccountListSuccess(result.data?.accountList));\n yield put(getAccountMKT(result.data?.mkt));\n yield put(updateAccountListMobileSuccess());\n } catch (error) {\n yield put(getAccountListFailure());\n }\n}\n\nexport function* getAccountInfoAsync({ payload }) {\n try {\n const result = yield call(fetchAccountInfo, payload);\n yield put(getAccountInfoSuccess(result.data));\n } catch (error) {\n yield put(getAccountInfoFailure());\n }\n}\n\nexport function* getAccountNameAsync({ payload }) {\n try {\n const result = yield call(fetchAccountName, payload);\n yield put(getAccountNameSuccess(result.data));\n } catch (error) {\n yield put(getAccountNameFailure());\n }\n}\n\n// Watcher\nexport function* signOutStart() {\n yield takeLatest(authenticationConstants.SIGN_OUT, signOutAsync);\n}\n\nexport function* refreshTokenStart() {\n yield takeLatest(authenticationConstants.REFRESH_TOKEN, refreshTokenAsync);\n}\n\nexport function* signInStart() {\n yield takeLatest(authenticationConstants.SIGN_IN_START, signInAsync);\n}\n\nexport function* updateSignInStatusForMobile() {\n yield takeLatest(\n authenticationConstants.UPDATE_SIGN_IN_STATUS_FOR_MOBILE,\n updateSignInStatusForMobileAsync\n );\n}\n\nexport function* signInCredentialStart() {\n yield takeLatest(\n authenticationConstants.SIGN_IN_CREDENTIAL_START,\n signInCredentialAsync\n );\n}\n\nexport function* signInDSAStart() {\n yield takeLatest(authenticationConstants.SIGN_IN_DSA_START, signInDSAAsync);\n}\n\nexport function* signInSSOStart() {\n yield takeLatest(authenticationConstants.SIGN_IN_SSO_START, signInSSOAsync);\n}\n\nexport function* getAccountListSaga() {\n yield takeLatest(\n authenticationConstants.GET_ACCOUNT_LIST_START,\n getAccountListAsync\n );\n}\n\nexport function* getAccountInfoSaga() {\n yield takeLatest(\n authenticationConstants.GET_ACCOUNT_INFO_START,\n getAccountInfoAsync\n );\n}\n\nexport function* getAccountNameSaga() {\n yield takeLatest(\n authenticationConstants.GET_ACCOUNT_NAME_START,\n getAccountNameAsync\n );\n}\n\nexport function* verify2FAStart() {\n yield takeLatest(authenticationConstants.VERIFY_2FA_START, verify2FAAsync);\n}\n\nexport function* authenticationSagas() {\n yield all([\n call(signOutStart),\n call(signInStart),\n call(signInCredentialStart),\n call(signInDSAStart),\n call(signInSSOStart),\n call(updateSignInStatusForMobile),\n call(getAccountListSaga),\n call(getAccountInfoSaga),\n call(getAccountNameSaga),\n call(refreshTokenStart),\n call(verify2FAStart),\n ]);\n}\n","import axios_nomura from './axios-nomura.services';\n\nexport const addFavoriteFund = async (data) => {\n return await axios_nomura.post(`api/v1/funds/favorite`, JSON.stringify(data.fundId));\n};\n\nexport const deleteFavoriteFund = async (data) => {\n return await axios_nomura.post(`api/v1/funds/favorite/delete`, JSON.stringify(data.fundId));\n};\n\nexport const putFavoriteFunds = async (data) => {\n return await axios_nomura.put(`api/v1/funds/favorite`, data.fundIds);\n};\n\nexport const fetchFavoriteFundsByAccount = async () => {\n return await axios_nomura.get(`api/v1/funds/favorites`);\n};\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\n\nimport { \n fetchFavoriteFundsByAccountSuccess,\n fetchFavoriteFundsByAccountFailure,\n fetchNavFavoriteFundsByAccountSuccess,\n fetchNavFavoriteFundsByAccountFailure,\n updateLocalFavoriteFunds\n} from '../_actions/favorite.actions';\nimport { favoriteConstants } from '../_constants';\n\nimport {\n addFavoriteFund,\n deleteFavoriteFund,\n putFavoriteFunds,\n fetchFavoriteFundsByAccount\n} from '../_services/favorite.services';\n\nimport { \n\tfetchNavForAdvanceSearch\n} from '../_services/advance-search.services';\n\nexport function* addFavoriteFundAsync({ payload }) {\n try {\n let result = yield call(addFavoriteFund, payload);\n if (result.code.slice(0,3) === '200') {\n yield put(updateLocalFavoriteFunds({type: 'add', fundId: payload.fundId}));\n }\n } catch (error) {\n }\n}\n\nexport function* deleteFavoriteFundAsync({ payload }) {\n try {\n let result = yield call(deleteFavoriteFund, payload);\n if (result?.code?.slice(0,3) === '200') {\n yield put(updateLocalFavoriteFunds({type: 'delete', fundId: payload.fundId}));\n }\n } catch (error) {\n }\n}\n\nexport function* putFavoriteFundsAsync({ payload }) {\n try {\n yield call(putFavoriteFunds, payload);\n } catch (error) {\n }\n}\n\nexport function* fetchFavoriteFundsByAccountAsync() {\n try {\n const result = yield call(fetchFavoriteFundsByAccount);\n yield put(fetchFavoriteFundsByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchFavoriteFundsByAccountFailure(error.message));\n }\n}\n\nexport function* fetchNavFavoriteFundsByAccountAsync({ payload }) {\n try {\n const result = yield call(fetchNavForAdvanceSearch, payload);\n yield put(fetchNavFavoriteFundsByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchNavFavoriteFundsByAccountFailure(error.message));\n }\n}\n\nexport function* addFavoriteFundStart() {\n yield takeLatest(favoriteConstants.ADD_FAVORITE_FUND, addFavoriteFundAsync);\n}\n\nexport function* deleteFavoriteFundStart() {\n yield takeLatest(favoriteConstants.DELETE_FAVORITE_FUND, deleteFavoriteFundAsync);\n}\n\nexport function* putFavoriteFundsStart() {\n yield takeLatest(favoriteConstants.PUT_FAVORITE_FUNDS, putFavoriteFundsAsync);\n}\n\nexport function* fetchFavoriteFundsByAccountStart() {\n yield takeLatest(favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_START, fetchFavoriteFundsByAccountAsync);\n}\n\nexport function* fetchNavFavoriteFundsByAccountStart() {\n yield takeLatest(favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_START, fetchNavFavoriteFundsByAccountAsync);\n}\n\nexport function* favoriteSagas() {\n yield all([\n call(addFavoriteFundStart),\n call(deleteFavoriteFundStart),\n call(putFavoriteFundsStart),\n call(fetchFavoriteFundsByAccountStart),\n call(fetchNavFavoriteFundsByAccountStart)\n ]);\n}\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\n\nimport { \n fetchHotfundSuccess,\n fetchHotfundFailure,\n} from '../_actions/hotfund.actions';\nimport { hotfundConstants } from '../_constants/hotfund.constants';\n\nimport {\n fetchHotfundByTopBottom,\n fetchHotfundAll,\n} from '../_services/hotfund.services';\n\nexport function* fetchHotfundAsync({ payload }) {\n try {\n if (payload && payload.viewType === 'ALL') {\n const resultAll = yield call(fetchHotfundAll, payload);\n yield put(fetchHotfundSuccess(resultAll.data));\n } else {\n const resultTopBottom = yield call(fetchHotfundByTopBottom, payload);\n yield put(fetchHotfundSuccess(resultTopBottom.data));\n }\n } catch (error) {\n yield put(fetchHotfundFailure(error.message));\n }\n}\n\nexport function* fetchHotfundStart() {\n yield takeLatest(hotfundConstants.FETCH_HOTFUND_START, fetchHotfundAsync);\n}\n\nexport function* hotfundSagas() {\n yield all([\n call(fetchHotfundStart),\n ]);\n}\n","import axios_nomura from './axios-nomura.services';\n\nexport const fetchCompareFunds = async (data) => {\n return await axios_nomura.get(`/api/v1/fundcompare`, { params: { fundIds: data }});\n};\n\nexport const fetchCompareFundsByPeriod = async (data) => {\n return await axios_nomura.get(`/api/v1/fundcompare/other`, { params: { fundIds: data.fundIds, type: data.type } })\n};\n\nexport const fetchGraphCompareFunds = async (data) => {\n return await axios_nomura.get(`/api/v1/fundcompare/graph`,\n { params: {startDate: data.startDate ?? '', endDate: data.endDate ?? '', mode: data.mode, fundIds: data.body } }\n );\n};\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\n\nimport { \n\tfetchCompareFunds,\n\tfetchGraphCompareFunds,\n\tfetchCompareFundsByPeriod\n} from '../_services/compare.services';\n\nimport { fetchNavForAdvanceSearch } from '../_services/advance-search.services';\nimport { \n\tfetchCompareFundsSuccess, \n\tfetchCompareFundsFailure,\n\tfetchCompareFundsByPeriodSuccess,\n\tfetchCompareFundsByPeriodFailure,\n\tfetchGraphCompareFundsSuccess,\n\tfetchGraphCompareFundsFailure,\n\tfetchNavCompareFundsSuccess,\n\tfetchNavCompareFundsFailure,\n\tclearCompareFund\n} from '../_actions/compare.actions';\nimport { compareConstants } from '../_constants/compare.constants';\n\nexport function* fetchCompareFundsAsync({ payload }) {\n\ttry {\n\t\t// yield put(clearCompareFund());\n\t\tconst result = yield call(fetchCompareFunds, payload);\n\t\tyield put(fetchCompareFundsSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchCompareFundsFailure(error));\n\t}\n}\n\nexport function* fetchCompareFundsStart() {\n\tyield takeLatest(compareConstants.FETCH_COMPARE_START, fetchCompareFundsAsync);\n}\n\nexport function* fetchCompareFundsByPeriodAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchCompareFundsByPeriod, payload);\n\t\tyield put(fetchCompareFundsByPeriodSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchCompareFundsByPeriodFailure(error));\n\t}\n}\n\nexport function* fetchCompareFundsByPeriodStart() {\n\tyield takeLatest(compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_START, fetchCompareFundsByPeriodAsync);\n}\n\nexport function* fetchGraphCompareFundsAsync({ payload }) {\n\ttry {\n\t\t// yield put(clearCompareFund());\n\t\tconst result = yield call(fetchGraphCompareFunds, payload);\n\t\tyield put(fetchGraphCompareFundsSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchGraphCompareFundsFailure(error));\n\t}\n}\n\nexport function* fetchGraphCompareFundsStart() {\n\tyield takeLatest(compareConstants.FETCH_GRAPH_COMPARE_FUNDS_START, fetchGraphCompareFundsAsync);\n}\n\nexport function* fetchNavCompareFundsAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchNavForAdvanceSearch, payload);\n\t\tyield put(fetchNavCompareFundsSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchNavCompareFundsFailure(error));\n\t}\n}\n\nexport function* fetchNavCompareFundsStart() {\n\tyield takeLatest(compareConstants.FETCH_NAV_COMPARE_FUNDS_START, fetchNavCompareFundsAsync);\n}\n\nexport function* compareSagas() {\n\tyield all([\n\t\tcall(fetchCompareFundsStart),\n\t\tcall(fetchCompareFundsByPeriodStart),\n\t\tcall(fetchGraphCompareFundsStart),\n\t\tcall(fetchNavCompareFundsStart)\n\t]);\n}\n","import { takeLatest, call, put, all } from \"redux-saga/effects\";\nimport { store } from \"../redux/store\";\n\nimport {\n fetchHistories,\n fetchDCAs,\n fetchOrders,\n fetchPortfolioGroups,\n fetchNavPortfolios,\n fetchLots,\n fetchBooks,\n fetchDividends,\n fetchPreviousReturnByAccount,\n fetchPreviousReturnGraphByAccount,\n fetchAumGraphByAccount,\n fetchMonthlyReturnByAccount,\n fetchMaxDrawdownByAccount,\n fetchDrawdownByAccount,\n fetchLastDateOfAccountNumber,\n fetchVolatilityByAccount,\n fetchProfitByAccount,\n fetchActivedFunds,\n fetchAllFunds,\n fetchAllFundCodes,\n deleteOrderRequestFund,\n deleteDCAOrderRequestFund,\n} from \"../_services/investment.services\";\n\nimport { investmentConstants } from \"../_constants\";\n\nimport {\n fetchHistoriesSuccess,\n fetchHistoriesFailure,\n fetchDCAsStart,\n fetchDCAsSuccess,\n fetchDCAsFailure,\n fetchPortfoliosSuccess,\n fetchPortfoliosFailure,\n fetchNavPortfoliosSuccess,\n fetchNavPortfoliosFailure,\n fetchDividendsSuccess,\n fetchDividendsFailure,\n fetchOrdersStart,\n fetchOrdersSuccess,\n fetchOrdersFailure,\n fetchLotsSuccess,\n fetchLotsFailure,\n fetchNavsLotsSuccess,\n fetchNavsLotsFailure,\n fetchBooksSuccess,\n fetchBooksFailure,\n fetchPreviousReturnByAccountSuccess,\n fetchPreviousReturnByAccountFailure,\n fetchPreviousReturnGraphByAccountSuccess,\n fetchPreviousReturnGraphByAccountFailure,\n fetchHistoryGraphByAccountSuccess,\n fetchHistoryGraphByAccountFailure,\n fetchMonthlyReturnByAccountSuccess,\n fetchMonthlyReturnByAccountFailure,\n fetchMaxDrawdownByAccountSuccess,\n fetchMaxDrawdownByAccountFailure,\n fetchDrawdownByAccountSuccess,\n fetchDrawdownByAccountFailure,\n fetchLastDateOfAccountNumberSuccess,\n fetchLastDateOfAccountNumberFailure,\n fetchVolatilityByAccountSuccess,\n fetchVolatilityByAccountFailure,\n fetchProfitByAccountSuccess,\n fetchProfitByAccountFailure,\n fetchActivedFundsSuccess,\n fetchActivedFundsFailure,\n fetchAllFundsSuccess,\n fetchAllFundsFailure,\n fetchAllFundCodesSuccess,\n fetchAllFundCodesFailure,\n deleteOrderRequestSuccess,\n deleteOrderRequestFailure,\n deleteDCAOrderRequestSuccess,\n deleteDCAOrderRequestFailure,\n} from \"../_actions/investment.actions\";\n\nimport { signOut } from \"../_actions/authentication.actions\";\n\nexport function* fetchActivedFundsAsync({ payload }) {\n try {\n const result = yield call(fetchActivedFunds, payload);\n yield put(fetchActivedFundsSuccess(result.data));\n } catch (error) {\n yield put(fetchActivedFundsFailure(error.message));\n }\n}\n\nexport function* fetchAllFundsAsync({ payload }) {\n try {\n const result = yield call(fetchAllFunds, payload);\n yield put(fetchAllFundsSuccess(result.data));\n } catch (error) {\n yield put(fetchAllFundsFailure(error.message));\n }\n}\n\nexport function* fetchAllFundCodesAsync() {\n try {\n const result = yield call(fetchAllFundCodes);\n yield put(fetchAllFundCodesSuccess(result.data));\n } catch (error) {\n yield put(fetchAllFundCodesFailure(error.message));\n }\n}\n\nexport function* fetchHistoriesAsync({ payload }) {\n try {\n const result = yield call(fetchHistories, payload);\n yield put(fetchHistoriesSuccess(result.data));\n } catch (error) {\n yield put(fetchHistoriesFailure(error.message));\n }\n}\n\nexport function* deleteDCAOrderRequestStartAsync({ payload }) {\n try {\n const result = yield call(deleteDCAOrderRequestFund, payload);\n yield put(deleteDCAOrderRequestSuccess(result.data));\n const state = store.getState();\n const accounts = state.investment.userAccounts;\n const dcaOrderQueries = state.investment.dca.queries;\n const queries = {\n accountNumbers: accounts.map((x) => x.accountNumber),\n sortBy: dcaOrderQueries.sortBy,\n sortType: dcaOrderQueries.sortType,\n isActive:\n dcaOrderQueries.status?.value !== \"\"\n ? dcaOrderQueries.status.value\n : null,\n type: dcaOrderQueries.type?.value,\n funds: dcaOrderQueries.funds?.map((x) => x.fundCode),\n };\n yield put(fetchDCAsStart(queries));\n } catch (error) {\n yield put(deleteDCAOrderRequestFailure(error));\n }\n}\n\nexport function* fetchDCAsAsync({ payload }) {\n try {\n let result = yield call(fetchDCAs, payload);\n yield put(fetchDCAsSuccess(result.data));\n } catch (error) {\n yield put(fetchDCAsFailure(error.message));\n }\n}\n\nexport function* fetchPortfoliosAsync({ payload }) {\n try {\n const result = yield call(fetchPortfolioGroups, payload);\n yield put(fetchPortfoliosSuccess(result.data));\n } catch (error) {\n yield put(fetchPortfoliosFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchNavPortfoliosAsync({ payload }) {\n try {\n const result = yield call(fetchNavPortfolios, payload);\n yield put(fetchNavPortfoliosSuccess(result.data));\n } catch (error) {\n yield put(fetchNavPortfoliosFailure(error.message));\n }\n}\nexport function* fetchPreviousReturnByAccountAsync({ payload }) {\n try {\n const result = yield call(fetchPreviousReturnByAccount, payload);\n yield put(fetchPreviousReturnByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchPreviousReturnByAccountFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchHistoryGraphByAccountAsync({ payload }) {\n try {\n const { account, date, graphMode, dateType } = payload;\n let result;\n const queries = { ...date, dateType };\n\n switch (graphMode) {\n case \"PREVIOUSE_RETURN\":\n result = yield call(\n fetchPreviousReturnGraphByAccount,\n account,\n queries\n );\n break;\n case \"AUM\":\n result = yield call(fetchAumGraphByAccount, account, queries);\n break;\n case \"ALL\":\n let previousReturn = yield call(\n fetchPreviousReturnGraphByAccount,\n account,\n queries\n );\n let aum = yield call(fetchAumGraphByAccount, account, queries);\n result = previousReturn;\n if (result.data && result.data.length > 0) {\n result.data = result.data.map((obj) => {\n let secondValue;\n aum.data.forEach((obj2) => {\n if (obj.date === obj2.date) {\n secondValue = obj2.value;\n }\n });\n return {\n date: obj.date,\n leftGraphPoint: obj.value,\n rightGraphPoint: secondValue,\n };\n });\n }\n break;\n default:\n break;\n }\n yield put(fetchHistoryGraphByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchHistoryGraphByAccountFailure(error.message));\n }\n}\nexport function* fetchPreviousReturnGraphByAccountAsync({ payload }) {\n try {\n const result = yield call(\n fetchPreviousReturnGraphByAccount,\n payload.account,\n payload.data\n );\n yield put(fetchPreviousReturnGraphByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchPreviousReturnGraphByAccountFailure(error.message));\n }\n}\nexport function* fetchProfitByAccountAsync({ payload }) {\n try {\n const result = yield call(fetchProfitByAccount, payload);\n yield put(fetchProfitByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchProfitByAccountFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchMonthlyReturnByAccountAsync({ payload }) {\n try {\n const result = yield call(fetchMonthlyReturnByAccount, payload);\n yield put(fetchMonthlyReturnByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchMonthlyReturnByAccountFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchMaxDrawdownByAccountAsync({ payload }) {\n try {\n const result = yield call(fetchMaxDrawdownByAccount, payload);\n yield put(fetchMaxDrawdownByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchMaxDrawdownByAccountFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchDrawdownByAccountAsync({ payload }) {\n try {\n const result = yield call(\n fetchDrawdownByAccount,\n payload.account,\n payload.data\n );\n yield put(fetchDrawdownByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchDrawdownByAccountFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* setDefaultPortStatAsync() {\n try {\n const state = store.getState();\n const accountNumber = state.investment.userAccounts[0]?.accountNumber;\n const result = yield call(fetchLastDateOfAccountNumber, accountNumber);\n yield put(fetchLastDateOfAccountNumberSuccess(result.data));\n } catch (error) {\n yield put(fetchLastDateOfAccountNumberFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\n\nexport function* fetchVolatilityByAccountAsync({ payload }) {\n try {\n const result = yield call(fetchVolatilityByAccount, payload);\n yield put(fetchVolatilityByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchVolatilityByAccountFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchLotsAsync({ payload }) {\n try {\n const result = yield call(fetchLots, payload);\n yield put(fetchLotsSuccess(result.data));\n } catch (error) {\n yield put(fetchLotsFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchNavsLotsAsync({ payload }) {\n try {\n const result = yield call(fetchNavPortfolios, payload);\n yield put(fetchNavsLotsSuccess(result.data));\n } catch (error) {\n yield put(fetchNavsLotsFailure(error.message));\n }\n}\nexport function* fetchBooksAsync() {\n try {\n const { investment } = store.getState();\n const payload = {\n accountNumber: investment.userAccounts[0]?.accountNumber,\n fundIds: investment.book.queries.funds\n .filter((fund) => fund.fundId)\n .map((fund) => fund.fundId),\n fundCodes: investment.book.queries.funds\n .filter((fund) => fund.fundCode)\n .map((fund) => fund.fundCode),\n startDate: investment.book.queries.date.startDate,\n endDate: investment.book.queries.date.endDate,\n };\n const result = yield call(fetchBooks, payload);\n yield put(fetchBooksSuccess(result.data));\n } catch (error) {\n yield put(fetchBooksFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchDividendsAsync({ payload }) {\n try {\n const result = yield call(fetchDividends, payload);\n yield put(fetchDividendsSuccess(result.data));\n } catch (error) {\n yield put(fetchDividendsFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchOrdersAsync({ payload }) {\n try {\n const result = yield call(fetchOrders, payload);\n yield put(fetchOrdersSuccess(result.data));\n } catch (error) {\n yield put(fetchOrdersFailure(error.message));\n }\n}\n\nexport function* deleteOrderRequestStartAsync({ payload }) {\n try {\n const result = yield call(deleteOrderRequestFund, payload);\n yield put(deleteOrderRequestSuccess(result.data));\n const state = store.getState();\n const accounts = state.investment.userAccounts;\n const orderQueries = state.investment.order.queries;\n const queries = {\n accountNumbers: accounts.map((x) => x.accountNumber),\n sortBy: orderQueries.sortBy,\n sortType: orderQueries.sortType,\n status: orderQueries.status?.value,\n tradeType: orderQueries.tradeType?.value,\n remark: orderQueries.remark?.value,\n };\n yield put(fetchOrdersStart(queries));\n } catch (error) {\n yield put(deleteOrderRequestFailure(error));\n }\n}\n\nexport function* fetchActivedFundsStart() {\n yield takeLatest(\n investmentConstants.FETCH_ACTIVED_FUNDS_START,\n fetchActivedFundsAsync\n );\n}\nexport function* fetchAllFundsStart() {\n yield takeLatest(\n investmentConstants.FETCH_ALL_FUNDS_START,\n fetchAllFundsAsync\n );\n}\nexport function* fetchAllFundCodesStart() {\n yield takeLatest(\n investmentConstants.FETCH_ALL_FUND_CODES_START,\n fetchAllFundCodesAsync\n );\n}\nexport function* fetchHistoriesStart() {\n yield takeLatest(\n investmentConstants.FETCH_HISTORIES_START,\n fetchHistoriesAsync\n );\n}\nexport function* fetchDCAsSagaStart() {\n yield takeLatest(investmentConstants.FETCH_DCAS_START, fetchDCAsAsync);\n}\nexport function* fetchPortfoliosStart() {\n yield takeLatest(\n investmentConstants.FETCH_PORTFOLIOS_START,\n fetchPortfoliosAsync\n );\n}\nexport function* fetchNavPortfoliosStart() {\n yield takeLatest(\n investmentConstants.FETCH_NAV_PORTFOLIO_START,\n fetchNavPortfoliosAsync\n );\n}\nexport function* fetchPreviousReturnByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START,\n fetchPreviousReturnByAccountAsync\n );\n}\nexport function* fetchHistoryGraphByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_START,\n fetchHistoryGraphByAccountAsync\n );\n}\nexport function* fetchPreviousReturnGraphByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START,\n fetchPreviousReturnGraphByAccountAsync\n );\n}\nexport function* fetchProfitByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_PROFIT_BY_ACCOUNT_START,\n fetchProfitByAccountAsync\n );\n}\nexport function* fetchMonthlyReturnByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_START,\n fetchMonthlyReturnByAccountAsync\n );\n}\nexport function* fetchVolatilityByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_START,\n fetchVolatilityByAccountAsync\n );\n}\nexport function* fetchMaxDrawdownByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_START,\n fetchMaxDrawdownByAccountAsync\n );\n}\nexport function* fetchDrawdownByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_START,\n fetchDrawdownByAccountAsync\n );\n}\nexport function* setDefaultPortStatStart() {\n yield takeLatest(\n investmentConstants.SET_DEFAULT_PORT_STAT,\n setDefaultPortStatAsync\n );\n}\nexport function* fetchLotsStart() {\n yield takeLatest(investmentConstants.FETCH_LOTS_START, fetchLotsAsync);\n}\nexport function* fetchNavsLotsStart() {\n yield takeLatest(\n investmentConstants.FETCH_NAVS_LOTS_START,\n fetchNavsLotsAsync\n );\n}\nexport function* fetchBooksStart() {\n yield takeLatest(investmentConstants.FETCH_BOOKS_START, fetchBooksAsync);\n}\nexport function* fetchDividendsStart() {\n yield takeLatest(\n investmentConstants.FETCH_DIVIDENDS_START,\n fetchDividendsAsync\n );\n}\nexport function* fetchOrdersSagaStart() {\n yield takeLatest(investmentConstants.FETCH_ORDERS_START, fetchOrdersAsync);\n}\nexport function* deleteOrderRequestStart() {\n yield takeLatest(\n investmentConstants.DELETE_ORDER_REQUEST_START,\n deleteOrderRequestStartAsync\n );\n}\nexport function* deleteDCAOrderRequestStart() {\n yield takeLatest(\n investmentConstants.DELETE_DCA_ORDER_REQUEST_START,\n deleteDCAOrderRequestStartAsync\n );\n}\n\nexport function* investmentSagas() {\n yield all([\n call(fetchActivedFundsStart),\n call(fetchAllFundsStart),\n call(fetchAllFundCodesStart),\n call(fetchHistoriesStart),\n call(fetchDCAsSagaStart),\n call(fetchOrdersSagaStart),\n call(fetchPortfoliosStart),\n call(fetchDividendsStart),\n call(fetchNavPortfoliosStart),\n call(fetchPreviousReturnByAccountStart),\n call(fetchHistoryGraphByAccountStart),\n call(fetchPreviousReturnGraphByAccountStart),\n call(fetchProfitByAccountStart),\n call(fetchMonthlyReturnByAccountStart),\n call(fetchMaxDrawdownByAccountStart),\n call(fetchDrawdownByAccountStart),\n call(setDefaultPortStatStart),\n call(fetchVolatilityByAccountStart),\n call(fetchLotsStart),\n call(fetchNavsLotsStart),\n call(fetchBooksStart),\n call(deleteOrderRequestStart),\n call(deleteDCAOrderRequestStart),\n ]);\n}\n","import { takeLatest, call, put, all } from \"redux-saga/effects\";\n\nimport {\n fetchFundInfo,\n fetchHistoricalNav,\n fetchHistoricalNavGraph,\n fetchDividend,\n fetchDividendGroupByYear,\n fetchDrawdownByDate,\n fetchMaximumDrawdown,\n fetchMonthlyReturn,\n fetchPriceRange,\n fetchVolatilities,\n fetchReturnExpenseRatio,\n fetchMonthlyProfit,\n fetchReturnHistory,\n fetchTradingInformation,\n fetchFundAverageRating,\n voteFundAverageRating,\n fetchPortByFundId,\n fetchPortChartByFundIdAndChartType,\n fetchWeeklyFundRanking,\n fetchPortfolioInformation,\n fetchDividendDescription,\n} from \"../_services/information.services\";\nimport { fetchCalendarByDate } from \"../_services/calendar.services\";\n\nimport { informationConstants } from \"../_constants/information.constants\";\n\nimport {\n fetchFundInfoSuccess,\n fetchFundInfoFailure,\n clearFundInfo,\n fetchTradingInformationSuccess,\n fetchTradingInformationFailure,\n fetchFundAverageRatingSuccess,\n fetchFundAverageRatingFailure,\n fetchCalendarFundSuccess,\n fetchCalendarFundFailure,\n fetchHistoricalNavSuccess,\n fetchHistoricalNavFailure,\n fetchHistoricalNavGraphSuccess,\n fetchHistoricalNavGraphFailure,\n fetchFundAverageRatingStart,\n fetchFundPortInfoSuccess,\n fetchFundPortInfoFailure,\n fetchFundPortChartByChartTypeSuccess,\n fetchFundPortChartByChartTypeFailure,\n fetchDividendSuccess,\n fetchDividendFailure,\n fetchDividendGroupByYearSuccess,\n fetchDividendGroupByYearFailure,\n fetchWeeklyFundRankingSuccess,\n fetchWeeklyFundRankingFailure,\n fetchDrawdownByDateSuccess,\n fetchDrawdownByDateFailure,\n fetchMaximumDrawdownSuccess,\n fetchMaximumDrawdownFailure,\n fetchDrawdownNavGraphSuccess,\n fetchDrawdownNavGraphFailure,\n fetchMonthlyReturnSuccess,\n fetchMonthlyReturnFailure,\n fetchPriceRangeSuccess,\n fetchPriceRangeFailure,\n fetchVolatilitiesSuccess,\n fetchVolatilitiesFailure,\n fetchReturnExpenseRatioSuccess,\n fetchReturnExpenseRatioFailure,\n fetchMonthlyProfitSuccess,\n fetchMonthlyProfitFailure,\n fetchReturnHistorySuccess,\n fetchReturnHistoryFailure,\n fetchPortfolioInformationSuccess,\n fetchPortfolioInformationFailure,\n fetchDividendDescriptionSuccess,\n fetchDividendDescriptionFailure,\n} from \"../_actions/information.actions\";\n\nimport { convertDataToPortChart } from \"../_utils/information.utils\";\n\nexport function* fetchFundInfoAsync({ payload }) {\n try {\n yield put(clearFundInfo());\n const result = yield call(fetchFundInfo, payload);\n yield put(fetchFundInfoSuccess(result.data));\n } catch (error) {\n yield put(fetchFundInfoFailure(error.message));\n }\n}\n\nexport function* fetchPortfolioInformationAsync({ payload }) {\n try {\n const result = yield call(fetchPortfolioInformation, payload);\n yield put(fetchPortfolioInformationSuccess(result.data));\n } catch (error) {\n yield put(fetchPortfolioInformationFailure(error.message));\n }\n}\n\nexport function* fetchTradingInformationAsync({ payload }) {\n try {\n const result = yield call(fetchTradingInformation, payload);\n yield put(fetchTradingInformationSuccess(result.data));\n } catch (error) {\n yield put(fetchTradingInformationFailure(error.message));\n }\n}\n\nexport function* fetchHistoricalNavAsync({ payload }) {\n try {\n const result = yield call(fetchHistoricalNav, payload);\n yield put(fetchHistoricalNavSuccess(result.data));\n } catch (error) {\n yield put(fetchHistoricalNavFailure(error.message));\n }\n}\n\nexport function* fetchFundAverageRatingAsync({ payload }) {\n try {\n const result = yield call(fetchFundAverageRating, payload);\n yield put(fetchFundAverageRatingSuccess(result.data));\n } catch (error) {\n yield put(fetchFundAverageRatingFailure(error.message));\n }\n}\n\nexport function* voteFundAverageRatingAsync({ payload }) {\n try {\n yield call(voteFundAverageRating, payload);\n yield put(fetchFundAverageRatingStart(payload.fundId));\n } catch (error) {}\n}\n\nexport function* fetchPortByFundIdAsync({ payload }) {\n try {\n const result = yield call(fetchPortByFundId, payload);\n yield put(fetchFundPortInfoSuccess(result.data));\n } catch (error) {\n yield put(fetchFundPortInfoFailure(error));\n }\n}\n\nexport function* fetchPortChartByChartTypeAsync({ payload }) {\n try {\n const result = yield call(fetchPortChartByFundIdAndChartType, payload);\n const convertData = convertDataToPortChart(result.data, payload.chartType);\n yield put(fetchFundPortChartByChartTypeSuccess(convertData));\n } catch (error) {\n yield put(fetchFundPortChartByChartTypeFailure(error));\n }\n}\n\nexport function* fetchCalendarFundStartAsync({ payload }) {\n try {\n const result = yield call(fetchCalendarByDate, payload);\n yield put(fetchCalendarFundSuccess(result.data));\n } catch (error) {\n yield put(fetchCalendarFundFailure(error));\n }\n}\n\nexport function* fetchHistoricalNavGraphAsync({ payload }) {\n try {\n const result = yield call(fetchHistoricalNavGraph, payload);\n yield put(fetchHistoricalNavGraphSuccess(result.data));\n } catch (error) {\n yield put(fetchHistoricalNavGraphFailure(error.message));\n }\n}\n\nexport function* fetchWeeklyFundRankingAsync({ payload }) {\n try {\n const result = yield call(fetchWeeklyFundRanking, payload);\n yield put(fetchWeeklyFundRankingSuccess(result.data));\n } catch (error) {\n yield put(fetchWeeklyFundRankingFailure(error.message));\n }\n}\n\nexport function* fetchDrawdownByDateAsync({ payload }) {\n try {\n const result = yield call(fetchDrawdownByDate, payload);\n yield put(fetchDrawdownByDateSuccess(result.data));\n } catch (error) {\n yield put(fetchDrawdownByDateFailure(error.message));\n }\n}\n\nexport function* fetchMaximumDrawdownAsync({ payload }) {\n try {\n const result = yield call(fetchMaximumDrawdown, payload);\n yield put(fetchMaximumDrawdownSuccess(result.data));\n } catch (error) {\n yield put(fetchMaximumDrawdownFailure(error.message));\n }\n}\n\nexport function* fetchDrawdownNavGraphAsync({ payload }) {\n try {\n const result = yield call(fetchHistoricalNavGraph, payload);\n yield put(fetchDrawdownNavGraphSuccess(result.data));\n } catch (error) {\n yield put(fetchDrawdownNavGraphFailure(error.message));\n }\n}\n\nexport function* fetchMonthlyReturnAsync({ payload }) {\n try {\n const result = yield call(fetchMonthlyReturn, payload);\n yield put(fetchMonthlyReturnSuccess(result.data));\n } catch (error) {\n yield put(fetchMonthlyReturnFailure(error.message));\n }\n}\n\nexport function* fetchVolatilitiesAsync({ payload }) {\n try {\n const result = yield call(fetchVolatilities, payload);\n yield put(fetchVolatilitiesSuccess(result.data));\n } catch (error) {\n yield put(fetchVolatilitiesFailure(error.message));\n }\n}\n\nexport function* fetchPriceRangeAsync({ payload }) {\n try {\n const result = yield call(fetchPriceRange, payload);\n yield put(fetchPriceRangeSuccess(result.data));\n } catch (error) {\n yield put(fetchPriceRangeFailure(error.message));\n }\n}\n\nexport function* fetchReturnExpenseRatioAsync({ payload }) {\n try {\n const result = yield call(fetchReturnExpenseRatio, payload);\n yield put(fetchReturnExpenseRatioSuccess(result.data));\n } catch (error) {\n yield put(fetchReturnExpenseRatioFailure(error.message));\n }\n}\n\nexport function* fetchMonthlyProfitAsync({ payload }) {\n try {\n const result = yield call(fetchMonthlyProfit, payload);\n yield put(fetchMonthlyProfitSuccess(result.data));\n } catch (error) {\n yield put(fetchMonthlyProfitFailure(error.message));\n }\n}\n\nexport function* fetchReturnHistoryAsync({ payload }) {\n try {\n const result = yield call(fetchReturnHistory, payload);\n yield put(fetchReturnHistorySuccess(result.data));\n } catch (error) {\n yield put(fetchReturnHistoryFailure(error.message));\n }\n}\n\n// Dividend\nexport function* fetchDividendAsync({ payload }) {\n try {\n const result = yield call(fetchDividend, payload);\n yield put(fetchDividendSuccess(result.data));\n } catch (error) {\n yield put(fetchDividendFailure(error.message));\n }\n}\n\nexport function* fetchDividendGroupByYearAsync({ payload }) {\n try {\n const result = yield call(fetchDividendGroupByYear, payload);\n yield put(fetchDividendGroupByYearSuccess(result.data));\n } catch (error) {\n yield put(fetchDividendGroupByYearFailure(error.message));\n }\n}\n\nexport function* fetchDividendDescriptionAsync({ payload }) {\n try {\n const result = yield call(fetchDividendDescription, payload);\n yield put(fetchDividendDescriptionSuccess(result.data));\n } catch (error) {\n yield put(fetchDividendDescriptionFailure(error.message));\n }\n}\n\nexport function* fetchFundInfoStart() {\n yield takeLatest(\n informationConstants.FETCH_FUND_INFO_START,\n fetchFundInfoAsync\n );\n}\n\nexport function* fetchPortfolioInformationStart() {\n yield takeLatest(\n informationConstants.FETCH_PORTFOLIO_INFO_START,\n fetchPortfolioInformationAsync\n );\n}\nexport function* fetchTradingInformationStart() {\n yield takeLatest(\n informationConstants.FETCH_TRADING_INFO_START,\n fetchTradingInformationAsync\n );\n}\n\nexport function* fetchHistoricalNavStart() {\n yield takeLatest(\n informationConstants.FETCH_HISTORICAL_NAV_START,\n fetchHistoricalNavAsync\n );\n}\n\nexport function* fetchFundAverageRatingStartSaga() {\n yield takeLatest(\n informationConstants.FETCH_FUND_AVERAGE_RATING_START,\n fetchFundAverageRatingAsync\n );\n}\n\nexport function* voteFundAverageRatingStart() {\n yield takeLatest(\n informationConstants.VOTE_FUND_AVERAGE_RATING,\n voteFundAverageRatingAsync\n );\n}\n\nexport function* fetchPortByFundIdStart() {\n yield takeLatest(\n informationConstants.FETCH_FUND_PORT_INFO_START,\n fetchPortByFundIdAsync\n );\n}\n\nexport function* fetchPortChartByChartTypeStart() {\n yield takeLatest(\n informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_START,\n fetchPortChartByChartTypeAsync\n );\n}\n\nexport function* fetchCalendarFundStart() {\n yield takeLatest(\n informationConstants.FETCH_CALENDAR_FUND_START,\n fetchCalendarFundStartAsync\n );\n}\n\nexport function* fetchHistoricalNavGraphStart() {\n yield takeLatest(\n informationConstants.FETCH_HISTORICAL_NAV_GRAPH_START,\n fetchHistoricalNavGraphAsync\n );\n}\n\nexport function* fetchWeeklyFundRankingStart() {\n yield takeLatest(\n informationConstants.FETCH_WEEKLY_FUND_RANKING_START,\n fetchWeeklyFundRankingAsync\n );\n}\n\nexport function* fetchDividendStart() {\n yield takeLatest(\n informationConstants.FETCH_DIVIDEND_START,\n fetchDividendAsync\n );\n}\n\nexport function* fetchDividendDescriptionStart() {\n yield takeLatest(\n informationConstants.FETCH_DIVIDEND_DESCRIPTION_START,\n fetchDividendDescriptionAsync\n );\n}\n\nexport function* fetchDrawdownByDateStart() {\n yield takeLatest(\n informationConstants.FETCH_DRAWDOWN_BY_DATE_START,\n fetchDrawdownByDateAsync\n );\n}\n\nexport function* fetchMaximumDrawdownStart() {\n yield takeLatest(\n informationConstants.FETCH_MAXIMUM_DRAWDOWN_START,\n fetchMaximumDrawdownAsync\n );\n}\n\nexport function* fetchDrawdownNavGraphStart() {\n yield takeLatest(\n informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_START,\n fetchDrawdownNavGraphAsync\n );\n}\n\nexport function* fetchMonthlyReturnStart() {\n yield takeLatest(\n informationConstants.FETCH_MONTHLY_RETURN_START,\n fetchMonthlyReturnAsync\n );\n}\n\nexport function* fetchPriceRangeStart() {\n yield takeLatest(\n informationConstants.FETCH_PRICE_RANGE_START,\n fetchPriceRangeAsync\n );\n}\n\nexport function* fetchVolatilitiesStart() {\n yield takeLatest(\n informationConstants.FETCH_VOLATILITIES_START,\n fetchVolatilitiesAsync\n );\n}\n\nexport function* fetchReturnExpenseRatioStart() {\n yield takeLatest(\n informationConstants.FETCH_RETURN_EXPENSE_RATIO_START,\n fetchReturnExpenseRatioAsync\n );\n}\n\nexport function* fetchMonthlyProfitStart() {\n yield takeLatest(\n informationConstants.FETCH_MONTHLY_PROFIT_START,\n fetchMonthlyProfitAsync\n );\n}\n\nexport function* fetchReturnHistoryStart() {\n yield takeLatest(\n informationConstants.FETCH_RETURN_HISTORY_START,\n fetchReturnHistoryAsync\n );\n}\n\nexport function* fetchDividendGroupByYearStart() {\n yield takeLatest(\n informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_START,\n fetchDividendGroupByYearAsync\n );\n}\n\nexport function* informationSagas() {\n yield all([\n call(fetchFundInfoStart),\n call(fetchPortfolioInformationStart),\n call(fetchTradingInformationStart),\n call(fetchFundAverageRatingStartSaga),\n call(voteFundAverageRatingStart),\n call(fetchCalendarFundStart),\n call(fetchPortByFundIdStart),\n call(fetchPortChartByChartTypeStart),\n call(fetchHistoricalNavStart),\n call(fetchHistoricalNavGraphStart),\n call(fetchDividendStart),\n call(fetchWeeklyFundRankingStart),\n call(fetchDrawdownByDateStart),\n call(fetchMaximumDrawdownStart),\n call(fetchDrawdownNavGraphStart),\n call(fetchMonthlyReturnStart),\n call(fetchPriceRangeStart),\n call(fetchVolatilitiesStart),\n call(fetchReturnExpenseRatioStart),\n call(fetchMonthlyProfitStart),\n call(fetchReturnHistoryStart),\n call(fetchDividendGroupByYearStart),\n call(fetchDividendDescriptionStart),\n ]);\n}\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { searchInformation } from '../_services/search.services';\nimport {\n\tfetchConfirmSellFund, \n\tfetchBuyFundInfo, \n\tfetchSellFundInfo,\n\tfetchSwitchFundInfo,\n\tfetchCheckedSwitchableFund,\n\tfetchSendQuestionBackToConfirm,\n\tfetchBuyableFund,\n\tfetchSellableFund,\n\tfetchConfirmSwitchFund\n} from '../_services/order-request.services';\nimport {\n\tcheckedFundAbleToOrderSuccess,\n\tcheckedFundAbleToOrderFailure,\n\tconfirmOrderFundSuccess,\n\tconfirmOrderFundFailure,\n\tupdateFundInfo,\n\tupdateFundInfo2,\n\tclearSearchFundInfo,\n\tclearSearchFundInfo2\n} from '../_actions/order-request.actions';\nimport { orderRequestConstants } from '../_constants/order-request.constants';\nimport { store } from '../redux/store';\nimport { tranformErrorResponses } from '../_utils/service.utils';\n\nexport function* fetchBuyFundInfoAsync({ payload }) {\n\ttry {\n\t\tlet result = yield call(fetchBuyFundInfo, payload);\n\t\tresult.data.fund.fundId = payload.fundId;\n\t\tresult.data.fund.color = payload.color;\n\t\tresult.data.fund.riskLevel = payload.fund.riskLevel || result.data.fund.riskLevel;\n\t\tresult.data.fund.categoryName = payload.categoryName;\n\t\tresult.data.fund.categoryCode = payload.fund.categoryCode;\n\t\tyield put(updateFundInfo(result.data));\n\t} catch (error) {\n\t\tyield put(clearSearchFundInfo());\n\t}\n}\n\nexport function* fetchCheckedBuyableFundAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchBuyableFund, payload);\n\t\tyield put(checkedFundAbleToOrderSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(checkedFundAbleToOrderFailure(tranformErrorResponses(error)));\n\t}\n}\n\nexport function* fetchCheckedSellableFundAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchSellableFund, payload);\n\t\tyield put(checkedFundAbleToOrderSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(checkedFundAbleToOrderFailure(tranformErrorResponses(error)));\n\t}\n}\n\nexport function* fetchCheckedSwitchableFundAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchCheckedSwitchableFund, payload);\n\t\tyield put(checkedFundAbleToOrderSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(checkedFundAbleToOrderFailure(tranformErrorResponses(error)));\n\t}\n}\n\nexport function* fetchConfirmOrderFundAsync({ payload }) {\n\ttry {\n\t\tconst state = store.getState();\n\t\tconst activeTab = state.orderRequest.activeTab;\n\t\tconst urlAPI = activeTab === 'Buy'\n\t\t\t? fetchSendQuestionBackToConfirm\n\t\t\t:\tactiveTab === 'Sell'\n\t\t\t\t? fetchConfirmSellFund\n\t\t\t\t:\tactiveTab === 'Switch'\n\t\t\t\t\t? fetchConfirmSwitchFund\n\t\t\t\t\t: null\n\n\t\tconst result = yield call(urlAPI, payload);\n\t\tyield put(confirmOrderFundSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(confirmOrderFundFailure(tranformErrorResponses(error)));\n\t}\n}\n\nexport function* fetchSellFundInfoAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchSellFundInfo, payload);\n\n\t\tconst mapData = {\n\t\t\t...result.data,\n\t\t\tfund: {\n\t\t\t\t...result.data.fund,\n\t\t\t\taccountType: payload.accountType,\n\t\t\t\tfundId: payload.fundId,\n\t\t\t\tcolor: payload.color,\n\t\t\t\tcategoryCode: payload.fund?.categoryCode\n\t\t\t}\n\t\t}\n\t\tyield put(updateFundInfo(mapData));\n\t} catch (error) {\n\t\tyield put(clearSearchFundInfo());\n\t}\n}\n\nexport function* fetchSwitchFundInfoAsync({ payload }) {\n\ttry {\n\t\tconst tempPayload = { \n\t\t\t...payload, \n\t\t\ttoFundId: payload.toFund?.fundId, \n\t\t\ttoFundCode: payload.toFund?.fundCode \n\t\t};\n\t\t\n\t\tlet result = yield call(fetchSwitchFundInfo, tempPayload);\n\t\tresult.data = { \n\t\t\t...result.data,\n\t\t\tfund: {\n\t\t\t\t...result.data.fund,\n\t\t\t\tcolor: payload.color,\n\t\t\t\tfundId: payload.toFund?.fundId,\n\t\t\t\tcategoryCode: payload.toFund?.categoryCode\n\t\t\t}\n\t\t}\n\n\t\tyield put(updateFundInfo2(result.data));\n\t} catch (error) {\n\t\tyield put(clearSearchFundInfo2());\n\t}\n}\n\nexport function* fetchBuyFundInfoStart() {\n\tyield takeLatest(orderRequestConstants.FETCH_BUY_FUND_INFO_START, fetchBuyFundInfoAsync);\n}\n\nexport function* fetchCheckedBuyableFundStart() {\n\tyield takeLatest(orderRequestConstants.CHECKED_BUYABLE_FUND_START, fetchCheckedBuyableFundAsync);\n}\n\nexport function* fetchCheckedSellableFundStart() {\n\tyield takeLatest(orderRequestConstants.CHECKED_SELLABLE_FUND_START, fetchCheckedSellableFundAsync);\n}\n\nexport function* fetchCheckedSwitchableFundStart() {\n\tyield takeLatest(orderRequestConstants.CHECKED_SWITCHABLE_FUND_START, fetchCheckedSwitchableFundAsync);\n}\n\nexport function* fetchSellFundInfoStart() {\n\tyield takeLatest(orderRequestConstants.FETCH_SELL_FUND_INFO_START, fetchSellFundInfoAsync);\n}\n\nexport function* fetchSwitchFundInfoStart() {\n\tyield takeLatest(orderRequestConstants.FETCH_SWITCH_FUND_INFO_START, fetchSwitchFundInfoAsync);\n}\n\nexport function* fetchConfirmOrderFundStart() {\n\tyield takeLatest(orderRequestConstants.CONFIRM_ORDER_FUND_START, fetchConfirmOrderFundAsync);\n}\n\nexport function* orderRequestSagas() {\n\tyield all([\n\t\tcall(fetchBuyFundInfoStart),\n\t\tcall(fetchCheckedBuyableFundStart),\n\t\tcall(fetchCheckedSellableFundStart),\n\t\tcall(fetchCheckedSwitchableFundStart),\n\t\tcall(fetchSellFundInfoStart),\n\t\tcall(fetchSwitchFundInfoStart),\n\t\tcall(fetchConfirmOrderFundStart)\n\t]);\n}\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\n\n/* reducer, selector, action */\nimport {\n\tfetchAdvanceSearchFiltersSuccess,\n\tfetchAdvanceSearchFiltersFailure,\n\tfetchAdvanceSearchSuccess,\n\tfetchAdvanceSearchFailure,\n\tfetchNavAdvanceSearchSuccess,\n\tfetchNavAdvanceSearchFailure,\n\tupdateDefaultQueriesAdvanceSearch\n} from '../_actions/advance-search.actions';\n\nimport { advanceSearchConstants } from '../_constants/advance-search.constants';\n\nimport {\n\tfetchAdvanceSearchFilters,\n\tfetchNavForAdvanceSearch\n} from '../_services/advance-search.services';\nimport { fetchFundSearch } from '../_services/information.services';\n\n// Worker\nexport function* fetchAdvanceSearchFiltersAsync() {\n\ttry {\n\t\tconst result = yield call(fetchAdvanceSearchFilters);\n\t\tyield put(updateDefaultQueriesAdvanceSearch(result.data));\n\t\tyield put(fetchAdvanceSearchFiltersSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchAdvanceSearchFiltersFailure(error));\n\t}\n}\n\nexport function* fetchAdvanceSearchAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchFundSearch, payload);\n\t\tyield put(fetchAdvanceSearchSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchAdvanceSearchFailure(error));\n\t}\n}\n\nexport function* fetchNavAdvanceSearchAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchNavForAdvanceSearch, payload);\n\t\tyield put(fetchNavAdvanceSearchSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchNavAdvanceSearchFailure(error));\n\t}\n}\n\n// Watcher\nexport function* fetchAdvanceSearchFiltersToSaga() {\n\tyield takeLatest(advanceSearchConstants.FETCH_ADVANCE_SEARCH_FILTERS_START, fetchAdvanceSearchFiltersAsync);\n}\n\nexport function* fetchAdvanceSearchToSaga() {\n\tyield takeLatest(advanceSearchConstants.FETCH_ADVANCE_SEARCH_START, fetchAdvanceSearchAsync);\n}\n\nexport function* fetchNavAdvanceSearchToSaga() {\n\tyield takeLatest(advanceSearchConstants.FETCH_NAV_ADVANCE_SEARCH_START, fetchNavAdvanceSearchAsync);\n}\n\n// Call Root-Saga\nexport function* advanceSearchSagas() {\n\tyield all([\n\t\tcall(fetchAdvanceSearchFiltersToSaga), \n\t\tcall(fetchAdvanceSearchToSaga), \n\t\tcall(fetchNavAdvanceSearchToSaga)\n\t]);\n}\n","import axios_nomura from './axios-nomura.services';\nimport axios_test from './axios-mock.services';\n\nexport const fetchIpos = async (ipoType) => {\n return await axios_nomura.get(`api/v1/ipo`, { params: { type: ipoType } });\n};\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { fetchIpos } from '../_services/ipo.services';\nimport { fetchIposSuccess, fetchIposFailure } from '../_actions/ipo.actions';\nimport { ipoConstants } from '../_constants/ipo.constants';\n\nexport function* fetchIpoStartAsync({ payload }) {\n try {\n const result = yield call(fetchIpos, payload);\n yield put(fetchIposSuccess(result.data));\n } catch (error) {\n yield put(fetchIposFailure(error.message));\n }\n}\n\nexport function* fetchIpoStart() {\n yield takeLatest(ipoConstants.FETCH_IPOS_START, fetchIpoStartAsync);\n}\nexport function* ipoSagas() {\n yield all([call(fetchIpoStart)]);\n}\n","import axios_nomura from './axios-nomura.services';\n\nexport const fetchRank = async (fundId) => {\n return await axios_nomura.get(`api/v1/funds/${fundId}/rank`, { params: { type: '1Y' } } );\n};\n\nexport const fetchFundRank = async (data) => {\n return await axios_nomura.get(`api/v1/funds/${data.fundId}/rank`, { params: { type: data.type } });\n};\n\nexport const fetchCategories = async () => {\n return await axios_nomura.get(`api/v1/category`);\n};\n\nexport const fetchUserCategories = async () => {\n return await axios_nomura.get(`api/v1/category/favorite`);\n};\n\nexport const saveUserCategories = async (data) => {\n return await axios_nomura.post(`api/v1/category/favorite`, data);\n};\n","import axios_nomura from './axios-nomura.services';\nimport axios from './axios-mock.services';\n\nexport const fetchBanners = async () => {\n return await axios_nomura.get(`api/v1/home/banners`);\n};\n\nexport const fetchHighlightFunds = async () => {\n return await axios_nomura.get(`api/v1/home/hot_funds`);\n};\n\nexport const fetchTopSubCategories = async () => {\n return await axios_nomura.get(`api/v1/home/category_rankings`);\n};\n\nexport const fetchArticles = async () => {\n return await axios_nomura.get(`api/v1/home/article_categories`);\n};\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { pullUserCategories } from '../_utils/fund-ranking.utils';\n\nimport {\n fetchRankingSearchFiltersSuccess,\n fetchRankingSearchFiltersFailure,\n fetchRankingsSuccess,\n fetchRankingsFailure,\n fetchCategoriesSuccess,\n fetchCategoriesFailure,\n fetchUserCategoriesStart,\n fetchUserCategoriesSuccess,\n fetchUserCategoriesFailure,\n saveUserCategoriesSuccess,\n saveUserCategoriesFailure,\n setDefaultFundRankingQueries,\n fetchNavRankingsSuccess,\n fetchNavRankingsFailure,\n fetchFundRankSuccess,\n fetchFundRankFailure,\n fetchHighlightFundSuccess,\n fetchHighlightFundFailure,\n fetchRankSuccess,\n fetchRankFailure,\n updateUserCategories\n} from '../_actions/fund-ranking.actions';\nimport { fundRankingConstants } from '../_constants/fund-ranking.constants';\n\nimport {\n fetchCategories,\n fetchUserCategories,\n saveUserCategories,\n fetchFundRank,\n fetchRank\n} from '../_services/fund-ranking.services';\nimport {\n fetchAdvanceSearchFilters,\n fetchNavForAdvanceSearch\n} from '../_services/advance-search.services';\nimport {\n fetchHighlightFunds\n} from '../_services/home.services';\nimport { fetchFundSearch } from '../_services/information.services';\n\nimport { store } from '../redux/store';\n\nexport function* fetchRankingSearchFiltersAsync() {\n\ttry {\n\t\tconst result = yield call(fetchAdvanceSearchFilters);\n\t\tyield put(fetchRankingSearchFiltersSuccess(result.data));\n yield put(setDefaultFundRankingQueries(result.data));\n\t} catch (error) {\n\t\tyield put(fetchRankingSearchFiltersFailure(error));\n\t}\n}\n\nexport function* fetchRankingSearchFiltersStart() {\n yield takeLatest(fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_START, fetchRankingSearchFiltersAsync);\n}\n\nexport function* fetchFundRankAsync({payload}) {\n\ttry {\n\t\tconst result = yield call(fetchFundRank, payload);\n\t\tyield put(fetchFundRankSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchFundRankFailure(error));\n\t}\n}\n\nexport function* fetchFundRankStart() {\n yield takeLatest(fundRankingConstants.FETCH_FUND_RANK_START, fetchFundRankAsync);\n}\n\nexport function* fetchNavRankingsAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchNavForAdvanceSearch, payload);\n\t\tyield put(fetchNavRankingsSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchNavRankingsFailure(error));\n\t}\n}\n\nexport function* fetchNavRankingsStart() {\n yield takeLatest(fundRankingConstants.FETCH_NAV_RANKINGS_START, fetchNavRankingsAsync);\n}\n\nexport function* fetchRankStartAsync({ payload }) {\n const { page } = payload;\n delete payload.page;\n try {\n const result = yield call(fetchRank, payload);\n yield put(fetchRankSuccess(result.data));\n } catch (error) {\n yield put(fetchRankFailure(error.message));\n }\n}\n\nexport function* fetchRankStart() {\n yield takeLatest(fundRankingConstants.FETCH_RANK_START, fetchRankStartAsync);\n}\n\nexport function* fetchRankingsStartAsync({payload}) {\n try {\n const result = yield call(fetchFundSearch, payload);\n yield put(fetchRankingsSuccess(result.data));\n // add page & current for in the future\n // yield put(updatePage(result.data.currentPage));\n // yield put(setTotalPage(result.data.totalPage));\n } catch (error) {\n yield put(fetchRankingsFailure(error.message));\n // yield put(updatePage(1));\n // yield put(setTotalPage(1));\n }\n}\n\nexport function* fetchRankingsStart() {\n yield takeLatest(fundRankingConstants.FETCH_RANKINGS_START, fetchRankingsStartAsync);\n}\n\nexport function* fetchCategoriesStartAsync() {\n const { authentication, fundRanking: { userCategory : { userCategories } } } = store.getState();\n // let user = state.authentication.currentNumbers.toString();\n\n try {\n if (!authentication.isSignIn && userCategories.length > 1) {\n return\n }\n yield put(updateUserCategories({ isFetching: true }));\n const first = yield call(fetchCategories);\n yield put(fetchCategoriesSuccess(first.data));\n // user = user !== '' ? 'User2' : null; //Change to username instant 'User2' later\n const second = yield call(fetchUserCategories);\n const data = pullUserCategories(second.data, first.data);\n yield put(fetchUserCategoriesSuccess(data));\n } catch (error) {\n yield put(fetchCategoriesFailure(error.message));\n yield put(fetchUserCategoriesFailure(error.message));\n }\n}\n\nexport function* fetchCategoriesStart() {\n yield takeLatest(fundRankingConstants.FETCH_CATEGORIES_START, fetchCategoriesStartAsync);\n}\n\nexport function* fetchUserCategoriesStartAsync() {\n const state = store.getState();\n const categories = state.fundRanking.category.categories;\n try {\n if (categories == null) {\n return;\n }\n\n const result = yield call(fetchUserCategories);\n const data = pullUserCategories(result.data, categories);\n yield put(fetchUserCategoriesSuccess(data));\n } catch (error) {\n yield put(fetchUserCategoriesFailure(error.message));\n }\n}\n\nexport function* fetchUserCategoriesStartSaga() {\n yield takeLatest(fundRankingConstants.FETCH_USER_CATEGORIES_START, fetchUserCategoriesStartAsync);\n}\n\nexport function* saveUserCategoriesStartAsync({ payload }) {\n const state = store.getState();\n let user = state.authentication.user;\n\n try {\n if (user) {\n // user = 'User2'; // remove this line after api have already request real username\n yield call(saveUserCategories, payload);\n yield put(fetchUserCategoriesStart(user));\n } else {\n yield put(fetchUserCategoriesSuccess(payload));\n }\n } catch (error) {\n yield put(saveUserCategoriesFailure(error.message));\n }\n}\n\nexport function* saveUserCategoriesStart() {\n yield takeLatest(fundRankingConstants.SAVE_USER_CATEGORIES_START, saveUserCategoriesStartAsync);\n}\n\nexport function* fetchHighlightFundStartAsync() {\n try {\n const result = yield call(fetchHighlightFunds);\n yield put(fetchHighlightFundSuccess(result.data));\n } catch (error) {\n yield put(fetchHighlightFundFailure(error.message));\n }\n}\n\nexport function* fetchHighlightFundStart() {\n yield takeLatest(fundRankingConstants.FETCH_HIGHLIGHT_FUND_START, fetchHighlightFundStartAsync);\n}\n\nexport function* fundRankingSagas() {\n yield all([\n call(fetchRankStart),\n call(fetchRankingSearchFiltersStart),\n call(fetchFundRankStart),\n call(fetchRankingsStart),\n call(fetchCategoriesStart),\n call(fetchUserCategoriesStartSaga),\n call(saveUserCategoriesStart),\n call(fetchNavRankingsStart),\n call(fetchHighlightFundStart)\n ]);\n}\n","import axios_nomura from './axios-nomura.services';\n\nexport const fetchMonthlyReport = async (payload) => {\n let accountNumber = payload.accountNumber.length > 0 ? payload.accountNumber.toString() : null;\n delete payload.accountNumber;\n return await axios_nomura.post(`api/v1/accounts/${accountNumber}/monthly_report`, JSON.stringify(payload));\n};\n\nexport const fetchMonthlyReportChart = async (payload) => {\n return await axios_nomura.post(`/api/v1/accounts/${payload.accountNumber}/monthly_report/chart`, null, { params: { date: payload.date} });\n};\n\n// Monthly Report For Investment(Portfolio).\nexport const fetchMonthlyReportChartForPortFolios = async (payload) => {\n return await axios_nomura.post(`/api/v1/portfolios/groups/chart`, payload );\n};\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { store } from '../redux/store';\n\nimport { \n fetchMonthlyReport,\n fetchMonthlyReportChart,\n fetchMonthlyReportChartForPortFolios\n} from '../_services/monthly-report.services';\n\nimport { \n fetchMonthlyReportSuccess, \n fetchMonthlyReportFailure,\n fetchMonthlyReportChartSuccess,\n fetchMonthlyReportChartFailure,\n clearMonthluReportTableQueries,\n clearMonthluReportChartQueries,\n clearMonthluReportSharedQueries\n} from '../_actions/monthly-report.actions';\n\nimport { monthlyReportConstants } from '../_constants/monthly-report.constants';\n\nexport function* fetchMonthlyReportTableStartAsync() {\n const state = store.getState();\n const account = state.investment.userAccounts;\n const sharedQueries = state.monthlyReport.sharedQueries;\n const tableQueries = state.monthlyReport.monthlyReportTable.queries;\n \n let payload = {\n accountNumber: account.map(acc => acc.accountNumber)[0],\n date: sharedQueries.date,\n groupType: tableQueries.groupType,\n sortBy: tableQueries.sortKey,\n sortType: tableQueries.sortType\n }\n\n try {\n const result = yield call(fetchMonthlyReport, payload);\n yield put(fetchMonthlyReportSuccess(result.data));\n } catch (error) {\n yield put(fetchMonthlyReportFailure(error.message));\n }\n}\n\nexport function* fetchMonthlyReportChartStartAsync() {\n try { \n const state = store.getState();\n let payload = {};\n let result = null;\n\n if (state.main.currentPage === 'MONTHLY_REPORT') {\n payload['accountNumber'] = state.investment.userAccounts[0]?.accountNumber;\n payload['date'] = state.monthlyReport.sharedQueries.date;\n result = yield call(fetchMonthlyReportChart, payload);\n } else if (state.main.currentPage === 'INVESTMENT') {\n payload['accountNumbers'] = state.investment.userAccounts.map(x => x.accountNumber);\n result = yield call(fetchMonthlyReportChartForPortFolios, payload);\n } else {\n // THROW ERROR WHEN CURRENT PAGE IS NOT BOTH INVESTMENT AND MONTHLY_REPORT.\n const error = new Error( \"Your page not permission to access this content.\");\n throw(error);\n }\n\n yield put(fetchMonthlyReportChartSuccess(result.data));\n } catch (error) {\n yield put(fetchMonthlyReportChartFailure(error.message));\n }\n}\n\nexport function* clearMonthlyReportQueriesStart() {\n yield put(clearMonthluReportTableQueries());\n yield put(clearMonthluReportChartQueries());\n yield put(clearMonthluReportSharedQueries());\n}\n\nexport function* fetchMonthlyReportTableStart() {\n yield takeLatest(monthlyReportConstants.FETCH_MONTHLY_REPORT_START, fetchMonthlyReportTableStartAsync);\n}\n\nexport function* fetchMonthlyReportChartStart() {\n yield takeLatest(monthlyReportConstants.FETCH_MONTHLY_REPORT_CHART_START, fetchMonthlyReportChartStartAsync);\n}\n\nexport function* clearQueriesStart() {\n yield takeLatest(monthlyReportConstants.CLEAR_MONTHLY_REPORT_QUERIES_START, clearMonthlyReportQueriesStart);\n}\n\nexport function* monthlyReportSagas() {\n yield all([call(fetchMonthlyReportTableStart), call(fetchMonthlyReportChartStart), call(clearQueriesStart)]);\n}\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { fetchCalendarByYear, fetchCalendarByDate } from '../_services/calendar.services';\nimport { \n fetchCalendarByYearSuccess, \n fetchCalendarByYearFailure,\n fetchCalendarByDateSuccess, \n fetchCalendarByDateFailure\n} from '../_actions/calendar.actions';\nimport { calendarConstants } from '../_constants/calendar.constants';\n\nexport function* fetchCalendarByYearStartAsync({ payload }) {\n try {\n const result = payload.fundId ? yield call(fetchCalendarByDate, payload) : yield call(fetchCalendarByYear, payload);\n yield put(fetchCalendarByYearSuccess(result.data));\n } catch (error) {\n yield put(fetchCalendarByYearFailure(error.message));\n }\n}\n\nexport function* fetchCalendarByYearStart() {\n yield takeLatest(calendarConstants.FETCH_CALENDAR_BY_YEAR_START, fetchCalendarByYearStartAsync);\n}\n\nexport function* fetchCalendarByDateStartAsync({ payload }) {\n try {\n const result = yield call(fetchCalendarByDate, payload);\n yield put(fetchCalendarByDateSuccess(result.data));\n } catch (error) {\n yield put(fetchCalendarByDateFailure(error.message));\n }\n}\n\nexport function* fetchCalendarByDateStart() {\n yield takeLatest(calendarConstants.FETCH_CALENDAR_BY_DATE_START, fetchCalendarByDateStartAsync);\n}\n\nexport function* calendarSagas() {\n yield all([\n call(fetchCalendarByYearStart),\n call(fetchCalendarByDateStart)\n ]);\n}\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\n\nimport { \n fetchBanners,\n fetchHighlightFunds,\n fetchTopSubCategories,\n fetchArticles\n} from '../_services/home.services';\n\nimport {\n fetchNavForAdvanceSearch\n} from '../_services/advance-search.services';\n\nimport { \n fetchBannersSuccess, \n fetchBannersFailure,\n fetchHighlightFundsSuccess,\n fetchHighlightFundsFailure,\n updateNavFunds,\n fetchNavFundsSuccess,\n fetchNavFundsFailure,\n fetchTopSubCategoriesSuccess,\n fetchTopSubCategoriesFailure,\n fetchArticlesSuccess,\n fetchArticlesFailure,\n } from '../_actions/home.actions';\n\nimport { homeConstants } from '../_constants/home.constants';\n\nexport function* fetchBannersStartAsync() {\n try {\n const result = yield call(fetchBanners);\n yield put(fetchBannersSuccess(result.data));\n } catch (error) {\n yield put(fetchBannersFailure(error.message));\n }\n}\n\nexport function* fetchHighlightFundsStartAsync({payload}) {\n try {\n const result = yield call(fetchHighlightFunds, payload);\n yield put(updateNavFunds(result.data));\n yield put(fetchHighlightFundsSuccess(result.data));\n } catch (error) {\n yield put(fetchHighlightFundsFailure(error.message));\n }\n}\n\nexport function* fetchNavFundsAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchNavForAdvanceSearch, payload);\n\t\tyield put(fetchNavFundsSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchNavFundsFailure(error));\n\t}\n}\n\nexport function* fetchTopSubCategoriesStartAsync() {\n try {\n const result = yield call(fetchTopSubCategories);\n yield put(fetchTopSubCategoriesSuccess(result.data));\n } catch (error) {\n yield put(fetchTopSubCategoriesFailure(error.message));\n }\n}\n\nexport function* fetchArticlesStartAsync() {\n try {\n const result = yield call(fetchArticles);\n yield put(fetchArticlesSuccess(result.data));\n } catch (error) {\n yield put(fetchArticlesFailure(error.message));\n }\n}\n\nexport function* fetchBannersStart() {\n yield takeLatest(homeConstants.FETCH_BANNERS_START, fetchBannersStartAsync);\n}\n\nexport function* fetchHighlightFundsStart() {\n yield takeLatest(homeConstants.FETCH_HIGHLIGHT_FUNDS_START, fetchHighlightFundsStartAsync);\n}\n\nexport function* fetchNavFundsStart() {\n yield takeLatest(homeConstants.FETCH_NAV_FUNDS_START, fetchNavFundsAsync);\n}\n\nexport function* fetchTopSubCategoriesStart() {\n yield takeLatest(homeConstants.FETCH_TOP_SUB_CATEGORIES_START, fetchTopSubCategoriesStartAsync);\n}\n\nexport function* fetchArticlesStart() {\n yield takeLatest(homeConstants.FETCH_ARTICLES_START, fetchArticlesStartAsync);\n}\n\nexport function* HomeSagas() {\n yield all([call(fetchBannersStart), call(fetchHighlightFundsStart), call(fetchTopSubCategoriesStart), call(fetchArticlesStart), call(fetchNavFundsStart)]);\n}\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { \n getColorListFailure, \n getColorListSuccess \n} from '../_actions/general.actions';\nimport { generalConstants } from '../_constants';\nimport { fetchColors } from '../_services/general.service';\n\nexport function* getColorListAsync({ payload }) {\n try {\n const result = yield call(fetchColors, payload);\n yield put(getColorListSuccess({type: payload, data: result.data}));\n } catch (error) {\n yield put(getColorListFailure(error.message));\n }\n}\n\nexport function* getColorListStart() {\n yield takeLatest(generalConstants.GET_COLOR_LIST_START, getColorListAsync);\n}\nexport function* generalSagas() {\n yield all([call(getColorListStart)]);\n}\n","import { generalConstants } from '../_constants';\nimport { generalService } from '../_services';\n\nexport const generalActions = {\n getMenus\n};\n\n//Test API fetch data from MenuController\nfunction getMenus() {\n return generalService.getMenus()\n}\n\nexport const getColorList = (type) => ({\n type: generalConstants.GET_COLOR_LIST_START,\n payload: type\n})\nexport const getColorListSuccess = (data) => ({\n type: generalConstants.GET_COLOR_LIST_SUCCESS,\n payload: data\n})\nexport const getColorListFailure = (error) => ({\n type: generalConstants.GET_COLOR_LIST_FAILURE,\n payload: error\n})\nexport const clearColorList = (type) => ({\n type: generalConstants.CLEAR_COLOR_LIST,\n payload: type\n})\n","import thunk from 'redux-thunk';\nimport { logger } from 'redux-logger';\n\nconst getMiddlewares = () => {\n const result = [thunk];\n if (process.env.NODE_ENV === 'development') {\n result.push(logger);\n return result;\n }\n return result;\n};\n\nexport default getMiddlewares;\n","import { createStore, applyMiddleware, compose } from 'redux';\nimport { persistStore } from 'redux-persist';\nimport createSagaMiddleware from 'redux-saga';\nimport rootReducer from '../redux/root-reducer';\nimport rootSaga from '../redux/root-saga';\nimport getMiddlewares from '../_middlewares/middlewares';\n\nconst sagaMiddleware = createSagaMiddleware();\n\nconst middlewares = getMiddlewares();\nmiddlewares.push(sagaMiddleware);\n\n// In development, use the browser's Redux dev tools extension if installed\nconst enhancers = [];\nconst isDevelopment = process.env.NODE_ENV === 'development';\n\nif (isDevelopment && typeof window !== 'undefined' && window.devToolsExtension) {\n\tenhancers.push(window.devToolsExtension());\n}\n\nexport const store = createStore(rootReducer, compose(applyMiddleware(...middlewares), ...enhancers));\n\n// Mount rootSaga must be done after applyMiddleware\nsagaMiddleware.run(rootSaga);\n\nexport const persistor = persistStore(store);\n\nexport default { store, persistStore };\n","import { all, call } from 'redux-saga/effects';\n\nimport { searchSagas } from '../_sagas/search.sagas';\nimport { authenticationSagas } from '../_sagas/authentication.sagas';\nimport { favoriteSagas } from '../_sagas/favorite.sagas';\nimport { hotfundSagas } from '../_sagas/hotfund.sagas';\nimport { compareSagas } from '../_sagas/compare.sagas';\nimport { investmentSagas } from '../_sagas/investment.sagas';\nimport { informationSagas } from '../_sagas/information.sagas';\nimport { orderRequestSagas } from '../_sagas/order-request.sagas';\nimport { advanceSearchSagas } from '../_sagas/advance-search.sagas';\nimport { ipoSagas } from '../_sagas/ipo.sagas';\nimport { fundRankingSagas } from '../_sagas/fund-ranking.sagas';\nimport { monthlyReportSagas } from '../_sagas/monthly-report.sagas';\nimport { calendarSagas } from '../_sagas/calendar.sagas';\nimport { HomeSagas } from '../_sagas/home.sagas';\nimport { generalSagas } from '../_sagas/general.sagas';\n\nexport default function* rootSaga() {\n yield all([\n call(searchSagas),\n call(authenticationSagas),\n call(favoriteSagas),\n call(investmentSagas),\n call(informationSagas),\n call(orderRequestSagas),\n call(hotfundSagas),\n call(compareSagas),\n call(advanceSearchSagas),\n call(ipoSagas),\n call(fundRankingSagas),\n call(monthlyReportSagas),\n call(calendarSagas),\n call(HomeSagas),\n call(generalSagas)\n ]);\n}\n","/* main react */\nimport React from 'react';\n\n/* image */\nimport Loading from '../../assets/loading-yellow.gif'\n\nconst Spinner = () => (\n