{"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/information.constants.js","_services/axios-nomura.services.js","_constants/fund-ranking.constants.js","_constants/investment.constant.js","_constants/order-request.constants.js","_utils/information.utils.js","_constants/authentication.constants.js","_actions/investment.actions.js","_constants/compare.constants.js","_actions/information.actions.js","_actions/authentication.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","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","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","changePage","page","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","errorMessage","resetDataResult","message","resetDataResultToObject","filterTypeList","type","dateType","key","detailName","defaultColors","convertDataToPortChart","dataObj","filterType","summary","colors","lenght","product","find","obj","categoryList","returnFormatData","date","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","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_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","payload","resetInvestment","fetchActivedFundsStart","fetchActivedFundsSuccess","fetchActivedFundsFailure","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","fetchLastDateOfAccountNumberFailure","deleteOrderRequestStart","deleteOrderRequestSuccess","deleteOrderRequestFailure","fetchOrdersStart","id","fetchOrdersSuccess","fetchOrdersFailure","updateOrdersQueries","clearOrderErrorMessage","updateLotQueries","fetchLotsStart","fetchLotsSuccess","fetchLotsFailure","fetchNavsLotsSuccess","fetchNavsLotsFailure","updateBookQueries","fetchBooksStart","fetchBooksSuccess","fetchBooksFailure","updateHistoriesQueries","fetchHistoriesStart","fetchHistoriesSuccess","fetchHistoriesFailure","updateDividendQueries","fetchDividendsStart","fetchDividendsSuccess","fetchDividendsFailure","updateDCAQueries","fetchDCAsStart","fetchDCAsSuccess","fetchDCAsFailure","deleteDCAOrderRequestStart","deleteDCAOrderRequestSuccess","deleteDCAOrderRequestFailure","clearDCAOrderErrorMessage","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","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","toggleSignInModal","toggleErrorMessageModal","signInStart","credential","verify2FAOpen","referenceCode","toggle2FAModal","verify2FAStart","set2FALoading","isLoading","signInSuccess","signInFailure","clearSignInErrorMessage","signInCredentialStart","signInDSAStart","signInSSOStart","signInSuccessForMobile","updateSignInStatusForMobile","getAccountListStart","getAccountListSuccess","accounts","updateAccountListMobileSuccess","getAccountListFailure","getAccountInfoStart","accountNumber","getAccountInfoSuccess","information","getAccountInfoFailure","getAccountNameStart","getAccountNameSuccess","accountName","getAccountNameFailure","signOut","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","isMobileCompletedLogin","accountInfo","twoFactorId","twoFactorAuthenticationMethod","twoFactorToken","logInType","authenticationReducer","_action$payload","_action$payload2","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","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$payload3","_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","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","newRefreshToken","_accountListResult$da","_send2FAResult$data$r","application","send2FAResult","twoFactorInfo","verify2FAAsync","_Object$keys","_accountListResult$da2","verifyCode","_accountListResult$da3","updateSignInStatusForMobileAsync","decodedJwt","jwt_decode","isExpiredToken","exp","getTime","_accountListResult$da4","signInCredentialAsync","_accountListResult$da5","signInDSAAsync","_ref4","_accountListResult$da6","signInSSOAsync","_ref5","_accountListResult$da7","getAccountListAsync","_ref6","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","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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ACEH,KAAM,mBACNC,KAAM,OACNC,KAAM,GACN67D,UAAW,OACX57D,OAAQ,SAEV,CACEH,KAAM,sBACNC,KAAM,UACNC,KAAM,sBACN67D,UAAW,UACX57D,OAAQ,SAEV,CACEH,KAAM,kBACNC,KAAM,MACNC,KAAM,GACN67D,UAAW,MACX57D,OAAQ,SAEV,CACEH,KAAM,kBACNC,KAAM,MACNC,KAAM,GACN67D,UAAW,MACX57D,OAAQ,UAGZg8D,YAAY,GAEd,CACEn8D,KAAM,oBACNC,KAAM,iFACNC,KAAM,kBAENC,OAAQ,QACRC,QAAS,OACT47D,WAAW,EACXC,WAAW,EACXE,YAAY,GAEd,CACEn8D,KAAM,iBACNC,KAAM,yDACNC,KAAM,gBACN67D,UAAW,aACX57D,OAAQ,QACRC,QAAS,OACT47D,WAAW,EACXC,WAAW,EACXE,YAAY,GAEd,CACEn8D,KAAM,iBACNC,KAAM,yDACNC,KAAM,gBACN67D,UAAW,gBACX57D,OAAQ,QACRC,QAAS,OACT47D,WAAW,EACXC,WAAW,EACXE,YAAY,GAEd,CACEn8D,KAAM,YACNC,KAAM,+DACNC,KAAM,eACN67D,UAAW,WACX57D,OAAQ,QACRC,QAAS,OACT47D,WAAW,EACXC,WAAW,EACXE,YAAY,GAEd,CACEn8D,KAAM,kBACNC,KAAM,uFACNC,KAAM,oBACN67D,UAAW,iBACX57D,OAAQ,QACRC,QAAS,OACT47D,WAAW,EACXC,WAAW,EACXE,YAAY,GAEd,CACEn8D,KAAM,gBACNC,KAAM,6FACNC,KAAM,kBACN67D,UAAW,eACX57D,OAAQ,QACRC,QAAS,OACT47D,WAAW,EACXC,WAAW,EACXG,YAAY,EACZD,YAAY,GAEd,CACEn8D,KAAM,WACNC,KAAM,mGACNC,KAAM,cACN67D,UAAW,UACX57D,OAAQ,QACRC,QAAS,OACT47D,WAAW,EACXC,WAAW,EACXG,YAAY,EACZD,YAAY,GAEd,CACEn8D,KAAM,WACNC,KAAM,yGACNC,KAAM,cACN67D,UAAW,UACX57D,OAAQ,QACRC,QAAS,OACT47D,WAAW,EACXC,WAAW,EACXC,SAAU,CACR,CACEl8D,KAAM,wBACNC,KAAM,uCACNC,KAAM,kBACN67D,UAAW,eACX57D,OAAQ,SASV,CACEH,KAAM,yBACNC,KAAM,2BACNC,KAAM,YACN67D,UAAW,gBACX57D,OAAQ,UAGZg8D,YAAY,GAEd,CACEn8D,KAAM,UACNC,KAAM,2EACNC,KAAM,oBACN67D,UAAW,iBACX57D,OAAQ,QACRC,QAAS,OACT47D,WAAW,EACXC,WAAW,GAkBb,CACEj8D,KAAM,OACNC,KAAM,2CACNC,KAAM,cACN67D,UAAW,MACX57D,OAAQ,QACRC,QAAS,OACT47D,WAAW,EACXC,WAAW,EACXC,SAAU,CACR,CACEl8D,KAAM,gBACNC,KAAM,WACNC,KAAM,cACN67D,UAAW,WACX57D,OAAQ,SAEV,CACEH,KAAM,iBACNC,KAAM,YACNC,KAAM,cACN67D,UAAW,YACX57D,OAAQ,SAEV,CACEH,KAAM,gBACNC,KAAM,WACNC,KAAM,cACN67D,UAAW,WACX57D,OAAQ,UAGZg8D,YAAY,GAad,CACEn8D,KAAM,YACNC,KAAM,2EACNC,KAAM,eACN67D,UAAW,WACX57D,OAAQ,QACRC,QAAS,QACT47D,WAAW,EACXC,WAAW,EACXE,YAAY,GAEd,CACEn8D,KAAM,iBACNC,KAAM,mGACNC,KAAM,eACN67D,UAAW,gBACX57D,OAAQ,QACRC,QAAS,QACT47D,WAAW,EACXC,WAAW,EACXE,YAAY,GAEd,CACEn8D,KAAM,OACNC,KAAM,iGACNC,KAAM,UACN67D,UAAW,MACX57D,OAAQ,QACRC,QAAS,QACT47D,WAAW,EACXC,WAAW,EACXE,YAAY,GAEd,CACEn8D,KAAM,oBACNC,KAAM,2EACNC,KAAM,GACN67D,UAAW,mBACX57D,OAAQ,QACRC,QAAS,QACT47D,WAAW,EACXC,WAAW,EACXE,YAAY,GAEd,CACEn8D,KAAM,UACNC,KAAM,UACNC,KAAM,cACN67D,UAAW,SACX57D,OAAQ,SACR67D,WAAW,EACXC,WAAW,EACXE,YAAY,GAEd,CACEn8D,KAAM,QACNC,KAAM,OACNC,KAAM,WACN67D,UAAW,OACX57D,OAAQ,QACRC,QAAS,QACT47D,WAAW,EACXC,WAAW,EACXE,YAAY,GAEd,CACEn8D,KAAM,YACNC,KAAM,WAEN87D,UAAW,WACX57D,OAAQ,QAER67D,WAAW,EAEXG,YAAY,GAEd,CACEn8D,KAAM,OACNC,KAAM,YAEN87D,UAAW,YACX57D,OAAQ,QAER67D,WAAW,EAEXG,YAAY,GAEd,CACEn8D,KAAM,OACNC,KAAM,YAEN87D,UAAW,YACX57D,OAAQ,QAER67D,WAAW,EAEXG,YAAY,GAEd,CACEn8D,KAAM,YACNC,KAAM,WACN87D,UAAW,WACX57D,OAAQ,QACR67D,WAAW,EACXG,YAAY,I,2BCnVhB,MAAME,EAAOC,eAAK,IAAM,uDAqCTrI,kBAAQ,KALK5pD,IAAQ,CAClC0kD,aAAe9qB,GAAW55B,EAAS0kD,YAAa9qB,IAChDgrB,cAAeA,IAAM5kD,EAAS4kD,iBAGjBgF,CAnCFC,IACX,MAAM,aAAEnF,EAAY,cAAEE,GAAkBiF,EAWxC,OATAE,oBAAU,KACRrF,EAAa+M,GACb7M,KACC,CAACF,EAAcE,IAElBmF,oBAAU,KACRmI,IAAWC,WAAW,CAAEC,MAAOt0D,kBAC9B,IAGD2kD,IAAAC,cAAC2P,IAAa,CAACC,SAAUx0D,UACvB2kD,IAAAC,cAAC6P,IAAM,KACL9P,IAAAC,cAAC8P,WAAQ,CAACC,SAAUhQ,IAAAC,cAACF,IAAO,OAI1BC,IAAAC,cAACgQ,IAAK,CAACC,OAAK,EAACh9D,KAAK,YAAYi9D,OAAQA,IAAMnQ,IAAAC,cAACmQ,UAAO,QAAO,IAC3DpQ,IAAAC,cAACgQ,IAAK,CAACC,OAAK,EAACh9D,KAAK,aAAai9D,OAAQA,IAAMnQ,IAAAC,cAACoQ,UAAQ,QAAO,IAC7DrQ,IAAAC,cAACgQ,IAAK,CAACC,OAAK,EAACh9D,KAAK,aAAai9D,OAAQA,IAAMnQ,IAAAC,cAACqQ,UAAQ,QAAO,IAC7DtQ,IAAAC,cAACgQ,IAAK,CAACC,OAAK,EAACh9D,KAAK,IAAIi9D,OAAQA,IAAMnQ,IAAAC,cAACsQ,IAAQ,CAACC,KAAK,IAAIC,GAAG,YAAc,IACxEzQ,IAAAC,cAACgQ,IAAK,CAAC/8D,KAAK,QAAQ+7D,UAAWA,IAAMjP,IAAAC,cAACsP,EAAI,aC1BpD,MAAMmB,EAAcpuC,SAASquC,eAAe,QAE5CC,IAAST,OACPnQ,IAAAC,cAAC4Q,IAAQ,CAAC/0D,MAAOA,KACfkkD,IAAAC,cAAC2P,IAAa,KACZ5P,IAAAC,cAAC6Q,IAAW,CAACjR,UAAWA,KACtBG,IAAAC,cAAC8Q,EAAG,SAIVL,K","file":"static/js/main.f7f8e9db.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 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: 'FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START',\n FETCH_PREVIOUS_RETURN_BY_ACCOUNT_SUCCESS: 'FETCH_PREVIOUS_RETURN_BY_ACCOUNT_SUCCESS',\n FETCH_PREVIOUS_RETURN_BY_ACCOUNT_FAILURE: 'FETCH_PREVIOUS_RETURN_BY_ACCOUNT_FAILURE',\n\n FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START: 'FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START',\n FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_SUCCESS: 'FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_SUCCESS',\n FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_FAILURE: '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: 'FETCH_HISTORY_GRAPH_BY_ACCOUNT_SUCCESS',\n FETCH_HISTORY_GRAPH_BY_ACCOUNT_FAILURE: 'FETCH_HISTORY_GRAPH_BY_ACCOUNT_FAILURE',\n\n FETCH_MONTHLY_RETURN_BY_ACCOUNT_START: 'FETCH_MONTHLY_RETURN_BY_ACCOUNT_START',\n FETCH_MONTHLY_RETURN_BY_ACCOUNT_SUCCESS: 'FETCH_MONTHLY_RETURN_BY_ACCOUNT_SUCCESS',\n FETCH_MONTHLY_RETURN_BY_ACCOUNT_FAILURE: '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: 'FETCH_MAX_DRAWDOWN_BY_ACCOUNT_SUCCESS',\n FETCH_MAX_DRAWDOWN_BY_ACCOUNT_FAILURE: '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: 'FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_SUCCESS',\n FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_FAILURE: '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","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 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 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\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});","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 { 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// });","import { authenticationConstants } from '../_constants/authentication.constants';\n\nexport const toggleSignInModal = () => ({\n\ttype: authenticationConstants.TOGGLED_SIGN_IN_MODAL\n});\n\nexport const toggleErrorMessageModal = () => ({\n\ttype: authenticationConstants.TOGGLED_ERROR_MESSAGE_MODAL\n});\n\nexport const refreshToken = () => ({\n\ttype: authenticationConstants.REFRESH_TOKEN\n});\n\nexport const signInStart = (credential) => ({\n\ttype: authenticationConstants.SIGN_IN_START,\n\tpayload: credential\n});\n\nexport const verify2FAOpen = (referenceCode) =>({\n\ttype: authenticationConstants.VERIFY_2FA_OPEN,\n\tpayload: referenceCode\n});\n\nexport const toggle2FAModal = () => ({\n\ttype: authenticationConstants.TOGGLED_2FA_MODAL\n});\n\nexport const verify2FAStart = (credential) =>({\n\ttype: authenticationConstants.VERIFY_2FA_START,\n\tpayload: credential\n});\n\nexport const set2FALoading = (isLoading) => ({\n type: \"SET_2FA_LOADING\",\n payload: isLoading\n});\n\nexport const signInSuccess = (user) => ({\n\ttype: authenticationConstants.SIGN_IN_SUCCESS,\n\tpayload: user\n});\n\nexport const signInFailure = (errorMessage) => ({\n\ttype: authenticationConstants.SIGN_IN_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const clearSignInErrorMessage = () => ({\n\ttype: authenticationConstants.CLEAR_SIGN_IN_ERROR_MESSAGE,\n});\n\n// Sign in with credential with window authentication.\nexport const signInCredentialStart = (data) => ({\n\ttype: authenticationConstants.SIGN_IN_CREDENTIAL_START,\n\tpayload: data\n});\n\nexport const signInDSAStart = (data) => ({\n\ttype: authenticationConstants.SIGN_IN_DSA_START,\n\tpayload: data\n});\n\nexport const signInSSOStart = (data) => ({\n\ttype: authenticationConstants.SIGN_IN_SSO_START,\n\tpayload: data\n});\n\nexport const signInSuccessForMobile = (data) => ({\n\ttype: authenticationConstants.SIGN_IN_SUCCESS_FOR_MOBILE,\n\tpayload: data\n});\n\nexport const updateSignInStatusForMobile = () => ({\n\ttype: authenticationConstants.UPDATE_SIGN_IN_STATUS_FOR_MOBILE,\n});\n\nexport const getAccountListStart = () => ({\n\ttype: authenticationConstants.GET_ACCOUNT_LIST_START\n});\n\nexport const getAccountListSuccess = (accounts) => ({\n\ttype: authenticationConstants.GET_ACCOUNT_LIST_SUCCESS,\n\tpayload: accounts\n});\n\nexport const updateAccountListMobileSuccess = () => ({\n\ttype: authenticationConstants.UPDATE_ACCOUNT_LIST_MOBILE_SUCCESS\n});\n\nexport const getAccountListFailure = (errorMessage) => ({\n\ttype: authenticationConstants.GET_ACCOUNT_LIST_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const getAccountInfoStart = (accountNumber) => ({\n\ttype: authenticationConstants.GET_ACCOUNT_INFO_START,\n\tpayload: accountNumber\n});\n\nexport const getAccountInfoSuccess = (information) => ({\n\ttype: authenticationConstants.GET_ACCOUNT_INFO_SUCCESS,\n\tpayload: information\n});\n\nexport const getAccountInfoFailure = (errorMessage) => ({\n\ttype: authenticationConstants.GET_ACCOUNT_INFO_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const getAccountNameStart = (accountNumber) => ({\n\ttype: authenticationConstants.GET_ACCOUNT_NAME_START,\n\tpayload: accountNumber\n});\n\nexport const getAccountNameSuccess = (accountName) => ({\n\ttype: authenticationConstants.GET_ACCOUNT_NAME_SUCCESS,\n\tpayload: accountName\n});\n\nexport const getAccountNameFailure = (errorMessage) => ({\n\ttype: authenticationConstants.GET_ACCOUNT_NAME_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const signOut = () => ({\n\ttype: authenticationConstants.SIGN_OUT\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(`api/v1/portfolios/${accountNumber}/previous_return`);\n};\nexport const fetchPreviousReturnGraphByAccount = async (accountNumber, data) => {\n return await axios_nomura.get(`api/v1/portfolios/${accountNumber}/previous_return/graph`, { params: { startAt: data.startAt ?? '', endAt: data.endAt ?? '', dateType: data.dateType ?? '' } });\n};\nexport const fetchAumGraphByAccount = async (accountNumber, data) => {\n return await axios_nomura.get(`api/v1/portfolios/${accountNumber}/aum/graph`, { params: { startAt: data.startAt ?? '', endAt: data.endAt ?? '', dateType: data.dateType ?? ''} });\n};\nexport const fetchMonthlyReturnByAccount = async (accountNumber) => {\n return await axios_nomura.get(`api/v1/portfolios/${accountNumber}/monthly_return`);\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(`api/v1/portfolios/${accountNumber}/volatility`);\n};\nexport const fetchMaxDrawdownByAccount = async (accountNumber) => {\n return await axios_nomura.get(`api/v1/portfolios/${accountNumber}/max_drawdown`);\n};\nexport const fetchDrawdownByAccount = async (accountNumber, data) => {\n return await axios_nomura.get(`api/v1/portfolios/${accountNumber}/drawdown`, { params: { startAt: data.startAt ?? '', endAt: data.endAt ?? ''} });\n};\nexport const fetchLastDateOfAccountNumber = async (accountNumber) => {\n return await axios_nomura.get(`api/v1/portfolios/${accountNumber}/latest_data_date`);\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(`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 { \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\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(`api/v1/orders/${data.accountNumber}/cancel_dca`, { \n number: data.number,\n fundCode: data.fundCode\n });\n};\n\n// Dividend Page\nexport const fetchDividends = async (data) => {\n return await axios_nomura.get(`api/v1/portfolios/dividends`, \n { \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\n// Get Actived Funds By Accounts\nexport const fetchActivedFunds = async (accountNumbers) => {\n return await axios_nomura.get(`api/v1/portfolios/funds?`, { params:{ accountNumbers: accountNumbers } });\n};\n\n// Get All Funds By Accoutns\nexport const fetchAllFunds = async (accountNumbers) => {\n return await axios_nomura.get(`api/v1/accounts/funds?`, { params:{ accountNumbers: accountNumbers } });\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((item) => item.categoryCode !== category.categoryCode);\n tempList.push(category);\n return tempList;\n};\n\nexport const removeCategory = (category, categories) => {\n let tempList = categories.filter((item) => item.categoryCode !== category.categoryCode);\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 }));\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((item) => item.categoryCode === element.categoryCode)[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((j) => j.categoryCode === categoryCode)\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\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 };\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\tconst result = {\n\t\t...state,\n\t\tcategoryCode: state.categoryCode.length > 0 ? state.categoryCode : [],\n\t\tdividendPolicy: data.dividendPolicy[0].code,\n\t\tfundTypes: state.fundTypes.length > 0 ? state.fundTypes : 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};\n\treturn result;\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 isMobileCompletedLogin: 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 : 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: 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_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 {\n setIsFetching\n} 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 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\t\t\t{\n\t\t\t\theader: 'Code',\n\t\t\t\tsortKey: 'accountNumber'\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: 'เริ่ม',\n\t\t\t\tsortKey: 'tradeDate'\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: 'สิ้นสุด',\n\t\t\t\tsortKey: 'endDate'\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: 'Activity',\n\t\t\t\tsortKey: 'tradeType'\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: 'กองทุน',\n\t\t\t\tsortKey: 'fundName'\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: 'แผนลงทุน',\n\t\t\t\tsortKey: 'savingPlan'\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: 'จำนวน',\n\t\t\t\tsortKey: 'amount'\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: 'Payment',\n\t\t\t\tsortKey: 'payment'\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: 'วันที่ส่งคำสั่ง',\n\t\t\t\tsortKey: 'entryDate'\n\t\t\t}\n\t\t],\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.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'] = state.history.queries.sortBy === value && state.history.queries.sortType !== 'd' ? 'd' : 'a'\n } else {\n updateAttribute['sortType'] = state.history.queries.sortBy === value && value && state.history.queries.sortType !== 'a' ? 'a' : 'd'\n }\n updateAttribute['sortBy'] = value;\n break;\n default: 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 };\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'] = state.dca.queries.sortBy === value && state.dca.queries.sortType !== 'd' ? 'd' : 'a'\n } else {\n updateAttribute['sortType'] = state.dca.queries.sortBy === value && value && state.dca.queries.sortType !== 'a' ? 'a' : 'd'\n }\n updateAttribute['sortBy'] = value;\n break;\n default: 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'] = state.order.queries.sortBy === value && state.order.queries.sortType !== 'd' ? 'd' : 'a'\n } else {\n updateAttribute['sortType'] = state.order.queries.sortBy === value && value && state.order.queries.sortType !== 'a' ? 'a' : 'd'\n }\n updateAttribute['sortBy'] = value;\n break;\n default: 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': updateAttribute[key] = value; break;\n case 'sortKey': updateAttribute = {\n sortKey: value,\n sortType: value\n && value === state.portfolio.queries.sortKey\n && state.portfolio.queries.sortType !== 'a'\n ? 'a'\n : 'd'\n }; break;\n default: updateAttribute[key] = value; 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(state.portfolioStatistic.previousReturn, {})\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'] = state.lot.queries.sortBy === value && state.lot.queries.sortType !== 'd' ? 'd' : 'a'\n } else {\n updateAttribute['sortType'] = state.lot.queries.sortBy === value && value && state.lot.queries.sortType !== 'a' ? 'a' : '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: 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'] = state.book.queries.sortBy === value && state.book.queries.sortType !== 'd' ? 'd' : 'a'\n } else {\n updateAttribute['sortType'] = state.book.queries.sortBy === value && value && state.book.queries.sortType !== 'a' ? 'a' : 'd'\n }\n break;\n default: 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'] = state.dividend.queries.sortBy === value && state.dividend.queries.sortType !== 'd' ? 'd' : 'a'\n } else {\n updateAttribute['sortType'] = state.dividend.queries.sortBy === value && value && state.dividend.queries.sortType !== 'a' ? 'a' : 'd'\n }\n break;\n default: 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 { dispatchSearchFunds, dispatchSearchPortfolios } from '../_utils/order-request.utils';\n\nconst initialState = {\n\t// Modal State \n\tisOpenModal: false,\n\n\t// Active tab \n\tactiveTab: '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\tswitch (action.type) {\n // Toggled Buy-Sell Modals.\n\t\tcase orderRequestConstants.TOGGLED_ORDER_FUNDS_REQUEST_MODAL:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisOpenModal: !state.isOpenModal,\n\t\t\t\tfundId: state.isOpenModal ? null : state.fundId\n\t\t\t};\n\t\tcase orderRequestConstants.CLEAR_ERROR_MESSAGE:\n\t\t\treturn {\n\t\t\t\t...state,\n errorMessage: null,\n // showResponseMessage: false\n\t\t\t};\n // Updated Active Tab (buy, sell, switch).\n\t\tcase orderRequestConstants.UPDATE_ACTIVE_TAB_ORDER_FUNDS_REQUEST_MODAL: {\n\t\t\tconst {activeTab, subActiveTab} = action.payload;\n if (!action.payload || (activeTab === state.activeTab && subActiveTab === state.subActiveTab)) {\n\t\t\t\treturn state;\n\t\t\t} \n\n if (activeTab === 'Sell') { // 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 ?? state.subActiveTab\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\t\t\treturn {\n\t\t\t\t...state,\n latestPlan: {},\n\t\t\t};\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\tsignIn,\n\tsend2FA,\n\tverify2FA,\n\tverify2FACode,\n\tsignOutWithCookies,\n\trefreshWithCookies,\n\tfetchAccountList,\n\tfetchAccountInfo,\n\tsignInCredential,\n\tfetchAccountName,\n\tverify2FAAuthenticator,\n\tsignInDSA,\n\tsignInSSO\n} from '../_services/authentication.services';\nimport {\n\tsignInSuccess,\n\tsignInSuccessForMobile,\n\tsignInFailure,\n\tverify2FAOpen,\n\t// getAccountListStart,\n\tgetAccountListSuccess,\n\tgetAccountListFailure,\n\tgetAccountInfoSuccess,\n\tgetAccountInfoFailure,\n\ttoggleErrorMessageModal,\n\tsignOut,\n\tgetAccountNameSuccess,\n\tgetAccountNameFailure,\n\tset2FALoading,\n\tupdateAccountListMobileSuccess\n} from '../_actions/authentication.actions';\nimport { updateErrorModal } from '../_actions/main.actions';\n\nimport {\n\tfetchFavoriteFundsByAccountStart\n} 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 { updateUserAccounts, resetInvestment } 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\t// clear refreshToken & accessToken in cookies.\n\tconst cookies = {\n\t\t'refreshToken': getCookie('refreshToken'),\n\t\t'accessToken': getCookie('accessToken')\n\t}\n\ttry {\n\t\tyield call(signOutWithCookies, cookies);\n\t} catch (err) { }\n\tclearCookies(['token', 'accessToken', 'refreshToken']);\n\tyield put(resetInvestment());\n\tyield put(resetUserCategories());\n}\n\nexport function* refreshTokenAsync() {\n\tconst cookies = {\n\t\t'refreshToken': getCookie('refreshToken'),\n\t\t'token': getCookie('accessToken')\n\t}\n\ttry {\n\t\tconst result = yield call(refreshWithCookies, cookies);\n\t\tconst newAccessToken = result.data.token;\n\t\tif (result.data.token) { // Add accesstoken to cookies.\n\t\t\tlet accessToken = getCookie('accessToken');\n\t\t\tif (accessToken !== newAccessToken) {\n\t\t\t\tsetCookie('accessToken', newAccessToken);\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tif (error.response?.status === 401) {\n\t\t\tyield put(updateErrorModal({ title: 'Session Expired', message: 'Please log in again.' }));\n\t\t\tyield put(signOut());\n\t\t}\n\t}\n}\n \nexport function* signInAsync({ payload }) {\n\ttry {\n\t\tconst { username, password, history } = payload;\n\t\tlet credentials = {};\n\t\tcredentials.applicationId = '8961b7f1-e671-4262-b719-8c1fa1bcadd5';\n\t\tcredentials.username = username;\n\t\tcredentials.password = password;\n\t\tcredentials.ipAddress = '127.0.0.1';\n\t\tcredentials.deviceId = nanoid(36);\n\t\tcredentials.deviceName = navigator.userAgent;\n\n\t\tconst result = yield call(signIn, credentials);\n\t\tif (!result.data.isTwoFactorAuthenticated &&\n\t\t\tresult.data.twoFactorAuthenticationMethod !== twoFactorAuthenticationMethodConstants.BYPASS) {\n\t\t\tif (result.data.twoFactorAuthenticationMethod === twoFactorAuthenticationMethodConstants.SMS ||\n\t\t\t\tresult.data.twoFactorAuthenticationMethod === twoFactorAuthenticationMethodConstants.EMAIL) {\n\t\t\t\tconst application = { applicationId: credentials.applicationId, accessToken: result.data.accessToken };\n\t\t\t\tconst send2FAResult = yield call(send2FA, application);\n\t\t\t\tconst twoFactorInfo = {\n\t\t\t\t\ttwoFactorAuthenticationMethod: result.data.twoFactorAuthenticationMethod,\n\t\t\t\t\treferenceCode: send2FAResult.data.referenceCode ?? '',\n\t\t\t\t\ttwoFactorId: null,\n\t\t\t\t\ttwoFactorToken : result.data.accessToken,\n\t\t\t\t};\n\t\t\t\tyield put(verify2FAOpen(twoFactorInfo));\n\t\t\t}\n\t\t\telse if (result.data.twoFactorAuthenticationMethod === twoFactorAuthenticationMethodConstants.AUTHENTICATOR) {\n\t\t\t\tconst twoFactorInfo = {\n\t\t\t\t\ttwoFactorAuthenticationMethod: result.data.twoFactorAuthenticationMethod,\n\t\t\t\t\treferenceCode: null,\n\t\t\t\t\ttwoFactorId: result.data.twoFactorId,\n\t\t\t\t\ttwoFactorToken : result.data.accessToken,\n\t\t\t\t};\n\t\t\t\tyield put(verify2FAOpen(twoFactorInfo));\n\t\t\t}\n\t\t\telse if (result.data.twoFactorAuthenticationMethod === twoFactorAuthenticationMethodConstants.NONE) {\n\t\t\t\tyield put(set2FALoading(false));\n\t\t\t\tyield put(updateErrorModal({ title: 'ช่องทางการยืนยันตัวตน', message: 'กรุณาเลือกช่องทางยืนยันตัวตน ก่อนเข้าให้งาน Krungsri Capital iFund จากวิธีต่อไปนี้\\n1. SMS OTP ผ่านเบอร์มือถือที่ท่านแจ้งไว้\\n2. ผ่าน Google Authenticator' }));\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tyield put(signInSuccess({ user: result.data, logInType: 'general' }));\n\n\t\t\t// Get User Account List.\n\t\t\t// yield put(getAccountListStart());\n\t\t\tconst accountListResult = yield call(fetchAccountList);\n\t\t\tyield put(getAccountListSuccess(accountListResult.data));\n\n\t\t\t// Store token in cookies.\n\t\t\tconst newAccessToken = result.data.accessToken;\n\t\t\tif (result.data.accessToken) { // Add accesstoken to cookies.\n\t\t\t\tlet accessToken = getCookie('accessToken');\n\t\t\t\tif (accessToken !== newAccessToken) {\n\t\t\t\t\tsetCookie('accessToken', newAccessToken);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst newRefreshToken = result.data.refreshToken;\n\t\t\tif (result.data.refreshToken) { // Add refreshtoken to cookies.\n\t\t\t\tlet refreshToken = getCookie('refreshToken');\n\t\t\t\tif (refreshToken !== newRefreshToken) {\n\t\t\t\t\tsetCookie('refreshToken', newRefreshToken);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Get Favorite funds.\n\t\t\tif (Object.keys(result.data).length && accountListResult.data.length) {\n\t\t\t\tyield put(fetchFavoriteFundsByAccountStart());\n\t\t\t\tyield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n\t\t\t}\n\t\t\t// Redirect to config page then log in success.\n\t\t\t// history.push('/main/investment');\n\t\t}\n\t} catch (error) {\n\t\t// Sign out and clear account list.\n\t\tyield put(signInFailure(errorMessageResponse(error)));\n\t\tyield put(toggleErrorMessageModal());\n\t\t// yield put(getAccountListFailure()); // to be check is this necessary to update\n\t}\n}\n\nexport function* verify2FAAsync({ payload }) {\n\ttry {\n\t\tconst { verifyCode, referenceCode,twoFactorId, twoFactorAuthenticationMethod, twoFactorToken } = payload;\n\t\tlet result = {};\n\t\tlet credentials = {};\n\t\tcredentials.applicationId = '8961b7f1-e671-4262-b719-8c1fa1bcadd5';\n\t\tcredentials.code = verifyCode;\n\t\tcredentials.ipAddress = '127.0.0.1';\n\t\tcredentials.deviceId = nanoid(36);\n\t\tcredentials.deviceName = navigator.userAgent;\n\t\tcredentials.accessToken = twoFactorToken;\n\n\t\tif (twoFactorAuthenticationMethod === twoFactorAuthenticationMethodConstants.SMS ||\n\t\t\ttwoFactorAuthenticationMethod === twoFactorAuthenticationMethodConstants.EMAIL) {\n\t\t\tcredentials.referenceCode = referenceCode;\n\n\t\t\tif (referenceCode === '') {\n\t\t\t\tresult = yield call(verify2FA, credentials);\n\t\t\t} else {\n\t\t\t\tresult = yield call(verify2FACode, credentials);\n\t\t\t}\n\t\t}\n\t\tif(twoFactorAuthenticationMethod === twoFactorAuthenticationMethodConstants.AUTHENTICATOR) {\n\t\t\ttry {\n\t\t\t\tcredentials.twoFactorId = twoFactorId\n\t\t\t\tresult = yield call(verify2FAAuthenticator, credentials);\n\t\t\t} catch (error) {\n\t\t\t\tcredentials.referenceCode = referenceCode;\n\n\t\t\t\tif (referenceCode === '') {\n\t\t\t\t\tresult = yield call(verify2FA, credentials);\n\t\t\t\t} else {\n\t\t\t\t\tresult = yield call(verify2FACode, credentials);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tyield put(signInSuccess({ user: result.data, logInType: 'general' }));\n\n\t\t// Get User Account List.\n\t\t// yield put(getAccountListStart());\n\t\tconst accountListResult = yield call(fetchAccountList);\n\t\tyield put(getAccountListSuccess(accountListResult.data));\n\n\t\t// Store token in cookies.\n\t\tconst newAccessToken = result.data.accessToken;\n\t\tif (result.data.accessToken) { // Add accesstoken to cookies.\n\t\t\tlet accessToken = getCookie('accessToken');\n\t\t\tif (accessToken !== newAccessToken) {\n\t\t\t\tsetCookie('accessToken', newAccessToken);\n\t\t\t}\n\t\t}\n\t\tconst newRefreshToken = result.data.refreshToken;\n\t\tif (result.data.refreshToken) { // Add refreshtoken to cookies.\n\t\t\tlet refreshToken = getCookie('refreshToken');\n\t\t\tif (refreshToken !== newRefreshToken) {\n\t\t\t\tsetCookie('refreshToken', newRefreshToken);\n\t\t\t}\n\t\t}\n\n\t\t// Get Favorite funds.\n\t\tif (Object.keys(result.data)?.length && accountListResult.data?.length) {\n\t\t\tyield put(fetchFavoriteFundsByAccountStart());\n\t\t\tyield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n\t\t}\n\t} catch (error) {\n\t\t// Sign out and clear account list.\n\t\tyield put(signInFailure(errorMessageResponse(error)));\n\t\tyield put(toggleErrorMessageModal());\n\t\t// yield put(getAccountListFailure()); // to be check is this necessary to update\n\t}\n}\n\nexport function* updateSignInStatusForMobileAsync() {\n\ttry {\n\t\tconst token = getCookie('accessToken');\n\t\tconst decodedJwt = token ? jwt_decode(token) : null;\n\t\tconst isExpiredToken = decodedJwt ? new Date(decodedJwt.exp * 1000).getTime() < new Date().getTime() : false;\n\n\t\tif (token && !isExpiredToken) {\n\t\t\tyield put(signInSuccessForMobile({\n\t\t\t\tuser: {\n\t\t\t\t\taccessToken: token,\n\t\t\t\t},\n\t\t\t\tlogInType: 'token'\n\t\t\t}));\n\t\t\t// Get User Account List.\n\t\t\tconst accountListResult = yield call(fetchAccountList);\n\t\t\tyield put(getAccountListSuccess(accountListResult.data));\n\n\t\t\t// Get Favorite funds.\n\t\t\tif (accountListResult.data.length) {\n\t\t\t\tyield put(fetchFavoriteFundsByAccountStart());\n\t\t\t\tyield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tclearCookies(['accessToken', 'refreshToken']);\n\t\tyield put(resetInvestment());\n\t\tyield put(signInFailure(error.message));\n\t}\n}\n\nexport function* signInCredentialAsync({ payload }) {\n\tconst { history } = payload;\n\ttry {\n\t\t// add Account List from user.\n\t\tconst result = yield call(signInCredential);\n\t\tyield put(signInSuccess({ user: result.data, logInType: 'AD' }));\n\n\t\t// Get User Account List.\n\t\t// yield put(getAccountListStart());\n\t\tconst accountListResult = yield call(fetchAccountList);\n\t\tyield put(getAccountListSuccess(accountListResult.data));\n\n\t\t// Get Favorite funds.\n\t\tif (Object.keys(result.data).length && accountListResult.data.length) {\n\t\t\tyield put(fetchFavoriteFundsByAccountStart());\n\t\t\tyield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n\t\t}\n\n\t\t// history.push('/main');\n\t} catch (error) {\n\t\tif(error.response.status === 401){\n\t\t\tyield put(signInFailure('You are unauthorized to access'));\n\t\t\tyield put(toggleErrorMessageModal());\n\t\t}\n\t\t// Sign out and clear account list.\n\t\t// yield put(signInFailure(error.message));\n\t\t// yield put(getAccountListFailure());\n\t\t// yield put(signOut());\n\t\t// history.push('/main');\n\t}\n}\n\nexport function* signInDSAAsync({ payload }) {\n\tconst { history } = payload;\n\ttry {\n\t\t// add Account List from user.\n\t\tconst result = yield call(signInDSA, history.location.search);\n\t\tyield put(signInSuccess({ user: result.data, logInType: 'DSA' }));\n\n\t\t// Get User Account List.\n\t\tconst accountListResult = yield call(fetchAccountList);\n\t\tyield put(getAccountListSuccess(accountListResult.data));\n\n\t\t// Get Favorite funds.\n\t\tif (Object.keys(result.data).length && accountListResult.data.length) {\n\t\t\tyield put(fetchFavoriteFundsByAccountStart());\n\t\t\tyield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n\t\t}\n\n\t\thistory.push('/main');\n\t} catch (error) {\n\t\tyield put(signOut());\n\t}\n}\n\nexport function* signInSSOAsync({ payload }) {\n\tconst { history } = payload;\n\ttry {\n\t\t// add Account List from user.\n\t\tconst result = yield call(signInSSO, history.location.search);\n\t\tyield put(signInSuccess({ user: result.data, logInType: 'SSO' }));\n\n\t\t// Get User Account List.\n\t\tconst accountListResult = yield call(fetchAccountList);\n\t\tyield put(getAccountListSuccess(accountListResult.data));\n\n\t\t// Get Favorite funds.\n\t\tif (Object.keys(result.data).length && accountListResult.data.length) {\n\t\t\tyield put(fetchFavoriteFundsByAccountStart());\n\t\t\tyield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n\t\t}\n\n\t\thistory.push('/main');\n\t} catch (error) {\n\t\tyield put(signOut());\n\t}\n}\n\nexport function* getAccountListAsync({ payload }) {\n\ttry {\n\t\t// add Account List from user.\n\t\tconst result = yield call(fetchAccountList);\n\t\tyield put(getAccountListSuccess(result.data));\n\t\tyield put(updateAccountListMobileSuccess());\n\n\t} catch (error) {\n\t\tyield put(getAccountListFailure());\n\t}\n}\n\nexport function* getAccountInfoAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchAccountInfo, payload);\n\t\tyield put(getAccountInfoSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(getAccountInfoFailure());\n\t}\n}\n\nexport function* getAccountNameAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchAccountName, payload);\n\t\tyield put(getAccountNameSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(getAccountNameFailure());\n\t}\n}\n\n// Watcher\nexport function* signOutStart() {\n\tyield takeLatest(authenticationConstants.SIGN_OUT, signOutAsync);\n}\n\nexport function* refreshTokenStart() {\n\tyield takeLatest(authenticationConstants.REFRESH_TOKEN, refreshTokenAsync);\n}\n\nexport function* signInStart() {\n\tyield takeLatest(authenticationConstants.SIGN_IN_START, signInAsync);\n}\n\nexport function* updateSignInStatusForMobile() {\n\tyield takeLatest(authenticationConstants.UPDATE_SIGN_IN_STATUS_FOR_MOBILE, updateSignInStatusForMobileAsync);\n}\n\nexport function* signInCredentialStart() {\n\tyield takeLatest(authenticationConstants.SIGN_IN_CREDENTIAL_START, signInCredentialAsync);\n}\n\nexport function* signInDSAStart() {\n\tyield takeLatest(authenticationConstants.SIGN_IN_DSA_START, signInDSAAsync);\n}\n\nexport function* signInSSOStart() {\n\tyield takeLatest(authenticationConstants.SIGN_IN_SSO_START, signInSSOAsync);\n}\n\nexport function* getAccountListSaga() {\n\tyield takeLatest(authenticationConstants.GET_ACCOUNT_LIST_START, getAccountListAsync);\n}\n\nexport function* getAccountInfoSaga() {\n\tyield takeLatest(authenticationConstants.GET_ACCOUNT_INFO_START, getAccountInfoAsync);\n}\n\nexport function* getAccountNameSaga() {\n\tyield takeLatest(authenticationConstants.GET_ACCOUNT_NAME_START, getAccountNameAsync);\n}\n\nexport function* verify2FAStart() {\n\tyield takeLatest(authenticationConstants.VERIFY_2FA_START, verify2FAAsync);\n}\n\nexport function* authenticationSagas() {\n\tyield all([\n\t\tcall(signOutStart),\n\t\tcall(signInStart),\n\t\tcall(signInCredentialStart),\n\t\tcall(signInDSAStart),\n\t\tcall(signInSSOStart),\n\t\tcall(updateSignInStatusForMobile),\n\t\tcall(getAccountListSaga),\n\t\tcall(getAccountInfoSaga),\n\t\tcall(getAccountNameSaga),\n\t\tcall(refreshTokenStart),\n\t\tcall(verify2FAStart),\n\t]);\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: dcaOrderQueries.status?.value !== '' ? dcaOrderQueries.status.value : 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(fetchPreviousReturnGraphByAccount, account, queries);\n break;\n case 'AUM':\n result = yield call(fetchAumGraphByAccount, account, queries);\n break;\n case 'ALL':\n let previousReturn = yield call(fetchPreviousReturnGraphByAccount, account, queries);\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) { secondValue = obj2.value };\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(fetchPreviousReturnGraphByAccount, payload.account, payload.data);\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(fetchDrawdownByAccount, payload.account, payload.data);\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.filter(fund => fund.fundId).map(fund => fund.fundId),\n fundCodes: investment.book.queries.funds.filter(fund => fund.fundCode).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(investmentConstants.FETCH_ACTIVED_FUNDS_START, fetchActivedFundsAsync);\n}\nexport function* fetchAllFundsStart() {\n yield takeLatest(investmentConstants.FETCH_ALL_FUNDS_START, fetchAllFundsAsync);\n}\nexport function* fetchAllFundCodesStart() {\n yield takeLatest(investmentConstants.FETCH_ALL_FUND_CODES_START, fetchAllFundCodesAsync);\n}\nexport function* fetchHistoriesStart() {\n yield takeLatest(investmentConstants.FETCH_HISTORIES_START, fetchHistoriesAsync);\n}\nexport function* fetchDCAsSagaStart() {\n yield takeLatest(investmentConstants.FETCH_DCAS_START, fetchDCAsAsync);\n}\nexport function* fetchPortfoliosStart() {\n yield takeLatest(investmentConstants.FETCH_PORTFOLIOS_START, fetchPortfoliosAsync);\n}\nexport function* fetchNavPortfoliosStart() {\n yield takeLatest(investmentConstants.FETCH_NAV_PORTFOLIO_START, fetchNavPortfoliosAsync);\n}\nexport function* fetchPreviousReturnByAccountStart() {\n yield takeLatest(investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START, fetchPreviousReturnByAccountAsync);\n}\nexport function* fetchHistoryGraphByAccountStart() {\n yield takeLatest(investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_START, fetchHistoryGraphByAccountAsync);\n}\nexport function* fetchPreviousReturnGraphByAccountStart() {\n yield takeLatest(investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START, fetchPreviousReturnGraphByAccountAsync);\n}\nexport function* fetchProfitByAccountStart() {\n yield takeLatest(investmentConstants.FETCH_PROFIT_BY_ACCOUNT_START, fetchProfitByAccountAsync);\n}\nexport function* fetchMonthlyReturnByAccountStart() {\n yield takeLatest(investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_START, fetchMonthlyReturnByAccountAsync);\n}\nexport function* fetchVolatilityByAccountStart() {\n yield takeLatest(investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_START, fetchVolatilityByAccountAsync);\n}\nexport function* fetchMaxDrawdownByAccountStart() {\n yield takeLatest(investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_START, fetchMaxDrawdownByAccountAsync);\n}\nexport function* fetchDrawdownByAccountStart() {\n yield takeLatest(investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_START, fetchDrawdownByAccountAsync);\n}\nexport function* setDefaultPortStatStart() {\n yield takeLatest(investmentConstants.SET_DEFAULT_PORT_STAT, setDefaultPortStatAsync);\n}\nexport function* fetchLotsStart() {\n yield takeLatest(investmentConstants.FETCH_LOTS_START, fetchLotsAsync);\n}\nexport function* fetchNavsLotsStart() {\n yield takeLatest(investmentConstants.FETCH_NAVS_LOTS_START, fetchNavsLotsAsync);\n}\nexport function* fetchBooksStart() {\n yield takeLatest(investmentConstants.FETCH_BOOKS_START, fetchBooksAsync);\n}\nexport function* fetchDividendsStart() {\n yield takeLatest(investmentConstants.FETCH_DIVIDENDS_START, fetchDividendsAsync);\n}\nexport function* fetchOrdersSagaStart() {\n yield takeLatest(investmentConstants.FETCH_ORDERS_START, fetchOrdersAsync);\n}\nexport function* deleteOrderRequestStart() {\n yield takeLatest(investmentConstants.DELETE_ORDER_REQUEST_START, deleteOrderRequestStartAsync);\n}\nexport function* deleteDCAOrderRequestStart() {\n yield takeLatest(investmentConstants.DELETE_DCA_ORDER_REQUEST_START, deleteDCAOrderRequestStartAsync);\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\tfetchDividendDescription\n} from '../_services/information.services';\nimport { \n\tfetchCalendarByDate \n} 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\tfetchDividendDescriptionSuccess,\n\tfetchDividendDescriptionFailure\n} from '../_actions/information.actions';\n\nimport {\n\tconvertDataToPortChart\n} from '../_utils/information.utils';\n\nexport function* fetchFundInfoAsync({ payload }) {\n\ttry {\n\t\tyield put(clearFundInfo());\n\t\tconst result = yield call(fetchFundInfo, payload);\n\t\tyield put(fetchFundInfoSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchFundInfoFailure(error.message));\n\t}\n}\n\nexport function* fetchPortfolioInformationAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchPortfolioInformation, payload);\n\t\tyield put(fetchPortfolioInformationSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchPortfolioInformationFailure(error.message));\n\t}\n}\n\nexport function* fetchTradingInformationAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchTradingInformation, payload);\n\t\tyield put(fetchTradingInformationSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchTradingInformationFailure(error.message));\n\t}\n}\n\nexport function* fetchHistoricalNavAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchHistoricalNav, payload);\n\t\tyield put(fetchHistoricalNavSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchHistoricalNavFailure(error.message));\n\t}\n}\n\nexport function* fetchFundAverageRatingAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchFundAverageRating, payload);\n\t\tyield put(fetchFundAverageRatingSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchFundAverageRatingFailure(error.message));\n\t}\n}\n\nexport function* voteFundAverageRatingAsync({ payload }) {\n\ttry {\n\t\tyield call(voteFundAverageRating, payload);\n\t\tyield put(fetchFundAverageRatingStart(payload.fundId));\n\t} catch (error) {\n\t}\n}\n\nexport function* fetchPortByFundIdAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchPortByFundId, payload);\n\t\tyield put(fetchFundPortInfoSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchFundPortInfoFailure(error));\n\t}\n}\n\nexport function* fetchPortChartByChartTypeAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchPortChartByFundIdAndChartType, payload);\n\t\tconst convertData = convertDataToPortChart(result.data, payload.chartType);\n\t\tyield put(fetchFundPortChartByChartTypeSuccess(convertData));\n\t} catch (error) {\n\t\tyield put(fetchFundPortChartByChartTypeFailure(error));\n\t}\n}\n\nexport function* fetchCalendarFundStartAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchCalendarByDate, payload);\n\t yield put(fetchCalendarFundSuccess(result.data));\n\t} catch (error) {\n\t yield put(fetchCalendarFundFailure(error));\n\t}\n}\n\nexport function* fetchHistoricalNavGraphAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchHistoricalNavGraph, payload);\n\t\tyield put(fetchHistoricalNavGraphSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchHistoricalNavGraphFailure(error.message));\n\t}\n}\n\nexport function* fetchWeeklyFundRankingAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchWeeklyFundRanking, payload);\n\t\tyield put(fetchWeeklyFundRankingSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchWeeklyFundRankingFailure(error.message));\n\t}\n}\n\nexport function* fetchDrawdownByDateAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchDrawdownByDate, payload);\n\t\tyield put(fetchDrawdownByDateSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchDrawdownByDateFailure(error.message));\n\t}\n}\n\nexport function* fetchMaximumDrawdownAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchMaximumDrawdown, payload);\n\t\tyield put(fetchMaximumDrawdownSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchMaximumDrawdownFailure(error.message));\n\t}\n}\n\nexport function* fetchDrawdownNavGraphAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchHistoricalNavGraph, payload);\n\t\tyield put(fetchDrawdownNavGraphSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchDrawdownNavGraphFailure(error.message));\n\t}\n}\n\nexport function* fetchMonthlyReturnAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchMonthlyReturn, payload);\n\t\tyield put(fetchMonthlyReturnSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchMonthlyReturnFailure(error.message));\n\t}\n}\n\nexport function* fetchVolatilitiesAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchVolatilities, payload);\n\t\tyield put(fetchVolatilitiesSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchVolatilitiesFailure(error.message));\n\t}\n}\n\nexport function* fetchPriceRangeAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchPriceRange, payload);\n\t\tyield put(fetchPriceRangeSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchPriceRangeFailure(error.message));\n\t}\n}\n\nexport function* fetchReturnExpenseRatioAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchReturnExpenseRatio, payload);\n\t\tyield put(fetchReturnExpenseRatioSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchReturnExpenseRatioFailure(error.message));\n\t}\n}\n\nexport function* fetchMonthlyProfitAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchMonthlyProfit, payload);\n\t\tyield put(fetchMonthlyProfitSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchMonthlyProfitFailure(error.message));\n\t}\n}\n\nexport function* fetchReturnHistoryAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchReturnHistory, payload);\n\t\tyield put(fetchReturnHistorySuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchReturnHistoryFailure(error.message));\n\t}\n}\n\n// Dividend\nexport function* fetchDividendAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchDividend, payload);\n\t\tyield put(fetchDividendSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchDividendFailure(error.message));\n\t}\n}\n\nexport function* fetchDividendGroupByYearAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchDividendGroupByYear, payload);\n\t\tyield put(fetchDividendGroupByYearSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchDividendGroupByYearFailure(error.message));\n\t}\n}\n\nexport function* fetchDividendDescriptionAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchDividendDescription, payload);\n\t\tyield put(fetchDividendDescriptionSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchDividendDescriptionFailure(error.message));\n\t}\n}\n\nexport function* fetchFundInfoStart() {\n\tyield takeLatest(informationConstants.FETCH_FUND_INFO_START, fetchFundInfoAsync);\n}\n\nexport function* fetchPortfolioInformationStart() {\n\tyield takeLatest(informationConstants.FETCH_PORTFOLIO_INFO_START, fetchPortfolioInformationAsync);\n}\nexport function* fetchTradingInformationStart() {\n\tyield takeLatest(informationConstants.FETCH_TRADING_INFO_START, fetchTradingInformationAsync);\n}\n\nexport function* fetchHistoricalNavStart() {\n\tyield takeLatest(informationConstants.FETCH_HISTORICAL_NAV_START, fetchHistoricalNavAsync);\n}\n\nexport function* fetchFundAverageRatingStartSaga() {\n\tyield takeLatest(informationConstants.FETCH_FUND_AVERAGE_RATING_START, fetchFundAverageRatingAsync);\n}\n\nexport function* voteFundAverageRatingStart() {\n\tyield takeLatest(informationConstants.VOTE_FUND_AVERAGE_RATING, voteFundAverageRatingAsync);\n}\n\nexport function* fetchPortByFundIdStart() {\n\tyield takeLatest(informationConstants.FETCH_FUND_PORT_INFO_START, fetchPortByFundIdAsync);\n}\n\nexport function* fetchPortChartByChartTypeStart() {\n\tyield takeLatest(informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_START, fetchPortChartByChartTypeAsync);\n}\n\nexport function* fetchCalendarFundStart() {\n\tyield takeLatest(informationConstants.FETCH_CALENDAR_FUND_START, fetchCalendarFundStartAsync);\n}\n\nexport function* fetchHistoricalNavGraphStart() {\n\tyield takeLatest(informationConstants.FETCH_HISTORICAL_NAV_GRAPH_START, fetchHistoricalNavGraphAsync);\n}\n\nexport function* fetchWeeklyFundRankingStart() {\n\tyield takeLatest(informationConstants.FETCH_WEEKLY_FUND_RANKING_START, fetchWeeklyFundRankingAsync);\n}\n\nexport function* fetchDividendStart() {\n\tyield takeLatest(informationConstants.FETCH_DIVIDEND_START, fetchDividendAsync);\n}\n\nexport function* fetchDividendDescriptionStart() {\n\tyield takeLatest(informationConstants.FETCH_DIVIDEND_DESCRIPTION_START, fetchDividendDescriptionAsync);\n}\n\nexport function* fetchDrawdownByDateStart() {\n\tyield takeLatest(informationConstants.FETCH_DRAWDOWN_BY_DATE_START, fetchDrawdownByDateAsync);\n}\n\nexport function* fetchMaximumDrawdownStart() {\n\tyield takeLatest(informationConstants.FETCH_MAXIMUM_DRAWDOWN_START, fetchMaximumDrawdownAsync);\n}\n\nexport function* fetchDrawdownNavGraphStart() {\n\tyield takeLatest(informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_START, fetchDrawdownNavGraphAsync);\n}\n\nexport function* fetchMonthlyReturnStart() {\n\tyield takeLatest(informationConstants.FETCH_MONTHLY_RETURN_START, fetchMonthlyReturnAsync);\n}\n\nexport function* fetchPriceRangeStart() {\n\tyield takeLatest(informationConstants.FETCH_PRICE_RANGE_START, fetchPriceRangeAsync);\n}\n\nexport function* fetchVolatilitiesStart() {\n\tyield takeLatest(informationConstants.FETCH_VOLATILITIES_START, fetchVolatilitiesAsync);\n}\n\nexport function* fetchReturnExpenseRatioStart() {\n\tyield takeLatest(informationConstants.FETCH_RETURN_EXPENSE_RATIO_START, fetchReturnExpenseRatioAsync);\n}\n\nexport function* fetchMonthlyProfitStart() {\n\tyield takeLatest(informationConstants.FETCH_MONTHLY_PROFIT_START, fetchMonthlyProfitAsync);\n}\n\nexport function* fetchReturnHistoryStart() {\n\tyield takeLatest(informationConstants.FETCH_RETURN_HISTORY_START, fetchReturnHistoryAsync);\n}\n\nexport function* fetchDividendGroupByYearStart() {\n\tyield takeLatest(informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_START, fetchDividendGroupByYearAsync);\n}\n\nexport function* informationSagas() {\n\tyield all([\n\t\tcall(fetchFundInfoStart),\n\t\tcall(fetchPortfolioInformationStart),\n\t\tcall(fetchTradingInformationStart),\n\t\tcall(fetchFundAverageRatingStartSaga),\n\t\tcall(voteFundAverageRatingStart),\n\t\tcall(fetchCalendarFundStart),\n\t\tcall(fetchPortByFundIdStart),\n\t\tcall(fetchPortChartByChartTypeStart),\n\t\tcall(fetchHistoricalNavStart), \n\t\tcall(fetchHistoricalNavGraphStart), \n\t\tcall(fetchDividendStart),\n\t\tcall(fetchWeeklyFundRankingStart),\n\t\tcall(fetchDrawdownByDateStart), \n\t\tcall(fetchMaximumDrawdownStart), \n\t\tcall(fetchDrawdownNavGraphStart), \n\t\tcall(fetchMonthlyReturnStart), \n\t\tcall(fetchPriceRangeStart), \n\t\tcall(fetchVolatilitiesStart), \n\t\tcall(fetchReturnExpenseRatioStart), \n\t\tcall(fetchMonthlyProfitStart),\n\t\tcall(fetchReturnHistoryStart),\n\t\tcall(fetchDividendGroupByYearStart),\n\t\tcall(fetchDividendDescriptionStart)\n\t]);\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