{"version":3,"sources":["_constants/alert.constants.js","_constants/user.constants.js","_constants/general.constants.js","_constants/main.constants.js","_constants/favorite.constants.js","_constants/account.constants.js","_constants/language.constants.js","_constants/information.constants.js","_services/axios-nomura.services.js","_constants/fund-ranking.constants.js","_constants/investment.constant.js","_constants/order-request.constants.js","_constants/authentication.constants.js","_actions/investment.actions.js","_utils/information.utils.js","_constants/compare.constants.js","_actions/authentication.actions.js","_actions/information.actions.js","_constants/search.constants.js","_constants/home.constants.js","_constants/advance-search.constants.js","_constants/monthly-report.constants.js","_utils/general.utils.js","_services/information.services.js","_services/investment.services.js","_actions/fund-ranking.actions.js","_constants/calendar.constants.js","_utils/cookie.utils.js","_utils/fund-ranking.utils.js","_constants/ipo.constants.js","_actions/order-request.actions.js","_actions/favorite.actions.js","_constants/hotfund.constants.js","_services/order-request.services.js","_services/advance-search.services.js","_actions/home.actions.js","_utils/calendar.utils.js","_actions/compare.actions.js","_reducers/main.reducer.js","_utils/search.utils.js","_reducers/search.reducer.js","_reducers/authentication.reducer.js","_reducers/users.reducer.js","_reducers/alert.reducer.js","_utils/investment.utils.js","_reducers/investment.reducer.js","_reducers/favorite.reducer.js","_reducers/fund-ranking.reducer.js","_utils/advance-search.utils.js","_reducers/advance-search.reducer.js","_reducers/hotfund.reducer.js","_reducers/compare.reducer.js","_reducers/information.reducer.js","_reducers/order-request.reducer.js","_reducers/ipo.reducer.js","_reducers/monthly-report.reducer.js","_reducers/calendar.reducer.js","_reducers/transfer.reducer.js","_utils/home.utils.js","_reducers/home.reducer.js","_reducers/general.reducer.js","redux/root-reducer.js","_sagas/search.sagas.js","_services/authentication.services.js","_constants/twoFactorAuthenticationMethod.constants.js","_utils/service.utils.js","_sagas/authentication.sagas.js","_services/favorite.services.js","_sagas/favorite.sagas.js","_sagas/hotfund.sagas.js","_services/compare.services.js","_sagas/compare.sagas.js","_sagas/investment.sagas.js","_sagas/information.sagas.js","_sagas/order-request.sagas.js","_sagas/advance-search.sagas.js","_services/ipo.services.js","_sagas/ipo.sagas.js","_services/fund-ranking.services.js","_services/home.services.js","_sagas/fund-ranking.sagas.js","_services/monthly-report.services.js","_sagas/monthly-report.sagas.js","_sagas/calendar.sagas.js","_sagas/home.sagas.js","_sagas/general.sagas.js","_actions/general.actions.js","_middlewares/middlewares.js","redux/store.js","redux/root-saga.js","_components/spinner/spinner.component.jsx","_actions/monthly-report.actions.js","_actions/advance-search.actions.js","_services/axios-cns-auth.services.js","_actions/search.actions.js","_helpers/auth-header.js","_actions/main.actions.js","_services/calendar.services.js","_configs/index.js","_actions/calendar.actions.js","_selectors/authentication.selectors.js","_utils/ipo.utils.js","_services/search.services.js","_services/axios-mock.services.js","_services/general.service.js","_services/user.service.js","_actions/hotfund.actions.js","_actions/ipo.actions.js","_services/hotfund.services.js","_helpers/body-class.js","_constants/transfer.constants.js","assets/loading-yellow.gif","Pages/ad-login/index.jsx","Pages/dsa-login/index.jsx","Pages/sso-login/index.jsx","_components/icons/icons.js","_utils/order-request.utils.js","routes.js","App/App.js","index.js"],"names":["alertConstants","SUCCESS","ERROR","CLEAR","userConstants","REGISTER_REQUEST","REGISTER_SUCCESS","REGISTER_FAILURE","LOGIN_REQUEST","LOGIN_SUCCESS","LOGIN_FAILURE","GETALL_REQUEST","GETALL_SUCCESS","GETALL_FAILURE","DELETE_REQUEST","DELETE_SUCCESS","DELETE_FAILURE","accountTypeConstants","O","S","logInTypeConstants","general","AD","generalConstants","DEFAULT_ROUTE","DEFAULT_PAGE","path","name","icon","layout","section","GET_COLOR_LIST_START","GET_COLOR_LIST_SUCCESS","GET_COLOR_LIST_FAILURE","CLEAR_COLOR_LIST","mainConstants","TOGGLE_SCREEN_SIZE","TOGGLE_SIDE_BAR","TOGGLE_ACTIVE_PAGE","INSERT_ROUTES","FETCH_ROUTES_START","FETCH_ROUTES_SUCCESS","FETCH_ROUTES_FAILURE","ENABLE_PAGING","DISABLE_PAGING","INSERT_PAGES","UPDATE_ERROR_MODAL","CLEAR_ERROR_MODAL","favoriteConstants","UPDATE_FAVORITE_FUNDS_QUERIES","UPDATE_FAVORITE_FUNDS_TABLE_COLUMNS","UPDATE_LOCAL_FAVORITE_FUNDS","ADD_FAVORITE_FUND","DELETE_FAVORITE_FUND","PUT_FAVORITE_FUNDS","FETCH_FAVORITE_FUNDS_BY_ACCOUNT_START","FETCH_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS","FETCH_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE","FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_START","FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS","FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE","FETCH_FAVORITE_COPYPORT_START","FETCH_FAVORITE_COPYPORT_SUCCESS","FETCH_FAVORITE_COPYPORT_FAILURE","ACCOUNT_TYPES","TYPE_P","TYPE_A","LANGUAGE","TH","EN","informationConstants","FETCH_FUND_INFO_START","FETCH_FUND_INFO_SUCCESS","FETCH_FUND_INFO_FAILURE","CLEAR_FUND_INFO","FETCH_PORTFOLIO_INFO_START","FETCH_PORTFOLIO_INFO_SUCCESS","FETCH_PORTFOLIO_INFO_FAILURE","UPDATE_FUND_ID","UPDATE_RECENT_TAB","FETCH_TRADING_INFO_START","FETCH_TRADING_INFO_SUCCESS","FETCH_TRADING_INFO_FAILURE","FETCH_FUND_AVERAGE_RATING_START","FETCH_FUND_AVERAGE_RATING_SUCCESS","FETCH_FUND_AVERAGE_RATING_FAILURE","VOTE_FUND_AVERAGE_RATING","FETCH_CALENDAR_FUND_START","FETCH_CALENDAR_FUND_SUCCESS","FETCH_CALENDAR_FUND_FAILURE","FETCH_FUND_PORT_INFO_START","FETCH_FUND_PORT_INFO_SUCCESS","FETCH_FUND_PORT_INFO_FAILURE","FETCH_FUND_PORT_CHART_BY_CHART_TYPE_START","FETCH_FUND_PORT_CHART_BY_CHART_TYPE_SUCCESS","FETCH_FUND_PORT_CHART_BY_CHART_TYPE_FAILURE","FETCH_WEEKLY_FUND_RANKING_START","FETCH_WEEKLY_FUND_RANKING_SUCCESS","FETCH_WEEKLY_FUND_RANKING_FAILURE","FETCH_DRAWDOWN_BY_DATE_START","FETCH_DRAWDOWN_BY_DATE_SUCCESS","FETCH_DRAWDOWN_BY_DATE_FAILURE","FETCH_MAXIMUM_DRAWDOWN_START","FETCH_MAXIMUM_DRAWDOWN_SUCCESS","FETCH_MAXIMUM_DRAWDOWN_FAILURE","FETCH_DRAWDOWN_NAV_GRAPH_START","FETCH_DRAWDOWN_NAV_GRAPH_SUCCESS","FETCH_DRAWDOWN_NAV_GRAPH_FAILURE","CHANGE_DRAWDOWN_STATISTIC_FILTERS","CHANGE_NAV_GRAPH_DATE","CHANGE_SORTED_DRAWDOWN","FETCH_MONTHLY_RETURN_START","FETCH_MONTHLY_RETURN_SUCCESS","FETCH_MONTHLY_RETURN_FAILURE","FETCH_PRICE_RANGE_START","FETCH_PRICE_RANGE_SUCCESS","FETCH_PRICE_RANGE_FAILURE","FETCH_VOLATILITIES_START","FETCH_VOLATILITIES_SUCCESS","FETCH_VOLATILITIES_FAILURE","FETCH_RETURN_EXPENSE_RATIO_START","FETCH_RETURN_EXPENSE_RATIO_SUCCESS","FETCH_RETURN_EXPENSE_RATIO_FAILURE","FETCH_MONTHLY_PROFIT_START","FETCH_MONTHLY_PROFIT_SUCCESS","FETCH_MONTHLY_PROFIT_FAILURE","FETCH_RETURN_HISTORY_START","FETCH_RETURN_HISTORY_SUCCESS","FETCH_RETURN_HISTORY_FAILURE","FETCH_RANKING_HISTORY_START","FETCH_RANKING_HISTORY_SUCCESS","FETCH_RANKING_HISTORY_FAILURE","FETCH_RETURN_MONTHLY_START","FETCH_RETURN_MONTHLY_SUCCESS","FETCH_RETURN_MONTHLY_FAILURE","FETCH_HISTORICAL_NAV_START","FETCH_HISTORICAL_NAV_SUCCESS","FETCH_HISTORICAL_NAV_FAILURE","FETCH_HISTORICAL_NAV_CHANGE_PAGE","FETCH_HISTORICAL_NAV_GRAPH_START","FETCH_HISTORICAL_NAV_GRAPH_SUCCESS","FETCH_HISTORICAL_NAV_GRAPH_FAILURE","FETCH_DIVIDEND_START","FETCH_DIVIDEND_SUCCESS","FETCH_DIVIDEND_FAILURE","FETCH_DIVIDEND_CHANGE_PAGE","FETCH_DIVIDEND_GROUP_BY_YEAR_START","FETCH_DIVIDEND_GROUP_BY_YEAR_SUCCESS","FETCH_DIVIDEND_GROUP_BY_YEAR_FAILURE","FETCH_DIVIDEND_DESCRIPTION_START","FETCH_DIVIDEND_DESCRIPTION_SUCCESS","FETCH_DIVIDEND_DESCRIPTION_FAILURE","FETCH_CHANGE_ACTIVE_BTN","apiKey","global","gConfig","instance","axios","create","baseURL","process","headers","Accept","defaults","post","interceptors","request","use","state","store","getState","token","getCookie","user","authentication","hasOwnProperty","console","log","accessToken","userType","username","url","includes","error","Promise","reject","response","data","isMobileApp","isSignIn","status","window","location","href","dispatch","refreshToken","fundRankingConstants","SET_CURRENT_FUND_RANKING_PAGE","SET_TOTAL_RANKING_PAGE","UPDATE_FUND_RANKING_QUERIES","RESET_FUND_RANKING_QUERIES","UPDATE_FUND_RANKING_TABLE_COLUMNS","SET_DEFAULT_FUND_RANKING_QUERIES","FETCH_RANK_START","FETCH_RANK_SUCCESS","FETCH_RANK_FAILURE","SET_FUND_ID_RANK","FETCH_FUND_RANK_START","FETCH_FUND_RANK_SUCCESS","FETCH_FUND_RANK_FAILURE","FETCH_RANK_SEARCH_FILTERS_START","FETCH_RANK_SEARCH_FILTERS_SUCCESS","FETCH_RANK_SEARCH_FILTERS_FAILURE","FETCH_RANKINGS_START","FETCH_RANKINGS_SUCCESS","FETCH_RANKINGS_FAILURE","SET_NAV_TYPE_RANKING","UPDATE_NAV_DATE_FUND_RANKING","FETCH_NAV_RANKINGS_START","FETCH_NAV_RANKINGS_SUCCESS","FETCH_NAV_RANKINGS_FAILURE","SET_HIGHLIGHT_FUND_PERIOD","FETCH_HIGHLIGHT_FUND_START","FETCH_HIGHLIGHT_FUND_SUCCESS","FETCH_HIGHLIGHT_FUND_FAILURE","FETCH_CATEGORIES_START","FETCH_CATEGORIES_SUCCESS","FETCH_CATEGORIES_FAILURE","UPDATE_CATEGORIES","APPEND_CATEGORY","REMOVE_CATEGORY","FETCH_USER_CATEGORIES_START","FETCH_USER_CATEGORIES_SUCCESS","FETCH_USER_CATEGORIES_FAILURE","UPDATE_USER_CATEGORIES","RESET_USER_CATEGORIES","SAVE_USER_CATEGORIES_START","SAVE_USER_CATEGORIES_SUCCESS","SAVE_USER_CATEGORIES_FAILURE","investmentConstants","UPDATE_USER_ACCOUNTS","RESET_INVESTMENT","FETCH_ACTIVED_FUNDS_START","FETCH_ACTIVED_FUNDS_SUCCESS","FETCH_ACTIVED_FUNDS_FAILURE","FETCH_ALL_FUNDS_START","FETCH_ALL_FUNDS_SUCCESS","FETCH_ALL_FUNDS_FAILURE","FETCH_ALL_FUND_CODES_START","FETCH_ALL_FUND_CODES_SUCCESS","FETCH_ALL_FUND_CODES_FAILURE","UPDATE_PORTFOLIOS_QUERIES","FETCH_PORTFOLIOS_START","FETCH_PORTFOLIOS_SUCCESS","FETCH_PORTFOLIOS_FAILURE","FETCH_NAV_PORTFOLIO_START","FETCH_NAV_PORTFOLIO_SUCCESS","FETCH_NAV_PORTFOLIO_FAILURE","FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START","FETCH_PREVIOUS_RETURN_BY_ACCOUNT_SUCCESS","FETCH_PREVIOUS_RETURN_BY_ACCOUNT_FAILURE","FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START","FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_SUCCESS","FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_FAILURE","FETCH_HISTORY_GRAPH_BY_ACCOUNT_START","FETCH_HISTORY_GRAPH_BY_ACCOUNT_SUCCESS","FETCH_HISTORY_GRAPH_BY_ACCOUNT_FAILURE","FETCH_MONTHLY_RETURN_BY_ACCOUNT_START","FETCH_MONTHLY_RETURN_BY_ACCOUNT_SUCCESS","FETCH_MONTHLY_RETURN_BY_ACCOUNT_FAILURE","FETCH_PROFIT_BY_ACCOUNT_START","FETCH_PROFIT_BY_ACCOUNT_SUCCESS","FETCH_PROFIT_BY_ACCOUNT_FAILURE","FETCH_VOLATILITY_BY_ACCOUNT_START","FETCH_VOLATILITY_BY_ACCOUNT_SUCCESS","FETCH_VOLATILITY_BY_ACCOUNT_FAILURE","FETCH_MAX_DRAWDOWN_BY_ACCOUNT_START","FETCH_MAX_DRAWDOWN_BY_ACCOUNT_SUCCESS","FETCH_MAX_DRAWDOWN_BY_ACCOUNT_FAILURE","FETCH_DRAWDOWN_BY_ACCOUNT_START","FETCH_DRAWDOWN_BY_ACCOUNT_SUCCESS","FETCH_DRAWDOWN_BY_ACCOUNT_FAILURE","SET_DEFAULT_PORT_STAT","CLEAR_DEFAULT_PORT_STAT","FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_SUCCESS","FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_FAILURE","UPDATE_LOT_QUERIES","FETCH_LOTS_START","FETCH_LOTS_SUCCESS","FETCH_LOTS_FAILURE","FETCH_NAVS_LOTS_START","FETCH_NAVS_LOTS_SUCCESS","FETCH_NAVS_LOTS_FAILURE","UPDATE_BOOK_QUERIES","FETCH_BOOKS_START","FETCH_BOOKS_SUCCESS","FETCH_BOOKS_FAILURE","UPDATE_DIVIDEND_QUERIES","FETCH_DIVIDENDS_START","FETCH_DIVIDENDS_SUCCESS","FETCH_DIVIDENDS_FAILURE","UPDATE_INVESTMENT_HISTORIES_QUERIES","FETCH_HISTORIES_START","FETCH_HISTORIES_SUCCESS","FETCH_HISTORIES_FAILURE","FETCH_HISTORIES_CHANGE_PAGE","UPDATE_INVESTMENT_DCA_QUERIES","DELETE_DCA_ORDER_REQUEST_START","DELETE_DCA_ORDER_REQUEST_SUCCESS","DELETE_DCA_ORDER_REQUEST_FAILURE","CLEAR_DCA_ORDER_ERROR_MESSAGE","FETCH_DCAS_START","FETCH_DCAS_SUCCESS","FETCH_DCAS_FAILURE","DELETE_ORDER_REQUEST_START","DELETE_ORDER_REQUEST_SUCCESS","DELETE_ORDER_REQUEST_FAILURE","FETCH_ORDERS_START","FETCH_ORDERS_SUCCESS","FETCH_ORDERS_FAILURE","UPDATE_ORDERS_QUERIES","CLEAR_ORDER_ERROR_MESSAGE","SET_INVEST_SEARCH","TRADE_TYPES","SWITCH","DCA","INVESTMENT_STATUS","STATUS_P","STATUS_A","STATUS_I","orderRequestConstants","TOGGLED_ORDER_FUNDS_REQUEST_MODAL","CLEAR_ERROR_MESSAGE","UPDATE_ACTIVE_TAB_ORDER_FUNDS_REQUEST_MODAL","UPDATE_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL","CLEAR_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL","FETCH_BUY_FUND_INFO_START","FETCH_SELL_FUND_INFO_START","UPDATE_FUND_INFO","FETCH_SWITCH_FUND_INFO_START","UPDATE_FUNDS_INFO_2","CLEAR_FUND_INFO_2","CLEAR_CHECKED_FUND_ABLE","CHECKED_BUYABLE_FUND_START","CHECKED_SELLABLE_FUND_START","CHECKED_SWITCHABLE_FUND_START","CHECKED_FUND_ABLE_TO_ORDER_SUCCESS","CHECKED_FUND_ABLE_TO_ORDER_FAILURE","GET_SWITCHABLE_FUNDS_START","GET_SWITCHABLE_FUNDS_SUCCESS","GET_SWITCHABLE_FUNDS_FAILURE","CONFIRM_ORDER_FUND_START","CONFIRM_ORDER_FUND_SUCCESS","CONFIRM_ORDER_FUND_FAILURE","RESET_CONFIRM_ORDER_FUND","CLEAR_SEARCH_FUNDS_INFO","UPDATE_SEARCH_FUNDS_INFO","REMOVE_SEARCH_FUNDS_INFO","UPDATE_SEARCH_PORTFOLIOS","TOGGLE_MODAL_MESSAGE","UPDATE_LATEST_PLAN","CLEAR_LATEST_PLAN","UPDATE_LATEST_SETTLE_DATE","authenticationConstants","TOGGLED_SIGN_IN_MODAL","TOGGLED_ERROR_MESSAGE_MODAL","REFRESH_TOKEN","SIGN_IN_START","SIGN_IN_SUCCESS","SIGN_IN_FAILURE","VERIFY_2FA_OPEN","TOGGLED_2FA_MODAL","VERIFY_2FA_START","SET_2FA_LOADING","CLEAR_SIGN_IN_ERROR_MESSAGE","SIGN_IN_CREDENTIAL_START","SIGN_IN_DSA_START","SIGN_IN_SSO_START","SIGN_IN_SUCCESS_FOR_MOBILE","UPDATE_SIGN_IN_STATUS_FOR_MOBILE","GET_ACCOUNT_MKT","GET_ACCOUNT_LIST_START","GET_ACCOUNT_LIST_SUCCESS","UPDATE_ACCOUNT_LIST_MOBILE_SUCCESS","GET_ACCOUNT_LIST_FAILURE","GET_ACCOUNT_INFO_START","GET_ACCOUNT_INFO_SUCCESS","GET_ACCOUNT_INFO_FAILURE","GET_ACCOUNT_NAME_START","GET_ACCOUNT_NAME_SUCCESS","GET_ACCOUNT_NAME_FAILURE","SIGN_OUT","updateUserAccounts","accountNumbers","type","payload","resetInvestment","fetchActivedFundsStart","fetchActivedFundsSuccess","fetchActivedFundsFailure","errorMessage","fetchAllFundsStart","fetchAllFundsSuccess","fetchAllFundsFailure","fetchAllFundCodesStart","fetchAllFundCodesSuccess","fetchAllFundCodesFailure","updatePortfoliosQueries","queries","fetchPortfoliosStart","fetchPortfoliosSuccess","fetchPortfoliosFailure","fetchNavPortfoliosStart","fetchNavPortfoliosSuccess","fetchNavPortfoliosFailure","fetchPreviousReturnByAccountStart","account","fetchPreviousReturnByAccountSuccess","fetchPreviousReturnByAccountFailure","fetchPreviousReturnGraphByAccountStart","fetchPreviousReturnGraphByAccountSuccess","fetchPreviousReturnGraphByAccountFailure","fetchHistoryGraphByAccountStart","fetchHistoryGraphByAccountSuccess","fetchHistoryGraphByAccountFailure","fetchMonthlyReturnByAccountStart","fetchMonthlyReturnByAccountSuccess","fetchMonthlyReturnByAccountFailure","fetchProfitByAccountStart","fetchProfitByAccountSuccess","fetchProfitByAccountFailure","fetchVolatilityByAccountStart","fetchVolatilityByAccountSuccess","fetchVolatilityByAccountFailure","fetchMaxDrawdownByAccountStart","fetchMaxDrawdownByAccountSuccess","fetchMaxDrawdownByAccountFailure","fetchDrawdownByAccountStart","fetchDrawdownByAccountSuccess","fetchDrawdownByAccountFailure","setDefaultPortStat","clearDefaultPortStat","fetchLastDateOfAccountNumberSuccess","date","fetchLastDateOfAccountNumberFailure","deleteOrderRequestStart","deleteOrderRequestSuccess","deleteOrderRequestFailure","fetchOrdersStart","id","fetchOrdersSuccess","fetchOrdersFailure","updateOrdersQueries","clearOrderErrorMessage","updateLotQueries","fetchLotsStart","fetchLotsSuccess","fetchLotsFailure","fetchNavsLotsSuccess","fetchNavsLotsFailure","updateBookQueries","fetchBooksStart","fetchBooksSuccess","fetchBooksFailure","updateHistoriesQueries","fetchHistoriesStart","page","fetchHistoriesSuccess","fetchHistoriesFailure","updateDividendQueries","fetchDividendsStart","fetchDividendsSuccess","fetchDividendsFailure","updateDCAQueries","fetchDCAsStart","fetchDCAsSuccess","fetchDCAsFailure","deleteDCAOrderRequestStart","deleteDCAOrderRequestSuccess","deleteDCAOrderRequestFailure","clearDCAOrderErrorMessage","setInvestSearch","isSearch","changePage","currentPage","filterMaximumDrawdown","maximumDrawdownList","resetMaximumDrawdown","resetMonthlyReturn","monthlyReturns","filterPriceRange","priceRangeList","time","maxValue","maxOfWeek","minValue","minOfWeek","value","current","maxOfMonth","minOfMonth","maxOfThreeMonths","minOfThreeMonths","maxOfSixMonths","minOfSixMonths","maxOfOneYear","minOfOneYear","priceRanges","resetPriceRange","filterVolatilities","volatilities","resetVolatilities","filterReturnExpenseRatio","returnExpenseRatio","resetReturnExpenseRatio","filterMonthlyProfit","monthlyProfit","resetMonthlyProfit","filterReturnHistory","returnHistory","resetReturnHistory","changeDrawdownSortingFilters","currentDrawdownSortingFilters","changeNavGraphDate","navGraphDateRange","startDate","endDate","changeSortedDrawdown","setIsFetching","isFetching","filterDataResult","resetDataResult","message","resetDataResultToObject","filterTypeList","dateType","key","detailName","defaultColors","convertDataToPortChart","dataObj","filterType","summary","colors","lenght","product","find","obj","categoryList","returnFormatData","list","i","length","push","category","toFixed","map","sort","a","b","reduce","prev","cur","parseFloat","forEach","index","color","handleRedirectPage","e","item","attr","arguments","undefined","preventDefault","accountStatus","compareConstants","TOGGLED_COMPARE_MODAL","ADD_FUNDIDS_TO_COMPARE_FUNDS","UPDATE_FUNDIDS_TO_COMPARE_FUNDS","UPDATE_TEMPORARY_COMPARE_FUNDS","REMOVED_TEMPORARY_COMPARE_FUNDS","RESET_TEMPORARY_COMPARE_FUNDS","FETCH_COMPARE_START","FETCH_COMPARE_SUCCESS","FETCH_COMPARE_FAILURE","FETCH_COMPARE_FUNDS_BY_PERIOD_START","FETCH_COMPARE_FUNDS_BY_PERIOD_SUCCESS","FETCH_COMPARE_FUNDS_BY_PERIOD_FAILURE","FETCH_GRAPH_COMPARE_FUNDS_START","FETCH_GRAPH_COMPARE_FUNDS_SUCCESS","FETCH_GRAPH_COMPARE_FUNDS_FAILURE","FETCH_NAV_COMPARE_FUNDS_START","FETCH_NAV_COMPARE_FUNDS_SUCCESS","FETCH_NAV_COMPARE_FUNDS_FAILURE","CLEAR_FUND_COMPARE","TOGGLE_RETURN","TOGGLE_DRAWDOWN","TOGGLE_PROPORTION","INSERT_SEARCH_INDEX","toggleSignInModal","toggleErrorMessageModal","signInStart","credential","verify2FAOpen","referenceCode","toggle2FAModal","verify2FAStart","set2FALoading","isLoading","signInSuccess","signInFailure","clearSignInErrorMessage","signInCredentialStart","signInDSAStart","signInSSOStart","signInSuccessForMobile","updateSignInStatusForMobile","getAccountListStart","getAccountListSuccess","accounts","getAccountMKT","updateAccountListMobileSuccess","getAccountListFailure","getAccountInfoStart","accountNumber","getAccountInfoSuccess","information","getAccountInfoFailure","getAccountNameStart","getAccountNameSuccess","accountName","getAccountNameFailure","signOut","fetchFundInfoStart","fetchFundInfoSuccess","fetchFundInfoFailure","clearFundInfo","updateFundId","fundCode","updateRecentTab","tab","fetchTradingInformationStart","fetchTradingInformationSuccess","fetchTradingInformationFailure","fetchPortfolioInformationStart","fundId","fetchPortfolioInformationSuccess","fetchPortfolioInformationFailure","fetchFundAverageRatingStart","fetchFundAverageRatingSuccess","fetchFundAverageRatingFailure","voteFundAverageRating","fetchCalendarFundStart","fetchCalendarFundSuccess","fetchCalendarFundFailure","fetchFundPortInfoStart","fetchFundPortInfoSuccess","fetchFundPortInfoFailure","fetchFundPortChartByChartTypeStart","fetchFundPortChartByChartTypeSuccess","fetchFundPortChartByChartTypeFailure","fetchWeeklyFundRankingStart","fetchWeeklyFundRankingSuccess","fetchWeeklyFundRankingFailure","fetchDrawdownByDateStart","fetchDrawdownByDateSuccess","fetchDrawdownByDateFailure","fetchMaximumDrawdownStart","fetchMaximumDrawdownSuccess","fetchMaximumDrawdownFailure","fetchDrawdownNavGraphStart","fetchDrawdownNavGraphSuccess","fetchDrawdownNavGraphFailure","changeDrawdownStatisticFilters","fetchMonthlyReturnStart","fetchMonthlyReturnSuccess","fetchMonthlyReturnFailure","fetchPriceRangeStart","fetchPriceRangeSuccess","fetchPriceRangeFailure","fetchVolatilitiesStart","fetchVolatilitiesSuccess","fetchVolatilitiesFailure","fetchReturnExpenseRatioStart","fetchReturnExpenseRatioSuccess","fetchReturnExpenseRatioFailure","fetchMonthlyProfitStart","fetchMonthlyProfitSuccess","fetchMonthlyProfitFailure","fetchReturnHistoryStart","fetchReturnHistorySuccess","fetchReturnHistoryFailure","fetchHistoricalNavStart","fetchHistoricalNavSuccess","fetchHistoricalNavFailure","fetchHistoricalNavGraphStart","fetchHistoricalNavGraphSuccess","fetchHistoricalNavGraphFailure","fetchDividendStart","fetchDividendSuccess","fetchDividendFailure","fetchDividendGroupByYearStart","fetchDividendGroupByYearSuccess","fetchDividendGroupByYearFailure","fetchDividendDescriptionStart","fetchDividendDescriptionSuccess","fetchDividendDescriptionFailure","changeHistoricalNavPage","changeDividendPage","searchConstants","FETCH_MAIN_SEARCH_START","FETCH_MAIN_SEARCH_SUCCESS","FETCH_MAIN_SEARCH_FAILURE","CLEAR_MAIN_SEARCH","UPDATE_MAIN_SEARCH","REMOVE_MAIN_SEARCH","FETCH_SUBNAV_SEARCH_START","FETCH_SUBNAV_SEARCH_SUCCESS","FETCH_SUBNAV_SEARCH_FAILURE","CLEAR_SUBNAV_SEARCH","UPDATE_SUBNAV_SEARCH","REMOVE_SUBNAV_SEARCH","FETCH_SEARCH_FUND_CALENDAR_START","FETCH_SEARCH_FUND_CALENDAR_SUCCESS","FETCH_SEARCH_FUND_CALENDAR_FAILURE","CLEAR_SEARCH_FUND_CALENDAR","UPDATE_SEARCH_FUND_CALENDAR","REMOVE_SEARCH_FUND_CALENDAR","homeConstants","FETCH_BANNERS_START","FETCH_BANNERS_SUCCESS","FETCH_BANNERS_FAILURE","FETCH_HIGHLIGHT_FUNDS_START","FETCH_HIGHLIGHT_FUNDS_SUCCESS","FETCH_HIGHLIGHT_FUNDS_FAILURE","UPDATE_NAV_FUNDS","FETCH_NAV_FUNDS_START","FETCH_NAV_FUNDS_SUCCESS","FETCH_NAV_FUNDS_FAILURE","FETCH_TOP_SUB_CATEGORIES_START","FETCH_TOP_SUB_CATEGORIES_SUCCESS","FETCH_TOP_SUB_CATEGORIES_FAILURE","FETCH_ARTICLES_START","FETCH_ARTICLES_SUCCESS","FETCH_ARTICLES_FAILURE","TOGGLE_ARTICLE_MODAL","advanceSearchConstants","UPDATE_ADVANCE_SEARCH_QUERIES","UPDATE_DEFAULT_QUERIES_ADVANCE_SEARCH","RESET_QUERIES_ADVANCE_SEARCH","FETCH_ADVANCE_SEARCH_FILTERS_START","FETCH_ADVANCE_SEARCH_FILTERS_SUCCESS","FETCH_ADVANCE_SEARCH_FILTERS_FAILURE","FETCH_ADVANCE_SEARCH_START","FETCH_ADVANCE_SEARCH_SUCCESS","FETCH_ADVANCE_SEARCH_FAILURE","UPDATE_NAV_DATE_ADVANCE_SEARCH","FETCH_NAV_ADVANCE_SEARCH_START","FETCH_NAV_ADVANCE_SEARCH_SUCCESS","FETCH_NAV_ADVANCE_SEARCH_FAILURE","UPDATE_CURRENT_PAGE_SEARCH","UPDATE_TABLE_COLUMN","monthlyReportConstants","FETCH_MONTHLY_REPORT_START","FETCH_MONTHLY_REPORT_SUCCESS","FETCH_MONTHLY_REPORT_FAILURE","FETCH_MONTHLY_REPORT_CHART_START","FETCH_MONTHLY_REPORT_CHART_SUCCESS","FETCH_MONTHLY_REPORT_CHART_FAILURE","SET_MONTHLY_REPORT_SHARED_QUERIES","SET_MONTHLY_REPORT_TABLE_QUERIES","CLEAR_MONTHLY_REPORT_TABLE_RESPONSES","CLEAR_MONTHLY_REPORT_TABLE_QUERIES","CLEAR_MONTHLY_REPORT_CHART_QUERIES","CLEAR_MONTHLY_REPORT_SHARED_QUERIES","CLEAR_MONTHLY_REPORT_QUERIES_START","defaultData","result","resetResponseDataObject","resetResponseDataArrays","filterResponseData","transformDisplayName","toUpperCase","baseSort","item1","item2","sortType","groupItemsByAttr","items","groupBy","target","getScrollPosition","element","_target$scrollLeft","_target$scrollTop","x","y","document","querySelector","position","getBoundingClientRect","scrollLeft","left","scrollTop","top","setScrollPosition","scrollType","scrollTo","behavior","switchOrderNumberRegEx","onlyNumberRegEx","fetchFundSearch","async","axios_nomura","body","fetchPortfolioInformation","get","fetchFundInfo","fetchTradingInformation","fetchFundAverageRating","getUserFundVote","rating","parseInt","fetchPortChartByFundIdAndChartType","params","holdingType","chartType","fetchPortByFundId","fetchDrawdownByDate","_data$startDate","_data$endDate","start","end","fetchMaximumDrawdown","fetchMonthlyReturn","fetchPriceRange","fetchVolatilities","_data$startAt","_data$endAt","startAt","endAt","fetchReturnExpenseRatio","fetchMonthlyProfit","fetchReturnHistory","fetchWeeklyFundRanking","_data$startDate2","_data$endDate2","fetchHistoricalNav","_data$startDate3","_data$endDate3","pageSize","fetchHistoricalNavGraph","_data$startDate4","_data$endDate4","mode","fetchDividend","_data$startDate5","_data$endDate5","_data$page","fetchDividendDescription","fetchDividendGroupByYear","fetchNavChartByDate","_data$startDate6","_data$endDate6","fetchPortfolioGroups","convertDataToJson","JSON","stringify","fetchNavPortfolios","fetchPreviousReturnByAccount","fetchPreviousReturnGraphByAccount","_data$dateType","fetchAumGraphByAccount","_data$startAt2","_data$endAt2","_data$dateType2","fetchMonthlyReturnByAccount","fetchProfitByAccount","fetchVolatilityByAccount","fetchMaxDrawdownByAccount","fetchDrawdownByAccount","_data$startAt3","_data$endAt3","fetchLastDateOfAccountNumber","fetchOrders","uploadOrderDocument","orderNumber","formData","FormData","append","deleteOrderRequestFund","number","getOrderAttachment","responseType","fetchLots","fetchBooks","fetchHistories","_data$startedAt","_data$endedAt","fundCodes","startedAt","endedAt","sortBy","isRemarkExists","remark","fetchDCAs","deleteDCAOrderRequestFund","fetchDividends","_data$startedAt2","_data$endedAt2","fundIds","fetchActivedFunds","fetchAllFunds","fetchAllFundCodes","updatePage","setFundIdRank","fetchFundRankStart","fetchFundRankSuccess","fetchFundRankFailure","fetchRankingSearchFiltersStart","fetchRankingSearchFiltersSuccess","fetchRankingSearchFiltersFailure","fetchRankingsStart","fetchRankingsSuccess","rankings","fetchRankingsFailure","fetchHighlightFundStart","fetchHighlightFundSuccess","nav","fetchHighlightFundFailure","updateNavDateChart","fetchNavRankingsStart","fetchNavRankingsSuccess","fetchNavRankingsFailure","fetchCategoriesStart","fetchCategoriesSuccess","categories","fetchCategoriesFailure","updateCategories","appendCategory","removeCategory","fetchUserCategoriesStart","fetchUserCategoriesSuccess","userCategories","fetchUserCategoriesFailure","resetUserCategories","updateUserCategories","fetchRankStart","fetchRankSuccess","fetchRankFailure","saveUserCategoriesStart","saveUserCategoriesFailure","updateFundRankingQueries","resetFundRankingQueries","setDefaultFundRankingQueries","updateTableColumns","columns","calendarConstants","FETCH_CALENDAR_BY_YEAR_START","FETCH_CALENDAR_BY_YEAR_SUCCESS","FETCH_CALENDAR_BY_YEAR_FAILURE","UPDATE_CALENDAR_YEAR","UPDATE_USER_FUND_CALENDAR","FETCH_CALENDAR_BY_DATE_START","FETCH_CALENDAR_BY_DATE_SUCCESS","FETCH_CALENDAR_BY_DATE_FAILURE","UPDATE_USER_CALENDAR_DATE","cookie","split","el","k","v","trim","clearCookies","names","setCookie","options","expires","Date","toUTCString","updatedCookie","encodeURIComponent","optionKey","optionValue","tempList","filter","categoryCode","userCategoryFetching","userCategory","userCategoryData","userCategoryError","saveUserCategories","idx","subCategory","sequence","pullUserCategories","main","apply","checkExistedCategory","some","j","saveFavCategories","setDefaultQueriesFundRanking","dividendPolicy","code","fundTypes","investorRatings","purchaseFee","currencyPolicy","riskLevels","morningStarRatings","company","ipoConstants","FETCH_IPOS_START","FETCH_IPOS_SUCCESS","FETCH_IPOS_FAILURE","TOGGLE_DETAIL_MODAL","SET_CURRENT_DETAIL_MODAL","UPDATE_IPO_QUERIES","toggleOrderRequestModal","clearErrorMessage","updateActiveTabOrderRequestModal","updateNavigationFundToOrderRequestModal","fund","clearNavigationFundToOrderRequestModal","fetchBuyFundInfoStart","fetchSellFundInfoStart","updateFundInfo","fetchSwitchFundInfoStart","updateFundInfo2","clearSearchFundInfo2","clearCheckedFundAble","checkedBuyableFundStart","checkedSellableFundStart","checkedSwitchableFundStart","checkedFundAbleToOrderSuccess","checkedFundAbleToOrderFailure","confirmOrderFundStart","confirmOrderFundSuccess","confirmOrderFundFailure","resetConfirmOrderFund","clearSearchFundInfo","updateLatestPlan","clearLatestPlan","updateLatestSettleDate","updateFavoriteQueries","updateFavoriteTableColumns","updateLocalFavoriteFunds","addFavoriteFund","deleteFavoriteFund","putFavoriteFunds","fetchFavoriteFundsByAccountStart","fetchFavoriteFundsByAccountSuccess","funds","fetchFavoriteFundsByAccountFailure","fetchNavFavoriteFundsByAccountStart","fetchNavFavoriteFundsByAccountSuccess","fetchNavFavoriteFundsByAccountFailure","hotfundConstants","FETCH_HOTFUND_START","FETCH_HOTFUND_SUCCESS","FETCH_HOTFUND_FAILURE","UPDATE_HOTFUND_QUERIES","UPDATE_HOTFUND_TABLE_COLUMNS","fetchSearchBuyableFunds","fetchBuyFundInfo","fetchBuyableFund","fetchSellableFund","fetchSwitchableOutFunds","fetchSwitchableFunds","accountType","isDCA","fetchCheckedSwitchableFund","fetchSellFundInfo","fetchSwitchFundInfo","fetchChannelByAccount","fetchSendQuestionBackToConfirm","fetchConfirmSellFund","fetchConfirmSwitchFund","fetchGetReceivingDate","fetchAdvanceSearchFilters","fetchNavForAdvanceSearch","fetchBannersStart","fetchBannersSuccess","fetchBannersFailure","fetchHighlightFundsStart","period","fetchHighlightFundsSuccess","fetchHighlightFundsFailure","updateNavFunds","fetchNavFundsSuccess","fetchNavFundsFailure","fetchTopSubCategoriesStart","fetchTopSubCategoriesSuccess","fetchTopSubCategoriesFailure","fetchArticlesStart","fetchArticlesSuccess","fetchArticlesFailure","toggleArticleModal","filterCalendarResults","checked","month","events","dates","resetCalendarResults","filterUserFund","thailandFundCode","filterCalendarByDate","addFundIdsToCompareFunds","updateFundIdsToCompareFunds","updateTemporaryCompareFunds","removedTemporaryCompareFunds","resetTemporaryCompareFunds","fetchCompareFundsStart","fetchCompareFundsSuccess","compareFunds","fetchCompareFundsFailure","fetchCompareFundsByPeriodStart","fetchCompareFundsByPeriodSuccess","fetchCompareFundsByPeriodFailure","fetchGraphCompareFundsStart","fetchGraphCompareFundsSuccess","fetchGraphCompareFundsFailure","fetchNavCompareFundsStart","fetchNavCompareFundsSuccess","fetchNavCompareFundsFailure","toggleCompareModal","clearCompareFund","initialState","isOpenSideBar","routes","isPaging","pages","isMobileScreenSize","errorModal","mainReducer","action","clearSearch","Object","keys","object","check","cleanSearch","resetSearchResults","searchList","resetSearchText","searchText","filterSearchResults","clearSearchResults","updateSearchText","mainNavs","fundInformation","copyPort","copyPortInformation","modelPort","modelPortInformation","article","articleInformation","subNavs","calendarSearch","searchReducer","isOpenModal","isOpenErrorMessageModal","isOpenVerify2FactorModal","isLoading2FA","accountList","mkt","isMobileCompletedLogin","accountInfo","twoFactorId","twoFactorAuthenticationMethod","twoFactorToken","logInType","authenticationReducer","_action$payload","_action$payload2","_action$payload3","usersReducer","loading","users","deleting","userCopy","deleteError","alertReducer","historiesChangePage","history","newPage","dividendsData","dividend","dividends","dividendsError","filterMonthlyReturn","dataList","monthList","years","dataMonth","year","total","yearlyReturn","transformOrderData","orders","cloneOrders","slice","order","test","tradeType","toFund","fromFund","duplicateNumber","newDate","userAccounts","investSearch","activedFunds","allFunds","allFundCodes","lot","tableHeaders","header","sortKey","groupTypeList","fundType","groupType","navs","fundList","columnList","table","remarkList","statusList","sub","toJSON","totalPage","dca","tradeTypeList","book","portfolio","portfolios","navPortfolios","portfolioStatistic","previousReturn","historyGraph","graphModeList","previousReturnGraph","monthlyReturn","profit","volatility","maxDrawdown","drawdown","sortFilters","lastDate","investmentReducer","_action$payload4","_transformOrderData","_action$payload5","_action$payload6","_action$payload7","_action$payload8","_action$payload9","_action$payload10","updateAttribute","attribute","DELETE_ORDER_dca_REQUEST_FAILURE","group","nanoid","favoriteCopyport","currentColumns","defaultColumns","tableColumns","favoriteFunds","navFunds","returnDateType","navDateType","favoriteReducer","_action$payload$map","rank","fundRankInfo","fundRankSearchResponse","favCategories","navResponse","navDate","searchFilters","sortingFilter","highlightFunds","periodList","fundRankingReducer","_state$defaultQueries","_action$payload$total","_action$payload$curre","_action$payload$items","defaultQueries","SET_RANKING_TOTAL_PAGE","filterSearchNavResult","resetSearchNavResult","setDefaultQueriesAdvanceSearch","indexFund","filters","currentHeaders","defaultHeaders","searchResponse","searchNavResults","topHoldingType","includeTopHoldngs","excludeTopHoldngs","returnPercentage","advanceSearchReducer","cnsCategoryList","viewList","cnsCategories","viewType","responses","hotfundReducer","tempCompareFunds","isOpenCompareModal","searchIndex","statusReturn","statusDrawdown","statusProportion","graph","fundByPeriod","compareReducer","_fund$isShowGraph","isShowGraph","isAddedFundId","compareFund","portfolioInfo","recentTab","informationWidget","tabList","graphMode","selectedBtn","navGraph","tradingInformation","averageRating","calendar","fundPortInfo","portInformation","portChartByChartType","statistic","monthlyPofit","weeklyRanking","drawdownListByDate","drawdownNavGraph","drawdownSortingFilters","graphInfo","historicalNavGraph","fundHistoricalNav","historicalNav","dividendGroupByYear","dividendByDateType","descriptions","informationReducer","activeTab","subActiveTab","navigationFund","checkedFundAbleToOrder","orderRequestForm","fundInfo","fundInfo2","confirmOrderFund","responseMessage","searchFundInfo","showResponseMessage","latestPlan","latestSettleDate","orderRequestReducer","resetSubActiveTab","ipos","ipoResults","detailModal","currentDetailModal","ipoReducer","filterIpoResults","resetIpoResults","sharedQueries","monthlyReportTable","monthlyReportChart","chartViewList","chartView","cnsCategory","monthlyReportReducer","SET_MONTHLY_REPORT_CHART_QUERIES","mainItem","subCategories","subItem","CLEAR_MONTHLY_REPORT_CHART_RESPONSES","calendarByYear","calendarByDate","calendarYear","getFullYear","userFund","userDate","calendarReducer","transferReducer","transferConstants","TOGGLED_TRANSFER_MODAL","filterDataResults","resetDataResults","filterIsOpenModal","updateFundIds","banner","highlightFund","navFund","topSubCategory","openSectionModal","homeReducer","generalReducer","sessionConfig","authPersistConfig","storage","storageSession","persistReducer","persistConfig","localforage","reducers","search","alert","investment","favorite","advanceSearch","hotfund","compare","orderRequest","ipo","monthlyReport","transfer","home","fundRanking","rootReducer","combineReducers","searchStartAsync","_ref","call","searchInformation","put","searchSuccess","searchFailure","subNavSearchStartAsync","_ref2","subNavSearchSuccess","subNavSearchFailure","searchFundCalendarStartAsync","_ref3","queryString","keyword","searchFundCalendarSuccess","searchFundCalendarFailure","searchStart","takeLatest","subNavSearchStart","searchFundCalendarStart","searchSagas","all","signIn","axios_cns_auth","send2FA","applicationId","Authorization","verify2FA","verifyCredential","verify2FACode","verify2FAAuthenticator","signInCredential","signInDSA","DSACode","signInSSO","SSOCode","fetchAccountList","fetchAccountInfo","fetchAccountName","refreshWithCookies","cookies","signOutWithCookies","twoFactorAuthenticationMethodConstants","tranformErrorResponses","_error$response","errorResponse","_error$response$data$","_error$response2","_error$response2$data","_error$response2$data2","_error$response3","_error$response3$data","_error$response4","_error$response4$data","_error$response4$data2","title","buttons","_error$response5","_error$response5$data","_error$response6","statusText","errorMessageResponse","_error$response7","_error$response7$data","_error$response8","signOutAsync","err","refreshTokenAsync","newAccessToken","updateErrorModal","signInAsync","password","credentials","ipAddress","deviceId","deviceName","navigator","userAgent","isTwoFactorAuthenticated","_accountListResult$da","_accountListResult$da2","_accountListResult$da3","accountListResult","newRefreshToken","_accountListResult$da4","_send2FAResult$data$r","application","send2FAResult","twoFactorInfo","verify2FAAsync","_accountListResult$da5","_accountListResult$da6","_accountListResult$da7","_Object$keys","_accountListResult$da8","verifyCode","_accountListResult$da9","updateSignInStatusForMobileAsync","decodedJwt","jwt_decode","isExpiredToken","exp","getTime","_accountListResult$da10","_accountListResult$da11","_accountListResult$da12","_accountListResult$da13","_accountListResult$da14","signInCredentialAsync","_accountListResult$da15","_accountListResult$da16","_accountListResult$da17","_accountListResult$da18","signInDSAAsync","_ref4","_accountListResult$da19","_accountListResult$da20","_accountListResult$da21","signInSSOAsync","_ref5","_accountListResult$da22","_accountListResult$da23","_accountListResult$da24","_accountListResult$da25","getAccountListAsync","_ref6","_result$data","_result$data2","getAccountInfoAsync","_ref7","getAccountNameAsync","_ref8","signOutStart","refreshTokenStart","getAccountListSaga","getAccountInfoSaga","getAccountNameSaga","authenticationSagas","fetchFavoriteFundsByAccount","addFavoriteFundAsync","deleteFavoriteFundAsync","_result$code","putFavoriteFundsAsync","fetchFavoriteFundsByAccountAsync","fetchNavFavoriteFundsByAccountAsync","addFavoriteFundStart","deleteFavoriteFundStart","putFavoriteFundsStart","favoriteSagas","fetchHotfundAsync","resultAll","fetchHotfundAll","fetchHotfundSuccess","resultTopBottom","fetchHotfundByTopBottom","fetchHotfundFailure","fetchHotfundStart","hotfundSagas","fetchCompareFunds","fetchCompareFundsByPeriod","fetchGraphCompareFunds","fetchCompareFundsAsync","fetchCompareFundsByPeriodAsync","fetchGraphCompareFundsAsync","fetchNavCompareFundsAsync","compareSagas","fetchActivedFundsAsync","fetchAllFundsAsync","fetchAllFundCodesAsync","fetchHistoriesAsync","deleteDCAOrderRequestStartAsync","_dcaOrderQueries$stat","_dcaOrderQueries$type","_dcaOrderQueries$fund","dcaOrderQueries","isActive","fetchDCAsAsync","fetchPortfoliosAsync","fetchNavPortfoliosAsync","fetchPreviousReturnByAccountAsync","fetchHistoryGraphByAccountAsync","_ref9","aum","secondValue","obj2","leftGraphPoint","rightGraphPoint","fetchPreviousReturnGraphByAccountAsync","_ref10","fetchProfitByAccountAsync","_ref11","fetchMonthlyReturnByAccountAsync","_ref12","fetchMaxDrawdownByAccountAsync","_ref13","fetchDrawdownByAccountAsync","_ref14","setDefaultPortStatAsync","_state$investment$use","fetchVolatilityByAccountAsync","_ref15","fetchLotsAsync","_ref16","fetchNavsLotsAsync","_ref17","fetchBooksAsync","_investment$userAccou","fetchDividendsAsync","_ref18","fetchOrdersAsync","_ref19","deleteOrderRequestStartAsync","_ref20","_orderQueries$status","_orderQueries$tradeTy","_orderQueries$remark","orderQueries","fetchDCAsSagaStart","setDefaultPortStatStart","fetchNavsLotsStart","fetchOrdersSagaStart","investmentSagas","fetchFundInfoAsync","fetchPortfolioInformationAsync","fetchTradingInformationAsync","fetchHistoricalNavAsync","fetchFundAverageRatingAsync","voteFundAverageRatingAsync","fetchPortByFundIdAsync","fetchPortChartByChartTypeAsync","convertData","fetchCalendarFundStartAsync","fetchCalendarByDate","fetchHistoricalNavGraphAsync","fetchWeeklyFundRankingAsync","fetchDrawdownByDateAsync","fetchMaximumDrawdownAsync","fetchDrawdownNavGraphAsync","fetchMonthlyReturnAsync","fetchVolatilitiesAsync","fetchPriceRangeAsync","fetchReturnExpenseRatioAsync","fetchMonthlyProfitAsync","fetchReturnHistoryAsync","fetchDividendAsync","_ref21","fetchDividendGroupByYearAsync","_ref22","fetchDividendDescriptionAsync","_ref23","fetchFundAverageRatingStartSaga","voteFundAverageRatingStart","fetchPortByFundIdStart","fetchPortChartByChartTypeStart","informationSagas","fetchBuyFundInfoAsync","riskLevel","categoryName","fetchCheckedBuyableFundAsync","fetchCheckedSellableFundAsync","fetchCheckedSwitchableFundAsync","fetchConfirmOrderFundAsync","urlAPI","fetchSellFundInfoAsync","_payload$fund","mapData","fetchSwitchFundInfoAsync","_payload$toFund","_payload$toFund2","_payload$toFund3","_payload$toFund4","tempPayload","toFundId","toFundCode","fetchCheckedBuyableFundStart","fetchCheckedSellableFundStart","fetchCheckedSwitchableFundStart","fetchConfirmOrderFundStart","orderRequestSagas","fetchAdvanceSearchFiltersAsync","updateDefaultQueriesAdvanceSearch","fetchAdvanceSearchFiltersSuccess","fetchAdvanceSearchFiltersFailure","fetchAdvanceSearchAsync","fetchAdvanceSearchSuccess","fetchAdvanceSearchFailure","fetchNavAdvanceSearchAsync","fetchNavAdvanceSearchSuccess","fetchNavAdvanceSearchFailure","fetchAdvanceSearchFiltersToSaga","fetchAdvanceSearchToSaga","fetchNavAdvanceSearchToSaga","advanceSearchSagas","fetchIpos","ipoType","fetchIpoStartAsync","fetchIposSuccess","fetchIposFailure","fetchIpoStart","ipoSagas","fetchRank","fetchFundRank","fetchCategories","fetchUserCategories","fetchBanners","fetchHighlightFunds","fetchTopSubCategories","fetchArticles","fetchRankingSearchFiltersAsync","fetchFundRankAsync","fetchNavRankingsAsync","fetchRankStartAsync","fetchRankingsStartAsync","fetchCategoriesStartAsync","first","second","fetchUserCategoriesStartAsync","fetchUserCategoriesStartSaga","saveUserCategoriesStartAsync","fetchHighlightFundStartAsync","fundRankingSagas","fetchMonthlyReport","toString","fetchMonthlyReportChart","fetchMonthlyReportChartForPortFolios","fetchMonthlyReportTableStartAsync","tableQueries","acc","fetchMonthlyReportSuccess","fetchMonthlyReportFailure","fetchMonthlyReportChartStartAsync","Error","fetchMonthlyReportChartSuccess","fetchMonthlyReportChartFailure","clearMonthlyReportQueriesStart","clearMonthluReportTableQueries","clearMonthluReportChartQueries","clearMonthluReportSharedQueries","fetchMonthlyReportTableStart","fetchMonthlyReportChartStart","clearQueriesStart","monthlyReportSagas","fetchCalendarByYearStartAsync","fetchCalendarByYear","fetchCalendarByYearSuccess","fetchCalendarByYearFailure","fetchCalendarByYearStart","fetchCalendarByDateStartAsync","fetchCalendarByDateSuccess","fetchCalendarByDateFailure","fetchCalendarByDateStart","calendarSagas","fetchBannersStartAsync","fetchHighlightFundsStartAsync","fetchNavFundsAsync","fetchTopSubCategoriesStartAsync","fetchArticlesStartAsync","fetchNavFundsStart","HomeSagas","getColorListAsync","fetchColors","getColorListFailure","getColorListStart","generalSagas","getMiddlewares","thunk","sagaMiddleware","createSagaMiddleware","middlewares","enhancers","createStore","compose","applyMiddleware","run","persistor","persistStore","Spinner","React","createElement","className","src","Loading","width","height","setMonthlyReportTableQueries","setMonthlyReportSharedQueries","clearMonthluReportResponses","clearMonthluReportQueries","updateAdvanceSearchQueries","resetQueriesAdvanceSearch","fetchAdvanceSearchFiltersStart","fetchAdvanceSearchStart","fetchNavAdvanceSearchStart","updateCurrentPageSearch","updateTableColumn","updateSearch","removeSearch","clearSubNavSearch","updateSubNavSearch","removeSubNavSearch","clearSearchFundCalendar","updateSearchFundCalendar","removeSearchFundCalendar","authHeader","parse","localStorage","getItem","toggleScreenSize","toggleSideBar","toggleActivePage","insertRoutes","enablePaging","disablePaging","insertPages","clearErrorModal","fetchCalendarThaiHolidays","REACT_APP_STAGE","updateCalendarYear","updateUserFundCalendar","updateUserCalendarDate","selectAuthentication","selectLogInType","createSelector","userCredential","selectSignInStatus","selectIsOpenErrorMessageModal","selectErrorMessage","selectIsOpenSignInModal","selectIsLoading2FA","selectIsOpenVerify2FactorModal","select2FAToken","select2FAReferenceCode","select2FATwoFactorId","select2FATwoFactorAuthenticationMethod","selectUserInformation","selectUserType","userInformation","selectAccountMKT","selectAccountList","selectGetAccountListSuccess","selectIsMobileCompletedLogin","selectAccountInfo","selectAccountName","selectIsFetchingAuthentication","sortItems","sellEndedAt","initialPurchase","forecastingReturn","isInRangeDate","checkedDate","config","handleResponse","userService","generalService","getMenus","requestOptions","method","fetch","webUrl","then","logout","removeItem","text","ok","reload","login","register","apiUrl","getAll","getById","update","delete","updateHotfundQueries","updateHotfundTableColumns","fetchIposStart","toggleDetailModal","setCurrentDetailModal","updateIPOQueries","_data$fundTypes","_data$fundTypes2","fetchGraphCompareCategories","categoryCodes","toggleActiveClass","event","currentTarget","classList","toggle","module","exports","mapStateToProps","createStructuredSelector","signInStatus","signInErrorMessage","connect","props","useHistory","useEffect","Fragment","checkColorType","strColor","Option","style","PortfolioIcon","fill","xmlns","viewBox","d","transform","OrderStatusIcon","HistoricalTradeIcon","styel","InvestmentIcon","InvestmentStatisticIcon","SentOrderIcon","WatchListIcon","FundRankingIcon","InvestorRankingIcon","HotFundIcon","FavoriteIcon","stroke","data-original","StarIcon","data-name","FundCompareIcon","IPOFundIcon","xlink","clipPath","FeedIcon","PortIcon","rx","ServiceIcon","MiscellaneousIcon","SignInIcon","SignOutIcon","UserIcon","strokeMiterlimit","strokeWidth","CaretIcon","direction","display","BarIcon","FilterIcon","BuyIcon","CalendarIcon","cx","cy","r","DCAIcon","DividendIcon","CancelIcon","UpIcon","DownIcon","DownloadIcon","ExcelIcon","InformationIcon","ListIcon","ry","MenuIcon","PdfIcon","RemarkIcon","SearchAdvanceIcon","SearchIcon","class","SellIcon","TransferIcon","SwitchIcon","HomeIcon","FAQIcon","HeartIcon","BookIcon","SecurityIcon","GlobeIcon","IndustryIcon","BookmarkIcon","CompareIcon","HistoryIcon","ChartIcon","MultipleChartIcon","ArrowIcon","LongArrowIcon","WarningIcon","CheckedIcon","strokeLinecap","strokeLinejoin","EditIcon","DocumentIcon","MonthlyReportIcon","DocumentFormIcon","formType","DeleteIcon","DragIcon","LockIcon","stroke-width","RefreshIcon","fill-rule","secondsOfDay","str","initTime","seconds","handlePreventDefault","blur","getFundList","filterFunds","filterFundBy","groupFilterFunds","filterNames","targetValue","filterBy","_item$key","findNode","tree","childrenKey","node","desiredNode","flatNode","subItems","rest","flatMap","menus","component","onSidebar","showTitle","subMenus","isLoggedIn","searchAble","Main","lazy","TagManager","initialize","gtmId","BrowserRouter","basename","Switch","Suspense","fallback","Route","exact","render","AdLogin","DSALogin","SSOLogin","Redirect","from","to","rootElement","getElementById","ReactDOM","Provider","PersistGate","App"],"mappings":"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","file":"static/js/main.6531a19c.chunk.js","sourcesContent":["export const alertConstants = {\n SUCCESS: 'ALERT_SUCCESS',\n ERROR: 'ALERT_ERROR',\n CLEAR: 'ALERT_CLEAR'\n};","export const userConstants = {\n\tREGISTER_REQUEST: 'USERS_REGISTER_REQUEST',\n\tREGISTER_SUCCESS: 'USERS_REGISTER_SUCCESS',\n\tREGISTER_FAILURE: 'USERS_REGISTER_FAILURE',\n\n\tLOGIN_REQUEST: 'USERS_LOGIN_REQUEST',\n\tLOGIN_SUCCESS: 'USERS_LOGIN_SUCCESS',\n\tLOGIN_FAILURE: 'USERS_LOGIN_FAILURE',\n\n\tGETALL_REQUEST: 'USERS_GETALL_REQUEST',\n\tGETALL_SUCCESS: 'USERS_GETALL_SUCCESS',\n\tGETALL_FAILURE: 'USERS_GETALL_FAILURE',\n\n\tDELETE_REQUEST: 'USERS_DELETE_REQUEST',\n\tDELETE_SUCCESS: 'USERS_DELETE_SUCCESS',\n\tDELETE_FAILURE: 'USERS_DELETE_FAILURE'\n};\n\nexport const accountTypeConstants = {\n\tO: 'Omnibus',\n\tS: 'Selling agent',\n}\n\nexport const logInTypeConstants = {\n\tgeneral: 'general',\n\tAD: 'AD',\n}\n","export const generalConstants = {\n DEFAULT_ROUTE: '/home/investment/portfolio',\n DEFAULT_PAGE:[\n {\n path: \"/investment/portfolio\",\n name: \"การลงทุนของฉัน\",\n icon: \"InvestmentIcon\",\n layout: \"/home\",\n section: \"sidebar\"\n }\n ],\n\n GET_COLOR_LIST_START: 'GET_COLOR_LIST_START',\n GET_COLOR_LIST_SUCCESS: 'GET_COLOR_LIST_SUCCESS',\n GET_COLOR_LIST_FAILURE: 'GET_COLOR_LIST_FAILURE',\n \n CLEAR_COLOR_LIST: 'CLEAR_COLOR_LIST'\n}","export const mainConstants = {\n TOGGLE_SCREEN_SIZE: 'TOGGLE_SCREEN_SIZE',\n \n TOGGLE_SIDE_BAR: 'TOGGLE_SIDE_BAR',\n TOGGLE_ACTIVE_PAGE: 'TOGGLE_ACTIVE_PAGE',\n INSERT_ROUTES: 'INSERT_ROUTES',\n FETCH_ROUTES_START: 'FETCH_ROUTES_START',\n FETCH_ROUTES_SUCCESS: 'FETCH_ROUTES_SUCCESS',\n FETCH_ROUTES_FAILURE: 'FETCH_ROUTES_FAILURE',\n ENABLE_PAGING: 'ENABLE_PAGING',\n DISABLE_PAGING: 'DISABLE_PAGING',\n INSERT_PAGES: 'INSERT_PAGES',\n UPDATE_ERROR_MODAL: 'UPDATE_ERROR_MODAL',\n CLEAR_ERROR_MODAL: 'CLEAR_ERROR_MODAL'\n};\n","export const favoriteConstants = {\n UPDATE_FAVORITE_FUNDS_QUERIES: 'UPDATE_FAVORITE_FUNDS_QUERIES',\n UPDATE_FAVORITE_FUNDS_TABLE_COLUMNS: 'UPDATE_FAVORITE_FUNDS_TABLE_COLUMNS',\n\n // Favorite Funds\n UPDATE_LOCAL_FAVORITE_FUNDS: 'UPDATE_LOCAL_FAVORITE_FUNDS',\n ADD_FAVORITE_FUND: 'ADD_FAVORITE_FUND',\n DELETE_FAVORITE_FUND: 'DELETE_FAVORITE_FUND',\n PUT_FAVORITE_FUNDS: 'PUT_FAVORITE_FUNDS',\n\n FETCH_FAVORITE_FUNDS_BY_ACCOUNT_START: 'FETCH_FAVORITE_FUNDS_BY_ACCOUNT_START',\n FETCH_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS: 'FETCH_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS',\n FETCH_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE: 'FETCH_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE',\n\n FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_START: 'FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_START',\n FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS: 'FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS',\n FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE: 'FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE',\n \n // Favorite Copyports\n FETCH_FAVORITE_COPYPORT_START: 'FETCH_FAVORITE_COPYPORT_START',\n FETCH_FAVORITE_COPYPORT_SUCCESS: 'FETCH_FAVORITE_COPYPORT_SUCCESS',\n FETCH_FAVORITE_COPYPORT_FAILURE: 'FETCH_FAVORITE_COPYPORT_FAILURE' \n};\n","export const ACCOUNT_TYPES = {\n TYPE_P: 'P',\n TYPE_A: 'A',\n}","export const LANGUAGE = {\n TH: \"th\",\n EN: \"en\",\n};\n","export const informationConstants = {\n\tFETCH_FUND_INFO_START: 'FETCH_FUND_INFO_START',\n\tFETCH_FUND_INFO_SUCCESS: 'FETCH_FUND_INFO_SUCCESS',\n\tFETCH_FUND_INFO_FAILURE: 'FETCH_FUND_INFO_FAILURE',\n\n\tCLEAR_FUND_INFO: 'CLEAR_FUND_INFO',\n\n\tFETCH_PORTFOLIO_INFO_START: 'FETCH_PORTFOLIO_INFO_START',\n\tFETCH_PORTFOLIO_INFO_SUCCESS: 'FETCH_PORTFOLIO_INFO_SUCCESS',\n\tFETCH_PORTFOLIO_INFO_FAILURE: 'FETCH_PORTFOLIO_INFO_FAILURE',\n\n\tUPDATE_FUND_ID: 'UPDATE_FUND_ID',\n\tUPDATE_RECENT_TAB: 'UPDATE_RECENT_TAB',\n\n\tFETCH_TRADING_INFO_START: 'FETCH_TRADING_INFO_START',\n\tFETCH_TRADING_INFO_SUCCESS: 'FETCH_TRADING_INFO_SUCCESS',\n\tFETCH_TRADING_INFO_FAILURE: 'FETCH_TRADING_INFO_FAILURE',\n\n\tFETCH_FUND_AVERAGE_RATING_START: 'FETCH_FUND_AVERAGE_RATING_START',\n\tFETCH_FUND_AVERAGE_RATING_SUCCESS: 'FETCH_FUND_AVERAGE_RATING_SUCCESS',\n\tFETCH_FUND_AVERAGE_RATING_FAILURE: 'FETCH_FUND_AVERAGE_RATING_FAILURE',\n\n\tVOTE_FUND_AVERAGE_RATING: 'VOTE_FUND_AVERAGE_RATING',\n\n\tFETCH_CALENDAR_FUND_START: 'FETCH_CALENDAR_FUND_START',\n\tFETCH_CALENDAR_FUND_SUCCESS: 'FETCH_CALENDAR_FUND_SUCCESS',\n\tFETCH_CALENDAR_FUND_FAILURE: 'FETCH_CALENDAR_FUND_FAILURE',\n\n\t// Port Info\n\tFETCH_FUND_PORT_INFO_START: 'FETCH_FUND_PORT_INFO_START',\n\tFETCH_FUND_PORT_INFO_SUCCESS: 'FETCH_FUND_PORT_INFO_SUCCESS',\n\tFETCH_FUND_PORT_INFO_FAILURE: 'FETCH_FUND_PORT_INFO_FAILURE',\n\n\tFETCH_FUND_PORT_CHART_BY_CHART_TYPE_START: 'FETCH_FUND_PORT_CHART_BY_CHART_TYPE_START',\n\tFETCH_FUND_PORT_CHART_BY_CHART_TYPE_SUCCESS: 'FETCH_FUND_PORT_CHART_BY_CHART_TYPE_SUCCESS',\n\tFETCH_FUND_PORT_CHART_BY_CHART_TYPE_FAILURE: 'FETCH_FUND_PORT_CHART_BY_CHART_TYPE_FAILURE',\n\n\t// STATISTIC\n\tFETCH_WEEKLY_FUND_RANKING_START: 'FETCH_WEEKLY_FUND_RANKING_START',\n\tFETCH_WEEKLY_FUND_RANKING_SUCCESS: 'FETCH_WEEKLY_FUND_RANKING_SUCCESS',\n\tFETCH_WEEKLY_FUND_RANKING_FAILURE: 'FETCH_WEEKLY_FUND_RANKING_FAILURE',\n\n\n\tFETCH_DRAWDOWN_BY_DATE_START: 'FETCH_DRAWDOWN_BY_DATE_START',\n\tFETCH_DRAWDOWN_BY_DATE_SUCCESS: 'FETCH_DRAWDOWN_BY_DATE_SUCCESS',\n\tFETCH_DRAWDOWN_BY_DATE_FAILURE: 'FETCH_DRAWDOWN_BY_DATE_FAILURE',\n\n\tFETCH_MAXIMUM_DRAWDOWN_START: 'FETCH_MAXIMUM_DRAWDOWN_START',\n\tFETCH_MAXIMUM_DRAWDOWN_SUCCESS: 'FETCH_MAXIMUM_DRAWDOWN_SUCCESS',\n\tFETCH_MAXIMUM_DRAWDOWN_FAILURE: 'FETCH_MAXIMUM_DRAWDOWN_FAILURE',\n\n\tFETCH_DRAWDOWN_NAV_GRAPH_START: 'FETCH_DRAWDOWN_NAV_GRAPH_START',\n\tFETCH_DRAWDOWN_NAV_GRAPH_SUCCESS: 'FETCH_DRAWDOWN_NAV_GRAPH_SUCCESS',\n\tFETCH_DRAWDOWN_NAV_GRAPH_FAILURE: 'FETCH_DRAWDOWN_NAV_GRAPH_FAILURE',\n\n\tCHANGE_DRAWDOWN_STATISTIC_FILTERS: 'CHANGE_DRAWDOWN_STATISTIC_FILTERS',\n\tCHANGE_NAV_GRAPH_DATE: 'CHANGE_NAV_GRAPH_DATE',\n\tCHANGE_SORTED_DRAWDOWN: 'CHANGE_SORTED_DRAWDOWN',\n\n\tFETCH_MONTHLY_RETURN_START: 'FETCH_MONTHLY_RETURN_START',\n\tFETCH_MONTHLY_RETURN_SUCCESS: 'FETCH_MONTHLY_RETURN_SUCCESS',\n\tFETCH_MONTHLY_RETURN_FAILURE: 'FETCH_MONTHLY_RETURN_FAILURE',\n\n\tFETCH_PRICE_RANGE_START: 'FETCH_PRICE_RANGE_START',\n\tFETCH_PRICE_RANGE_SUCCESS: 'FETCH_PRICE_RANGE_SUCCESS',\n\tFETCH_PRICE_RANGE_FAILURE: 'FETCH_PRICE_RANGE_FAILURE',\n\n\tFETCH_VOLATILITIES_START: 'FETCH_VOLATILITIES_START',\n\tFETCH_VOLATILITIES_SUCCESS: 'FETCH_VOLATILITIES_SUCCESS',\n\tFETCH_VOLATILITIES_FAILURE: 'FETCH_VOLATILITIES_FAILURE',\n\n\tFETCH_RETURN_EXPENSE_RATIO_START: 'FETCH_RETURN_EXPENSE_RATIO_START',\n\tFETCH_RETURN_EXPENSE_RATIO_SUCCESS: 'FETCH_RETURN_EXPENSE_RATIO_SUCCESS',\n\tFETCH_RETURN_EXPENSE_RATIO_FAILURE: 'FETCH_RETURN_EXPENSE_RATIO_FAILURE',\n\n\tFETCH_MONTHLY_PROFIT_START: 'FETCH_MONTHLY_PROFIT_START',\n\tFETCH_MONTHLY_PROFIT_SUCCESS: 'FETCH_MONTHLY_PROFIT_SUCCESS',\n\tFETCH_MONTHLY_PROFIT_FAILURE: 'FETCH_MONTHLY_PROFIT_FAILURE',\n\n\tFETCH_RETURN_HISTORY_START: 'FETCH_RETURN_HISTORY_START',\n\tFETCH_RETURN_HISTORY_SUCCESS: 'FETCH_RETURN_HISTORY_SUCCESS',\n\tFETCH_RETURN_HISTORY_FAILURE: 'FETCH_RETURN_HISTORY_FAILURE',\n\n\t// HISTORICAL\n\tFETCH_RETURN_HISTORY_START: 'FETCH_RETURN_HISTORY_START',\n\tFETCH_RETURN_HISTORY_SUCCESS: 'FETCH_RETURN_HISTORY_SUCCESS',\n\tFETCH_RETURN_HISTORY_FAILURE: 'FETCH_RETURN_HISTORY_FAILURE',\n\n\tFETCH_RANKING_HISTORY_START: 'FETCH_RANKING_HISTORY_START',\n\tFETCH_RANKING_HISTORY_SUCCESS: 'FETCH_RANKING_HISTORY_SUCCESS',\n\tFETCH_RANKING_HISTORY_FAILURE: 'FETCH_RANKING_HISTORY_FAILURE',\n\n\tFETCH_PRICE_RANGE_START: 'FETCH_PRICE_RANGE_START',\n\tFETCH_PRICE_RANGE_SUCCESS: 'FETCH_PRICE_RANGE_SUCCESS',\n\tFETCH_PRICE_RANGE_FAILURE: 'FETCH_PRICE_RANGE_FAILURE',\n\n\tFETCH_RETURN_MONTHLY_START: 'FETCH_RETURN_MONTHLY_START',\n\tFETCH_RETURN_MONTHLY_SUCCESS: 'FETCH_RETURN_MONTHLY_SUCCESS',\n\tFETCH_RETURN_MONTHLY_FAILURE: 'FETCH_RETURN_MONTHLY_FAILURE',\n\n\tFETCH_HISTORICAL_NAV_START: 'FETCH_HISTORICAL_NAV_START',\n\tFETCH_HISTORICAL_NAV_SUCCESS: 'FETCH_HISTORICAL_NAV_SUCCESS',\n\tFETCH_HISTORICAL_NAV_FAILURE: 'FETCH_HISTORICAL_NAV_FAILURE',\n\tFETCH_HISTORICAL_NAV_CHANGE_PAGE: 'FETCH_HISTORICAL_NAV_CHANGE_PAGE',\n\n\tFETCH_HISTORICAL_NAV_GRAPH_START: 'FETCH_HISTORICAL_NAV_GRAPH_START',\n\tFETCH_HISTORICAL_NAV_GRAPH_SUCCESS: 'FETCH_HISTORICAL_NAV_GRAPH_SUCCESS',\n\tFETCH_HISTORICAL_NAV_GRAPH_FAILURE: 'FETCH_HISTORICAL_NAV_GRAPH_FAILURE',\n\n\t// Dividend\n\tFETCH_DIVIDEND_START: 'FETCH_DIVIDEND_START',\n\tFETCH_DIVIDEND_SUCCESS: 'FETCH_DIVIDEND_SUCCESS',\n\tFETCH_DIVIDEND_FAILURE: 'FETCH_DIVIDEND_FAILURE',\n\tFETCH_DIVIDEND_CHANGE_PAGE: 'FETCH_DIVIDEND_CHANGE_PAGE',\n\n\tFETCH_DIVIDEND_GROUP_BY_YEAR_START: 'FETCH_DIVIDEND_GROUP_BY_YEAR_START',\n\tFETCH_DIVIDEND_GROUP_BY_YEAR_SUCCESS: 'FETCH_DIVIDEND_GROUP_BY_YEAR_SUCCESS',\n\tFETCH_DIVIDEND_GROUP_BY_YEAR_FAILURE: 'FETCH_DIVIDEND_GROUP_BY_YEAR_FAILURE',\n\n\tFETCH_DIVIDEND_DESCRIPTION_START: 'FETCH_DIVIDEND_DESCRIPTION_START',\n\tFETCH_DIVIDEND_DESCRIPTION_SUCCESS: 'FETCH_DIVIDEND_DESCRIPTION_SUCCESS',\n\tFETCH_DIVIDEND_DESCRIPTION_FAILURE: 'FETCH_DIVIDEND_DESCRIPTION_FAILURE',\n\n\tFETCH_CHANGE_ACTIVE_BTN: 'FETCH_CHANGE_ACTIVE_BTN',\n\t// INSERT_SCROLL_POSITION: 'INSERT_SCROLL_POSITION'\n};\n","import axios from 'axios';\nimport '../_configs';\nimport { store } from '../redux/store';\nimport { getCookie } from '../_utils/cookie.utils';\nimport { refreshToken } from '../_actions/authentication.actions';\n\nconst config = global.gConfig;\n// let mainUrl = `${config.webUrl}/ifund2/`;\nlet mainUrl = process.env.REACT_APP_IFUND2_URL;\nlet apiKey = config.apiKey;\n\nconst instance = axios.create({\n\tbaseURL: mainUrl,\n\theaders: { Accept: 'application/json' },\n});\n\n// For Add Instance Options In the Future\n// axios.defaults.headers.common['Authorization'] = 'AUTH TOKEN';\ninstance.defaults.headers.post['Content-Type'] = 'application/json';\n// instance.defaults.headers.delete['Content-Type'] = 'application/json';\n// axios.defaults.headers.common['api key'] = 'x-api-key';\ninstance.defaults.headers['x-api-key'] = apiKey;\n// instance.defaults.headers.post['x-api-key'] = apiKey;\n\n// Interceptors Request\ninstance.interceptors.request.use(\n\t(request) => {\n\t\t// Edit request config\n\t\t// const user = localStorage.getItem('user');\n\t\tconst state = store.getState();\n\t\tconst token = getCookie('accessToken');\n\t\tconst user = state.authentication.user;\n\n\t\tif (!request.headers.hasOwnProperty('Authorization')) {\n\t\t\tif (token) {\n\t\t\t\trequest.headers['Authorization'] = 'Bearer ' + token;\n\t\t\t} else if (user?.accessToken) {\n\t\t\t\trequest.headers['Authorization'] = 'Bearer ' + user.accessToken;\n\t\t\t} else if (user?.userType === 'DSA') {\n\t\t\t\trequest.headers['Authorization'] = 'Basic ' + user.username;\n\t\t\t} \n\t\t\telse if (user?.userType === 'SSO' && !request.url.includes('login/sso')) {\n\t\t\t\trequest.headers['Authorization'] = 'SSO ' + user.username;\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.log(request)\n\t\t}\n\t\treturn request;\n\t},\n\t(error) => {\n\t\tconsole.log(error);\n\t\treturn Promise.reject(error);\n\t}\n);\n\n// Interceptors Response\ninstance.interceptors.response.use(\n\t(response) => {\n\t\t// Edit response config\n\t\treturn response.data;\n\t},\n\t(error) => {\n\t\tconst isMobileApp = getCookie('isMobileApp') === 'true';\n\t\tconst { authentication: { isSignIn } } = store.getState();\n\t\tconst { status } = error.response\n\t\tif(!isSignIn) {\n\t\t\treturn Promise.reject(error);\n\t\t}\n\t\tif (status === 401) {\n\t\t\tif(isMobileApp) {\n\t\t\t\treturn window.location.href = '/main/refresh_token'\n\t\t\t}\n\t\t\tconst { dispatch } = store;\n\t\t\treturn dispatch(refreshToken())\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n);\n\nexport default instance;\n","export const fundRankingConstants = {\n SET_CURRENT_FUND_RANKING_PAGE: 'SET_CURRENT_FUND_RANKING_PAGE',\n SET_TOTAL_RANKING_PAGE: 'SET_TOTAL_RANKING_PAGE',\n\n UPDATE_FUND_RANKING_QUERIES: 'UPDATE_FUND_RANKING_QUERIES',\n RESET_FUND_RANKING_QUERIES: 'RESET_FUND_RANKING_QUERIES',\n\n UPDATE_FUND_RANKING_TABLE_COLUMNS: 'UPDATE_FUND_RANKING_TABLE_COLUMNS',\n\n SET_DEFAULT_FUND_RANKING_QUERIES: 'SET_DEFAULT_FUND_RANKING_QUERIES',\n\n FETCH_RANK_START: 'FETCH_RANK_START',\n FETCH_RANK_SUCCESS: 'FETCH_RANK_SUCCESS',\n FETCH_RANK_FAILURE: 'FETCH_RANK_FAILURE',\n\n SET_FUND_ID_RANK: 'SET_FUND_ID_RANK',\n FETCH_FUND_RANK_START: 'FETCH_FUND_RANK_START',\n FETCH_FUND_RANK_SUCCESS: 'FETCH_FUND_RANK_SUCCESS',\n FETCH_FUND_RANK_FAILURE: 'FETCH_FUND_RANK_FAILURE',\n\n FETCH_RANK_SEARCH_FILTERS_START: 'FETCH_RANK_SEARCH_FILTERS_START',\n FETCH_RANK_SEARCH_FILTERS_SUCCESS: 'FETCH_RANK_SEARCH_FILTERS_SUCCESS',\n FETCH_RANK_SEARCH_FILTERS_FAILURE: 'FETCH_RANK_SEARCH_FILTERS_FAILURE',\n\n FETCH_RANKINGS_START: 'FETCH_RANKINGS_START',\n FETCH_RANKINGS_SUCCESS: 'FETCH_RANKINGS_SUCCESS',\n FETCH_RANKINGS_FAILURE: 'FETCH_RANKINGS_FAILURE',\n\n SET_NAV_TYPE_RANKING : 'SET_NAV_TYPE_RANKING',\n UPDATE_NAV_DATE_FUND_RANKING: 'UPDATE_NAV_DATE_FUND_RANKING',\n FETCH_NAV_RANKINGS_START: 'FETCH_NAV_RANKINGS_START',\n FETCH_NAV_RANKINGS_SUCCESS: 'FETCH_NAV_RANKINGS_SUCCESS',\n FETCH_NAV_RANKINGS_FAILURE: 'FETCH_NAV_RANKINGS_FAILURE',\n\n SET_HIGHLIGHT_FUND_PERIOD: 'SET_HIGHLIGHT_FUND_PERIOD',\n FETCH_HIGHLIGHT_FUND_START: 'FETCH_HIGHLIGHT_FUND_START',\n FETCH_HIGHLIGHT_FUND_SUCCESS: 'FETCH_HIGHLIGHT_FUND_SUCCESS',\n FETCH_HIGHLIGHT_FUND_FAILURE: 'FETCH_HIGHLIGHT_FUND_FAILURE',\n\n FETCH_CATEGORIES_START: 'FETCH_CATEGORIES_START',\n FETCH_CATEGORIES_SUCCESS: 'FETCH_CATEGORIES_SUCCESS',\n FETCH_CATEGORIES_FAILURE: 'FETCH_CATEGORIES_FAILURE',\n\n UPDATE_CATEGORIES: 'UPDATE_CATEGORIES',\n APPEND_CATEGORY: 'APPEND_CATEGORY',\n REMOVE_CATEGORY: 'REMOVE_CATEGORY',\n\n FETCH_USER_CATEGORIES_START: 'FETCH_USER_CATEGORIES_START',\n FETCH_USER_CATEGORIES_SUCCESS: 'FETCH_USER_CATEGORIES_SUCCESS',\n FETCH_USER_CATEGORIES_FAILURE: 'FETCH_USER_CATEGORIES_FAILURE',\n UPDATE_USER_CATEGORIES: 'UPDATE_USER_CATEGORIES',\n RESET_USER_CATEGORIES: 'RESET_USER_CATEGORIES',\n\n SAVE_USER_CATEGORIES_START: 'SAVE_USER_CATEGORIES_START',\n SAVE_USER_CATEGORIES_SUCCESS: 'SAVE_USER_CATEGORIES_SUCCESS',\n SAVE_USER_CATEGORIES_FAILURE: 'SAVE_USER_CATEGORIES_FAILURE',\n};\n","export const investmentConstants = {\n // USER's ACCOUNTS\n UPDATE_USER_ACCOUNTS: \"UPDATE_USER_ACCOUNTS\",\n\n RESET_INVESTMENT: \"RESET_INVESTMENT\",\n\n // GENERAL\n FETCH_ACTIVED_FUNDS_START: \"FETCH_ACTIVED_FUNDS_START\",\n FETCH_ACTIVED_FUNDS_SUCCESS: \"FETCH_ACTIVED_FUNDS_SUCCESS\",\n FETCH_ACTIVED_FUNDS_FAILURE: \"FETCH_ACTIVED_FUNDS_FAILURE\",\n\n FETCH_ALL_FUNDS_START: \"FETCH_ALL_FUNDS_START\",\n FETCH_ALL_FUNDS_SUCCESS: \"FETCH_ALL_FUNDS_SUCCESS\",\n FETCH_ALL_FUNDS_FAILURE: \"FETCH_ALL_FUNDS_FAILURE\",\n\n FETCH_ALL_FUND_CODES_START: \"FETCH_ALL_FUND_CODES_START\",\n FETCH_ALL_FUND_CODES_SUCCESS: \"FETCH_ALL_FUND_CODES_SUCCESS\",\n FETCH_ALL_FUND_CODES_FAILURE: \"FETCH_ALL_FUND_CODES_FAILURE\",\n\n // PORTFOLIOS\n UPDATE_PORTFOLIOS_QUERIES: \"UPDATE_PORTFOLIOS_QUERIES\",\n FETCH_PORTFOLIOS_START: \"FETCH_PORTFOLIOS_START\",\n FETCH_PORTFOLIOS_SUCCESS: \"FETCH_PORTFOLIOS_SUCCESS\",\n FETCH_PORTFOLIOS_FAILURE: \"FETCH_PORTFOLIOS_FAILURE\",\n\n FETCH_NAV_PORTFOLIO_START: \"FETCH_NAV_PORTFOLIO_START\",\n FETCH_NAV_PORTFOLIO_SUCCESS: \"FETCH_NAV_PORTFOLIO_SUCCESS\",\n FETCH_NAV_PORTFOLIO_FAILURE: \"FETCH_NAV_PORTFOLIO_FAILURE\",\n\n // PORTFOLIO STATISTICS\n FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START:\n \"FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START\",\n FETCH_PREVIOUS_RETURN_BY_ACCOUNT_SUCCESS:\n \"FETCH_PREVIOUS_RETURN_BY_ACCOUNT_SUCCESS\",\n FETCH_PREVIOUS_RETURN_BY_ACCOUNT_FAILURE:\n \"FETCH_PREVIOUS_RETURN_BY_ACCOUNT_FAILURE\",\n\n FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START:\n \"FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START\",\n FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_SUCCESS:\n \"FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_SUCCESS\",\n FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_FAILURE:\n \"FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_FAILURE\",\n\n FETCH_HISTORY_GRAPH_BY_ACCOUNT_START: \"FETCH_HISTORY_GRAPH_BY_ACCOUNT_START\",\n FETCH_HISTORY_GRAPH_BY_ACCOUNT_SUCCESS:\n \"FETCH_HISTORY_GRAPH_BY_ACCOUNT_SUCCESS\",\n FETCH_HISTORY_GRAPH_BY_ACCOUNT_FAILURE:\n \"FETCH_HISTORY_GRAPH_BY_ACCOUNT_FAILURE\",\n\n FETCH_MONTHLY_RETURN_BY_ACCOUNT_START:\n \"FETCH_MONTHLY_RETURN_BY_ACCOUNT_START\",\n FETCH_MONTHLY_RETURN_BY_ACCOUNT_SUCCESS:\n \"FETCH_MONTHLY_RETURN_BY_ACCOUNT_SUCCESS\",\n FETCH_MONTHLY_RETURN_BY_ACCOUNT_FAILURE:\n \"FETCH_MONTHLY_RETURN_BY_ACCOUNT_FAILURE\",\n\n FETCH_PROFIT_BY_ACCOUNT_START: \"FETCH_PROFIT_BY_ACCOUNT_START\",\n FETCH_PROFIT_BY_ACCOUNT_SUCCESS: \"FETCH_PROFIT_BY_ACCOUNT_SUCCESS\",\n FETCH_PROFIT_BY_ACCOUNT_FAILURE: \"FETCH_PROFIT_BY_ACCOUNT_FAILURE\",\n\n FETCH_VOLATILITY_BY_ACCOUNT_START: \"FETCH_VOLATILITY_BY_ACCOUNT_START\",\n FETCH_VOLATILITY_BY_ACCOUNT_SUCCESS: \"FETCH_VOLATILITY_BY_ACCOUNT_SUCCESS\",\n FETCH_VOLATILITY_BY_ACCOUNT_FAILURE: \"FETCH_VOLATILITY_BY_ACCOUNT_FAILURE\",\n\n FETCH_MAX_DRAWDOWN_BY_ACCOUNT_START: \"FETCH_MAX_DRAWDOWN_BY_ACCOUNT_START\",\n FETCH_MAX_DRAWDOWN_BY_ACCOUNT_SUCCESS:\n \"FETCH_MAX_DRAWDOWN_BY_ACCOUNT_SUCCESS\",\n FETCH_MAX_DRAWDOWN_BY_ACCOUNT_FAILURE:\n \"FETCH_MAX_DRAWDOWN_BY_ACCOUNT_FAILURE\",\n\n FETCH_DRAWDOWN_BY_ACCOUNT_START: \"FETCH_DRAWDOWN_BY_ACCOUNT_START\",\n FETCH_DRAWDOWN_BY_ACCOUNT_SUCCESS: \"FETCH_DRAWDOWN_BY_ACCOUNT_SUCCESS\",\n FETCH_DRAWDOWN_BY_ACCOUNT_FAILURE: \"FETCH_DRAWDOWN_BY_ACCOUNT_FAILURE\",\n\n SET_DEFAULT_PORT_STAT: \"SET_DEFAULT_PORT_STAT\",\n CLEAR_DEFAULT_PORT_STAT: \"CLEAR_DEFAULT_PORT_STAT\",\n\n FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_SUCCESS:\n \"FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_SUCCESS\",\n FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_FAILURE:\n \"FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_FAILURE\",\n\n // LOT\n UPDATE_LOT_QUERIES: \"UPDATE_LOT_QUERIES\",\n FETCH_LOTS_START: \"FETCH_LOTS_START\",\n FETCH_LOTS_SUCCESS: \"FETCH_LOTS_SUCCESS\",\n FETCH_LOTS_FAILURE: \"FETCH_LOTS_FAILURE\",\n\n FETCH_NAVS_LOTS_START: \"FETCH_NAVS_LOTS_START\",\n FETCH_NAVS_LOTS_SUCCESS: \"FETCH_NAVS_LOTS_SUCCESS\",\n FETCH_NAVS_LOTS_FAILURE: \"FETCH_NAVS_LOTS_FAILURE\",\n\n // BOOK\n UPDATE_BOOK_QUERIES: \"UPDATE_BOOK_QUERIES\",\n FETCH_BOOKS_START: \"FETCH_BOOKS_START\",\n FETCH_BOOKS_SUCCESS: \"FETCH_BOOKS_SUCCESS\",\n FETCH_BOOKS_FAILURE: \"FETCH_BOOKS_FAILURE\",\n\n // DIVIDEND\n UPDATE_DIVIDEND_QUERIES: \"UPDATE_DIVIDEND_QUERIES\",\n\n FETCH_DIVIDENDS_START: \"FETCH_DIVIDENDS_START\",\n FETCH_DIVIDENDS_SUCCESS: \"FETCH_DIVIDENDS_SUCCESS\",\n FETCH_DIVIDENDS_FAILURE: \"FETCH_DIVIDENDS_FAILURE\",\n\n // HISTORIES\n UPDATE_INVESTMENT_HISTORIES_QUERIES: \"UPDATE_INVESTMENT_HISTORIES_QUERIES\",\n\n FETCH_HISTORIES_START: \"FETCH_HISTORIES_START\",\n FETCH_HISTORIES_SUCCESS: \"FETCH_HISTORIES_SUCCESS\",\n FETCH_HISTORIES_FAILURE: \"FETCH_HISTORIES_FAILURE\",\n\n FETCH_HISTORIES_CHANGE_PAGE: \"FETCH_HISTORIES_CHANGE_PAGE\",\n\n // DCA\n UPDATE_INVESTMENT_DCA_QUERIES: \"UPDATE_INVESTMENT_DCA_QUERIES\",\n DELETE_DCA_ORDER_REQUEST_START: \"DELETE_DCA_ORDER_REQUEST_START\",\n DELETE_DCA_ORDER_REQUEST_SUCCESS: \"DELETE_DCA_ORDER_REQUEST_SUCCESS\",\n DELETE_DCA_ORDER_REQUEST_FAILURE: \"DELETE_DCA_ORDER_REQUEST_FAILURE\",\n CLEAR_DCA_ORDER_ERROR_MESSAGE: \"CLEAR_DCA_ORDER_ERROR_MESSAGE\",\n\n FETCH_DCAS_START: \"FETCH_DCAS_START\",\n FETCH_DCAS_SUCCESS: \"FETCH_DCAS_SUCCESS\",\n FETCH_DCAS_FAILURE: \"FETCH_DCAS_FAILURE\",\n\n // ORDERS\n DELETE_ORDER_REQUEST_START: \"DELETE_ORDER_REQUEST_START\",\n DELETE_ORDER_REQUEST_SUCCESS: \"DELETE_ORDER_REQUEST_SUCCESS\",\n DELETE_ORDER_REQUEST_FAILURE: \"DELETE_ORDER_REQUEST_FAILURE\",\n FETCH_ORDERS_START: \"FETCH_ORDERS_START\",\n FETCH_ORDERS_SUCCESS: \"FETCH_ORDERS_SUCCESS\",\n FETCH_ORDERS_FAILURE: \"FETCH_ORDERS_FAILURE\",\n UPDATE_ORDERS_QUERIES: \"UPDATE_ORDERS_QUERIES\",\n CLEAR_ORDER_ERROR_MESSAGE: \"CLEAR_ORDER_ERROR_MESSAGE\",\n\n // INVESTMENT\n SET_INVEST_SEARCH: \"SET_INVEST_SEARCH\",\n};\n\nexport const TRADE_TYPES = {\n SWITCH: \"W\",\n DCA: \"DCA\",\n};\n\nexport const INVESTMENT_STATUS = {\n STATUS_P: \"P\",\n STATUS_A: \"A\",\n STATUS_I: \"I\",\n};\n","export const orderRequestConstants = {\n // Toggled Buy-Sell Modals.\n TOGGLED_ORDER_FUNDS_REQUEST_MODAL: 'TOGGLED_ORDER_FUNDS_REQUEST_MODAL',\n CLEAR_ERROR_MESSAGE: 'CLEAR_ERROR_MESSAGE',\n\n // Updated Active Tab (buy, sell, switch).\n UPDATE_ACTIVE_TAB_ORDER_FUNDS_REQUEST_MODAL: 'UPDATE_ACTIVE_TAB_ORDER_FUNDS_REQUEST_MODAL',\n\n // Updated Fund Id to order request.\n UPDATE_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL: 'UPDATE_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL',\n CLEAR_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL: 'CLEAR_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL',\n \n // Get Fund Information (Buy, Sell).\n FETCH_BUY_FUND_INFO_START: 'FETCH_BUY_FUND_INFO_START',\n FETCH_SELL_FUND_INFO_START: 'FETCH_SELL_FUND_INFO_START',\n UPDATE_FUND_INFO: 'UPDATE_FUND_INFO',\n CLEAR_FUND_INFO: 'CLEAR_FUND_INFO',\n\n // Fund Information 2 (Switch).\n FETCH_SWITCH_FUND_INFO_START: 'FETCH_SWITCH_FUND_INFO_START',\n UPDATE_FUNDS_INFO_2: 'UPDATE_FUNDS_INFO_2',\n CLEAR_FUND_INFO_2: 'CLEAR_FUND_INFO_2',\n\n // Checked Fund able to order. (Buy, Switch)\n CLEAR_CHECKED_FUND_ABLE: 'CLEAR_CHECKED_FUND_ABLE',\n CHECKED_BUYABLE_FUND_START: 'CHECKED_BUYABLE_FUND_START',\n CHECKED_SELLABLE_FUND_START: 'CHECKED_SELLABLE_FUND_START',\n CHECKED_SWITCHABLE_FUND_START: 'CHECKED_SWITCHABLE_FUND_START',\n CHECKED_FUND_ABLE_TO_ORDER_SUCCESS: 'CHECKED_FUND_ABLE_TO_ORDER_SUCCESS',\n CHECKED_FUND_ABLE_TO_ORDER_FAILURE: 'CHECKED_FUND_ABLE_TO_ORDER_FAILURE',\n\n // Switch Fund\n GET_SWITCHABLE_FUNDS_START: 'GET_SWITCHABLE_FUNDS_START',\n GET_SWITCHABLE_FUNDS_SUCCESS: 'GET_SWITCHABLE_FUNDS_SUCCESS',\n GET_SWITCHABLE_FUNDS_FAILURE: 'GET_SWITCHABLE_FUNDS_FAILURE',\n\n // SEND_QUESTION_BACK_TO_CONFIRM\n CONFIRM_ORDER_FUND_START: 'CONFIRM_ORDER_FUND_START',\n CONFIRM_ORDER_FUND_SUCCESS: 'CONFIRM_ORDER_FUND_SUCCESS',\n CONFIRM_ORDER_FUND_FAILURE: 'CONFIRM_ORDER_FUND_FAILURE',\n \n RESET_CONFIRM_ORDER_FUND: 'RESET_CONFIRM_ORDER_FUND',\n\n // SEARCH FUND INFORMATION\n CLEAR_SEARCH_FUNDS_INFO: 'CLEAR_SEARCH_FUNDS_INFO',\n UPDATE_SEARCH_FUNDS_INFO: 'UPDATE_SEARCH_FUNDS_INFO',\n REMOVE_SEARCH_FUNDS_INFO: 'REMOVE_SEARCH_FUNDS_INFO',\n\n CLEAR_FUND_INFO_2: 'CLEAR_FUND_INFO_2',\n\n UPDATE_SEARCH_PORTFOLIOS: 'UPDATE_SEARCH_PORTFOLIOS',\n\n TOGGLE_MODAL_MESSAGE: 'TOGGLE_MODAL_MESSAGE',\n\n // FORM\n // GET_LATEST_PLAN: 'GET_LATEST_PLAN',\n UPDATE_LATEST_PLAN: 'UPDATE_LATEST_PLAN',\n CLEAR_LATEST_PLAN: 'CLEAR_LATEST_PLAN',\n UPDATE_LATEST_SETTLE_DATE: 'UPDATE_LATEST_SETTLE_DATE',\n};\n","export const authenticationConstants = {\n TOGGLED_SIGN_IN_MODAL: \"TOGGLED_SIGN_IN_MODAL\",\n TOGGLED_ERROR_MESSAGE_MODAL: \"TOGGLED_ERROR_MESSAGE_MODAL\",\n\n REFRESH_TOKEN: \"REFRESH_TOKEN\",\n\n SIGN_IN_START: \"SIGN_IN_START\",\n SIGN_IN_SUCCESS: \"SIGN_IN_SUCCESS\",\n SIGN_IN_FAILURE: \"SIGN_IN_FAILURE\",\n\n VERIFY_2FA_OPEN: \"VERIFY_2FA_OPEN\",\n TOGGLED_2FA_MODAL: \"TOGGLED_2FA_MODAL\",\n VERIFY_2FA_START: \"VERIFY_2FA_START\",\n\n SET_2FA_LOADING: \"SET_2FA_LOADING\",\n\n CLEAR_SIGN_IN_ERROR_MESSAGE: \"CLEAR_SIGN_IN_ERROR_MESSAGE\",\n\n SIGN_IN_CREDENTIAL_START: \"SIGN_IN_CREDENTIAL_START\",\n SIGN_IN_DSA_START: \"SIGN_IN_DSA_START\",\n SIGN_IN_SSO_START: \"SIGN_IN_SSO_START\",\n\n SIGN_IN_SUCCESS_FOR_MOBILE: \"SIGN_IN_SUCCESS_FOR_MOBILE\",\n UPDATE_SIGN_IN_STATUS_FOR_MOBILE: \"UPDATE_SIGN_IN_STATUS_FOR_MOBILE\",\n\n GET_ACCOUNT_MKT: \"GET_ACCOUNT_MKT\",\n\n GET_ACCOUNT_LIST_START: \"GET_ACCOUNT_LIST_START\",\n GET_ACCOUNT_LIST_SUCCESS: \"GET_ACCOUNT_LIST_SUCCESS\",\n UPDATE_ACCOUNT_LIST_MOBILE_SUCCESS: \"UPDATE_ACCOUNT_LIST_MOBILE_SUCCESS\",\n GET_ACCOUNT_LIST_FAILURE: \"GET_ACCOUNT_LIST_FAILURE\",\n\n GET_ACCOUNT_INFO_START: \"GET_ACCOUNT_INFO_START\",\n GET_ACCOUNT_INFO_SUCCESS: \"GET_ACCOUNT_INFO_SUCCESS\",\n GET_ACCOUNT_INFO_FAILURE: \"GET_ACCOUNT_INFO_FAILURE\",\n\n GET_ACCOUNT_NAME_START: \"GET_ACCOUNT_NAME_START\",\n GET_ACCOUNT_NAME_SUCCESS: \"GET_ACCOUNT_NAME_SUCCESS\",\n GET_ACCOUNT_NAME_FAILURE: \"GET_ACCOUNT_NAME_FAILURE\",\n\n SIGN_OUT: \"SIGN_OUT\",\n};\n","import { investmentConstants } from \"../_constants\";\n// USER's ACCOUNTS\nexport const updateUserAccounts = (accountNumbers) => ({\n type: investmentConstants.UPDATE_USER_ACCOUNTS,\n payload: accountNumbers,\n});\n\nexport const resetInvestment = () => ({\n type: investmentConstants.RESET_INVESTMENT,\n});\n\n// INVESTMENT GENERAL\nexport const fetchActivedFundsStart = (accountNumbers) => ({\n type: investmentConstants.FETCH_ACTIVED_FUNDS_START,\n payload: accountNumbers,\n});\nexport const fetchActivedFundsSuccess = (data) => ({\n type: investmentConstants.FETCH_ACTIVED_FUNDS_SUCCESS,\n payload: data,\n});\nexport const fetchActivedFundsFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_ACTIVED_FUNDS_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchAllFundsStart = (accountNumbers) => ({\n type: investmentConstants.FETCH_ALL_FUNDS_START,\n payload: accountNumbers,\n});\nexport const fetchAllFundsSuccess = (data) => ({\n type: investmentConstants.FETCH_ALL_FUNDS_SUCCESS,\n payload: data,\n});\nexport const fetchAllFundsFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_ALL_FUNDS_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchAllFundCodesStart = () => ({\n type: investmentConstants.FETCH_ALL_FUND_CODES_START,\n});\nexport const fetchAllFundCodesSuccess = (data) => ({\n type: investmentConstants.FETCH_ALL_FUND_CODES_SUCCESS,\n payload: data,\n});\nexport const fetchAllFundCodesFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_ALL_FUND_CODES_FAILURE,\n payload: errorMessage,\n});\n\n// INVESTMENT PORTFOLIO\nexport const updatePortfoliosQueries = (queries) => ({\n type: investmentConstants.UPDATE_PORTFOLIOS_QUERIES,\n payload: queries,\n});\n\nexport const fetchPortfoliosStart = (queries) => ({\n type: investmentConstants.FETCH_PORTFOLIOS_START,\n payload: queries,\n});\nexport const fetchPortfoliosSuccess = (data) => ({\n type: investmentConstants.FETCH_PORTFOLIOS_SUCCESS,\n payload: data,\n});\nexport const fetchPortfoliosFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_PORTFOLIOS_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchNavPortfoliosStart = (data) => ({\n type: investmentConstants.FETCH_NAV_PORTFOLIO_START,\n payload: data,\n});\nexport const fetchNavPortfoliosSuccess = (data) => ({\n type: investmentConstants.FETCH_NAV_PORTFOLIO_SUCCESS,\n payload: data,\n});\nexport const fetchNavPortfoliosFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_NAV_PORTFOLIO_FAILURE,\n payload: errorMessage,\n});\n\n// PORTFOLIO STATISTICS\nexport const fetchPreviousReturnByAccountStart = (account) => ({\n type: investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START,\n payload: account,\n});\nexport const fetchPreviousReturnByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchPreviousReturnByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchPreviousReturnGraphByAccountStart = (payload) => ({\n type: investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START,\n payload: payload,\n});\nexport const fetchPreviousReturnGraphByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchPreviousReturnGraphByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchHistoryGraphByAccountStart = (payload) => ({\n type: investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_START,\n payload: payload,\n});\nexport const fetchHistoryGraphByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchHistoryGraphByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchMonthlyReturnByAccountStart = (account) => ({\n type: investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_START,\n payload: account,\n});\nexport const fetchMonthlyReturnByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchMonthlyReturnByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchProfitByAccountStart = (account) => ({\n type: investmentConstants.FETCH_PROFIT_BY_ACCOUNT_START,\n payload: account,\n});\nexport const fetchProfitByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_PROFIT_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchProfitByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_PROFIT_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchVolatilityByAccountStart = (account) => ({\n type: investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_START,\n payload: account,\n});\nexport const fetchVolatilityByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchVolatilityByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchMaxDrawdownByAccountStart = (account) => ({\n type: investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_START,\n payload: account,\n});\nexport const fetchMaxDrawdownByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchMaxDrawdownByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchDrawdownByAccountStart = (payload) => ({\n type: investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_START,\n payload: payload,\n});\nexport const fetchDrawdownByAccountSuccess = (data) => ({\n type: investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_SUCCESS,\n payload: data,\n});\nexport const fetchDrawdownByAccountFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_FAILURE,\n payload: errorMessage,\n});\n\n// Default Port stat\nexport const setDefaultPortStat = () => ({\n type: investmentConstants.SET_DEFAULT_PORT_STAT,\n});\n\nexport const clearDefaultPortStat = () => ({\n type: investmentConstants.CLEAR_DEFAULT_PORT_STAT,\n});\nexport const fetchLastDateOfAccountNumberSuccess = (date) => ({\n type: investmentConstants.FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_SUCCESS,\n payload: date,\n});\nexport const fetchLastDateOfAccountNumberFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_FAILURE,\n payload: errorMessage,\n});\n\n// INVESTMENT ORDERS\nexport const deleteOrderRequestStart = (payload) => ({\n type: investmentConstants.DELETE_ORDER_REQUEST_START,\n payload: payload,\n});\nexport const deleteOrderRequestSuccess = (data) => ({\n type: investmentConstants.DELETE_ORDER_REQUEST_SUCCESS,\n payload: data,\n});\nexport const deleteOrderRequestFailure = (payload) => ({\n type: investmentConstants.DELETE_ORDER_REQUEST_FAILURE,\n payload,\n});\nexport const fetchOrdersStart = (id) => ({\n type: investmentConstants.FETCH_ORDERS_START,\n payload: id,\n});\nexport const fetchOrdersSuccess = (data) => ({\n type: investmentConstants.FETCH_ORDERS_SUCCESS,\n payload: data,\n});\nexport const fetchOrdersFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_ORDERS_FAILURE,\n payload: errorMessage,\n});\nexport const updateOrdersQueries = (queries) => ({\n type: investmentConstants.UPDATE_ORDERS_QUERIES,\n payload: queries,\n});\nexport const clearOrderErrorMessage = () => ({\n type: investmentConstants.CLEAR_ORDER_ERROR_MESSAGE,\n});\n\n// INVESTMENT LOTS\nexport const updateLotQueries = (payload) => ({\n type: investmentConstants.UPDATE_LOT_QUERIES,\n payload: payload,\n});\n\nexport const fetchLotsStart = (data) => ({\n type: investmentConstants.FETCH_LOTS_START,\n payload: data,\n});\nexport const fetchLotsSuccess = (data) => ({\n type: investmentConstants.FETCH_LOTS_SUCCESS,\n payload: data,\n});\nexport const fetchLotsFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_LOTS_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchNavsLotsStart = (fundIds) => ({\n type: investmentConstants.FETCH_NAVS_LOTS_START,\n payload: fundIds,\n});\nexport const fetchNavsLotsSuccess = (data) => ({\n type: investmentConstants.FETCH_NAVS_LOTS_SUCCESS,\n payload: data,\n});\nexport const fetchNavsLotsFailure = (error) => ({\n type: investmentConstants.FETCH_NAVS_LOTS_FAILURE,\n payload: error,\n});\n\n// INVESTMENT BOOK\nexport const updateBookQueries = (payload) => ({\n type: investmentConstants.UPDATE_BOOK_QUERIES,\n payload: payload,\n});\n\nexport const fetchBooksStart = () => ({\n type: investmentConstants.FETCH_BOOKS_START,\n});\nexport const fetchBooksSuccess = (data) => ({\n type: investmentConstants.FETCH_BOOKS_SUCCESS,\n payload: data,\n});\nexport const fetchBooksFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_BOOKS_FAILURE,\n payload: errorMessage,\n});\n\n// INVESTMENT HISTORIES\nexport const updateHistoriesQueries = (queries) => ({\n type: investmentConstants.UPDATE_INVESTMENT_HISTORIES_QUERIES,\n payload: queries,\n});\nexport const fetchHistoriesStart = (page) => ({\n type: investmentConstants.FETCH_HISTORIES_START,\n payload: page,\n});\nexport const fetchHistoriesSuccess = (data) => ({\n type: investmentConstants.FETCH_HISTORIES_SUCCESS,\n payload: data,\n});\nexport const fetchHistoriesFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_HISTORIES_FAILURE,\n payload: errorMessage,\n});\n\nexport const fetchHistoriesChangePage = (page) => ({\n type: investmentConstants.FETCH_HISTORIES_CHANGE_PAGE,\n payload: page,\n});\n\n// DIVIDEND\nexport const updateDividendQueries = (queries) => ({\n type: investmentConstants.UPDATE_DIVIDEND_QUERIES,\n payload: queries,\n});\n\nexport const fetchDividendsStart = (data) => ({\n type: investmentConstants.FETCH_DIVIDENDS_START,\n payload: data,\n});\nexport const fetchDividendsSuccess = (data) => ({\n type: investmentConstants.FETCH_DIVIDENDS_SUCCESS,\n payload: data,\n});\nexport const fetchDividendsFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_DIVIDENDS_FAILURE,\n payload: errorMessage,\n});\n\n// INVESTMENT DCA\nexport const updateDCAQueries = (queries) => ({\n type: investmentConstants.UPDATE_INVESTMENT_DCA_QUERIES,\n payload: queries,\n});\nexport const fetchDCAsStart = (queries) => ({\n type: investmentConstants.FETCH_DCAS_START,\n payload: queries,\n});\nexport const fetchDCAsSuccess = (data) => ({\n type: investmentConstants.FETCH_DCAS_SUCCESS,\n payload: data,\n});\nexport const fetchDCAsFailure = (errorMessage) => ({\n type: investmentConstants.FETCH_DCAS_FAILURE,\n payload: errorMessage,\n});\nexport const deleteDCAOrderRequestStart = (payload) => ({\n type: investmentConstants.DELETE_DCA_ORDER_REQUEST_START,\n payload: payload,\n});\nexport const deleteDCAOrderRequestSuccess = (data) => ({\n type: investmentConstants.DELETE_DCA_ORDER_REQUEST_SUCCESS,\n payload: data,\n});\nexport const deleteDCAOrderRequestFailure = (errorMessage) => ({\n type: investmentConstants.DELETE_DCA_ORDER_REQUEST_FAILURE,\n payload: errorMessage,\n});\nexport const clearDCAOrderErrorMessage = () => ({\n type: investmentConstants.CLEAR_DCA_ORDER_ERROR_MESSAGE,\n});\n\n// INVEST SEARCH\nexport const setInvestSearch = (isSearch) => ({\n type: investmentConstants.SET_INVEST_SEARCH,\n payload: isSearch,\n});\n","export const fundInfoFetching = (fundInfo) => {\n const result = {\n ...fundInfo,\n isFetching: true\n };\n return result;\n};\n\nexport const fundInfoData = (fundInfo, data) => {\n const result = {\n ...fundInfo,\n data: cleanColor(data),\n isFetching: false\n };\n return result;\n};\n\nexport const fundInfoError = (fundInfo, error) => {\n const result = {\n ...fundInfo,\n errorMessage: error,\n isFetching: false\n };\n return result;\n};\n\nconst cleanColor = (data) => {\n return {\n ...data,\n color: data.color ? data.color : '#CB2427'\n };\n};\n\nexport const filterHistoricalNav = (historicalNav, data) => {\n const result = {\n ...historicalNav,\n currentPage: data.currentPage ? data.currentPage : 1,\n totalPage: data.totalPage ? data.totalPage : 1,\n items: data.items ? data.items : []\n };\n return result;\n};\n\nexport const filterHistoricalNavGraph = (informationWidget, data) => {\n const result = {\n ...informationWidget,\n historicalNavGraph: data ? data : []\n };\n return result;\n};\n\nexport const filterDividend = (dividend, data) => {\n const result = {\n ...dividend,\n currentPage: data.currentPage ? data.currentPage : 1,\n totalPage: data.totalPage ? data.totalPage : 1,\n items: data ? data : []\n };\n return result;\n};\n\nexport const changePage = (state, page) => {\n const result = {\n ...state,\n currentPage: page !== state.currentPage ? page : state.currentPage\n };\n return result;\n};\n\nexport const filterDrawdownByDate = (state, data) => {\n const result = {\n ...state,\n drawdownListByDate: data\n };\n return result;\n};\n\nexport const resetDrawdownByDate = (state) => {\n const result = {\n ...state,\n drawdownListByDate: []\n };\n return result;\n};\n\nexport const filterMaximumDrawdown = (state, data) => {\n const result = {\n ...state,\n maximumDrawdownList: data\n };\n return result;\n};\n\nexport const resetMaximumDrawdown = (state) => {\n const result = {\n ...state,\n maximumDrawdownList: []\n };\n return result;\n};\n\nexport const resetMonthlyReturn = (state) => {\n const result = {\n ...state,\n monthlyReturns: []\n };\n return result;\n};\n\nexport const filterPriceRange = (state, data) => {\n let priceRangeList = [];\n if (data) {\n priceRangeList = [\n {\n time: '1 สัปดาห์',\n maxValue: data.maxOfWeek,\n minValue: data.minOfWeek,\n value: data.current\n },\n {\n time: '1 เดือน',\n maxValue: data.maxOfMonth,\n minValue: data.minOfMonth,\n value: data.current\n },\n {\n time: '3 เดือน',\n maxValue: data.maxOfThreeMonths,\n minValue: data.minOfThreeMonths,\n value: data.current\n },\n {\n time: '6 เดือน',\n maxValue: data.maxOfSixMonths,\n minValue: data.minOfSixMonths,\n value: data.current\n },\n {\n time: '1 ปี',\n maxValue: data.maxOfOneYear,\n minValue: data.minOfOneYear,\n value: data.current\n }\n ];\n }\n\n const result = {\n ...state,\n priceRanges: state.priceRanges !== priceRangeList ? priceRangeList : state.priceRanges\n };\n return result;\n};\n\nexport const resetPriceRange = (state) => {\n const result = {\n ...state,\n priceRanges: []\n };\n return result;\n};\n\nexport const filterVolatilities = (state, data) => {\n const result = {\n ...state,\n volatilities: data ? data : state.volatilities\n };\n return result;\n};\n\nexport const resetVolatilities = (state) => {\n const result = {\n ...state,\n volatilities: []\n };\n return result;\n};\n\nexport const filterReturnExpenseRatio = (state, data) => {\n const result = {\n ...state,\n returnExpenseRatio: data ? data : null\n };\n return result;\n};\n\nexport const resetReturnExpenseRatio = (state) => {\n const result = {\n ...state,\n returnExpenseRatio: null\n };\n return result;\n};\n\nexport const filterMonthlyProfit = (state, data) => {\n const result = {\n ...state,\n monthlyProfit: data ? data : null\n };\n return result;\n};\n\nexport const resetMonthlyProfit = (state) => {\n const result = {\n ...state,\n monthlyProfit: null\n };\n return result;\n};\n\nexport const filterReturnHistory = (state, data) => {\n const result = {\n ...state,\n returnHistory: data ? data : null\n };\n return result;\n};\n\nexport const resetReturnHistory = (state) => {\n const result = {\n ...state,\n returnHistory: null\n };\n return result;\n};\n\nexport const changeDrawdownSortingFilters = (state, data) => {\n const result = {\n ...state,\n currentDrawdownSortingFilters: data\n };\n return result;\n};\n\nexport const changeNavGraphDate = (state, data) => {\n if (state.navGraphDateRange.startDate !== data.startDate || state.navGraphDateRange.endDate !== data.endDate) {\n return {\n ...state,\n navGraphDateRange: {\n startDate: data.startDate,\n endDate: data.endDate\n }\n };\n } else {\n return {\n ...state\n };\n }\n};\n\nexport const changeSortedDrawdown = (state, data) => {\n const result = {\n ...state\n };\n return result;\n};\n\nexport const setIsFetching = (state) => {\n const result = {\n ...state,\n isFetching: true\n };\n return result;\n}\n\nexport const filterDataResult = (state, data) => {\n const result = {\n ...state,\n isFetching: false,\n data: data,\n errorMessage: null\n };\n return result;\n}\n\nexport const resetDataResult = (state, message) => {\n const result = {\n ...state,\n isFetching: false,\n data: [],\n errorMessage: message\n };\n return result;\n}\n\nexport const resetDataResultToObject = (state, message) => {\n const result = {\n ...state,\n isFetching: false,\n data: {},\n errorMessage: message\n };\n return result;\n}\n\n// Constant filter type\nconst filterTypeList = [\n {\n type: 'TOP_TEN_HOLDINGS',\n dateType: 'topHoldingDate',\n key: 'topHoldingDetails',\n detailName: 'holdingDetailName',\n value: 'holdingDetailWeighting'\n },\n {\n type: 'STOCKS',\n dateType: 'topHoldingDate',\n key: 'topHoldingDetails',\n detailName: 'holdingDetailName',\n value: 'holdingDetailWeighting'\n },\n {\n type: 'COUNTRY_EXPOSURE',\n dateType: 'countryExposureDate',\n key: 'countryExposureDetails',\n detailName: 'country',\n value: 'value'\n },\n {\n type: 'SECTOR_INDICES',\n dateType: 'globalSectorPortfolioDate',\n detailName: [\n 'equitySectorBasicMaterialsLongRescaled',\n 'equitySectorCommunicationServicesLongRescaled',\n 'equitySectorConsumerCyclicalLongRescaled',\n 'equitySectorConsumerDefensiveLongRescaled',\n 'equitySectorEnergyLongRescaled',\n 'equitySectorFinancialServicesLongRescaled',\n 'equitySectorHealthcareLongRescaled',\n 'equitySectorIndustrialsLongRescaled',\n 'equitySectorRealEstateLongRescaled',\n 'equitySectorTechnologyLongRescaled',\n 'equitySectorUtilitiesLongRescaled'\n ],\n value: '',\n }\n];\n\n// Constant default color\nconst defaultColors = [\n '#6EA7BC',\n '#1666C3',\n '#384C78',\n '#438A5D ',\n '#F5DF76',\n '#DFB621',\n '#CC5F06',\n '#874B4B',\n '#8A2224',\n '#CB2427',\n '#0A73EA',\n '#3190FB',\n '#77B2F5',\n '#8CBC5B',\n '#699953',\n '#C9C709',\n '#B569F7',\n '#D5A1DB',\n '#F0888A',\n '#E7581A',\n '#ECC405',\n '#EEB0B1',\n '#6B5948',\n '#688037',\n '#A2B8AB'\n];\n\nexport const convertDataToPortChart = (dataObj, filterType) => {\n let summary = 0;\n let colors = dataObj.colors && dataObj.colors.lenght > 0 ? dataObj.colors : defaultColors;\n let product = filterTypeList.find(obj => obj.type === filterType);\n let categoryList = [];\n let returnFormatData = { summary: 0, date: '', categoryList: [] }\n\n if (product.type === 'SECTOR_INDICES') {\n let list = product.detailName;\n\n if (dataObj) {\n // Push obj to List\n for (let i = 0; i < list.length; i++) {\n categoryList.push({\n category: dataObj[list[i]+'Name'] ? dataObj[list[i]+'Name'] : '-',\n value: dataObj[list[i]] ? dataObj[list[i]].toFixed(2) : '0',\n });\n }\n\n returnFormatData.date = dataObj[product.dateType];\n }\n } else {\n let data = dataObj[product.key];\n if (data) {\n // Push obj to List\n categoryList = data.map(obj => ({\n category : obj[product.detailName] ? obj[product.detailName] : '-',\n value : obj[product.value] ? obj[product.value].toFixed(2) : '0'\n }));\n\n returnFormatData.date = dataObj[product.dateType];\n }\n\n // // else if (count === 11 && summary != 100) {\n // // productLists.productList.push({\n // // category : 'Others',\n // // value : formatNumber(100 - summary),\n // // color : defaultColors[count],\n // // })\n // // summary = 100;\n // // }\n\n // // else {\n // // break;\n // // }\n }\n\n // Sorting large to small value.\n categoryList.sort((a, b) => b.value - a.value);\n\n // Summary percentage Item list\n summary = categoryList.reduce((prev, cur) => prev + parseFloat(cur.value), 0);\n\n // Insert Color\n categoryList.forEach((obj, index) => obj['color'] = colors[index]);\n\n if (categoryList.length > 0) {\n returnFormatData.summary = summary;\n returnFormatData.categoryList = categoryList;\n } else {\n returnFormatData = {\n summary: 0,\n categoryList: [{ category: 'No Data', value: 100, color: colors[0] }],\n date: ''\n };\n }\n\n return returnFormatData;\n};\n\nexport const refactorData = (data, axisX, axisY) => {\n axisX = axisX ? axisX : 'time';\n axisY = axisY ? axisY : 'value';\n\n let list= [];\n if (data && data.length > 0) {\n data.map((obj, index) => {\n list.push({\n time: obj[axisY],\n value: obj[axisX]\n })\n })\n }\n\n return list;\n}\n\nexport const handleRedirectPage = (e, item, attr= 'id') => {\n if (!item[attr] ) {\n e.preventDefault();\n }\n return;\n}\n\nexport const accountStatus = {\n 'Y': {\n color: 'success',\n status: 'Yes',\n },\n 'N': {\n color: 'danger',\n status: 'No',\n },\n}","export const compareConstants = {\n TOGGLED_COMPARE_MODAL: 'TOGGLED_COMPARE_MODAL',\n\tADD_FUNDIDS_TO_COMPARE_FUNDS: 'ADD_FUNDIDS_TO_COMPARE_FUNDS',\n\tUPDATE_FUNDIDS_TO_COMPARE_FUNDS: 'UPDATE_FUNDIDS_TO_COMPARE_FUNDS',\n\tUPDATE_TEMPORARY_COMPARE_FUNDS: 'UPDATE_TEMPORARY_COMPARE_FUNDS',\n\tREMOVED_TEMPORARY_COMPARE_FUNDS: 'REMOVED_TEMPORARY_COMPARE_FUNDS',\n\tRESET_TEMPORARY_COMPARE_FUNDS: 'RESET_TEMPORARY_COMPARE_FUNDS',\n\n\tFETCH_COMPARE_START: 'FETCH_COMPARE_START',\n\tFETCH_COMPARE_SUCCESS: 'FETCH_COMPARE_SUCCESS',\n\tFETCH_COMPARE_FAILURE: 'FETCH_COMPARE_FAILURE',\n\n\tFETCH_COMPARE_FUNDS_BY_PERIOD_START: 'FETCH_COMPARE_FUNDS_BY_PERIOD_START',\n\tFETCH_COMPARE_FUNDS_BY_PERIOD_SUCCESS: 'FETCH_COMPARE_FUNDS_BY_PERIOD_SUCCESS',\n\tFETCH_COMPARE_FUNDS_BY_PERIOD_FAILURE: 'FETCH_COMPARE_FUNDS_BY_PERIOD_FAILURE',\n\n\tFETCH_GRAPH_COMPARE_FUNDS_START: 'FETCH_GRAPH_COMPARE_FUNDS_START',\n\tFETCH_GRAPH_COMPARE_FUNDS_SUCCESS: 'FETCH_GRAPH_COMPARE_FUNDS_SUCCESS',\n\tFETCH_GRAPH_COMPARE_FUNDS_FAILURE: 'FETCH_GRAPH_COMPARE_FUNDS_FAILURE',\n\n\tFETCH_NAV_COMPARE_FUNDS_START: 'FETCH_NAV_COMPARE_FUNDS_START',\n\tFETCH_NAV_COMPARE_FUNDS_SUCCESS: 'FETCH_NAV_COMPARE_FUNDS_SUCCESS',\n\tFETCH_NAV_COMPARE_FUNDS_FAILURE: 'FETCH_NAV_COMPARE_FUNDS_FAILURE',\n\n\tCLEAR_FUND_COMPARE: 'CLEAR_FUND_COMPARE',\n\n\tTOGGLE_RETURN: 'TOGGLE_RETURN',\n\tTOGGLE_DRAWDOWN: 'TOGGLE_DRAWDOWN',\n\tTOGGLE_PROPORTION: 'TOGGLE_PROPORTION',\n\n\tINSERT_SEARCH_INDEX: 'INSERT_SEARCH_INDEX',\n\t// INSERT_SCROLL_POSITION: 'INSERT_SCROLL_POSITION'\n};\n","import { authenticationConstants } from \"../_constants/authentication.constants\";\n\nexport const toggleSignInModal = () => ({\n type: authenticationConstants.TOGGLED_SIGN_IN_MODAL,\n});\n\nexport const toggleErrorMessageModal = () => ({\n type: authenticationConstants.TOGGLED_ERROR_MESSAGE_MODAL,\n});\n\nexport const refreshToken = () => ({\n type: authenticationConstants.REFRESH_TOKEN,\n});\n\nexport const signInStart = (credential) => ({\n type: authenticationConstants.SIGN_IN_START,\n payload: credential,\n});\n\nexport const verify2FAOpen = (referenceCode) => ({\n type: authenticationConstants.VERIFY_2FA_OPEN,\n payload: referenceCode,\n});\n\nexport const toggle2FAModal = () => ({\n type: authenticationConstants.TOGGLED_2FA_MODAL,\n});\n\nexport const verify2FAStart = (credential) => ({\n type: authenticationConstants.VERIFY_2FA_START,\n payload: credential,\n});\n\nexport const set2FALoading = (isLoading) => ({\n type: \"SET_2FA_LOADING\",\n payload: isLoading,\n});\n\nexport const signInSuccess = (user) => ({\n type: authenticationConstants.SIGN_IN_SUCCESS,\n payload: user,\n});\n\nexport const signInFailure = (errorMessage) => ({\n type: authenticationConstants.SIGN_IN_FAILURE,\n payload: errorMessage,\n});\n\nexport const clearSignInErrorMessage = () => ({\n type: authenticationConstants.CLEAR_SIGN_IN_ERROR_MESSAGE,\n});\n\n// Sign in with credential with window authentication.\nexport const signInCredentialStart = (data) => ({\n type: authenticationConstants.SIGN_IN_CREDENTIAL_START,\n payload: data,\n});\n\nexport const signInDSAStart = (data) => ({\n type: authenticationConstants.SIGN_IN_DSA_START,\n payload: data,\n});\n\nexport const signInSSOStart = (data) => ({\n type: authenticationConstants.SIGN_IN_SSO_START,\n payload: data,\n});\n\nexport const signInSuccessForMobile = (data) => ({\n type: authenticationConstants.SIGN_IN_SUCCESS_FOR_MOBILE,\n payload: data,\n});\n\nexport const updateSignInStatusForMobile = () => ({\n type: authenticationConstants.UPDATE_SIGN_IN_STATUS_FOR_MOBILE,\n});\n\nexport const getAccountListStart = () => ({\n type: authenticationConstants.GET_ACCOUNT_LIST_START,\n});\n\nexport const getAccountListSuccess = (accounts) => ({\n type: authenticationConstants.GET_ACCOUNT_LIST_SUCCESS,\n payload: accounts,\n});\n\nexport const getAccountMKT = (accounts) => ({\n type: authenticationConstants.GET_ACCOUNT_MKT,\n payload: accounts,\n});\n\nexport const updateAccountListMobileSuccess = () => ({\n type: authenticationConstants.UPDATE_ACCOUNT_LIST_MOBILE_SUCCESS,\n});\n\nexport const getAccountListFailure = (errorMessage) => ({\n type: authenticationConstants.GET_ACCOUNT_LIST_FAILURE,\n payload: errorMessage,\n});\n\nexport const getAccountInfoStart = (accountNumber) => ({\n type: authenticationConstants.GET_ACCOUNT_INFO_START,\n payload: accountNumber,\n});\n\nexport const getAccountInfoSuccess = (information) => ({\n type: authenticationConstants.GET_ACCOUNT_INFO_SUCCESS,\n payload: information,\n});\n\nexport const getAccountInfoFailure = (errorMessage) => ({\n type: authenticationConstants.GET_ACCOUNT_INFO_FAILURE,\n payload: errorMessage,\n});\n\nexport const getAccountNameStart = (accountNumber) => ({\n type: authenticationConstants.GET_ACCOUNT_NAME_START,\n payload: accountNumber,\n});\n\nexport const getAccountNameSuccess = (accountName) => ({\n type: authenticationConstants.GET_ACCOUNT_NAME_SUCCESS,\n payload: accountName,\n});\n\nexport const getAccountNameFailure = (errorMessage) => ({\n type: authenticationConstants.GET_ACCOUNT_NAME_FAILURE,\n payload: errorMessage,\n});\n\nexport const signOut = () => ({\n type: authenticationConstants.SIGN_OUT,\n});\n","import { informationConstants } from '../_constants/information.constants';\n\n// InFormation\nexport const fetchFundInfoStart = (data) => ({\n\ttype: informationConstants.FETCH_FUND_INFO_START,\n\tpayload: data\n});\n\nexport const fetchFundInfoSuccess = (data) => ({\n\ttype: informationConstants.FETCH_FUND_INFO_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchFundInfoFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_FUND_INFO_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const clearFundInfo = () => ({\n\ttype: informationConstants.CLEAR_FUND_INFO\n});\n\nexport const updateFundId = (fundCode) => ({\n\ttype: informationConstants.UPDATE_FUND_ID,\n\tpayload: fundCode\n});\n\nexport const updateRecentTab = (tab) => ({\n\ttype: informationConstants.UPDATE_RECENT_TAB,\n\tpayload: tab\n});\n\nexport const fetchTradingInformationStart = (data) => ({\n\ttype: informationConstants.FETCH_TRADING_INFO_START,\n\tpayload: data\n});\n\nexport const fetchTradingInformationSuccess = (data) => ({\n\ttype: informationConstants.FETCH_TRADING_INFO_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchTradingInformationFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_TRADING_INFO_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchPortfolioInformationStart = (fundId) => ({\n\ttype: informationConstants.FETCH_PORTFOLIO_INFO_START,\n\tpayload: fundId\n});\n\nexport const fetchPortfolioInformationSuccess = (data) => ({\n\ttype: informationConstants.FETCH_PORTFOLIO_INFO_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchPortfolioInformationFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_PORTFOLIO_INFO_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchFundAverageRatingStart = (data) => ({\n\ttype: informationConstants.FETCH_FUND_AVERAGE_RATING_START,\n\tpayload: data\n});\n\nexport const fetchFundAverageRatingSuccess = (data) => ({\n\ttype: informationConstants.FETCH_FUND_AVERAGE_RATING_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchFundAverageRatingFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_FUND_AVERAGE_RATING_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const voteFundAverageRating = (data) => ({\n\ttype: informationConstants.VOTE_FUND_AVERAGE_RATING,\n\tpayload: data\n});\n\nexport const fetchCalendarFundStart = (data) => ({\n\ttype: informationConstants.FETCH_CALENDAR_FUND_START,\n\tpayload: data\n});\n\nexport const fetchCalendarFundSuccess = (data) => ({\n\ttype: informationConstants.FETCH_CALENDAR_FUND_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchCalendarFundFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_CALENDAR_FUND_FAILURE,\n\tpayload: errorMessage\n});\n\n// Port Info\nexport const fetchFundPortInfoStart = (fundId) => ({\n\ttype: informationConstants.FETCH_FUND_PORT_INFO_START,\n\tpayload: fundId\n});\n\nexport const fetchFundPortInfoSuccess = (data) => ({\n\ttype: informationConstants.FETCH_FUND_PORT_INFO_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchFundPortInfoFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_FUND_PORT_INFO_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchFundPortChartByChartTypeStart = (fundId) => ({\n\ttype: informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_START,\n\tpayload: fundId\n});\n\nexport const fetchFundPortChartByChartTypeSuccess = (data) => ({\n\ttype: informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchFundPortChartByChartTypeFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_FAILURE,\n\tpayload: errorMessage\n});\n\n// Statistic\nexport const fetchWeeklyFundRankingStart = (data) => ({\n\ttype: informationConstants.FETCH_WEEKLY_FUND_RANKING_START,\n\tpayload: data\n});\n\nexport const fetchWeeklyFundRankingSuccess = (data) => ({\n\ttype: informationConstants.FETCH_WEEKLY_FUND_RANKING_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchWeeklyFundRankingFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_WEEKLY_FUND_RANKING_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchDrawdownByDateStart = (data) => ({\n\ttype: informationConstants.FETCH_DRAWDOWN_BY_DATE_START,\n\tpayload: data\n});\n\nexport const fetchDrawdownByDateSuccess = (data) => ({\n\ttype: informationConstants.FETCH_DRAWDOWN_BY_DATE_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchDrawdownByDateFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_DRAWDOWN_BY_DATE_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchMaximumDrawdownStart = (data) => ({\n\ttype: informationConstants.FETCH_MAXIMUM_DRAWDOWN_START,\n\tpayload: data\n});\n\nexport const fetchMaximumDrawdownSuccess = (data) => ({\n\ttype: informationConstants.FETCH_MAXIMUM_DRAWDOWN_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchMaximumDrawdownFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_MAXIMUM_DRAWDOWN_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchDrawdownNavGraphStart = (data) => ({\n\ttype: informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_START,\n\tpayload: data\n});\n\nexport const fetchDrawdownNavGraphSuccess = (data) => ({\n\ttype: informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchDrawdownNavGraphFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const changeDrawdownStatisticFilters = (data) => ({\n\ttype: informationConstants.CHANGE_DRAWDOWN_STATISTIC_FILTERS,\n\tpayload: data\n});\n\nexport const changeNavGraphDate = (date) => ({\n\ttype: informationConstants.CHANGE_NAV_GRAPH_DATE,\n\tpayload: date\n});\n\nexport const changeSortedDrawdown = (date) => ({\n\ttype: informationConstants.CHANGE_SORTED_DRAWDOWN,\n\tpayload: date\n});\n\nexport const fetchMonthlyReturnStart = (data) => ({\n\ttype: informationConstants.FETCH_MONTHLY_RETURN_START,\n\tpayload: data\n});\n\nexport const fetchMonthlyReturnSuccess = (data) => ({\n\ttype: informationConstants.FETCH_MONTHLY_RETURN_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchMonthlyReturnFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_MONTHLY_RETURN_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchPriceRangeStart = (data) => ({\n\ttype: informationConstants.FETCH_PRICE_RANGE_START,\n\tpayload: data\n});\n\nexport const fetchPriceRangeSuccess = (data) => ({\n\ttype: informationConstants.FETCH_PRICE_RANGE_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchPriceRangeFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_PRICE_RANGE_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchVolatilitiesStart = (data) => ({\n\ttype: informationConstants.FETCH_VOLATILITIES_START,\n\tpayload: data\n});\n\nexport const fetchVolatilitiesSuccess = (data) => ({\n\ttype: informationConstants.FETCH_VOLATILITIES_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchVolatilitiesFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_VOLATILITIES_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchReturnExpenseRatioStart = (data) => ({\n\ttype: informationConstants.FETCH_RETURN_EXPENSE_RATIO_START,\n\tpayload: data\n});\n\nexport const fetchReturnExpenseRatioSuccess = (data) => ({\n\ttype: informationConstants.FETCH_RETURN_EXPENSE_RATIO_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchReturnExpenseRatioFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_RETURN_EXPENSE_RATIO_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchMonthlyProfitStart = (data) => ({\n\ttype: informationConstants.FETCH_MONTHLY_PROFIT_START,\n\tpayload: data\n});\n\nexport const fetchMonthlyProfitSuccess = (data) => ({\n\ttype: informationConstants.FETCH_MONTHLY_PROFIT_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchMonthlyProfitFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_MONTHLY_PROFIT_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchReturnHistoryStart = (data) => ({\n\ttype: informationConstants.FETCH_RETURN_HISTORY_START,\n\tpayload: data\n});\n\nexport const fetchReturnHistorySuccess = (data) => ({\n\ttype: informationConstants.FETCH_RETURN_HISTORY_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchReturnHistoryFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_RETURN_HISTORY_FAILURE,\n\tpayload: errorMessage\n});\n\n// HistoricalNav\nexport const fetchHistoricalNavStart = (data) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_START,\n\tpayload: data\n});\n\nexport const fetchHistoricalNavSuccess = (data) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchHistoricalNavFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_FAILURE,\n\tpayload: errorMessage\n});\n\n// HistoryNav Graph\nexport const fetchHistoricalNavGraphStart = (data) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_GRAPH_START,\n\tpayload: data\n});\n\nexport const fetchHistoricalNavGraphSuccess = (data) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_GRAPH_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchHistoricalNavGraphFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_GRAPH_FAILURE,\n\tpayload: errorMessage\n});\n\n// Dividend\nexport const fetchDividendStart = (data) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_START,\n\tpayload: data\n});\n\nexport const fetchDividendSuccess = (data) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchDividendFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchDividendGroupByYearStart = (fundId) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_START,\n\tpayload: fundId\n});\n\nexport const fetchDividendGroupByYearSuccess = (data) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchDividendGroupByYearFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchDividendDescriptionStart = (fundId) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_DESCRIPTION_START,\n\tpayload: fundId\n});\n\nexport const fetchDividendDescriptionSuccess = (data) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_DESCRIPTION_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchDividendDescriptionFailure = (errorMessage) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_DESCRIPTION_FAILURE,\n\tpayload: errorMessage\n});\n\n// Change Active Button\nexport const fetchChangeActiveBtn = (index) => ({\n\ttype: informationConstants.FETCH_CHANGE_ACTIVE_BTN,\n\tpayload: index\n});\n\n// Change Page\nexport const changeHistoricalNavPage = (page) => ({\n\ttype: informationConstants.FETCH_HISTORICAL_NAV_CHANGE_PAGE,\n\tpayload: page\n});\n\nexport const changeDividendPage = (page) => ({\n\ttype: informationConstants.FETCH_DIVIDEND_CHANGE_PAGE,\n\tpayload: page\n});\n\n// export const insertScrollPosition = (position) => ({\n// \ttype: informationConstants.INSERT_SCROLL_POSITION,\n// \tpayload: position\n// });","export const searchConstants = {\n FETCH_MAIN_SEARCH_START: 'FETCH_MAIN_SEARCH_START',\n FETCH_MAIN_SEARCH_SUCCESS: 'FETCH_MAIN_SEARCH_SUCCESS',\n FETCH_MAIN_SEARCH_FAILURE: 'FETCH_MAIN_SEARCH_FAILURE',\n CLEAR_MAIN_SEARCH: 'CLEAR_MAIN_SEARCH',\n UPDATE_MAIN_SEARCH: 'UPDATE_MAIN_SEARCH',\n REMOVE_MAIN_SEARCH: 'REMOVE_MAIN_SEARCH',\n\n FETCH_SUBNAV_SEARCH_START: 'FETCH_SUBNAV_SEARCH_START',\n FETCH_SUBNAV_SEARCH_SUCCESS: 'FETCH_SUBNAV_SEARCH_SUCCESS',\n FETCH_SUBNAV_SEARCH_FAILURE: 'FETCH_SUBNAV_SEARCH_FAILURE',\n CLEAR_SUBNAV_SEARCH: 'CLEAR_SUBNAV_SEARCH',\n UPDATE_SUBNAV_SEARCH: 'UPDATE_SUBNAV_SEARCH',\n REMOVE_SUBNAV_SEARCH: 'REMOVE_SUBNAV_SEARCH',\n\n FETCH_SEARCH_FUND_CALENDAR_START: 'FETCH_SEARCH_FUND_CALENDAR_START',\n FETCH_SEARCH_FUND_CALENDAR_SUCCESS: 'FETCH_SEARCH_FUND_CALENDAR_SUCCESS',\n FETCH_SEARCH_FUND_CALENDAR_FAILURE: 'FETCH_SEARCH_FUND_CALENDAR_FAILURE',\n CLEAR_SEARCH_FUND_CALENDAR: 'CLEAR_SEARCH_FUND_CALENDAR',\n UPDATE_SEARCH_FUND_CALENDAR: 'UPDATE_SEARCH_FUND_CALENDAR',\n REMOVE_SEARCH_FUND_CALENDAR: 'REMOVE_SEARCH_FUND_CALENDAR',\n};\n","export const homeConstants = {\n FETCH_BANNERS_START: 'FETCH_BANNERS_START',\n FETCH_BANNERS_SUCCESS: 'FETCH_BANNERS_SUCCESS',\n FETCH_BANNERS_FAILURE: 'FETCH_BANNERS_FAILURE',\n\n FETCH_HIGHLIGHT_FUNDS_START: 'FETCH_HIGHLIGHT_FUNDS_START',\n FETCH_HIGHLIGHT_FUNDS_SUCCESS: 'FETCH_HIGHLIGHT_FUNDS_SUCCESS',\n FETCH_HIGHLIGHT_FUNDS_FAILURE: 'FETCH_HIGHLIGHT_FUNDS_FAILURE',\n\n UPDATE_NAV_FUNDS: 'UPDATE_NAV_FUNDS',\n\n FETCH_NAV_FUNDS_START: 'FETCH_NAV_FUNDS_START',\n FETCH_NAV_FUNDS_SUCCESS: 'FETCH_NAV_FUNDS_SUCCESS',\n FETCH_NAV_FUNDS_FAILURE: 'FETCH_NAV_FUNDS_FAILURE',\n\n FETCH_TOP_SUB_CATEGORIES_START: 'FETCH_TOP_SUB_CATEGORIES_START',\n FETCH_TOP_SUB_CATEGORIES_SUCCESS: 'FETCH_TOP_SUB_CATEGORIES_SUCCESS',\n FETCH_TOP_SUB_CATEGORIES_FAILURE: 'FETCH_TOP_SUB_CATEGORIES_FAILURE',\n\n FETCH_ARTICLES_START: 'FETCH_ARTICLES_START',\n FETCH_ARTICLES_SUCCESS: 'FETCH_ARTICLES_SUCCESS',\n FETCH_ARTICLES_FAILURE: 'FETCH_ARTICLES_FAILURE',\n\n TOGGLE_ARTICLE_MODAL: 'TOGGLE_ARTICLE_MODAL'\n};","export const advanceSearchConstants = {\n UPDATE_ADVANCE_SEARCH_QUERIES: 'UPDATE_ADVANCE_SEARCH_QUERIES',\n UPDATE_DEFAULT_QUERIES_ADVANCE_SEARCH: 'UPDATE_DEFAULT_QUERIES_ADVANCE_SEARCH',\n RESET_QUERIES_ADVANCE_SEARCH: 'RESET_QUERIES_ADVANCE_SEARCH',\n \n FETCH_ADVANCE_SEARCH_FILTERS_START: 'FETCH_ADVANCE_SEARCH_FILTERS_START',\n FETCH_ADVANCE_SEARCH_FILTERS_SUCCESS: 'FETCH_ADVANCE_SEARCH_FILTERS_SUCCESS',\n FETCH_ADVANCE_SEARCH_FILTERS_FAILURE: 'FETCH_ADVANCE_SEARCH_FILTERS_FAILURE',\n\n FETCH_ADVANCE_SEARCH_START: 'FETCH_ADVANCE_SEARCH_START',\n FETCH_ADVANCE_SEARCH_SUCCESS: 'FETCH_ADVANCE_SEARCH_SUCCESS',\n FETCH_ADVANCE_SEARCH_FAILURE: 'FETCH_ADVANCE_SEARCH_FAILURE',\n\n UPDATE_NAV_DATE_ADVANCE_SEARCH: 'UPDATE_NAV_DATE_ADVANCE_SEARCH',\n \n FETCH_NAV_ADVANCE_SEARCH_START: 'FETCH_NAV_ADVANCE_SEARCH_START',\n FETCH_NAV_ADVANCE_SEARCH_SUCCESS: 'FETCH_NAV_ADVANCE_SEARCH_SUCCESS',\n FETCH_NAV_ADVANCE_SEARCH_FAILURE: 'FETCH_NAV_ADVANCE_SEARCH_FAILURE',\n\n UPDATE_CURRENT_PAGE_SEARCH: 'UPDATE_CURRENT_PAGE_SEARCH',\n\n UPDATE_TABLE_COLUMN: 'UPDATE_TABLE_COLUMN'\n};\n","export const monthlyReportConstants = {\n FETCH_MONTHLY_REPORT_START: 'FETCH_MONTHLY_REPORT_START',\n FETCH_MONTHLY_REPORT_SUCCESS: 'FETCH_MONTHLY_REPORT_SUCCESS',\n FETCH_MONTHLY_REPORT_FAILURE: 'FETCH_MONTHLY_REPORT_FAILURE',\n\n FETCH_MONTHLY_REPORT_CHART_START: 'FETCH_MONTHLY_REPORT_CHART_START',\n FETCH_MONTHLY_REPORT_CHART_SUCCESS: 'FETCH_MONTHLY_REPORT_CHART_SUCCESS',\n FETCH_MONTHLY_REPORT_CHART_FAILURE: 'FETCH_MONTHLY_REPORT_CHART_FAILURE',\n\n SET_MONTHLY_REPORT_SHARED_QUERIES: 'SET_MONTHLY_REPORT_SHARED_QUERIES',\n SET_MONTHLY_REPORT_TABLE_QUERIES: 'SET_MONTHLY_REPORT_TABLE_QUERIES',\n CLEAR_MONTHLY_REPORT_TABLE_RESPONSES: 'CLEAR_MONTHLY_REPORT_TABLE_RESPONSES',\n CLEAR_MONTHLY_REPORT_TABLE_QUERIES: 'CLEAR_MONTHLY_REPORT_TABLE_QUERIES',\n\n CLEAR_MONTHLY_REPORT_CHART_QUERIES: 'CLEAR_MONTHLY_REPORT_CHART_QUERIES',\n CLEAR_MONTHLY_REPORT_SHARED_QUERIES: 'CLEAR_MONTHLY_REPORT_SHARED_QUERIES',\n\n CLEAR_MONTHLY_REPORT_QUERIES_START: 'CLEAR_MONTHLY_REPORT_QUERIES_START'\n};\n","import { useHistory } from 'react-router-dom';\n\nexport const setIsFetching = (state, defaultData) => {\n const result = {\n ...state,\n isFetching: true,\n };\n\n if (defaultData !== undefined) {\n result['data'] = defaultData;\n }\n\n return result;\n};\n\nexport const resetResponseDataObject = (state, error) => {\n const result = {\n ...state,\n isFetching: false,\n data: {},\n errorMessage: error\n };\n\n return result;\n};\n\nexport const resetResponseDataArrays = (state, error) => {\n const result = {\n ...state,\n isFetching: false,\n data: [],\n errorMessage: error\n };\n\n return result;\n};\n\nexport const filterResponseData = (state, data) => {\n const result = {\n ...state,\n isFetching: false,\n data: data,\n errorMessage: null\n };\n\n return result;\n};\n\nexport const setErrorResponseData = (state, error) => {\n const result = {\n ...state,\n data: [],\n isFetching: false,\n errorMessage: error\n };\n\n return result;\n};\n\nexport const transformDisplayName = (item, type) => {\n let result = item;\n\n if (item && type) {\n if (type === 'YEAR') {\n result = `พศ. ${item}`\n } else if (type === 'ACCOUNT_TYPE') {\n result = item.toUpperCase() === 'O'\n ? 'OMNIBUS'\n : item.toUpperCase() === 'S'\n ? 'SELLING AGENT'\n : item\n }\n }\n\n return result;\n}\n\nexport const baseSort = (item1, item2, sortType) => {\n\tswitch (sortType) {\n\t\tcase 'a':\n\t\t\tif (item1 < item2) {\n\t\t\t\treturn -1;\n\t\t\t} else if (item2 < item1) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\tcase 'd':\n\t\t\tif (item1 > item2) {\n\t\t\t\treturn -1;\n\t\t\t} else if (item2 > item1) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\tdefault:\n\t\t\treturn 0;\n\t}\n}\n\nexport const groupItemsByAttr = (items, groupBy) => {\n if (!items || !items.length) return {};\n\n return items.reduce((prev, target) => {\n if (!prev.hasOwnProperty(target[groupBy])) {\n prev[target[groupBy]] = [target];\n } else {\n prev[target[groupBy]].push(target);\n }\n return prev;\n }, {});\n}\n\nexport const getScrollPosition = (element) => {\n if (typeof window === `undefined`) return { x: 0, y: 0 };\n\n const target = element ?? document.querySelector('div#root > .cns-wrapper');\n const position = target.getBoundingClientRect();\n\n return { x: target.scrollLeft ?? position.left, y: target.scrollTop ?? position.top };\n}\n\nexport const setScrollPosition = (value, scrollType, element) => {\n if (typeof window !== `undefined`) {\n const target = element ?? document.querySelector('div#root > .cns-wrapper');\n target.scrollTo(scrollType === 'x' ? {left: value, behavior: 'smooth'} : {top: value, behavior: 'smooth'});\n }\n}\n\nexport const switchOrderNumberRegEx = /\\d+[BS]/;\nexport const onlyNumberRegEx = /[^0-9.]/g;\n\nexport const useOpenWebView = () => {\n const history = useHistory()\n return (url) => {\n if(!url) return\n history.push(`/main/web_view?url=${encodeURIComponent(url)}`)\n }\n}","import axios_nomura from './axios-nomura.services';\n\n// Search Fund\nexport const fetchFundSearch = async (body) => {\n return await axios_nomura.post(`api/v1/funds/search`, body);\n};\n\n// Portfolio info\nexport const fetchPortfolioInformation = async (fundId) => {\n\treturn await axios_nomura.get(`/api/v1/funds/${fundId}/portfolio`);\n};\n\n// Fund Info\nexport const fetchFundInfo = async (fundId) => {\n\treturn await axios_nomura.get(`api/v1/funds/${fundId}`);\n};\n\nexport const fetchTradingInformation = async (fundId) => {\n\treturn await axios_nomura.get(`api/v1/funds/${fundId}/trading_information`);\n};\n\nexport const fetchFundAverageRating = async (fundId) => {\n\treturn await axios_nomura.get(`api/v1/funds/${fundId}/average_rating`);\n};\n\nexport const getUserFundVote = async (fundId) => {\n\treturn await axios_nomura.get(`api/v1/funds/${fundId}/vote`);\n};\n\nexport const voteFundAverageRating = async (data) => { //postUserFundVote\n\treturn await axios_nomura.post(`api/v1/funds/${data.fundId}/vote`, { rating: parseInt(data.rating)});\n};\n\n// Port Info\nexport const fetchPortChartByFundIdAndChartType = async (data) => {\n\treturn await axios_nomura.get(`api/v1/funds/${data.fundId}/top_holding`, { params: { holdingType: data.chartType } });\n};\n\nexport const fetchPortByFundId = async (fundId) => {\n\treturn await axios_nomura.get(`/api/v1/funds/${fundId}/portfolio`);\n};\n\n// Statistic\nexport const fetchDrawdownByDate = async (data) => {\n\treturn await axios_nomura.get(`api/v1/statistics/${data.fundId}/drawdowns`, { params: { start: data.startDate ?? '', end: data.endDate ?? '' }});\n};\n\nexport const fetchMaximumDrawdown = async (fundCode) => {\n\treturn await axios_nomura.get(`api/v1/statistics/${fundCode}/max_drawdown`);\n};\n\nexport const fetchMonthlyReturn = async (fundCode) => {\n\treturn await axios_nomura.get(`api/v1/statistics/${fundCode}/monthly_return`);\n};\n\nexport const fetchPriceRange = async (fundCode) => {\n\treturn await axios_nomura.get(`api/v1/statistics/${fundCode}/price_range`);\n};\n\nexport const fetchVolatilities = async (data) => {\n\treturn await axios_nomura.get(`api/v1/statistics/${data.fundId}/volatility`, {params: {start: data.startAt ?? '', end: data.endAt ?? ''}});\n};\n\nexport const fetchReturnExpenseRatio = async (fundCode) => {\n\treturn await axios_nomura.get(`/api/v1/statistics/${fundCode}/expense_ratio`);\n};\n\nexport const fetchMonthlyProfit = async (fundCode) => {\n\treturn await axios_nomura.get(`/api/v1/statistics/${fundCode}/profit`);\n};\n\nexport const fetchReturnHistory = async (fundCode) => {\n\treturn await axios_nomura.get(`/api/v1/statistics/${fundCode}/previous_return`);\n};\n\nexport const fetchWeeklyFundRanking = async (data) => {\n\treturn await axios_nomura.get(`/api/v1/statistics/${data.fundId}/rank?startDate=${data.startDate ?? ''}&endDate=${data.endDate ?? ''}`);\n};\n\n// Graph Info\nexport const fetchHistoricalNav = async (data) => {\n\treturn await axios_nomura.get(`api/v1/nav/${data.fundId}`, { params: { page: data.page, pageSize: data.pageSize , startDate: data.startDate ?? '', endDate: data.endDate ?? '' } });\n};\n\n// Historical Nav\nexport const fetchHistoricalNavGraph = async (data) => {\n\treturn await axios_nomura.get(`api/v1/nav/${data.fundId}/graph`, { params: { startDate: data.startDate ?? '', endDate: data.endDate ?? '', mode: data.mode } });\n};\n\n// Dividend\nexport const fetchDividend = async (data) => {\n\treturn await axios_nomura.get(`api/v1/dividend/${data.fundId}`, { params: { startDate: data.startDate ?? '', endDate: data.endDate ?? '', page: data.page ?? 1 } });\n};\n\nexport const fetchDividendDescription = async (fundId) => {\n\treturn await axios_nomura.get(`api/v1/dividend/${fundId}`);\n};\n\nexport const fetchDividendGroupByYear = async (fundId) => {\n\treturn await axios_nomura.get(`api/v1/dividend/${fundId}/group`);\n};\n\nexport const fetchNavChartByDate = async (data) => {\n\treturn await axios_nomura.get(`api/v1/nav/${data.fundCode}`, { params: { startDate: data.startDate ?? '', endDate: data.endDate ?? '' } });\n};\n","import axios_nomura from \"./axios-nomura.services\";\n\n// Portfolio Page\nexport const fetchPortfolioGroups = async (data) => {\n let convertDataToJson = JSON.stringify(data);\n return await axios_nomura.post(`api/v1/portfolios/groups`, convertDataToJson);\n};\n\nexport const fetchNavPortfolios = async (data) => {\n let convertDataToJson = JSON.stringify(data);\n return await axios_nomura.post(`api/v1/nav/portfolios`, convertDataToJson);\n};\n\n// Portfolio Statistics\nexport const fetchPreviousReturnByAccount = async (accountNumber) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/previous_return`\n );\n};\nexport const fetchPreviousReturnGraphByAccount = async (\n accountNumber,\n data\n) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/previous_return/graph`,\n {\n params: {\n startAt: data.startAt ?? \"\",\n endAt: data.endAt ?? \"\",\n dateType: data.dateType ?? \"\",\n },\n }\n );\n};\nexport const fetchAumGraphByAccount = async (accountNumber, data) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/aum/graph`,\n {\n params: {\n startAt: data.startAt ?? \"\",\n endAt: data.endAt ?? \"\",\n dateType: data.dateType ?? \"\",\n },\n }\n );\n};\nexport const fetchMonthlyReturnByAccount = async (accountNumber) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/monthly_return`\n );\n};\nexport const fetchProfitByAccount = async (accountNumber) => {\n return await axios_nomura.get(`api/v1/portfolios/${accountNumber}/profit`);\n};\nexport const fetchVolatilityByAccount = async (accountNumber) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/volatility`\n );\n};\nexport const fetchMaxDrawdownByAccount = async (accountNumber) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/max_drawdown`\n );\n};\nexport const fetchDrawdownByAccount = async (accountNumber, data) => {\n return await axios_nomura.get(`api/v1/portfolios/${accountNumber}/drawdown`, {\n params: { startAt: data.startAt ?? \"\", endAt: data.endAt ?? \"\" },\n });\n};\nexport const fetchLastDateOfAccountNumber = async (accountNumber) => {\n return await axios_nomura.get(\n `api/v1/portfolios/${accountNumber}/latest_data_date`\n );\n};\n\n// Order Page\nexport const fetchOrders = async (data) => {\n return await axios_nomura.get(`api/v1/orders`, { params: data });\n};\n\nexport const uploadOrderDocument = async (orderNumber, data) => {\n let formData = new FormData();\n formData.append(\"file\", data[0]);\n return await axios_nomura.post(\n `api/v1/orders/${orderNumber}/upload`,\n formData,\n {\n headers: { \"Content-Type\": \"multipart/form-data\" },\n }\n );\n};\n\nexport const deleteOrderRequestFund = async (data) => {\n return await axios_nomura.post(`api/v1/orders/${data.accountNumber}/cancel`, {\n number: data.number,\n fundCode: data.fundCode,\n });\n};\n\nexport const getOrderAttachment = async (orderNumber) => {\n return await axios_nomura.get(`api/v1/orders/${orderNumber}/attachment`, {\n responseType: \"blob\",\n });\n};\n\n// Lot Page\nexport const fetchLots = async (data) => {\n return await axios_nomura.get(`api/v1/portfolios/lots`, { params: data });\n};\n\n// Book Page\nexport const fetchBooks = async (data) => {\n // return await axios_nomura.get(`api/v2/portfolios/books`, {params: data});\n return await axios_nomura.post(`api/v1/portfolios/books`, data);\n};\n\n// Histories Page\nexport const fetchHistories = async (data) => {\n return await axios_nomura.get(`api/v1/portfolios/trades`, {\n params: {\n accountNumbers: data.accountNumbers,\n fundCodes: data.fundCodes,\n startedAt: data.startedAt ?? \"\",\n endedAt: data.endedAt ?? \"\",\n sortBy: data.sortBy,\n sortType: data.sortType,\n status: data.status,\n isRemarkExists: data.remark,\n },\n });\n};\n\n// DCAs Page\nexport const fetchDCAs = async (payload) => {\n return await axios_nomura.get(`api/v1/portfolios/dca`, { params: payload });\n};\n\nexport const deleteDCAOrderRequestFund = async (data) => {\n return await axios_nomura.post(\n `api/v1/orders/${data.accountNumber}/cancel_dca`,\n {\n number: data.number,\n fundCode: data.fundCode,\n }\n );\n};\n\n// Dividend Page\nexport const fetchDividends = async (data) => {\n return await axios_nomura.get(`api/v1/portfolios/dividends`, {\n params: {\n accountNumbers: data.accountNumbers,\n startedAt: data.startedAt ?? \"\",\n endedAt: data.endedAt ?? \"\",\n fundIds: data.fundIds,\n sortBy: data.sortBy,\n sortType: data.sortType,\n },\n });\n};\n\n// Get Actived Funds By Accounts\nexport const fetchActivedFunds = async (accountNumbers) => {\n return await axios_nomura.get(`api/v1/portfolios/funds?`, {\n params: { accountNumbers: accountNumbers },\n });\n};\n\n// Get All Funds By Accoutns\nexport const fetchAllFunds = async (accountNumbers) => {\n return await axios_nomura.get(`api/v1/accounts/funds?`, {\n params: { accountNumbers: accountNumbers },\n });\n};\n\n// Get All Fund Codes\nexport const fetchAllFundCodes = async () => {\n return await axios_nomura.get(`api/v1/funds?`);\n};\n","import { fundRankingConstants } from '../_constants/fund-ranking.constants';\n\n// Set Page\nexport const updatePage = (page) => ({\n\ttype: fundRankingConstants.SET_CURRENT_FUND_RANKING_PAGE,\n payload: page\n});\n\nexport const setTotalPage = (page) => ({\n\ttype: fundRankingConstants.SET_TOTAL_RANKING_PAGE,\n payload: page\n});\n\n// Get Rank Fund\nexport const setFundIdRank = (fundId) => ({\n type: fundRankingConstants.SET_FUND_ID_RANK,\n payload: fundId\n});\n\nexport const fetchFundRankStart = (data) => ({\n type: fundRankingConstants.FETCH_FUND_RANK_START,\n payload: data\n});\n\nexport const fetchFundRankSuccess = (data) => ({\n type: fundRankingConstants.FETCH_FUND_RANK_SUCCESS,\n payload: data\n});\n\nexport const fetchFundRankFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_FUND_RANK_FAILURE,\n payload: errorMessage\n});\n\n// Get Search Filters\nexport const fetchRankingSearchFiltersStart = () => ({\n\ttype: fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_START,\n});\n\nexport const fetchRankingSearchFiltersSuccess = (data) => ({\n\ttype: fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_SUCCESS,\n payload: data\n});\n\nexport const fetchRankingSearchFiltersFailure = (errorMessage) => ({\n\ttype: fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_FAILURE,\n payload: errorMessage\n});\n\n// Get Search fund\nexport const fetchRankingsStart = (body) => ({\n type: fundRankingConstants.FETCH_RANKINGS_START,\n payload: body\n});\n\nexport const fetchRankingsSuccess = (rankings) => ({\n type: fundRankingConstants.FETCH_RANKINGS_SUCCESS,\n payload: rankings\n});\n\nexport const fetchRankingsFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_RANKINGS_FAILURE,\n payload: errorMessage\n});\n\n// Highlight Funds\nexport const setHighlightFundPeriod = (period) => ({\n type: fundRankingConstants.SET_HIGHLIGHT_FUND_PERIOD,\n payload: period\n});\n\nexport const fetchHighlightFundStart = (fundCodes) => ({\n type: fundRankingConstants.FETCH_HIGHLIGHT_FUND_START,\n payload: fundCodes\n});\n\nexport const fetchHighlightFundSuccess = (nav) => ({\n type: fundRankingConstants.FETCH_HIGHLIGHT_FUND_SUCCESS,\n payload: nav\n});\n\nexport const fetchHighlightFundFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_HIGHLIGHT_FUND_FAILURE,\n payload: errorMessage\n});\n\n// Nav Ranking\nexport const updateNavDateChart = (dateType) => ({\n\ttype: fundRankingConstants.UPDATE_NAV_DATE_FUND_RANKING,\n\tpayload: dateType\n});\n\nexport const setNavTypeRanking = (navType) => ({\n type: fundRankingConstants.SET_NAV_TYPE_RANKING,\n payload: navType\n})\n\nexport const fetchNavRankingsStart = (fundCodes) => ({\n type: fundRankingConstants.FETCH_NAV_RANKINGS_START,\n payload: fundCodes\n});\n\nexport const fetchNavRankingsSuccess = (nav) => ({\n type: fundRankingConstants.FETCH_NAV_RANKINGS_SUCCESS,\n payload: nav\n});\n\nexport const fetchNavRankingsFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_NAV_RANKINGS_FAILURE,\n payload: errorMessage\n});\n\n// Get Default Categories\nexport const fetchCategoriesStart = () => ({\n type: fundRankingConstants.FETCH_CATEGORIES_START\n});\n\nexport const fetchCategoriesSuccess = (categories) => ({\n type: fundRankingConstants.FETCH_CATEGORIES_SUCCESS,\n payload: categories\n});\n\nexport const fetchCategoriesFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_CATEGORIES_FAILURE,\n payload: errorMessage\n});\n\nexport const updateCategories = (categories) => ({\n type: fundRankingConstants.UPDATE_CATEGORIES,\n payload: categories\n});\n\nexport const appendCategory = (category) => ({\n type: fundRankingConstants.APPEND_CATEGORY,\n payload: category\n});\n\nexport const removeCategory = (category) => ({\n type: fundRankingConstants.REMOVE_CATEGORY,\n payload: category\n});\n\n// Get User Categories\nexport const fetchUserCategoriesStart = () => ({\n type: fundRankingConstants.FETCH_USER_CATEGORIES_START\n});\n\nexport const fetchUserCategoriesSuccess = (userCategories) => ({\n type: fundRankingConstants.FETCH_USER_CATEGORIES_SUCCESS,\n payload: userCategories\n});\n\nexport const fetchUserCategoriesFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_USER_CATEGORIES_FAILURE,\n payload: errorMessage\n});\n\nexport const resetUserCategories = () => ({\n type: fundRankingConstants.RESET_USER_CATEGORIES,\n});\n\nexport const updateUserCategories = (payload) => ({\n type: fundRankingConstants.UPDATE_USER_CATEGORIES,\n payload\n});\n\nexport const fetchRankStart = (fundId) => ({\n type: fundRankingConstants.FETCH_RANK_START,\n payload: fundId\n});\n\nexport const fetchRankSuccess = (data) => ({\n type: fundRankingConstants.FETCH_RANK_SUCCESS,\n payload: data\n});\n\nexport const fetchRankFailure = (errorMessage) => ({\n type: fundRankingConstants.FETCH_RANK_FAILURE,\n payload: errorMessage\n});\n\nexport const saveUserCategoriesStart = (data) => ({\n type: fundRankingConstants.SAVE_USER_CATEGORIES_START,\n payload: data\n});\n\nexport const saveUserCategoriesSuccess = () => ({\n type: fundRankingConstants.SAVE_USER_CATEGORIES_SUCCESS\n});\n\nexport const saveUserCategoriesFailure = () => ({\n type: fundRankingConstants.SAVE_USER_CATEGORIES_FAILURE\n});\n\n// Set Queries\nexport const updateFundRankingQueries = (data) => ({\n type: fundRankingConstants.UPDATE_FUND_RANKING_QUERIES,\n payload: data\n});\n\nexport const resetFundRankingQueries = () => ({\n\ttype: fundRankingConstants.RESET_FUND_RANKING_QUERIES\n});\n\nexport const setDefaultFundRankingQueries = (data) => ({\n\ttype: fundRankingConstants.SET_DEFAULT_FUND_RANKING_QUERIES,\n payload: data\n});\n\nexport const updateTableColumns = (columns) => ({\n\ttype: fundRankingConstants.UPDATE_FUND_RANKING_TABLE_COLUMNS,\n\tpayload: columns\n});","export const calendarConstants = {\n // Search calendar by year\n FETCH_CALENDAR_BY_YEAR_START: 'FETCH_CALENDAR_BY_YEAR_START',\n FETCH_CALENDAR_BY_YEAR_SUCCESS: 'FETCH_CALENDAR_BY_YEAR_SUCCESS',\n FETCH_CALENDAR_BY_YEAR_FAILURE: 'FETCH_CALENDAR_BY_YEAR_FAILURE',\n UPDATE_CALENDAR_YEAR: 'UPDATE_CALENDAR_YEAR',\n UPDATE_USER_FUND_CALENDAR: 'UPDATE_USER_FUND_CALENDAR',\n\n // Search fund calendar by date\n FETCH_CALENDAR_BY_DATE_START: 'FETCH_CALENDAR_BY_DATE_START',\n FETCH_CALENDAR_BY_DATE_SUCCESS: 'FETCH_CALENDAR_BY_DATE_SUCCESS',\n FETCH_CALENDAR_BY_DATE_FAILURE: 'FETCH_CALENDAR_BY_DATE_FAILURE',\n UPDATE_USER_CALENDAR_DATE: 'UPDATE_USER_CALENDAR_DATE'\n};\n","import { add, sub } from \"date-fns\";\n\n// Function cookies handler.\nexport const getCookie = (name) => {\n let cookie = {};\n document.cookie.split(';').forEach(function(el) {\n let [k,v] = el.split('=');\n cookie[k.trim()] = v;\n })\n return cookie[name];\n};\n\nexport function clearCookies(names) {\n if (names?.length > 0) {\n for(let name of names) {\n setCookie(name, '', { 'max-age': -1 })\n }\n } else {\n setCookie(names, '', { 'max-age': -1 })\n }\n\n return;\n}\n\nexport function setCookie(name, value, options = {}) {\n options = {\n path: '/',\n // add other defaults here if necessary\n ...options\n };\n\n if (options.expires instanceof Date) {\n options.expires = options.expires.toUTCString();\n }\n\n let updatedCookie = encodeURIComponent(name) + \"=\" + encodeURIComponent(value);\n\n for (let optionKey in options) {\n updatedCookie += \"; \" + optionKey;\n let optionValue = options[optionKey];\n if (optionValue !== true) {\n updatedCookie += \"=\" + optionValue;\n }\n }\n\n document.cookie = updatedCookie;\n return;\n}\n\n","export const rankingFetching = (ranking) => {\n const result = {\n ...ranking,\n isFetching: true,\n };\n return result;\n};\n\nexport const rankingData = (ranking, data) => {\n const result = {\n ...ranking,\n rankings: data,\n isFetching: false,\n };\n return result;\n};\n\nexport const rankingError = (ranking, error) => {\n const result = {\n ...ranking,\n errorMessage: error,\n isFetching: false,\n };\n return result;\n};\n\nexport const categoryFetching = (category) => {\n const result = {\n ...category,\n isFetching: true,\n };\n return result;\n};\n\nexport const categoryData = (category, data) => {\n const result = {\n ...category,\n categories: data,\n isFetching: false,\n };\n return result;\n};\n\nexport const categoryError = (category, error) => {\n const result = {\n ...category,\n errorMessage: error,\n isFetching: false,\n };\n return result;\n};\n\nexport const appendCategory = (category, categories) => {\n let tempList = categories.filter(\n (item) => item.categoryCode !== category.categoryCode\n );\n tempList.push(category);\n return tempList;\n};\n\nexport const removeCategory = (category, categories) => {\n let tempList = categories.filter(\n (item) => item.categoryCode !== category.categoryCode\n );\n return tempList;\n};\n\nexport const userCategoryFetching = (userCategory) => {\n const result = {\n ...userCategory,\n isFetching: true,\n };\n return result;\n};\n\nexport const userCategoryData = (userCategory, data) => {\n const result = {\n ...userCategory,\n userCategories: data,\n isFetching: false,\n };\n return result;\n};\n\nexport const userCategoryError = (userCategory, error) => {\n const result = {\n ...userCategory,\n userCategories: [],\n errorMessage: error,\n isFetching: false,\n };\n return result;\n};\n\nexport const queryData = (query, data) => {\n const result = {\n ...query,\n data,\n };\n return result;\n};\n\nexport const saveUserCategories = (categories) => {\n const result = categories.map((element, idx) => ({\n categoryCode: element.categoryCode,\n subCategory: element.subCategory,\n sequence: parseInt(idx + 1),\n color: element.color,\n }));\n\n return result;\n};\n\nexport const pullUserCategories = (data, main) => {\n let categories = [];\n main.forEach((element) => {\n categories.push.apply(categories, element.category);\n });\n\n const result = data.map((element, idx) => {\n const category = categories.filter(\n (item) => item.categoryCode === element.categoryCode\n )[0];\n return {\n subCategory: category.subCategory,\n categoryCode: category.categoryCode,\n sequence: idx + 1,\n color: element.color,\n };\n });\n return result;\n};\n\n// export const checkExistedCategory = (categoryCode, main) => {\n// let categories = [];\n// main.categoryList.forEach((element) => {\n// categories.push.apply(categories, element.category);\n// });\n// main.customCategoryList.forEach((element) => {\n// categories.push({\n// subCategory: element.customCategoryName,\n// categoryCode: element.customCategoryCode\n// });\n// });\n// if (categories.some((j) => j.categoryCode === categoryCode)) {\n// return true;\n// } else {\n// return false;\n// }\n// };\n\nexport const checkExistedCategory = (categoryCode, userCategories) => {\n if (userCategories.some((j) => j.categoryCode === categoryCode)) {\n let selectedCategory = userCategories.find(\n (j) => j.categoryCode === categoryCode\n );\n return selectedCategory.sequence;\n } else {\n return false;\n }\n};\n\n// Retunr Sequence and boolean\n// export const checkedCategory = (categoryCode, userCategories) => {\n// let fund = userCategories.filter((j) => j.categoryCode === categoryCode);\n// if (fund.length > 0) {\n// return {\n// value: true,\n// sequences: fund[0].sequences\n// };\n// } else {\n// return false;\n// }\n// };\n\nexport const saveFavCategories = (userCategories) => {\n return userCategories.map((item) => {\n return {\n categoryCode: item.categoryCode,\n subCategory: item.subCategory,\n sequence: item.sequence,\n color: item.color,\n };\n });\n};\n\nexport const setIsFetching = (state) => {\n const result = {\n ...state,\n isFetching: true,\n };\n return result;\n};\n\nexport const filterDataResult = (state, data) => {\n const result = {\n ...state,\n isFetching: false,\n data: data ?? {},\n errorMessage: null,\n };\n return result;\n};\n\nexport const resetDataResult = (state, message) => {\n const result = {\n ...state,\n isFetching: false,\n data: [],\n errorMessage: message,\n };\n return result;\n};\n\nexport const resetDataResultToObject = (state, message) => {\n const result = {\n ...state,\n isFetching: false,\n data: {},\n errorMessage: message,\n };\n return result;\n};\n\nexport const setDefaultQueriesFundRanking = (state, data) => {\n const result = {\n ...state,\n categoryCode: state.categoryCode.length > 0 ? state.categoryCode : [],\n dividendPolicy: data.dividendPolicy[0].code,\n fundTypes:\n state.fundTypes.length > 0\n ? state.fundTypes\n : data.fundTypes.map((item) => item.code),\n investorRatings: data.investorRatings.map((item) => item.code),\n purchaseFee: data.purchaseFee[0].code,\n currencyPolicy: data.currencyPolicy[0].code,\n riskLevels: data.riskLevels.map((item) => item.code),\n morningStarRatings: data.morningStarRatings.map((item) => item.code),\n company: data.company.map((item) => item.id),\n };\n return result;\n};\n","export const ipoConstants = {\n FETCH_IPOS_START: 'FETCH_IPOS_START',\n FETCH_IPOS_SUCCESS: 'FETCH_IPOS_SUCCESS',\n FETCH_IPOS_FAILURE: 'FETCH_IPOS_FAILURE',\n\n TOGGLE_DETAIL_MODAL: 'TOGGLE_DETAIL_MODAL',\n SET_CURRENT_DETAIL_MODAL: 'SET_CURRENT_DETAIL_MODAL',\n\n UPDATE_IPO_QUERIES: 'UPDATE_IPO_QUERIES'\n};\n","import { orderRequestConstants } from '../_constants/order-request.constants';\n\n// Toggled Buy-Sell Modals Action.\nexport const toggleOrderRequestModal = () => ({\n type: orderRequestConstants.TOGGLED_ORDER_FUNDS_REQUEST_MODAL\n});\nexport const clearErrorMessage = () => ({\n type: orderRequestConstants.CLEAR_ERROR_MESSAGE\n});\n\n// Updated Active Tab (buy, sell, switch).\nexport const updateActiveTabOrderRequestModal = (tab) => ({\n type: orderRequestConstants.UPDATE_ACTIVE_TAB_ORDER_FUNDS_REQUEST_MODAL,\n payload: tab\n});\n\n// Updated Fund Id to order request.\nexport const updateNavigationFundToOrderRequestModal = (fund) => ({\n type: orderRequestConstants.UPDATE_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL,\n payload: fund\n});\nexport const clearNavigationFundToOrderRequestModal = () => ({\n type: orderRequestConstants.CLEAR_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL,\n});\n\n// Get Fund Information (Buy, Sell, Switch-Out).\nexport const fetchBuyFundInfoStart = (data) => ({\n type: orderRequestConstants.FETCH_BUY_FUND_INFO_START,\n payload: data\n});\nexport const fetchSellFundInfoStart = (data) => ({\n type: orderRequestConstants.FETCH_SELL_FUND_INFO_START,\n payload: data\n});\nexport const updateFundInfo = (data) => ({\n type: orderRequestConstants.UPDATE_FUND_INFO,\n payload: data\n});\nexport const clearFundInfo = () => ({\n type: orderRequestConstants.CLEAR_FUND_INFO\n});\n\n// Fund Information 2 (Switch-In).\nexport const fetchSwitchFundInfoStart = (data) => ({\n type: orderRequestConstants.FETCH_SWITCH_FUND_INFO_START,\n payload: data\n});\nexport const updateFundInfo2 = (data) => ({\n type: orderRequestConstants.UPDATE_FUNDS_INFO_2,\n payload: data\n});\nexport const clearSearchFundInfo2 = () => ({\n type: orderRequestConstants.CLEAR_FUND_INFO_2\n});\n\n// Checked Fund able to order. (Buy, Switch).\nexport const clearCheckedFundAble = () => ({\n type: orderRequestConstants.CLEAR_CHECKED_FUND_ABLE\n});\nexport const checkedBuyableFundStart = (data) => ({\n type: orderRequestConstants.CHECKED_BUYABLE_FUND_START,\n payload: data\n});\nexport const checkedSellableFundStart = (data) => ({\n type: orderRequestConstants.CHECKED_SELLABLE_FUND_START,\n payload: data\n});\nexport const checkedSwitchableFundStart = (data) => ({\n type: orderRequestConstants.CHECKED_SWITCHABLE_FUND_START,\n payload: data\n});\nexport const checkedFundAbleToOrderSuccess = (data) => ({\n type: orderRequestConstants.CHECKED_FUND_ABLE_TO_ORDER_SUCCESS,\n payload: data\n});\nexport const checkedFundAbleToOrderFailure = (errorMessage) => ({\n type: orderRequestConstants.CHECKED_FUND_ABLE_TO_ORDER_FAILURE,\n payload: errorMessage\n});\n\n// Confirmed Order Fund.\nexport const confirmOrderFundStart = (data) => ({\n type: orderRequestConstants.CONFIRM_ORDER_FUND_START,\n payload: data\n});\nexport const confirmOrderFundSuccess = (data) => ({\n type: orderRequestConstants.CONFIRM_ORDER_FUND_SUCCESS,\n payload: data\n});\nexport const confirmOrderFundFailure = (data) => ({\n type: orderRequestConstants.CONFIRM_ORDER_FUND_FAILURE,\n payload: data\n});\nexport const resetConfirmOrderFund = () => ({\n type: orderRequestConstants.RESET_CONFIRM_ORDER_FUND\n});\n\n// SEARCH FUND INFORMATION\nexport const clearSearchFundInfo = () => ({\n type: orderRequestConstants.CLEAR_SEARCH_FUNDS_INFO\n});\nexport const updateSearchFundInfo = (searchText) => ({\n type: orderRequestConstants.UPDATE_SEARCH_FUNDS_INFO,\n payload: searchText\n});\nexport const removeSearchFundInfo = () => ({\n type: orderRequestConstants.REMOVE_SEARCH_FUNDS_INFO\n});\n\n// PORTIFOLIOS SEARCH\nexport const updateSearchPortfolios = (searchText) => ({\n type: orderRequestConstants.UPDATE_SEARCH_PORTFOLIOS,\n payload: searchText\n});\nexport const toggleModalMessage = () => ({\n type: orderRequestConstants.TOGGLE_MODAL_MESSAGE\n});\n\n// FORM\nexport const updateLatestPlan = (data) => ({\n type: orderRequestConstants.UPDATE_LATEST_PLAN,\n payload: data\n});\nexport const clearLatestPlan = () => ({\n type: orderRequestConstants.CLEAR_LATEST_PLAN\n});\nexport const updateLatestSettleDate = (data) => {\n console.log(data);\n return {\n type: orderRequestConstants.UPDATE_LATEST_SETTLE_DATE,\n payload: data\n}};","import { favoriteConstants } from '../_constants';\n\n// Favorite Funds\nexport const updateFavoriteQueries = (queries) => ({\n type: favoriteConstants.UPDATE_FAVORITE_FUNDS_QUERIES,\n payload: queries\n});\n\nexport const updateFavoriteTableColumns = (columns) => ({\n type: favoriteConstants.UPDATE_FAVORITE_FUNDS_TABLE_COLUMNS,\n payload: columns\n});\n\nexport const updateLocalFavoriteFunds = (data) => ({\n type: favoriteConstants.UPDATE_LOCAL_FAVORITE_FUNDS,\n payload: data\n});\n\nexport const addFavoriteFund = (data) => ({\n type: favoriteConstants.ADD_FAVORITE_FUND,\n payload: data\n});\n\nexport const deleteFavoriteFund = (data) => ({\n type: favoriteConstants.DELETE_FAVORITE_FUND,\n payload: data\n});\n\nexport const putFavoriteFunds = (data) => ({\n type: favoriteConstants.PUT_FAVORITE_FUNDS,\n payload: data\n});\n\nexport const fetchFavoriteFundsByAccountStart = () => ({\n type: favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_START\n});\n\nexport const fetchFavoriteFundsByAccountSuccess = (funds) => ({\n type: favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS,\n payload: funds\n});\n\nexport const fetchFavoriteFundsByAccountFailure = (errorMessage) => ({\n type: favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE,\n payload: errorMessage\n});\n\nexport const fetchNavFavoriteFundsByAccountStart = (data) => ({\n type: favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_START,\n payload: data\n});\n\nexport const fetchNavFavoriteFundsByAccountSuccess = (data) => ({\n type: favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS,\n payload: data\n});\n\nexport const fetchNavFavoriteFundsByAccountFailure = (errorMessage) => ({\n type: favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE,\n payload: errorMessage\n});\n\n// Favorite Copyport\nexport const fetchFavoriteCopyportStart = () => ({\n type: favoriteConstants.FETCH_FAVORITE_COPYPORT_START\n});\n\nexport const fetchFavoriteCopyportSuccess = (copyportList) => ({\n type: favoriteConstants.FETCH_FAVORITE_COPYPORT_SUCCESS,\n payload: copyportList\n});\n\nexport const fetchFavoriteCopyportFailure = (errorMessage) => ({\n type: favoriteConstants.FETCH_FAVORITE_COPYPORT_FAILURE,\n payload: errorMessage\n});\n","export const hotfundConstants = {\n FETCH_HOTFUND_START: 'FETCH_HOTFUND_START',\n FETCH_HOTFUND_SUCCESS: 'FETCH_HOTFUND_SUCCESS',\n FETCH_HOTFUND_FAILURE: 'FETCH_HOTFUND_FAILURE',\n\n UPDATE_HOTFUND_QUERIES: 'UPDATE_HOTFUND_QUERIES',\n UPDATE_HOTFUND_TABLE_COLUMNS: 'UPDATE_HOTFUND_TABLE_COLUMNS',\n};\n","import axios_nomura from './axios-nomura.services';\nimport axios_mock from './axios-mock.services';\n\n// Fetch Buy, Sell, Switch Fund Information\nexport const fetchSearchBuyableFunds = async (payload) => {\n return await axios_nomura.get(`/api/v1/search/buyable_funds`, { params: payload });\n};\n\nexport const fetchBuyFundInfo = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/buy_information`, data);\n};\n\nexport const fetchBuyableFund = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/buy/check`, data);\n};\n\nexport const fetchSellableFund = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/sell/check`, data);\n};\n\nexport const fetchSwitchableOutFunds = async (data) => {\n return await axios_nomura.get(`/api/v1/search/switchable_funds`, { params: data});\n};\n\nexport const fetchSwitchableFunds = async (data) => {\n return await axios_nomura.get(`/api/v1/orders/${data.accountNumber}/switchable_funds`, {\n params: {\n fundCode: data.fundCode,\n fundId: data.fundId,\n accountType: data.accountType,\n isDCA: data.isDCA\n }\n });\n};\n\nexport const fetchCheckedSwitchableFund = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/switch/check`, data);\n};\n\nexport const fetchSellFundInfo = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/sell_information`, data);\n};\n\nexport const fetchSwitchFundInfo = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/switch_information`, data);\n};\n\nexport const fetchChannelByAccount = async (data) => {\n return await axios_nomura.get(`/api/v1/orders/payments/channels`, { params: data });\n};\n\nexport const fetchSendQuestionBackToConfirm = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/buy`, data);\n};\n\nexport const fetchConfirmSellFund = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/sell`, data);\n};\n\nexport const fetchConfirmSwitchFund = async (data) => {\n return await axios_nomura.post(`/api/v1/orders/switch`, data);\n};\n\nexport const fetchGetReceivingDate = async (data) => {\n return await axios_nomura.get(`/api/v1/orders/sell/receiving_date`, { params: data });\n};\n","import axios_nomura from './axios-nomura.services';\n\nexport const fetchAdvanceSearchFilters = async () => {\n return await axios_nomura.get(`api/v1/search/filters`);\n};\n\nexport const fetchNavForAdvanceSearch = async (data) => {\n let convertDataToJson = JSON.stringify(data);\n return await axios_nomura.post(`api/v1/nav/ByFundIdAndType`, convertDataToJson);\n};","import { homeConstants } from '../_constants/home.constants';\n\nexport const fetchBannersStart = () => ({\n type: homeConstants.FETCH_BANNERS_START,\n});\n\nexport const fetchBannersSuccess = (data) => ({\n type: homeConstants.FETCH_BANNERS_SUCCESS,\n payload: data\n});\n\nexport const fetchBannersFailure = (errorMessage) => ({\n type: homeConstants.FETCH_BANNERS_FAILURE,\n payload: errorMessage\n});\n\nexport const fetchHighlightFundsStart = (period) => ({\n type: homeConstants.FETCH_HIGHLIGHT_FUNDS_START,\n payload: period\n});\n\nexport const fetchHighlightFundsSuccess = (data) => ({\n type: homeConstants.FETCH_HIGHLIGHT_FUNDS_SUCCESS,\n payload: data\n});\n\nexport const fetchHighlightFundsFailure = (errorMessage) => ({\n type: homeConstants.FETCH_HIGHLIGHT_FUNDS_FAILURE,\n payload: errorMessage\n});\n\nexport const updateNavFunds = (data) => ({\n type: homeConstants.UPDATE_NAV_FUNDS,\n payload: data\n});\n\nexport const fetchNavFundsStart = (data) => ({\n type: homeConstants.FETCH_NAV_FUNDS_START,\n payload: data\n});\n\nexport const fetchNavFundsSuccess = (data) => ({\n type: homeConstants.FETCH_NAV_FUNDS_SUCCESS,\n payload: data\n});\n\nexport const fetchNavFundsFailure = (errorMessage) => ({\n type: homeConstants.FETCH_NAV_FUNDS_FAILURE,\n payload: errorMessage\n});\n\nexport const fetchTopSubCategoriesStart = () => ({\n type: homeConstants.FETCH_TOP_SUB_CATEGORIES_START,\n});\n\nexport const fetchTopSubCategoriesSuccess = (data) => ({\n type: homeConstants.FETCH_TOP_SUB_CATEGORIES_SUCCESS,\n payload: data\n});\n\nexport const fetchTopSubCategoriesFailure = (errorMessage) => ({\n type: homeConstants.FETCH_TOP_SUB_CATEGORIES_FAILURE,\n payload: errorMessage\n});\n\nexport const fetchArticlesStart = () => ({\n type: homeConstants.FETCH_ARTICLES_START,\n});\n\nexport const fetchArticlesSuccess = (data) => ({\n type: homeConstants.FETCH_ARTICLES_SUCCESS,\n payload: data\n});\n\nexport const fetchArticlesFailure = (errorMessage) => ({\n type: homeConstants.FETCH_ARTICLES_FAILURE,\n payload: errorMessage\n});\n\nexport const toggleArticleModal = (data) => ({\n type: homeConstants.TOGGLE_ARTICLE_MODAL,\n payload: data\n});","import { CheckedIcon } from \"../_components/icons/icons\";\n\nexport const setIsFetching = (state) => {\n return {\n ...state,\n isFetching: true\n }\n};\n\nexport const filterCalendarResults = (state, data) => {\n let result = [];\n for(let i = 1; i <= 12; i++) {\n let checked = data.length > 0 ? data.find(obj => obj.month === i): false;\n if (checked) {\n result.push({\n month: i,\n events: checked.events ? checked.events : checked.dates\n })\n } else {\n result.push({\n month: i,\n events: []\n })\n }\n }\n\n return {\n ...state,\n isFetching: false,\n data: result\n };\n};\n\nexport const resetCalendarResults = (state, data) => {\n return {\n ...state,\n isFetching: false,\n data: [],\n errorMessage: data\n };\n};\n\nexport const filterUserFund = (data) => {\n let result = null;\n \n if (data) {\n result = {\n fundId: data.fundId,\n fundCode: data.fundCode? data.fundCode: data.thailandFundCode,\n categoryCode: data.categoryCode,\n color: data.color\n }\n }\n\n return result;\n};\n\nexport const generateArrayOfYears = () => {\n let max = new Date().getFullYear()\n let min = max - 9\n let years = []\n\n for (let i = max; i >= min; i--) {\n years.push(i)\n }\n return years\n}\n\nexport const filterCalendarByDate = (state, data) => {\n let result = {\n ...state,\n isFetching: false,\n data: data.length > 0 ? data[0].events : []\n };\n\n return result;\n}","import { compareConstants } from '../_constants/compare.constants';\n\nexport const addFundIdsToCompareFunds = (fund) => ({\n\ttype: compareConstants.ADD_FUNDIDS_TO_COMPARE_FUNDS,\n\tpayload: fund\n});\n\nexport const updateFundIdsToCompareFunds = (fund) => ({\n\ttype: compareConstants.UPDATE_FUNDIDS_TO_COMPARE_FUNDS,\n\tpayload: fund\n});\n\nexport const updateTemporaryCompareFunds = (fund) => ({\n\ttype: compareConstants.UPDATE_TEMPORARY_COMPARE_FUNDS,\n\tpayload: fund\n});\n\nexport const removedTemporaryCompareFunds = (fund) => ({\n\ttype: compareConstants.REMOVED_TEMPORARY_COMPARE_FUNDS,\n\tpayload: fund\n});\n\nexport const resetTemporaryCompareFunds = () => ({\n\ttype: compareConstants.RESET_TEMPORARY_COMPARE_FUNDS,\n});\n\n\nexport const fetchCompareFundsStart = (fundId) => ({\n\ttype: compareConstants.FETCH_COMPARE_START,\n\tpayload: fundId\n});\n\nexport const fetchCompareFundsSuccess = (compareFunds) => ({\n\ttype: compareConstants.FETCH_COMPARE_SUCCESS,\n\tpayload: compareFunds\n});\n\nexport const fetchCompareFundsFailure = (errorMessage) => ({\n\ttype: compareConstants.FETCH_COMPARE_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchCompareFundsByPeriodStart = (data) => ({\n\ttype: compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_START,\n\tpayload: data\n});\n\nexport const fetchCompareFundsByPeriodSuccess = (compareFunds) => ({\n\ttype: compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_SUCCESS,\n\tpayload: compareFunds\n});\n\nexport const fetchCompareFundsByPeriodFailure = (errorMessage) => ({\n\ttype: compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchGraphCompareFundsStart = (data) => ({\n\ttype: compareConstants.FETCH_GRAPH_COMPARE_FUNDS_START,\n\tpayload: data\n});\n\nexport const fetchGraphCompareFundsSuccess = (compareFunds) => ({\n\ttype: compareConstants.FETCH_GRAPH_COMPARE_FUNDS_SUCCESS,\n\tpayload: compareFunds\n});\n\nexport const fetchGraphCompareFundsFailure = (errorMessage) => ({\n\ttype: compareConstants.FETCH_GRAPH_COMPARE_FUNDS_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const fetchNavCompareFundsStart = (data) => ({\n\ttype: compareConstants.FETCH_NAV_COMPARE_FUNDS_START,\n\tpayload: data\n});\n\nexport const fetchNavCompareFundsSuccess = (data) => ({\n\ttype: compareConstants.FETCH_NAV_COMPARE_FUNDS_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchNavCompareFundsFailure = (errorMessage) => ({\n\ttype: compareConstants.FETCH_NAV_COMPARE_FUNDS_FAILURE,\n\tpayload: errorMessage\n});\n\nexport const toggleCompareModal = () => ({\n\ttype: compareConstants.TOGGLED_COMPARE_MODAL\n});\n\nexport const toggleReturn = () => ({\n\ttype: compareConstants.TOGGLE_RETURN\n});\n\nexport const toggleDrawdown = () => ({\n\ttype: compareConstants.TOGGLE_DRAWDOWN\n});\n\nexport const toggleProportion = () => ({\n\ttype: compareConstants.TOGGLE_PROPORTION\n});\n\nexport const clearCompareFund = () => ({\n\ttype: compareConstants.CLEAR_FUND_COMPARE\n});\n\nexport const insertSearchIndex = (idx) => ({\n\ttype: compareConstants.INSERT_SEARCH_INDEX,\n\tpayload: idx\n});\n\n// export const insertScrollPosition = (position) => ({\n// \ttype: compareConstants.INSERT_SCROLL_POSITION,\n// \tpayload: position\n// });\n","import { mainConstants } from '../_constants';\n\nconst initialState = {\n isOpenSideBar: true,\n routes: null,\n isFetching: false,\n errorMessage: undefined,\n currentPage: 1,\n isPaging: false,\n pages: undefined,\n isMobileScreenSize: false,\n errorModal: null\n};\n\nconst mainReducer = (state = initialState, action) => {\n switch (action.type) {\n case mainConstants.TOGGLE_SCREEN_SIZE:\n return {\n ...state,\n isMobileScreenSize: !state.isMobileScreenSize\n };\n case mainConstants.TOGGLE_SIDE_BAR:\n return {\n ...state,\n isOpenSideBar: !state.isOpenSideBar\n };\n case mainConstants.TOGGLE_ACTIVE_PAGE:\n return {\n ...state,\n currentPage: action.payload\n };\n case mainConstants.INSERT_ROUTES:\n return {\n ...state,\n routes: action.payload\n };\n case mainConstants.FETCH_ROUTES_START:\n return {\n ...state,\n isFetching: true\n };\n case mainConstants.FETCH_ROUTES_SUCCESS:\n return {\n ...state,\n isFetching: false,\n routes: action.payload\n };\n case mainConstants.FETCH_ROUTES_FAILURE:\n return {\n ...state,\n isFetching: false,\n errorMessage: action.payload\n };\n case mainConstants.ENABLE_PAGING:\n return {\n ...state,\n isPaging: true\n };\n case mainConstants.DISABLE_PAGING:\n return {\n ...state,\n isPaging: false,\n pages: null\n };\n case mainConstants.INSERT_PAGES:\n return {\n ...state,\n pages: action.payload\n };\n case mainConstants.UPDATE_ERROR_MODAL:\n return {\n ...state,\n errorModal: action.payload\n };\n case mainConstants.CLEAR_ERROR_MODAL:\n return {\n ...state,\n errorModal: null\n };\n default:\n return state;\n }\n};\n\nexport default mainReducer;\n","export const clearSearch = (data) => {\n const information = ['fundInformation', 'copyPortInformation', 'modelPortInformation', 'articleInformation'];\n return Object.keys(data).reduce((object, key) => {\n const check = information.includes(key);\n if (check) {\n object[key] = [];\n } else {\n object[key] = data[key];\n }\n return object;\n }, {});\n};\n\nexport const cleanSearch = (data) => {\n const information = ['fundInformation', 'copyPortInformation', 'modelPortInformation', 'articleInformation'];\n return Object.keys(data).reduce((object, key) => {\n const check = information.includes(key);\n if (check && data[key] != null) {\n object[key] = data[key];\n } else if (check && data[key] == null) {\n object[key] = [];\n } else {\n object[key] = data[key];\n }\n return object;\n }, {});\n};\n\nexport const setIsFetching = (state) => {\n return {\n ...state,\n isFetching: true\n }\n};\n\nexport const resetSearchResults = (state, data) => {\n return {\n ...state,\n isFetching: false,\n searchList: clearSearch(data)\n }\n};\n\nexport const resetSearchText = (state) => {\n return {\n ...state,\n searchText: null\n }\n};\n\nexport const filterSearchResults = (state, data) => {\n return {\n ...state,\n isFetching: false,\n searchList: cleanSearch(data)\n }\n};\n\nexport const clearSearchResults = (state) => {\n return {\n ...state,\n searchList: clearSearch(state.searchList)\n }\n};\n\nexport const updateSearchText = (state, data) => {\n return {\n ...state,\n searchText: data\n }\n};\n","import { searchConstants } from '../_constants/search.constants';\nimport {\n setIsFetching,\n resetSearchResults,\n resetSearchText,\n filterSearchResults,\n clearSearchResults,\n updateSearchText\n} from '../_utils/search.utils';\n\nconst initialState = {\n mainNavs: {\n isFetching: false,\n errorMessage: undefined,\n searchList: {\n fund: 'กองทุน',\n fundInformation: [],\n copyPort: 'COPYPORT',\n copyPortInformation: [],\n modelPort: 'MODELPORT',\n modelPortInformation: [],\n article: 'บทความ',\n articleInformation: []\n },\n searchText: null,\n },\n subNavs: {\n isFetching: false,\n errorMessage: undefined,\n searchList: {\n fund: 'กองทุน',\n fundInformation: [],\n copyPort: 'COPYPORT',\n copyPortInformation: [],\n modelPort: 'MODELPORT',\n modelPortInformation: [],\n article: 'บทความ',\n articleInformation: []\n },\n searchText: null,\n },\n calendarSearch: {\n isFetching: false,\n errorMessage: undefined,\n searchList: {\n fund: 'กองทุน',\n fundInformation: [],\n copyPort: 'COPYPORT',\n copyPortInformation: [],\n modelPort: 'MODELPORT',\n modelPortInformation: [],\n article: 'บทความ',\n articleInformation: []\n },\n searchText: null,\n },\n};\n\nconst searchReducer = (state = initialState, action) => {\n switch (action.type) {\n case searchConstants.FETCH_MAIN_SEARCH_START:\n return {\n ...state,\n mainNavs: setIsFetching(state.mainNavs),\n };\n case searchConstants.FETCH_MAIN_SEARCH_SUCCESS:\n return {\n ...state,\n mainNavs: filterSearchResults(state.mainNavs, action.payload)\n };\n case searchConstants.FETCH_MAIN_SEARCH_FAILURE:\n return {\n ...state,\n mainNavs: resetSearchResults(state.mainNavs, action.payload)\n };\n case searchConstants.CLEAR_MAIN_SEARCH:\n return {\n ...state,\n mainNavs: clearSearchResults(state.mainNavs)\n };\n case searchConstants.UPDATE_MAIN_SEARCH:\n return {\n ...state,\n mainNavs: updateSearchText(state.mainNavs, action.payload)\n };\n case searchConstants.REMOVE_MAIN_SEARCH:\n return {\n ...state,\n mainNavs: resetSearchText(state.mainNavs)\n };\n case searchConstants.FETCH_SUBNAV_SEARCH_START:\n return {\n ...state,\n subNavs: setIsFetching(state.subNavs)\n };\n case searchConstants.FETCH_SUBNAV_SEARCH_SUCCESS:\n return {\n ...state,\n subNavs: filterSearchResults(state.subNavs, action.payload)\n };\n case searchConstants.FETCH_SUBNAV_SEARCH_FAILURE:\n return {\n ...state,\n subNavs: resetSearchResults(state.subNavs, action.payload)\n };\n case searchConstants.CLEAR_SUBNAV_SEARCH:\n return {\n ...state,\n subNavs: clearSearchResults(state.subNavs)\n };\n case searchConstants.UPDATE_SUBNAV_SEARCH:\n return {\n ...state,\n subNavs: updateSearchText(state.subNavs, action.payload)\n };\n case searchConstants.REMOVE_SUBNAV_SEARCH:\n return {\n ...state,\n subNavs: resetSearchText(state.subNavs)\n };\n case searchConstants.FETCH_SEARCH_FUND_CALENDAR_START:\n return {\n ...state,\n calendarSearch: setIsFetching(state.calendarSearch)\n };\n case searchConstants.FETCH_SEARCH_FUND_CALENDAR_SUCCESS:\n return {\n ...state,\n calendarSearch: filterSearchResults(state.calendarSearch, action.payload)\n };\n case searchConstants.FETCH_SEARCH_FUND_CALENDAR_FAILURE:\n return {\n ...state,\n calendarSearch: resetSearchResults(state.calendarSearch, action.payload)\n };\n case searchConstants.CLEAR_SEARCH_FUND_CALENDAR:\n return {\n ...state,\n calendarSearch: clearSearchResults(state.calendarSearch)\n };\n case searchConstants.UPDATE_SEARCH_FUND_CALENDAR:\n return {\n ...state,\n calendarSearch: updateSearchText(state.calendarSearch, action.payload)\n };\n case searchConstants.REMOVE_SEARCH_FUND_CALENDAR:\n return {\n ...state,\n calendarSearch: resetSearchText(state.calendarSearch)\n };\n default:\n return state;\n }\n};\n\nexport default searchReducer;\n","import { authenticationConstants } from \"../_constants/authentication.constants\";\n\nconst initialState = {\n isOpenModal: false,\n isOpenErrorMessageModal: false,\n isOpenVerify2FactorModal: false,\n isLoading2FA: false,\n\n user: null,\n accountList: [],\n mkt: null,\n isMobileCompletedLogin: false,\n getAccountMKT: false,\n getAccountListSuccess: false,\n accountInfo: null,\n accountName: null,\n isSignIn: false,\n isFetching: false,\n errorMessage: null,\n referenceCode: null,\n twoFactorId: null,\n twoFactorAuthenticationMethod: null,\n twoFactorToken: null,\n\n logInType: null,\n};\n\nconst authenticationReducer = (state = initialState, action) => {\n switch (action.type) {\n case authenticationConstants.TOGGLED_SIGN_IN_MODAL:\n return {\n ...state,\n isOpenModal: !state.isOpenModal,\n };\n case authenticationConstants.TOGGLED_ERROR_MESSAGE_MODAL:\n return {\n ...state,\n isOpenErrorMessageModal: !state.isOpenErrorMessageModal,\n };\n case authenticationConstants.SIGN_IN_CREDENTIAL_START:\n return {\n ...state,\n isFetching: true,\n };\n case authenticationConstants.SIGN_IN_DSA_START:\n return {\n ...state,\n isFetching: true,\n };\n case authenticationConstants.SIGN_IN_SSO_START:\n return {\n ...state,\n isFetching: true,\n };\n case authenticationConstants.SIGN_IN_START:\n return {\n ...state,\n isFetching: true,\n };\n case authenticationConstants.SIGN_IN_SUCCESS:\n return {\n ...state,\n isFetching: false,\n isSignIn: true,\n user: action.payload.user,\n logInType: action.payload.logInType,\n isLoading2FA: false,\n };\n case authenticationConstants.VERIFY_2FA_OPEN:\n return {\n ...state,\n twoFactorAuthenticationMethod:\n action.payload.twoFactorAuthenticationMethod,\n referenceCode: action.payload.referenceCode,\n twoFactorId: action.payload.twoFactorId,\n isOpenVerify2FactorModal: true,\n isLoading2FA: false,\n twoFactorToken: action.payload.twoFactorToken,\n };\n case authenticationConstants.TOGGLED_2FA_MODAL:\n return {\n ...state,\n isOpenVerify2FactorModal: !state.isOpenVerify2FactorModal,\n };\n case authenticationConstants.SET_2FA_LOADING:\n return {\n ...state,\n isLoading2FA: action.payload,\n };\n case authenticationConstants.SIGN_IN_SUCCESS_FOR_MOBILE:\n return {\n ...state,\n isFetching: false,\n isSignIn: true,\n logInType: action.payload.logInType,\n };\n case authenticationConstants.SIGN_IN_FAILURE:\n return {\n ...state,\n isFetching: false,\n errorMessage: action.payload,\n isSignIn: false,\n user: null,\n logInType: undefined,\n isLoading2FA: false,\n isOpenVerify2FactorModal:\n action.payload === \"Invalid OTP Reference\" ? true : false,\n };\n case authenticationConstants.CLEAR_SIGN_IN_ERROR_MESSAGE:\n return {\n ...state,\n errorMessage: null,\n };\n // case authenticationConstants.GET_ACCOUNT_LIST_START:\n // return {\n // ...state,\n // };\n case authenticationConstants.GET_ACCOUNT_MKT:\n return {\n ...state,\n mkt: action.payload ?? \"\",\n getAccountMKT: true,\n };\n case authenticationConstants.GET_ACCOUNT_LIST_SUCCESS:\n return {\n ...state,\n accountList: action.payload ?? [],\n getAccountListSuccess: true,\n };\n case authenticationConstants.UPDATE_ACCOUNT_LIST_MOBILE_SUCCESS:\n return {\n ...state,\n isMobileCompletedLogin: true,\n };\n case authenticationConstants.GET_ACCOUNT_LIST_FAILURE:\n return {\n ...state,\n accountList: [],\n errorMessage: action.payload ?? null,\n getAccountListSuccess: false,\n };\n case authenticationConstants.GET_ACCOUNT_INFO_START:\n return {\n ...state,\n isFetching: true,\n };\n case authenticationConstants.GET_ACCOUNT_INFO_SUCCESS:\n return {\n ...state,\n isFetching: false,\n accountInfo: action.payload,\n };\n case authenticationConstants.GET_ACCOUNT_INFO_FAILURE:\n return {\n ...state,\n accountInfo: null,\n };\n case authenticationConstants.GET_ACCOUNT_NAME_SUCCESS:\n return {\n ...state,\n accountName: action.payload,\n };\n case authenticationConstants.GET_ACCOUNT_NAME_FAILURE:\n return {\n ...state,\n accountName: null,\n };\n case authenticationConstants.SIGN_OUT: {\n return {\n ...initialState,\n };\n }\n default:\n return state;\n }\n};\n\nexport default authenticationReducer;\n","import { userConstants } from '../_constants';\n\nconst usersReducer = (state = {}, action) => {\n switch (action.type) {\n case userConstants.GETALL_REQUEST:\n return {\n loading: true\n };\n case userConstants.GETALL_SUCCESS:\n return {\n items: action.users\n };\n case userConstants.GETALL_FAILURE:\n return {\n error: action.error\n };\n case userConstants.DELETE_REQUEST:\n // add 'deleting:true' property to user being deleted\n return {\n ...state,\n items: state.items.map((user) => (user.id === action.id ? { ...user, deleting: true } : user))\n };\n case userConstants.DELETE_SUCCESS:\n // remove deleted user from state\n return {\n items: state.items.filter((user) => user.id !== action.id)\n };\n case userConstants.DELETE_FAILURE:\n // remove 'deleting:true' property and add 'deleteError:[error]' property to user\n return {\n ...state,\n items: state.items.map((user) => {\n if (user.id === action.id) {\n // make copy of user without 'deleting:true' property\n const { deleting, ...userCopy } = user;\n // return copy of user with 'deleteError:[error]' property\n return { ...userCopy, deleteError: action.error };\n }\n\n return user;\n })\n };\n default:\n return state;\n }\n};\n\nexport default usersReducer;\n","import { alertConstants } from '../_constants';\n\nconst alertReducer = (state = {}, action) => {\n switch (action.type) {\n case alertConstants.SUCCESS:\n return {\n type: 'alert-success',\n message: action.message\n };\n case alertConstants.ERROR:\n return {\n type: 'alert-danger',\n message: action.message\n };\n case alertConstants.CLEAR:\n return {};\n default:\n return state;\n }\n};\n\nexport default alertReducer;\n","import { switchOrderNumberRegEx } from \"./general.utils\";\n\nexport const historiesFetching = (history) => {\n const result = {\n ...history,\n isFetching: true\n };\n return result;\n};\n\nexport const historiesData = (history, data) => {\n const result = {\n ...history,\n histories: data,\n isFetching: false,\n currentPage: data.currentPage ? data.currentPage : 1,\n totalPage: data.totalPage ? data.totalPage : 1\n };\n return result;\n};\n\nexport const historiesError = (history, error) => {\n const result = {\n ...history,\n errorMessage: error,\n isFetching: false\n };\n return result;\n};\n\nexport const historiesChangePage = (history, newPage) => {\n const result = {\n ...history,\n currentPage: history.currentPage !== newPage ? newPage : history.currentPage\n };\n return result;\n};\n\nexport const portfoliosFetching = (portfolio) => {\n const result = {\n ...portfolio,\n isFetching: true\n };\n return result;\n};\n\nexport const portfoliosData = (portfolio, data) => {\n const result = {\n ...portfolio,\n portfolios: data,\n isFetching: false\n };\n return result;\n};\n\nexport const portfoliosError = (portfolio, error) => {\n const result = {\n ...portfolio,\n errorMessage: error,\n isFetching: false,\n portfolios: []\n };\n return result;\n};\n\nexport const changeCurrentGroupType = (state, currentGroupType) => {\n const result = {\n ...state,\n currentGroupType: currentGroupType ? currentGroupType : '0'\n }\n return result;\n}\n\nexport const dividendsData = (dividend, data) => {\n const result = {\n ...dividend,\n dividends: data,\n isFetching: false\n };\n return result;\n};\n\nexport const dividendsError = (dividend, error) => {\n const result = {\n ...dividend,\n errorMessage: error,\n isFetching: false\n };\n return result;\n};\n\nexport const setInitialAccountNumber = (accounts) => {\n let result = [];\n result.push(accounts.accounts[0].accountNumber);\n return result;\n};\n\nexport const filterAccountNumber = (state, accounts) => {\n let result = {\n ...state,\n accountNumbers: accounts ? accounts : []\n };\n\n return result;\n};\n\nexport const getFundListFromData = (state, data) => {\n let fundList = data \n ? data.map(x => x.funds.reduce((prev, curr) => \n prev.includes(curr.fundCode)\n ? prev \n : [...prev, curr.fundCode], [])).flat().map(item => {\n return { \n name: item,\n value: item.toUpperCase(),\n type: 'fundCode'\n };\n }) \n : [];\n return {\n ...state,\n fundList: fundList\n };\n};\n\nexport const filterMonthlyReturn = (dataList) => {\n var monthList = [];\n \n if (dataList.length > 0) {\n dataList.forEach((years) => {\n let data = [];\n for (let i = 0; i < 12; i++) {\n if (years.items.length > 0) {\n let dataMonth = years.items.find(item => item.month === i + 1);\n if (dataMonth) { \n data.push({ month: i+1, value: dataMonth.value });\n } else {\n data.push({ month: i+1, value: null });\n } \n } else {\n data.push({ month: i+1, value: null });\n }\n }\n\n monthList.push({\n year: years.year,\n items: data,\n total: years.yearlyReturn ? years.yearlyReturn : null\n });\n });\n }\n\n return monthList;\n};\n\nexport const transformOrderData = (orders) => {\n const cloneOrders = orders.slice();\n\n let result= [];\n cloneOrders.forEach((order) => {\n if (switchOrderNumberRegEx.test(order.number)) {\n if (order.tradeType === 'S') {\n const toFund = cloneOrders.find(x => switchOrderNumberRegEx.test(x.number) && x.tradeType === 'B' && x.number.slice(0, -1) === order.number.slice(0, -1));\n result.push({...order, toFund});\n } else if (order.tradeType === 'B') {\n const fromFund = cloneOrders.find(x => switchOrderNumberRegEx.test(x.number) && x.tradeType === 'S' && x.number.slice(0, -1) === order.number.slice(0, -1));\n delete order['toFund'];\n result.push({...order, fromFund});\n }\n } else {\n if (order.tradeType !== 'W') {\n delete order['toFund'];\n }\n result.push(order);\n }\n })\n \n return result;\n}\n\nexport const duplicateNumber = (data) => {\n const cloneData = [...data];\n\n return cloneData.map((item) => {\n return {\n ...item,\n number: item.orderNumber\n }\n })\n}","import { investmentConstants } from \"../_constants/investment.constant\";\n\nimport {\n historiesChangePage,\n dividendsData,\n dividendsError,\n filterMonthlyReturn,\n transformOrderData,\n duplicateNumber,\n} from \"../_utils/investment.utils\";\nimport { setIsFetching } from \"../_utils/general.utils\";\n\nimport { sub } from \"date-fns\";\nimport { nanoid } from \"nanoid\";\n\nlet newDate = new Date();\n\nconst initialState = {\n userAccounts: [],\n investSearch: false,\n isFetching: false,\n activedFunds: {\n funds: [],\n isFetching: false,\n errorMessage: null,\n },\n allFunds: {\n funds: [],\n isFetching: false,\n errorMessage: null,\n },\n allFundCodes: {\n funds: [],\n isFetching: false,\n errorMessage: null,\n },\n lot: {\n tableHeaders: [\n {\n header: \"วันที่\",\n sortKey: \"priceDate\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fundName\",\n },\n {\n header: \"กราฟตั้งแต่วันที่ลงทุน\",\n sortKey: \"chart\",\n },\n {\n header: \"เงินลงทุน\",\n sortKey: \"invest\",\n },\n {\n header: \"มูลค่าปัจจุบัน\",\n sortKey: \"value\",\n },\n {\n header: \"ราคาทุน\",\n sortKey: \"averagePrice\",\n },\n {\n header: \"ราคาปัจจุบัน\",\n sortKey: \"currentPrice\",\n },\n {\n header: \"P/L\",\n sortKey: \"pAndL\",\n },\n {\n header: \"%Port\",\n sortKey: \"portPercent\",\n },\n {\n header: \"%Yield\",\n sortKey: \"yieldPercent\",\n },\n ],\n groupTypeList: [\n {\n name: \"ประเภทบัญชี\",\n value: \"ACCOUNT_TYPE\",\n },\n {\n name: \"ประเภทกองทุน\",\n value: \"CATEGORY\",\n },\n {\n name: \"รายปี\",\n value: \"YEAR\",\n },\n {\n name: \"รายบลจ.\",\n value: \"COMPANY\",\n },\n ],\n queries: {\n fundType: {\n name: \"ทั้งหมด\",\n value: \"ALL\",\n },\n groupType: {\n name: \"รายปี\",\n value: \"YEAR\",\n },\n fundCode: null,\n },\n response: {\n isFetching: false,\n data: [],\n errorMessage: null,\n },\n navs: {\n isFetching: false,\n data: [],\n errorMessage: null,\n },\n fundList: [],\n },\n history: {\n columnList: [\n {\n header: \"Code\",\n sortKey: \"code\",\n },\n {\n header: \"ทำรายการ\",\n sortKey: \"date-list\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fund-name\",\n },\n {\n header: \"Activity\",\n sortKey: \"activity\",\n },\n {\n header: \"ยอดเงิน\",\n sortKey: \"balance\",\n },\n {\n header: \"จำนวนหน่วย\",\n sortKey: \"unit\",\n },\n {\n header: \"Nav\",\n sortKey: \"nav\",\n },\n {\n header: \"Status\",\n sortKey: \"status\",\n },\n {\n header: \"Payment\",\n sortKey: \"payment\",\n },\n {\n header: \"วันรับเงิน\",\n sortKey: \"received-date\",\n },\n {\n header: \"Remark\",\n sortKey: \"remark\",\n },\n {\n header: \"Order#\",\n sortKey: \"order-number\",\n },\n ],\n table: {\n header: \"Group Name\",\n headers: [\n {\n header: \"Code\",\n sortKey: \"code\",\n },\n {\n header: \"ทำรายการ\",\n sortKey: \"date-list\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fund-name\",\n },\n {\n header: \"Activity\",\n sortKey: \"activity\",\n },\n {\n header: \"ยอดเงิน\",\n sortKey: \"balance\",\n },\n {\n header: \"จำนวนหน่วย\",\n sortKey: \"unit\",\n },\n {\n header: \"Nav\",\n sortKey: \"nav\",\n },\n {\n header: \"Status\",\n sortKey: \"status\",\n },\n {\n header: \"Payment\",\n sortKey: \"payment\",\n },\n {\n header: \"วันรับเงิน\",\n sortKey: \"received-date\",\n },\n {\n header: \"Remark\",\n sortKey: \"remark\",\n },\n {\n header: \"Order#\",\n sortKey: \"order-number\",\n },\n ],\n },\n remarkList: [\n {\n name: \"ทั้งหมด\",\n value: \"\",\n },\n {\n name: \"มี Remark\",\n value: \"True\",\n },\n {\n name: \"ไม่มี Remark\",\n value: \"False\",\n },\n ],\n statusList: [\n {\n name: \"ทั้งหมด\",\n value: \"\",\n },\n {\n name: \"Complete\",\n value: \"C\",\n },\n {\n name: \"On Process\",\n value: \"P\",\n },\n {\n name: \"Canceled\",\n value: \"X\",\n },\n {\n name: \"Rejected\",\n value: \"R\",\n },\n ],\n queries: {\n fundType: {\n name: \"ทั้งหมด\",\n value: \"ALL\",\n },\n groupType: {\n name: \"ประเภทบัญชี\",\n value: \"ACCOUNT_TYPE\",\n },\n funds: [],\n date: {\n startDate: sub(newDate, { years: 1 }).toJSON(),\n endDate: newDate.toJSON(),\n },\n sortBy: null,\n sortType: \"d\",\n remark: \"\",\n status: \"\",\n },\n response: {\n isFetching: false,\n data: [],\n currentPage: 1,\n totalPage: 1,\n errorMessage: null,\n },\n },\n dca: {\n columnList: [\n {\n header: \"Code\",\n sortKey: \"accountNumber\",\n },\n {\n header: \"เริ่ม\",\n sortKey: \"tradeDate\",\n },\n {\n header: \"สิ้นสุด\",\n sortKey: \"endDate\",\n },\n {\n header: \"Activity\",\n sortKey: \"tradeType\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fundName\",\n },\n {\n header: \"แผนลงทุน\",\n sortKey: \"savingPlan\",\n },\n {\n header: \"จำนวน\",\n sortKey: \"amount\",\n },\n {\n header: \"Payment\",\n sortKey: \"payment\",\n },\n {\n header: \"วันที่ส่งคำสั่ง\",\n sortKey: \"entryDate\",\n },\n ],\n tradeTypeList: [\n {\n name: \"ทั้งหมด\",\n value: \"\",\n },\n {\n name: \"Buy\",\n value: \"B\",\n },\n // {\n // name: 'Sell',\n // value: 'S'\n // },\n {\n name: \"Switch\",\n value: \"W\",\n },\n ],\n statusList: [\n {\n name: \"ทั้งหมด\",\n value: \"\",\n },\n {\n name: \"มีผลอยู่\",\n value: true,\n },\n {\n name: \"หมดอายุ\",\n value: false,\n },\n ],\n queries: {\n funds: [],\n sortBy: null,\n sortType: \"a\",\n tradeType: { name: \"ทั้งหมด\", value: \"\" },\n status: { name: \"มีผลอยู่\", value: \"true\" },\n },\n response: {\n isFetching: false,\n data: [],\n errorMessage: null,\n },\n },\n book: {\n queries: {\n funds: [],\n date: {\n startDate: sub(newDate, { years: 1 }).toJSON(),\n endDate: newDate.toJSON(),\n },\n },\n response: {\n isFetching: false,\n data: undefined,\n errorMessage: null,\n },\n tableHeaders: [\n {\n header: \"วันที่\",\n sortKey: \"date\",\n },\n {\n header: \"ยอดเงิน\",\n sortKey: \"investValue\",\n },\n {\n header: \"หน่วย\",\n sortKey: \"investUnit\",\n },\n {\n header: \"ยอดเงิน\",\n sortKey: \"sellValue\",\n },\n {\n header: \"หน่วย\",\n sortKey: \"sellUnit\",\n },\n {\n header: \"NAV\",\n sortKey: \"nav\",\n },\n {\n header: \"P/L\",\n sortKey: \"pAndL\",\n },\n {\n header: \"ปันผล\",\n sortKey: \"dividend\",\n },\n {\n header: \"หน่วยคงเหลือ\",\n sortKey: \"balanceUnit\",\n },\n {\n header: \"มูลค่าคงเหลือ\",\n sortKey: \"balanceValue\",\n },\n ],\n },\n dividend: {\n queries: {\n funds: [],\n sortType: \"d\",\n sortBy: null,\n date: {\n startDate: sub(newDate, { years: 1 }).toJSON(),\n endDate: newDate.toJSON(),\n },\n },\n dividends: null,\n isFetching: false,\n errorMessage: undefined,\n table: {\n header: \"Group Name\",\n headers: [\n {\n header: \"Code\",\n sortKey: \"accountNumber\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fundCode\",\n },\n {\n header: \"วันปิดสมุดทะเบียน\",\n sortKey: \"xDate\",\n },\n {\n header: \"วันจ่ายเงินปันผล\",\n sortKey: \"payDate\",\n },\n {\n header: \"จำนวนหน่วย\",\n sortKey: \"unit\",\n },\n {\n header: \"ปันผลต่อหน่วย\",\n sortKey: \"rate\",\n },\n {\n header: \"ยอดเงินปันผล\",\n sortKey: \"amount\",\n },\n {\n header: \"หักภาษี\",\n sortKey: \"tax\",\n },\n {\n header: \"ยอดเงินสุทธิ\",\n sortKey: \"net\",\n },\n ],\n },\n },\n portfolio: {\n queries: {\n sortType: \"d\",\n sortKey: null,\n dateType: \"1Y\",\n groupType: \"ACCOUNT_TYPE\",\n },\n portfolios: {\n isFetching: false,\n data: {},\n errorMessage: null,\n },\n navPortfolios: {\n isFetching: false,\n data: [],\n errorMessage: undefined,\n },\n isFetching: false,\n errorMessage: undefined,\n headers: [\n {\n header: \"Code\",\n sortKey: \"accountNumber\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fundCode\",\n },\n {\n header: \"Chart\",\n sortKey: \"chart\",\n },\n {\n header: \"เงินลงทุน\",\n sortKey: \"investmentAmount\",\n },\n {\n header: \"มูลค่าปัจจุบัน\",\n sortKey: \"marketAmount\",\n },\n {\n header: \"ราคาทุนเฉลี่ย\",\n sortKey: \"averagePrice\",\n },\n {\n header: \"ราคาปัจจุบัน\",\n sortKey: \"nav\",\n },\n {\n header: \"P/L\",\n sortKey: \"profitLoss\",\n },\n {\n header: \"% Port\",\n sortKey: \"percentage\",\n },\n ],\n },\n portfolioStatistic: {\n previousReturn: {\n isFetching: false,\n data: {},\n errorMessage: null,\n },\n historyGraph: {\n isFetching: false,\n data: [],\n errorMessage: null,\n graphModeList: [\n {\n name: \"กราฟผลตอบแทนย้อนหลัง\",\n value: \"PREVIOUSE_RETURN\",\n },\n {\n name: \"กราฟมูลค่าพอร์ทย้อนหลัง\",\n value: \"AUM\",\n },\n {\n name: \"ทั้งหมด\",\n value: \"ALL\",\n },\n ],\n },\n previousReturnGraph: {\n isFetching: false,\n data: [],\n errorMessage: null,\n },\n monthlyReturn: {\n isFetching: false,\n data: [],\n errorMessage: null,\n },\n profit: {\n isFetching: false,\n data: {},\n errorMessage: null,\n },\n volatility: {\n isFetching: false,\n data: {},\n errorMessage: null,\n },\n maxDrawdown: {\n isFetching: false,\n data: {},\n errorMessage: null,\n },\n drawdown: {\n isFetching: false,\n data: [],\n errorMessage: null,\n sortFilters: [\n {\n name: \"% ติดลบ\",\n value: \"percentage\",\n },\n {\n name: \"ตามเวลา\",\n value: \"date\",\n },\n ],\n },\n lastDate: null,\n },\n order: {\n orders: {\n isFetching: false,\n data: null,\n errorMessage: undefined,\n },\n headers: [\n {\n header: \"Code\",\n sortKey: \"accountNumber\",\n },\n {\n header: \"ทำรายการ\",\n sortKey: \"tradeDate\",\n },\n {\n header: \"กองทุน\",\n sortKey: \"fundCode\",\n },\n {\n header: \"Activity\",\n sortKey: \"tradeType\",\n },\n {\n header: \"ยอดเงิน\",\n sortKey: \"amount\",\n },\n {\n header: \"จำนวนหน่วย\",\n sortKey: \"unit\",\n },\n {\n header: \"Status\",\n sortKey: \"status\",\n },\n {\n header: \"Payment\",\n sortKey: \"bankPayment\",\n },\n {\n header: \"วันรับเงิน\",\n sortKey: \"tradeDate\",\n },\n {\n header: \"Remark\",\n sortKey: \"remark\",\n },\n {\n header: \"Order#\",\n sortKey: \"number\",\n },\n ],\n queries: {\n status: null,\n tradeType: null,\n remark: null,\n sortType: \"a\",\n sortBy: null,\n },\n },\n information: {},\n};\n\nconst investmentReducer = (state = initialState, action) => {\n switch (action.type) {\n case investmentConstants.SET_INVEST_SEARCH: {\n return {\n ...state,\n investSearch: action.payload,\n };\n }\n\n case investmentConstants.UPDATE_USER_ACCOUNTS: {\n return {\n ...state,\n userAccounts: action.payload ?? [],\n };\n }\n\n // Investment Histories\n case investmentConstants.UPDATE_INVESTMENT_HISTORIES_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach((attribute) => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case \"sortBy\":\n if (value === \"nav\" || value === \"riskLevel\") {\n updateAttribute[\"sortType\"] =\n state.history.queries.sortBy === value &&\n state.history.queries.sortType !== \"d\"\n ? \"d\"\n : \"a\";\n } else {\n updateAttribute[\"sortType\"] =\n state.history.queries.sortBy === value &&\n value &&\n state.history.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\";\n }\n updateAttribute[\"sortBy\"] = value;\n break;\n default:\n updateAttribute[attribute] = value;\n break;\n }\n });\n\n return {\n ...state,\n history: {\n ...state.history,\n queries: {\n ...state.history.queries,\n ...updateAttribute,\n },\n response: {\n ...state.history.response,\n currentPage: 1,\n },\n },\n };\n }\n case investmentConstants.FETCH_ACTIVED_FUNDS_START: // need to recheck with line 689\n return {\n ...state,\n activedFunds: {\n ...state.activedFunds,\n isFetching: true,\n },\n };\n case investmentConstants.FETCH_ACTIVED_FUNDS_SUCCESS:\n return {\n ...state,\n activedFunds: {\n ...state.activedFunds,\n funds: action.payload?.length !== 0 ? action.payload : [],\n isFetching: false,\n },\n };\n case investmentConstants.FETCH_ACTIVED_FUNDS_FAILURE:\n return {\n ...state,\n activedFunds: {\n ...state.activedFunds,\n funds: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n };\n case investmentConstants.FETCH_ALL_FUNDS_START: // need to recheck with line 689\n return {\n ...state,\n allFunds: {\n ...state.allFunds,\n isFetching: true,\n },\n };\n case investmentConstants.FETCH_ALL_FUNDS_SUCCESS:\n return {\n ...state,\n allFunds: {\n ...state.allFunds,\n funds: action.payload?.length !== 0 ? action.payload : [],\n isFetching: false,\n },\n };\n case investmentConstants.FETCH_ALL_FUNDS_FAILURE:\n return {\n ...state,\n allFunds: {\n ...state.allFunds,\n funds: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n };\n case investmentConstants.FETCH_ALL_FUND_CODES_START:\n return {\n ...state,\n allFundCodes: {\n ...state.allFundCodes,\n isFetching: true,\n },\n };\n case investmentConstants.FETCH_ALL_FUND_CODES_SUCCESS:\n return {\n ...state,\n allFundCodes: {\n ...state.allFundCodes,\n funds: action.payload?.length !== 0 ? action.payload : [],\n isFetching: false,\n },\n };\n case investmentConstants.FETCH_ALL_FUND_CODES_FAILURE:\n return {\n ...state,\n allFundCodes: {\n ...state.allFundCodes,\n funds: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n };\n case investmentConstants.FETCH_HISTORIES_START:\n return {\n ...state,\n history: {\n ...state.history,\n response: {\n ...state.history.response,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_HISTORIES_SUCCESS:\n return {\n ...state,\n history: {\n ...state.history,\n response: {\n ...state.history.response,\n isFetching: false,\n data: transformOrderData(duplicateNumber(action.payload)) ?? [],\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_HISTORIES_FAILURE:\n return {\n ...state,\n history: {\n ...state.history,\n response: {\n ...state.history.response,\n isFetching: false,\n data: [],\n errorMessage: action.payload,\n },\n },\n };\n case investmentConstants.FETCH_HISTORIES_CHANGE_PAGE:\n return {\n ...state,\n history: historiesChangePage(state.history, action.payload),\n };\n\n // Investment DCA\n case investmentConstants.DELETE_DCA_ORDER_REQUEST_START:\n return {\n ...state,\n dca: {\n ...state.dca,\n },\n };\n case investmentConstants.DELETE_DCA_ORDER_REQUEST_SUCCESS:\n return {\n ...state,\n dca: {\n ...state.dca,\n },\n };\n case investmentConstants.DELETE_DCA_ORDER_REQUEST_FAILURE:\n return {\n ...state,\n dca: {\n ...state.dca,\n response: {\n ...state.dca.response,\n errorMessage: action?.payload?.message,\n },\n },\n };\n case investmentConstants.CLEAR_DCA_ORDER_ERROR_MESSAGE:\n return {\n ...state,\n dca: {\n ...state.dca,\n response: {\n ...state.dca.response,\n errorMessage: null,\n },\n },\n };\n case investmentConstants.DELETE_ORDER_dca_REQUEST_FAILURE:\n return {\n ...state,\n dca: {\n ...state.dca,\n },\n };\n case investmentConstants.UPDATE_INVESTMENT_DCA_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach((attribute) => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case \"sortBy\":\n if (value === \"nav\" || value === \"riskLevel\") {\n updateAttribute[\"sortType\"] =\n state.dca.queries.sortBy === value &&\n state.dca.queries.sortType !== \"d\"\n ? \"d\"\n : \"a\";\n } else {\n updateAttribute[\"sortType\"] =\n state.dca.queries.sortBy === value &&\n value &&\n state.dca.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\";\n }\n updateAttribute[\"sortBy\"] = value;\n break;\n default:\n updateAttribute[attribute] = value;\n break;\n }\n });\n\n return {\n ...state,\n dca: {\n ...state.dca,\n queries: {\n ...state.dca.queries,\n ...updateAttribute,\n },\n response: {\n ...state.dca.response,\n //currentPage: 1\n },\n },\n };\n }\n case investmentConstants.FETCH_DCAS_START:\n return {\n ...state,\n dca: {\n ...state.dca,\n response: {\n ...state.dca.response,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_DCAS_SUCCESS:\n return {\n ...state,\n dca: {\n ...state.dca,\n response: {\n ...state.dca.response,\n isFetching: false,\n data: action.payload ?? [],\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_DCAS_FAILURE:\n return {\n ...state,\n dca: {\n ...state.dca,\n response: {\n ...state.dca.response,\n isFetching: false,\n data: [],\n errorMessage: action.payload,\n },\n },\n };\n\n // Order\n case investmentConstants.DELETE_ORDER_REQUEST_START:\n return {\n ...state,\n };\n case investmentConstants.DELETE_ORDER_REQUEST_SUCCESS:\n return {\n ...state,\n };\n case investmentConstants.DELETE_ORDER_REQUEST_FAILURE:\n return {\n ...state,\n order: {\n ...state.order,\n orders: {\n ...state.order.orders,\n isFetching: false,\n errorMessage: action?.payload?.message,\n data: [...state.order.orders.data],\n },\n },\n };\n case investmentConstants.FETCH_ORDERS_START:\n return {\n ...state,\n order: {\n ...state.order,\n orders: {\n ...state.order.orders,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_ORDERS_SUCCESS:\n return {\n ...state,\n order: {\n ...state.order,\n orders: {\n ...state.order.orders,\n isFetching: false,\n data: transformOrderData(action.payload),\n },\n },\n };\n case investmentConstants.FETCH_ORDERS_FAILURE:\n return {\n ...state,\n order: {\n ...state.order,\n orders: {\n ...state.order.orders,\n isFetching: false,\n data: null,\n },\n },\n };\n case investmentConstants.UPDATE_ORDERS_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach((attribute) => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case \"sortBy\":\n if (value === \"nav\" || value === \"riskLevel\") {\n updateAttribute[\"sortType\"] =\n state.order.queries.sortBy === value &&\n state.order.queries.sortType !== \"d\"\n ? \"d\"\n : \"a\";\n } else {\n updateAttribute[\"sortType\"] =\n state.order.queries.sortBy === value &&\n value &&\n state.order.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\";\n }\n updateAttribute[\"sortBy\"] = value;\n break;\n default:\n updateAttribute[attribute] = value;\n break;\n }\n });\n\n return {\n ...state,\n order: {\n ...state.order,\n queries: {\n ...state.order.queries,\n ...updateAttribute,\n },\n },\n };\n }\n case investmentConstants.CLEAR_ORDER_ERROR_MESSAGE:\n return {\n ...state,\n order: {\n ...state.order,\n orders: {\n ...state.order.orders,\n errorMessage: undefined,\n },\n },\n };\n // PORTFOLIOS\n case investmentConstants.UPDATE_PORTFOLIOS_QUERIES: {\n let { key, value } = action.payload;\n let updateAttribute = {};\n\n switch (key) {\n case \"accountNumber\":\n updateAttribute[key] = value;\n break;\n case \"sortKey\":\n updateAttribute = {\n sortKey: value,\n sortType:\n value &&\n value === state.portfolio.queries.sortKey &&\n state.portfolio.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\",\n };\n break;\n default:\n updateAttribute[key] = value;\n break;\n }\n\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n queries: {\n ...state.portfolio.queries,\n ...updateAttribute,\n },\n },\n };\n }\n case investmentConstants.FETCH_PORTFOLIOS_START:\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n isFetching: true,\n portfolios: setIsFetching(state.portfolio.portfolios),\n },\n };\n case investmentConstants.FETCH_PORTFOLIOS_SUCCESS:\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n isFetching: false,\n portfolios: {\n isFetching: false,\n data: action.payload\n ? {\n ...action.payload,\n categories: action.payload.categories.map((group) => ({\n ...group,\n items: group.items.map((fund) => ({\n ...fund,\n id: nanoid(),\n })),\n })),\n }\n : {},\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_PORTFOLIOS_FAILURE:\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n isFetching: false,\n portfolios: {\n isFetching: false,\n data: {},\n errorMessage: action.payload,\n },\n },\n };\n case investmentConstants.FETCH_NAV_PORTFOLIO_START:\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n navPortfolios: {\n ...state.portfolio.navPortfolios,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_NAV_PORTFOLIO_SUCCESS:\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n navPortfolios: {\n ...state.portfolio.navPortfolios,\n isFetching: false,\n data: action.payload ?? [],\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_NAV_PORTFOLIO_FAILURE:\n return {\n ...state,\n portfolio: {\n ...state.portfolio,\n navPortfolios: {\n ...state.portfolio.navPortfolios,\n isFetching: false,\n data: [],\n errorMessage: action.payload,\n },\n },\n };\n case investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n previousReturn: setIsFetching(\n state.portfolioStatistic.previousReturn,\n {}\n ),\n },\n };\n case investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n previousReturn: {\n ...state.portfolioStatistic.previousReturn,\n data: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n previousReturn: {\n ...state.portfolioStatistic.previousReturn,\n data: {},\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n historyGraph: {\n ...state.portfolioStatistic.historyGraph,\n isFetching: true,\n data: [],\n },\n },\n };\n case investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n historyGraph: {\n ...state.portfolioStatistic.historyGraph,\n data: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n historyGraph: {\n ...state.portfolioStatistic.historyGraph,\n data: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n monthlyReturn: {\n ...state.portfolioStatistic.monthlyReturn,\n isFetching: true,\n data: [],\n },\n },\n };\n case investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n monthlyReturn: {\n ...state.portfolioStatistic.monthlyReturn,\n data: filterMonthlyReturn(action.payload),\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n monthlyReturn: {\n ...state.portfolioStatistic.monthlyReturn,\n data: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n previousReturnGraph: {\n ...state.portfolioStatistic.previousReturnGraph,\n isFetching: true,\n data: [],\n },\n },\n };\n case investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n previousReturnGraph: {\n ...state.portfolioStatistic.previousReturnGraph,\n data: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n previousReturnGraph: {\n ...state.portfolioStatistic.previousReturnGraph,\n data: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_PROFIT_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n profit: {\n ...state.portfolioStatistic.profit,\n isFetching: true,\n data: {},\n },\n },\n };\n case investmentConstants.FETCH_PROFIT_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n profit: {\n ...state.portfolioStatistic.profit,\n data: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_PROFIT_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n profit: {\n ...state.portfolioStatistic.profit,\n data: {},\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n volatility: {\n ...state.portfolioStatistic.volatility,\n isFetching: true,\n data: {},\n },\n },\n };\n case investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n volatility: {\n ...state.portfolioStatistic.volatility,\n data: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n volatility: {\n ...state.portfolioStatistic.volatility,\n data: {},\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n maxDrawdown: {\n ...state.portfolioStatistic.maxDrawdown,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n maxDrawdown: {\n ...state.portfolioStatistic.maxDrawdown,\n data: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n maxDrawdown: {\n ...state.portfolioStatistic.maxDrawdown,\n data: {},\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_START:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n drawdown: {\n ...state.portfolioStatistic.drawdown,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n drawdown: {\n ...state.portfolioStatistic.drawdown,\n data: action.payload || [],\n isFetching: false,\n },\n },\n };\n case investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n drawdown: {\n ...state.portfolioStatistic.drawdown,\n data: [],\n errorMessage: action.payload,\n isFetching: false,\n },\n },\n };\n case investmentConstants.CLEAR_DEFAULT_PORT_STAT:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n lastDate: null,\n drawdown: {\n ...state.portfolioStatistic.drawdown,\n data: [],\n },\n maxDrawdown: {\n ...state.portfolioStatistic.maxDrawdown,\n data: {},\n },\n previousReturnGraph: {\n ...state.portfolioStatistic.previousReturnGraph,\n data: [],\n },\n },\n };\n case investmentConstants.FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_SUCCESS:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n lastDate: action.payload,\n },\n };\n case investmentConstants.FETCH_LAST_DATE_OF_ACCOUNT_NUMBER_FAILURE:\n return {\n ...state,\n portfolioStatistic: {\n ...state.portfolioStatistic,\n lastDate: null,\n },\n };\n\n // LOT\n case investmentConstants.UPDATE_LOT_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach((attribute) => {\n let value = action.payload[`${attribute}`];\n updateAttribute[attribute] = value;\n switch (attribute) {\n case \"accountNumber\":\n updateAttribute = { ...initialState.lot.queries };\n break;\n case \"sortBy\":\n if (value === \"nav\" || value === \"riskLevel\") {\n updateAttribute[\"sortType\"] =\n state.lot.queries.sortBy === value &&\n state.lot.queries.sortType !== \"d\"\n ? \"d\"\n : \"a\";\n } else {\n updateAttribute[\"sortType\"] =\n state.lot.queries.sortBy === value &&\n value &&\n state.lot.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\";\n }\n break;\n case \"groupType\":\n updateAttribute[attribute] = value;\n // ! Uncomment below line to cascading fund type and fund code when update group type.\n // updateAttribute['fundType'] = defaultFundTypeList[0];\n // updateAttribute['fundCode'] = null;\n break;\n case \"fundType\":\n updateAttribute[\"fundType\"] = value;\n updateAttribute[\"fundCode\"] = null;\n break;\n case \"fundCode\":\n updateAttribute[\"fundType\"] = null;\n updateAttribute[\"fundCode\"] = value;\n break;\n default:\n updateAttribute[attribute] = value;\n break;\n }\n });\n\n return {\n ...state,\n lot: {\n ...state.lot,\n queries: {\n ...state.lot.queries,\n ...updateAttribute,\n },\n },\n };\n }\n case investmentConstants.FETCH_LOTS_START:\n return {\n ...state,\n lot: {\n ...state.lot,\n response: {\n ...state.lot.response,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_LOTS_SUCCESS:\n return {\n ...state,\n lot: {\n ...state.lot,\n response: {\n ...state.lot.response,\n isFetching: false,\n data: action.payload ?? [],\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_LOTS_FAILURE:\n return {\n ...state,\n lot: {\n ...state.lot,\n response: {\n ...state.lot.response,\n isFetching: false,\n data: [],\n errorMessage: action.payload,\n },\n },\n };\n case investmentConstants.FETCH_NAVS_LOTS_START:\n return {\n ...state,\n lot: {\n ...state.lot,\n navs: {\n ...state.lot.navs,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_NAVS_LOTS_SUCCESS:\n return {\n ...state,\n lot: {\n ...state.lot,\n navs: {\n ...state.lot.navs,\n isFetching: false,\n data: action.payload,\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_NAVS_LOTS_FAILURE:\n return {\n ...state,\n lot: {\n ...state.lot,\n navs: {\n ...state.lot.navs,\n isFetching: false,\n data: [],\n errorMessage: action.payload,\n },\n },\n };\n\n // BOOK\n case investmentConstants.UPDATE_BOOK_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach((attribute) => {\n let value = action.payload[`${attribute}`];\n updateAttribute[attribute] = value;\n switch (attribute) {\n case \"accountNumber\":\n updateAttribute[\"funds\"] = [];\n break;\n case \"sortBy\":\n if (value === \"nav\" || value === \"riskLevel\") {\n updateAttribute[\"sortType\"] =\n state.book.queries.sortBy === value &&\n state.book.queries.sortType !== \"d\"\n ? \"d\"\n : \"a\";\n } else {\n updateAttribute[\"sortType\"] =\n state.book.queries.sortBy === value &&\n value &&\n state.book.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\";\n }\n break;\n default:\n updateAttribute[attribute] = value;\n break;\n }\n });\n\n return {\n ...state,\n book: {\n ...state.book,\n queries: {\n ...state.book.queries,\n ...updateAttribute,\n },\n },\n };\n }\n case investmentConstants.FETCH_BOOKS_START:\n return {\n ...state,\n book: {\n ...state.book,\n response: {\n ...state.book.response,\n isFetching: true,\n },\n },\n };\n case investmentConstants.FETCH_BOOKS_SUCCESS:\n return {\n ...state,\n book: {\n ...state.book,\n response: {\n ...state.book.response,\n data: action.payload ?? [],\n isFetching: false,\n errorMessage: null,\n },\n },\n };\n case investmentConstants.FETCH_BOOKS_FAILURE:\n return {\n ...state,\n book: {\n ...state.book,\n response: {\n ...state.book.response,\n data: undefined,\n isFetching: false,\n errorMessage: action.payload,\n },\n },\n };\n\n // Dividend\n case investmentConstants.UPDATE_DIVIDEND_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach((attribute) => {\n let value = action.payload[`${attribute}`];\n updateAttribute[attribute] = value;\n switch (attribute) {\n case \"accountNumber\":\n updateAttribute[\"funds\"] = [];\n break;\n case \"sortBy\":\n if (value === \"nav\" || value === \"riskLevel\") {\n updateAttribute[\"sortType\"] =\n state.dividend.queries.sortBy === value &&\n state.dividend.queries.sortType !== \"d\"\n ? \"d\"\n : \"a\";\n } else {\n updateAttribute[\"sortType\"] =\n state.dividend.queries.sortBy === value &&\n value &&\n state.dividend.queries.sortType !== \"a\"\n ? \"a\"\n : \"d\";\n }\n break;\n default:\n updateAttribute[attribute] = value;\n break;\n }\n });\n\n return {\n ...state,\n dividend: {\n ...state.dividend,\n queries: {\n ...state.dividend.queries,\n ...updateAttribute,\n },\n },\n };\n }\n case investmentConstants.FETCH_DIVIDENDS_START:\n return {\n ...state,\n dividend: setIsFetching(state.dividend),\n };\n case investmentConstants.FETCH_DIVIDENDS_SUCCESS:\n return {\n ...state,\n dividend: dividendsData(state.dividend, action.payload),\n };\n case investmentConstants.FETCH_DIVIDENDS_FAILURE:\n return {\n ...state,\n dividend: dividendsError(state.dividend, action.payload),\n };\n case investmentConstants.RESET_INVESTMENT:\n return { ...initialState };\n default:\n return state;\n }\n};\n\nexport default investmentReducer;\n","import { favoriteConstants } from '../_constants';\n\nconst initialState = {\n favoriteCopyport: null,\n currentColumns: [],\n defaultColumns: [\n 'charts', \n 'riskLevel',\n 'nav',\n 'morningStarRating',\n 'fundFlow',\n 'performance'\n ],\n tableColumns: [\n {\n header: 'ชื่อกองทุน',\n sortKey: 'fundCode',\n section: 'main'\n },\n {\n header: 'Chart',\n sortKey: 'charts',\n section: 'other'\n },\n {\n header: 'ความเสี่ยง',\n sortKey: 'riskLevel',\n section: 'other'\n },\n {\n header: 'Rating',\n sortKey: 'morningStarRating',\n section: 'other'\n },\n {\n header: 'NAV',\n sortKey: 'nav',\n section: 'other'\n },\n {\n header: 'เงินเข้าออก',\n sortKey: 'fundFlow',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน',\n sortKey: 'performance',\n section: 'other'\n }\n ],\n favoriteFunds: {\n isFetching: false,\n funds: [],\n data: [],\n errorMessage: null\n },\n navFunds: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n queries: {\n returnDateType: '1Y',\n navDateType: '1Y',\n sortBy: null,\n sortType: 'd'\n },\n colors: ['g-bg-red', 'g-bg-purple', 'g-bg-green', 'g-bg-blue', 'g-bg-pink', 'g-bg-cyan', 'g-bg-orange', 'g-bg-teal']\n};\n\nconst favoriteReducer = (state = initialState, action) => {\n switch (action.type) {\n case favoriteConstants.UPDATE_LOCAL_FAVORITE_FUNDS:\n const {type, fundId} = action.payload;\n return {\n ...state,\n favoriteFunds: {\n ...state.favoriteFunds,\n funds: type === 'add' && !state.favoriteFunds.funds.includes(fundId) \n ? [...state.favoriteFunds.funds, fundId]\n : type === 'delete'\n ? state.favoriteFunds.funds.filter(x => x !== fundId)\n : state.favoriteFunds.funds,\n data: type === 'delete' && state.favoriteFunds.funds.includes(fundId)\n ? state.favoriteFunds.data.filter(x => x.fundId !== fundId)\n : state.favoriteFunds.data\n }\n };\n case favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_START:\n return {\n ...state,\n navFunds: {\n ...state.navFunds,\n isFetching: true\n }\n };\n case favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n navFunds: {\n ...state.navFunds,\n isFetching: false,\n data: action.payload ?? [],\n errorMessage: null\n }\n };\n case favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n navFunds: {\n ...state.navFunds,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n case favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_START:\n return {\n ...state,\n favoriteFunds: {\n ...state.favoriteFunds,\n isFetching: true\n }\n };\n case favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_SUCCESS:\n return {\n ...state,\n favoriteFunds: {\n ...state.favoriteFunds,\n isFetching: false,\n funds: action.payload?.map(fund => fund.fundId) ?? [],\n data: action.payload ?? [],\n errorMessage: null\n }\n };\n case favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_FAILURE:\n return {\n ...state,\n favoriteFunds: {\n ...state.favoriteFunds,\n isFetching: false,\n funds: [],\n data: [],\n errorMessage: action.payload\n }\n };\n case favoriteConstants.FETCH_FAVORITE_COPYPORT_START:\n return {\n ...state,\n isFetching: true\n };\n case favoriteConstants.FETCH_FAVORITE_COPYPORT_SUCCESS:\n return {\n ...state,\n isFetching: false,\n favoriteCopyport: action.payload\n };\n case favoriteConstants.FETCH_FAVORITE_COPYPORT_FAILURE:\n return {\n ...state,\n isFetching: false,\n errorMessage: action.payload\n };\n case favoriteConstants.UPDATE_FAVORITE_FUNDS_TABLE_COLUMNS:\n return {\n ...state,\n currentColumns: action.payload ?? [] \n };\n case favoriteConstants.UPDATE_FAVORITE_FUNDS_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach(attribute => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case 'sortBy': {\n if (value === 'nav' || value === 'riskLevel') {\n updateAttribute['sortType'] = state.queries.sortBy === value && state.queries.sortType !== 'd' ? 'd' : 'a'\n } else {\n updateAttribute['sortType'] = state.queries.sortBy === value && value && state.queries.sortType !== 'a' ? 'a' : 'd'\n }\n updateAttribute['sortBy'] = value;\n break;\n };\n default: updateAttribute[attribute] = value; \n break;\n };\n })\n \n return {\n ...state,\n queries: {\n ...state.queries,\n ...updateAttribute\n }\n }\n }\n default:\n return state;\n }\n};\n\nexport default favoriteReducer;\n","import { fundRankingConstants } from '../_constants/fund-ranking.constants';\n\nimport {\n appendCategory,\n removeCategory,\n userCategoryFetching,\n userCategoryData,\n userCategoryError,\n setIsFetching,\n filterDataResult,\n resetDataResult,\n resetDataResultToObject,\n setDefaultQueriesFundRanking\n} from '../_utils/fund-ranking.utils';\n\nconst initialState = {\n rank: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n fundRankInfo: {\n fundId: null,\n data: {},\n isFetching: false,\n errorMessage: null,\n },\n fundRankSearchResponse: {\n // fundId: null,\n currentPage: 1,\n totalPage: 1,\n data: [],\n isFetching: false,\n errorMessage: null,\n },\n favCategories: [],\n category: {\n isFetching: false,\n categories: [],\n errorMessage: null\n },\n userCategory: {\n userCategories: [],\n isFetching: false,\n errorMessage: undefined\n },\n navResponse: {\n navDate: '1Y',\n isFetching: false,\n data: [],\n errorMessage: null,\n },\n searchFilters: {\n isFetching: false,\n data: null,\n errorMessage: null,\n sortingFilter: [\n {\n header: '%UNIT Change',\n sortKey: 'unitChange',\n },\n {\n header: 'Morningstar rating',\n sortKey: 'morningStarRating',\n }\n ]\n },\n queries: {\n categoryCode: [],\n dividendPolicy: null,\n fundTypes: [],\n returnDateType: '1Y',\n morningStarRatings: [],\n investorRatings: [],\n purchaseFee: null,\n currencyPolicy: null,\n company: [],\n riskLevels: [],\n sortBy: 'return1Y',\n sortType: 'd',\n pageSize: 20\n },\n currentColumns: [],\n defaultColumns: [\n 'charts',\n 'nav',\n 'return6M',\n 'return1Y',\n 'return3Y',\n ],\n columnList: [\n {\n header: 'อันดับ',\n sortKey: 'rank',\n section: 'main'\n },\n {\n header: 'ชื่อกองทุน',\n sortKey: 'fundCode',\n section: 'main'\n },\n {\n header: 'Chart',\n sortKey: 'charts',\n section: 'other'\n },\n {\n header: 'ความเสี่ยง',\n sortKey: 'riskLevel',\n section: 'other'\n },\n {\n header: 'Morningstar rating',\n sortKey: 'morningStarRating',\n section: 'other'\n },\n {\n header: 'NAV',\n sortKey: 'nav',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน YTD',\n sortKey: 'returnYTD',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน 1 สัปดาห์',\n sortKey: 'return1W',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน 1 เดือน',\n sortKey: 'return1M',\n section: 'other'\n },\n {\n header: ' ผลตอบแทน 3 เดือน',\n sortKey: 'return3M',\n section: 'other'\n },\n {\n header: ' ผลตอบแทน 6 เดือน',\n sortKey: 'return6M',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน 1 ปี',\n sortKey: 'return1Y',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน 3 ปี(ต่อปี)',\n sortKey: 'return3Y',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน 5 ปี(ต่อปี)',\n sortKey: 'return5Y',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน',\n sortKey: 'performance',\n section: 'other'\n },\n {\n header: '',\n sortKey: 'previous1Y',\n section: 'other'\n },\n {\n header: '',\n sortKey: 'previous2Y',\n section: 'other'\n },\n {\n header: '',\n sortKey: 'previous3Y',\n section: 'other'\n },\n {\n header: '',\n sortKey: 'previous4Y',\n section: 'other'\n },\n {\n header: '',\n sortKey: 'previous5Y',\n section: 'other'\n }\n ],\n highlightFunds: {\n period: '1Y',\n isFetching: false,\n data: [],\n errorMessage: null,\n periodList: [\n {\n name: '1 เดือน',\n value: '1M'\n },\n {\n name: '3 เดือน',\n value: '3M'\n },\n {\n name: '6 เดือน',\n value: '6M'\n },\n {\n name: '1 ปี',\n value: '1Y'\n }\n ]\n },\n colors: ['g-bg-red', 'g-bg-purple', 'g-bg-green', 'g-bg-blue', 'g-bg-pink', 'g-bg-cyan', 'g-bg-orange', 'g-bg-teal']\n};\n\nconst fundRankingReducer = (state = initialState, action) => {\n switch (action.type) {\n case fundRankingConstants.UPDATE_FUND_RANKING_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach(attribute => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case 'sortBy': {\n if (value === 'nav' || value === 'riskLevel') {\n updateAttribute['sortType'] = state.queries.sortBy === value && state.queries.sortType !== 'd' ? 'd' : 'a'\n } else {\n updateAttribute['sortType'] = state.queries.sortBy === value && value && state.queries.sortType !== 'a' ? 'a' : 'd'\n }\n updateAttribute['sortBy'] = value;\n break;\n };\n case 'pageSize': {\n if (value !== state.queries.pageSize) {\n updateAttribute['pageSize'] = value\n }\n break;\n }\n default: updateAttribute[attribute] = value;\n break;\n };\n })\n\n return {\n ...state,\n queries: {\n ...state.queries,\n ...updateAttribute\n },\n fundRankSearchResponse: {\n ...state.fundRankSearchResponse,\n currentPage: 1\n }\n }\n };\n case fundRankingConstants.RESET_FUND_RANKING_QUERIES:\n return {\n ...state,\n queries: state.defaultQueries ?? initialState.queries\n };\n case fundRankingConstants.SET_DEFAULT_FUND_RANKING_QUERIES:\n return {\n ...state,\n queries: setDefaultQueriesFundRanking(state.queries, action.payload),\n defaultQueries: setDefaultQueriesFundRanking(state.queries, action.payload)\n };\n case fundRankingConstants.SET_CURRENT_FUND_RANKING_PAGE:\n return {\n ...state,\n fundRankSearchResponse: {\n ...state.fundRankSearchResponse,\n currentPage: action.payload ? action.payload : 1\n }\n };\n\n // Highlight funds\n case fundRankingConstants.SET_HIGHLIGHT_FUND_PERIOD:\n return {\n ...state,\n highlightFunds: {\n ...state.highlightFunds,\n period: action.payload\n }\n };\n case fundRankingConstants.FETCH_HIGHLIGHT_FUND_START:\n return {\n ...state,\n highlightFunds: {\n ...state.highlightFunds,\n isFetching: true\n }\n };\n case fundRankingConstants.FETCH_HIGHLIGHT_FUND_SUCCESS:\n return {\n ...state,\n highlightFunds: {\n ...state.highlightFunds,\n isFetching: false,\n data: action.payload\n }\n };\n case fundRankingConstants.FETCH_HIGHLIGHT_FUND_FAILURE:\n return {\n ...state,\n highlightFunds: {\n ...state.highlightFunds,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n case fundRankingConstants.FETCH_RANK_START:\n return {\n ...state,\n rank: {\n ...state.rank,\n isFetching: true\n }\n };\n case fundRankingConstants.FETCH_RANK_SUCCESS:\n return {\n ...state,\n rank: {\n ...state.rank,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n };\n case fundRankingConstants.FETCH_RANK_FAILURE:\n return {\n ...state,\n rank: {\n ...state.rank,\n isFetching: false,\n data: {},\n errorMessage: action.payload\n }\n };\n case fundRankingConstants.SET_FUND_ID_RANK:\n return {\n ...state,\n fundRankInfo: {\n ...state.fundRankInfo,\n fundId: action.payload\n }\n };\n case fundRankingConstants.FETCH_FUND_RANK_START:\n return {\n ...state,\n fundRankInfo: setIsFetching(state.fundRankInfo)\n };\n case fundRankingConstants.FETCH_FUND_RANK_SUCCESS:\n return {\n ...state,\n fundRankInfo: filterDataResult(state.fundRankInfo, action.payload),\n };\n case fundRankingConstants.FETCH_FUND_RANK_FAILURE:\n return {\n ...state,\n fundRankInfo: resetDataResultToObject(state.fundRankInfo, action.payload)\n };\n case fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_START:\n return {\n ...state,\n searchFilters: setIsFetching(state.searchFilters)\n };\n case fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_SUCCESS:\n return {\n ...state,\n searchFilters: filterDataResult(state.searchFilters, action.payload),\n };\n case fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_FAILURE:\n return {\n ...state,\n searchFilters: resetDataResultToObject(state.searchFilters, action.payload)\n };\n case fundRankingConstants.SET_RANKING_TOTAL_PAGE:\n return {\n ...state,\n currentPage: action.payload\n };\n case fundRankingConstants.FETCH_RANKINGS_START:\n return {\n ...state,\n fundRankSearchResponse: {\n ...state.fundRankSearchResponse,\n isFetching: true\n }\n };\n case fundRankingConstants.FETCH_RANKINGS_SUCCESS:\n return {\n ...state,\n fundRankSearchResponse: {\n ...state.fundRankSearchResponse,\n isFetching: false,\n errorMessage: null,\n totalPage: action.payload?.totalPage ?? 1,\n currentPage: action.payload?.currentPage ?? 1,\n data: action.payload?.items ?? []\n }\n };\n case fundRankingConstants.FETCH_RANKINGS_FAILURE:\n return {\n ...state,\n fundRankSearchResponse: {\n ...state.fundRankSearchResponse,\n isFetching: false,\n errorMessage: action.payload,\n currentPage: 1,\n totalPage: 1,\n data: []\n }\n };\n case fundRankingConstants.UPDATE_NAV_DATE_FUND_RANKING:\n return {\n ...state,\n navResponse: {\n ...state.navResponse,\n navDate: action.payload\n }\n };\n case fundRankingConstants.SET_NAV_TYPE_RANKING:\n return {\n ...state,\n navResponse: {\n ...state.navResponse,\n type: action.payload\n }\n };\n case fundRankingConstants.FETCH_NAV_RANKINGS_START:\n return {\n ...state,\n navResponse: setIsFetching(state.navResponse)\n };\n case fundRankingConstants.FETCH_NAV_RANKINGS_SUCCESS:\n return {\n ...state,\n navResponse: filterDataResult(state.navResponse, action.payload)\n };\n case fundRankingConstants.FETCH_NAV_RANKINGS_FAILURE:\n return {\n ...state,\n navResponse: resetDataResult(state.navResponse, action.payload)\n };\n case fundRankingConstants.FETCH_CATEGORIES_START:\n return {\n ...state,\n category: {\n ...state.category,\n isFetching: true\n }\n };\n case fundRankingConstants.FETCH_CATEGORIES_SUCCESS:\n return {\n ...state,\n category: {\n ...state.category,\n categories: action.payload,\n isFetching: false\n }\n };\n case fundRankingConstants.FETCH_CATEGORIES_FAILURE:\n return {\n ...state,\n category: {\n ...state.category,\n isFetching: false,\n categories: [],\n errorMessage: action.payload\n }\n };\n case fundRankingConstants.UPDATE_CATEGORIES:\n return {\n ...state,\n favCategories: action.payload\n };\n case fundRankingConstants.APPEND_CATEGORY:\n return {\n ...state,\n favCategories: appendCategory(action.payload, state.favCategories)\n };\n case fundRankingConstants.REMOVE_CATEGORY:\n return {\n ...state,\n favCategories: removeCategory(action.payload, state.favCategories)\n };\n case fundRankingConstants.FETCH_USER_CATEGORIES_START:\n return {\n ...state,\n userCategory: userCategoryFetching(state.userCategory)\n };\n case fundRankingConstants.FETCH_USER_CATEGORIES_SUCCESS:\n return {\n ...state,\n userCategory: userCategoryData(state.userCategory, action.payload)\n };\n case fundRankingConstants.FETCH_USER_CATEGORIES_FAILURE:\n return {\n ...state,\n userCategory: userCategoryError(state.userCategory, action.payload)\n };\n case fundRankingConstants.RESET_USER_CATEGORIES:\n return {\n ...state,\n userCategory: userCategoryData(state.userCategory, [])\n };\n case fundRankingConstants.UPDATE_USER_CATEGORIES:\n return {\n ...state,\n userCategory: {\n ...state.userCategory,\n ...action.payload\n }\n };\n case fundRankingConstants.UPDATE_FUND_RANKING_TABLE_COLUMNS:\n return {\n ...state,\n currentColumns: action.payload ?? []\n };\n default:\n return state;\n }\n};\n\nexport default fundRankingReducer;\n","export const setIsFetching = (state) => {\n return {\n ...state,\n isFetching: true\n }\n};\n\nexport const filterSearchResult = (state, data) => {\n return {\n ...state,\n isFetching: false,\n // currentPage: data.currentPage > 0 ? data.currentPage : 1,\n totalPage: data.totalPage ? data.totalPage : 1,\n searchData: data.items,\n errorMessage: null,\n }\n};\n\nexport const resetSearchResult = (state, message) => {\n return {\n ...state,\n isFetching: false,\n currentPage: 1,\n totalPage: 1,\n searchData: [],\n errorMessage: message,\n }\n};\n\nexport const filterSearchNavResult = (state, data) => {\n return {\n ...state,\n isFetching: false,\n navs: data\n }\n};\n\nexport const resetSearchNavResult = (state, message) => {\n return {\n ...state,\n isFetching: false,\n navs: [],\n errorMessage: message,\n }\n};\n\nexport const checkExistedCategory = (categoryCode, userCategories) => {\n if (userCategories.some((obj) => obj.categoryCode === categoryCode)) {\n return true;\n } else {\n return false;\n }\n};\n\nexport const updateCurrentPage = (state, page) => {\n return {\n ...state,\n currentPage: page ? page : 1,\n }\n};\n\nexport const setDefaultQueriesAdvanceSearch = (state, data) => {\n\tconst result = {\n\t\t...state,\n\t\tcategoryCode: [],\n\t\tdividendPolicy: data.dividendPolicy[0].code,\n\t\tfundTypes: data.fundTypes.map(item => item.code),\n\t\tinvestorRatings : data.investorRatings.map(item => item.code),\n\t\tpurchaseFee : data.purchaseFee[0].code,\n\t\tcurrencyPolicy : data.currencyPolicy[0].code,\n\t\triskLevels : data.riskLevels.map(item => item.code),\n\t\tmorningStarRatings: data.morningStarRatings.map(item => item.code),\n\t\tcompany: data.company.map(item => item.id),\n\t\tindexFund: true\n\t};\n\treturn result;\n};\n","import { advanceSearchConstants } from '../_constants/advance-search.constants';\n\nimport { \n setIsFetching,\n filterSearchNavResult, \n resetSearchNavResult,\n setDefaultQueriesAdvanceSearch\n } from '../_utils/advance-search.utils';\n\nconst initialState = {\n filters: {\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n currentHeaders: [],\n defaultHeaders: [\n 'charts', \n 'riskLevel',\n 'morningStarRating',\n 'nav',\n 'performance'\n ],\n searchResponse: {\n isFetching: false,\n errorMessage: null,\n currentPage: 1,\n totalPage: 1,\n data: []\n },\n searchNavResults: {\n isFetching: false,\n navs: [],\n errorMessage: null\n },\n navResponse: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n tableHeaders: [\n {\n header: 'ชื่อกองทุน',\n sortKey: 'fundCode',\n section: 'main'\n },\n {\n header: 'Chart',\n sortKey: 'charts',\n section: 'other'\n },\n {\n header: 'ความเสี่ยง',\n sortKey: 'riskLevel',\n section: 'other'\n },\n {\n header: 'Morningstar rating',\n sortKey: 'morningStarRating',\n section: 'other'\n },\n {\n header: 'NAV',\n sortKey: 'nav',\n section: 'other'\n },\n {\n header: '%UNIT Change',\n sortKey: 'unitChange',\n section: 'other'\n },\n {\n header: 'เงินเข้าออก',\n sortKey: 'fundFlow',\n section: 'other'\n },\n {\n header: 'ผลตอบแทน',\n sortKey: 'performance',\n section: 'other'\n }\n ],\n navDate: '1Y',\n defaultQueries: null,\n queries: {\n categoryCode: [],\n dividendPolicy: null,\n fundTypes: [],\n topHoldingType: 'I',\n includeTopHoldngs : [],\n excludeTopHoldngs : [],\n returnPercentage: null,\n returnDateType: '1Y',\n morningStarRatings : [],\n investorRatings : [],\n purchaseFee : null,\n currencyPolicy : null,\n company : [],\n riskLevels : [],\n sortBy: 'performance',\n sortType: 'd',\n pageSize: 20\n },\n colors: ['g-bg-red', 'g-bg-purple', 'g-bg-green', 'g-bg-blue', 'g-bg-pink', 'g-bg-cyan', 'g-bg-orange', 'g-bg-teal']\n};\n\nconst advanceSearchReducer = (state = initialState, action) => {\n switch (action.type) {\n case advanceSearchConstants.UPDATE_ADVANCE_SEARCH_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach(attribute => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case 'sortBy': {\n if (value === 'nav' || value === 'riskLevel') {\n updateAttribute['sortType'] = state.queries.sortBy === value && state.queries.sortType !== 'd' ? 'd' : 'a'\n } else {\n updateAttribute['sortType'] = state.queries.sortBy === value && value && state.queries.sortType !== 'a' ? 'a' : 'd'\n }\n updateAttribute['sortBy'] = value;\n break;\n };\n case 'pageSize': {\n if (value !== state.queries.pageSize) {\n updateAttribute['pageSize'] = value\n }\n break;\n }\n default: updateAttribute[attribute] = value; \n break;\n };\n })\n \n return {\n ...state,\n queries: {\n ...state.queries,\n ...updateAttribute\n },\n searchResponse: {\n ...state.searchResponse,\n currentPage: 1\n }\n }\n };\n case advanceSearchConstants.RESET_QUERIES_ADVANCE_SEARCH:\n return {\n ...state,\n queries: state.defaultQueries\n };\n case advanceSearchConstants.UPDATE_DEFAULT_QUERIES_ADVANCE_SEARCH:\n return {\n ...state,\n queries: setDefaultQueriesAdvanceSearch(state.queries, action.payload),\n defaultQueries: setDefaultQueriesAdvanceSearch(state.queries, action.payload)\n };\n case advanceSearchConstants.FETCH_ADVANCE_SEARCH_FILTERS_START:\n return {\n ...state,\n filters: {\n ...state.filters,\n isFetching: true\n }\n };\n case advanceSearchConstants.FETCH_ADVANCE_SEARCH_FILTERS_SUCCESS:\n return {\n ...state,\n filters: {\n ...state.filters,\n isFetching: false,\n data: action.payload,\n errorMessage: null,\n }\n };\n case advanceSearchConstants.FETCH_ADVANCE_SEARCH_FILTERS_FAILURE:\n return {\n ...state,\n filters: {\n ...state.filters,\n isFetching: false,\n data: null,\n errorMessage: action.payload,\n }\n };\n case advanceSearchConstants.FETCH_ADVANCE_SEARCH_START:\n return {\n ...state,\n searchResponse: {\n ...state.searchResponse,\n isFetching: true\n }\n };\n case advanceSearchConstants.FETCH_ADVANCE_SEARCH_SUCCESS:\n return {\n ...state,\n searchResponse: {\n ...state.searchResponse,\n isFetching: false,\n errorMessage: null,\n totalPage: action.payload?.totalPage ?? 1,\n currentPage: action.payload?.currentPage ?? 1,\n data: action.payload?.items ?? []\n }\n };\n case advanceSearchConstants.FETCH_ADVANCE_SEARCH_FAILURE:\n return {\n ...state,\n searchResponse: {\n ...state.searchResponse,\n isFetching: false,\n errorMessage: action.payload,\n currentPage: 1,\n totalPage: 1,\n data: []\n }\n }\n case advanceSearchConstants.UPDATE_NAV_DATE_ADVANCE_SEARCH:\n return {\n ...state,\n navDate: action.payload\n };\n case advanceSearchConstants.FETCH_NAV_ADVANCE_SEARCH_START:\n return {\n ...state,\n searchNavResults: setIsFetching(state.searchNavResults),\n navResponse: {\n ...state.navResponse,\n isFetching: true\n }\n };\n case advanceSearchConstants.FETCH_NAV_ADVANCE_SEARCH_SUCCESS:\n return {\n ...state,\n searchNavResults: filterSearchNavResult(state.searchNavResults, action.payload),\n navResponse: {\n ...state.navResponse,\n isFetching: false,\n data: action.payload ?? [],\n errorMessage: null\n }\n };\n case advanceSearchConstants.FETCH_NAV_ADVANCE_SEARCH_FAILURE:\n return {\n ...state,\n searchNavResults: resetSearchNavResult(state.searchNavResults, action.payload),\n navResponse: {\n ...state.navResponse,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n case advanceSearchConstants.UPDATE_CURRENT_PAGE_SEARCH:\n return {\n ...state,\n searchResponse: {\n ...state.searchResponse,\n currentPage: action.payload ?? 1\n }\n };\n case advanceSearchConstants.UPDATE_TABLE_COLUMN:\n return {\n ...state,\n currentHeaders: action.payload ?? [] \n };\n default:\n return state;\n }\n};\n\nexport default advanceSearchReducer;\n","import { hotfundConstants } from '../_constants/hotfund.constants';\n\nconst initialState = {\n currentColumns: [],\n defaultColumns: [\n 'averageReturn',\n 'fundFlow',\n 'chart',\n ],\n tableColumns: [\n {\n header: 'อันดับ',\n sortKey: 'rank',\n section: 'main',\n },\n {\n header: 'กลุ่มกองทุน',\n sortKey: 'fundCategory',\n section: 'main',\n },\n {\n header: 'ผลตอบแทนเฉลี่ย',\n sortKey: 'averageReturn',\n section: 'other',\n },\n {\n header: 'ยอดเงินเข้าออก',\n sortKey: 'fundFlow',\n section: 'other',\n },\n ],\n cnsCategoryList: [\n { \n key: 'GMF', \n name: 'กองทั่วไป' \n },\n { \n key: 'LTF', \n name: 'LTF' \n },\n { \n key: 'RMF', \n name: 'RMF' \n },\n { \n key: 'SSF', \n name: 'SSF' \n },\n { \n key: 'SSFX', \n name: 'SSFX' \n },\n { \n key: 'TESG', \n name: 'TESG' \n }\n ],\n viewList: [\n { \n key: 'MIN_MAX', \n name: '5 อันดับสูงสุดต่ำสุด' \n },\n { \n key: 'ALL', \n name: 'ทุกกลุ่มกองทุน' \n },\n ],\n queries: {\n cnsCategories: ['GMF', 'LTF', 'RMF', 'SSF', 'SSFX', 'TESG'],\n dateType: '1Y',\n sortBy: null,\n sortType: 'a',\n viewType: 'MIN_MAX',\n },\n responses: {\n isFetching: false,\n data: [],\n errorMessage: null\n }\n};\n\nconst hotfundReducer = (state = initialState, action) => {\n switch (action.type) {\n case hotfundConstants.FETCH_HOTFUND_START:\n return {\n ...state,\n responses: {\n ...state.responses,\n isFetching: true\n }\n };\n case hotfundConstants.FETCH_HOTFUND_SUCCESS:\n return {\n ...state,\n responses: {\n ...state.responses,\n isFetching: false,\n data: action.payload ?? [],\n errorMessage: null\n }\n };\n case hotfundConstants.FETCH_HOTFUND_FAILURE:\n return {\n ...state,\n responses: {\n ...state.responses,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n case hotfundConstants.UPDATE_HOTFUND_QUERIES: {\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach(attribute => {\n let value = action.payload[`${attribute}`];\n switch (attribute) {\n case 'sortBy': {\n updateAttribute['sortType'] = state.queries.sortBy === value && state.queries.sortType !== 'a' ? 'a' : 'd'\n updateAttribute['sortBy'] = value;\n break;\n };\n default: updateAttribute[attribute] = value; \n break;\n };\n })\n\n return {\n ...state,\n queries: {\n ...state.queries,\n ...updateAttribute\n }\n }\n }\n case hotfundConstants.UPDATE_HOTFUND_TABLE_COLUMNS:\n return {\n ...state,\n currentColumns: action.payload ?? [] \n };\n default:\n return state;\n }\n};\n\nexport default hotfundReducer;\n","import { compareConstants } from '../_constants/compare.constants';\n\nconst initialState = {\n compareFunds: null,\n tempCompareFunds: [],\n isFetching: false,\n isOpenCompareModal: false,\n errorMessage: undefined,\n searchIndex: 0,\n statusReturn: false,\n statusDrawdown: false,\n statusProportion: false,\n fundList: [],\n graph: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n funds: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n fundByPeriod: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n navFunds: {\n isFetching: false,\n data: [],\n errorMessage: null\n }\n};\n\nconst compareReducer = (state = initialState, action) => {\n switch (action.type) {\n case compareConstants.TOGGLED_COMPARE_MODAL:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisOpenCompareModal: !state.isOpenCompareModal\n\t\t\t};\n case compareConstants.ADD_FUNDIDS_TO_COMPARE_FUNDS:\n return {\n ...state,\n fundList: action.payload.map(fund => ({ ...fund, isShowGraph: fund.isShowGraph ?? true }))\n };\n case compareConstants.UPDATE_FUNDIDS_TO_COMPARE_FUNDS:\n const { type, fundId } = action.payload\n if (type === 'DELETE') {\n return {\n ...state,\n fundList: state.fundList.filter(fund => fund.fundId !== fundId)\n }\n }\n if (type === 'UPDATE') {\n return {\n ...state,\n fundList: state.fundList.map(fund => fund.fundId === fundId ?\n { ...fund, isShowGraph: !fund.isShowGraph } : fund)\n }\n }\n return\n case compareConstants.UPDATE_TEMPORARY_COMPARE_FUNDS: {\n let { fundId } = action.payload;\n let isAddedFundId = state.tempCompareFunds.some(compareFund => compareFund.fundId.includes(fundId));\n\n if (fundId && !isAddedFundId) {\n return {\n ...state,\n tempCompareFunds: [\n ...state.tempCompareFunds,\n action.payload\n ]\n };\n }\n\n return state;\n }\n case compareConstants.REMOVED_TEMPORARY_COMPARE_FUNDS: {\n let { fundId } = action.payload;\n\n return {\n ...state,\n tempCompareFunds: state.tempCompareFunds.filter(fund => fund.fundId !== fundId)\n };\n }\n case compareConstants.RESET_TEMPORARY_COMPARE_FUNDS:\n return {\n ...state,\n tempCompareFunds: state.fundList\n };\n case compareConstants.FETCH_COMPARE_START:\n return {\n ...state,\n funds: {\n ...state.funds,\n isFetching: true\n }\n };\n case compareConstants.FETCH_COMPARE_SUCCESS:\n return {\n ...state,\n compareFunds: action.payload,\n funds: {\n ...state.funds,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n };\n case compareConstants.FETCH_COMPARE_FAILURE:\n return {\n ...state,\n funds: {\n ...state.funds,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n // case compareConstants.CLEAR_FUND_COMPARE:\n // return {\n // ...state,\n // compareFunds: null,\n // funds: {\n // ...state.funds,\n // fundIds: [],\n // data: []\n // }\n // };\n case compareConstants.CLEAR_FUND_COMPARE:\n return {\n ...state,\n compareFunds: null,\n funds: {\n ...state.funds,\n fundIds: [],\n data: []\n }\n };\n case compareConstants.TOGGLE_RETURN:\n return {\n ...state,\n statusReturn: !state.statusReturn\n };\n case compareConstants.TOGGLE_DRAWDOWN:\n return {\n ...state,\n statusDrawdown: !state.statusDrawdown\n };\n case compareConstants.TOGGLE_PROPORTION:\n return {\n ...state,\n statusProportion: !state.statusProportion\n };\n case compareConstants.INSERT_SEARCH_INDEX:\n return {\n ...state,\n searchIndex: action.payload\n };\n case compareConstants.FETCH_GRAPH_COMPARE_FUNDS_START:\n return {\n ...state,\n graph: {\n ...state.graph,\n isFetching: true\n }\n };\n case compareConstants.FETCH_GRAPH_COMPARE_FUNDS_SUCCESS:\n return {\n ...state,\n graph: {\n ...state.graph,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n };\n case compareConstants.FETCH_GRAPH_COMPARE_FUNDS_FAILURE:\n return {\n ...state,\n graph: {\n ...state.graph,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n case compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_START:\n return {\n ...state,\n fundByPeriod: {\n ...state.fundByPeriod,\n isFetching: true\n }\n };\n case compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_SUCCESS:\n return {\n ...state,\n fundByPeriod: {\n ...state.fundByPeriod,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n };\n case compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_FAILURE:\n return {\n ...state,\n fundByPeriod: {\n ...state.fundByPeriod,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n case compareConstants.FETCH_NAV_COMPARE_FUNDS_START:\n return {\n ...state,\n navFunds: {\n ...state.navFunds,\n isFetching: true\n }\n };\n case compareConstants.FETCH_NAV_COMPARE_FUNDS_SUCCESS:\n return {\n ...state,\n navFunds: {\n ...state.navFunds,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n };\n case compareConstants.FETCH_NAV_COMPARE_FUNDS_FAILURE:\n return {\n ...state,\n navFunds: {\n ...state.navFunds,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n };\n default:\n return state;\n }\n};\n\nexport default compareReducer;\n","import { informationConstants } from '../_constants/information.constants';\n\nimport { filterCalendarResults } from '../_utils/calendar.utils';\nimport {\n changePage,\n filterMaximumDrawdown,\n resetMaximumDrawdown,\n changeDrawdownSortingFilters,\n changeNavGraphDate,\n changeSortedDrawdown,\n resetMonthlyReturn,\n filterPriceRange,\n resetPriceRange,\n filterVolatilities,\n resetVolatilities,\n filterReturnExpenseRatio,\n resetReturnExpenseRatio,\n filterMonthlyProfit,\n resetMonthlyProfit,\n filterReturnHistory,\n resetReturnHistory,\n setIsFetching,\n filterDataResult,\n resetDataResult,\n resetDataResultToObject\n} from '../_utils/information.utils';\n\nimport { filterMonthlyReturn } from '../_utils/investment.utils';\nimport { sub } from 'date-fns';\n\nconst initialState = {\n fundCode: null,\n portfolioInfo: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n recentTab: '1',\n informationWidget: {\n tabList: [\n /*{\n name: 'ฟีดข่าว',\n icon: 'FeedIcon'\n },*/\n {\n name: 'ข้อมูลกองทุน',\n icon: 'InformationIcon'\n },\n {\n name: 'พอร์ต',\n icon: 'PortfolioIcon'\n },\n {\n name: 'สถิติ',\n icon: 'ChartIcon'\n },\n {\n name: 'กราฟ',\n icon: 'InvestmentStatisticIcon'\n },\n {\n name: 'NAV ย้อนหลัง',\n icon: 'HistoryIcon'\n },\n {\n name: 'ปันผล',\n icon: 'InvestmentIcon'\n }\n ],\n graphMode: [\n {\n name: 'NAV & AUM',\n value: 'NAV'\n },\n {\n name: 'ผลตอบแทน',\n value: 'PERCENT_CHANGE'\n },\n {\n name: 'เงินเข้าออก',\n value: 'FUND_FLOW'\n }\n ],\n selectedBtn: 0,\n fundInformation: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n navGraph: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n tradingInformation: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n averageRating: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n calendar: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n },\n fundPortInfo: {\n portInformation: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n portChartByChartType: {\n isFetching: false,\n data: {},\n errorMessage: null\n }\n },\n statistic: {\n monthlyReturns: [],\n monthlyPofit: null,\n priceRanges: [],\n volatilities: [],\n returnExpenseRatio: null,\n returnHistory: null,\n weeklyRanking: {\n isFetching: false,\n data: {},\n errorMessage: null\n },\n maximumDrawdownList: [],\n drawdownListByDate: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n navGraphDateRange: {\n startDate: (sub(new Date(), {years: 1})).toJSON(),\n endDate: (new Date()).toJSON()\n },\n drawdownNavGraph: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n currentDrawdownSortingFilters: 'sortedByPercentage',\n drawdownSortingFilters: [\n {\n name: 'ตามเวลา',\n value: 'sortedByDate'\n },\n {\n name: '% ติดลบ',\n value: 'sortedByPercentage'\n }\n ]\n },\n graphInfo: {\n graphMode: [\n {\n name: 'NAV & AUM',\n value: 'NAV'\n },\n {\n name: 'ผลตอบแทน',\n value: 'PERCENT_CHANGE'\n },\n {\n name: 'เงินเข้าออก',\n value: 'FUND_FLOW'\n }\n ],\n historicalNavGraph: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n },\n fundHistoricalNav: {\n currentPage: 1,\n totalPage: null,\n headers: [\n {\n header: 'วันที่',\n sortKey: 'dateTime'\n },\n {\n header: 'NAV',\n sortKey: 'navValue'\n },\n {\n header: 'ราคาขาย',\n sortKey: 'saleValue'\n },\n {\n header: 'ราคาซื้อคืน',\n sortKey: 'buyValue'\n },\n {\n header: 'เปลี่ยนแปลง',\n sortKey: 'changeValue'\n },\n {\n header: '%CHANGE',\n sortKey: 'changePercent'\n },\n {\n header: 'AUM',\n sortKey: 'aumValue'\n }\n ],\n historicalNav: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n },\n dividend: {\n currentPage: 1,\n totalPage: null,\n headers: [\n {\n header: 'ลำดับ',\n sortKey: 'order'\n },\n {\n header: 'วันปิดสมุดทะเบียน',\n sortKey: 'dividendDate'\n },\n {\n header: 'วันที่จ่ายปันผล',\n sortKey: 'paymentDate'\n },\n {\n header: 'บาท / หน่วย',\n sortKey: 'dividend'\n }\n ],\n dividendGroupByYear: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n dividendByDateType: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n descriptions: {\n isFetching: false,\n data: [],\n errorMessage: null\n }\n },\n};\n\nconst informationReducer = (state = initialState, action) => {\n switch (action.type) {\n case informationConstants.UPDATE_FUND_ID: // Update Fund Code to Fetching All APIs in This reducer\n return {\n ...state,\n fundCode: action.payload\n };\n case informationConstants.UPDATE_RECENT_TAB: // remember recent tab\n return {\n ...state,\n recentTab: action.payload\n };\n case informationConstants.FETCH_FUND_INFO_START: // Fetching Fund InFormation Data \n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n fundInformation: setIsFetching(state.informationWidget.fundInformation)\n }\n };\n case informationConstants.FETCH_FUND_INFO_SUCCESS:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n fundInformation: filterDataResult(state.informationWidget.fundInformation, action.payload)\n }\n };\n case informationConstants.FETCH_FUND_INFO_FAILURE:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n fundInformation: resetDataResultToObject(state.informationWidget.fundInformation)\n }\n };\n case informationConstants.CLEAR_FUND_INFO:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n fundInformation: resetDataResultToObject(state.informationWidget.fundInformation)\n }\n };\n case informationConstants.FETCH_TRADING_INFO_START: // Fetching Fund InFormation Data \n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n tradingInformation: setIsFetching(state.informationWidget.tradingInformation)\n }\n };\n case informationConstants.FETCH_TRADING_INFO_SUCCESS:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n tradingInformation: filterDataResult(state.informationWidget.tradingInformation, action.payload)\n }\n };\n case informationConstants.FETCH_TRADING_INFO_FAILURE:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n tradingInformation: resetDataResultToObject(state.informationWidget.tradingInformation)\n }\n };\n case informationConstants.FETCH_PORTFOLIO_INFO_START: // Fetching Fund InFormation Data \n return {\n ...state,\n portfolioInfo: {\n ...state.portfolioInfo,\n isFetching: true,\n }\n };\n case informationConstants.FETCH_PORTFOLIO_INFO_SUCCESS:\n return {\n ...state,\n portfolioInfo: {\n ...state.portfolioInfo,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n };\n case informationConstants.FETCH_PORTFOLIO_INFO_FAILURE:\n return {\n ...state,\n portfolioInfo: {\n ...state.portfolioInfo,\n isFetching: false,\n data: {},\n errorMessage: action.payload\n }\n };\n case informationConstants.FETCH_FUND_AVERAGE_RATING_START: // Fetching Fund InFormation Data \n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n averageRating: setIsFetching(state.informationWidget.averageRating)\n }\n };\n case informationConstants.FETCH_FUND_AVERAGE_RATING_SUCCESS:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n averageRating: filterDataResult(state.informationWidget.averageRating, action.payload)\n }\n };\n case informationConstants.FETCH_FUND_AVERAGE_RATING_FAILURE:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n averageRating: resetDataResultToObject(state.informationWidget.averageRating)\n }\n };\n case informationConstants.FETCH_CALENDAR_FUND_START:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n calendar: setIsFetching(state.informationWidget.calendar)\n }\n };\n case informationConstants.FETCH_CALENDAR_FUND_SUCCESS:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n calendar: filterCalendarResults(state.informationWidget.calendar, action.payload)\n }\n };\n case informationConstants.FETCH_CALENDAR_FUND_FAILURE:\n return {\n ...state,\n informationWidget: {\n ...state.informationWidget,\n calendar: resetDataResult(state.informationWidget.calendar)\n }\n };\n case informationConstants.FETCH_FUND_PORT_INFO_START:\n return {\n ...state,\n fundPortInfo: {\n ...state.fundPortInfo,\n portInformation: setIsFetching(state.fundPortInfo.portInformation)\n }\n };\n case informationConstants.FETCH_FUND_PORT_INFO_SUCCESS:\n return {\n ...state,\n fundPortInfo: {\n ...state.fundPortInfo,\n portInformation: filterDataResult(state.fundPortInfo.portInformation, action.payload)\n }\n };\n case informationConstants.FETCH_FUND_PORT_INFO_FAILURE:\n return {\n ...state,\n fundPortInfo: {\n ...state.fundPortInfo,\n portInformation: resetDataResultToObject(state.fundPortInfo.portInformation)\n }\n };\n case informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_START:\n return {\n ...state,\n fundPortInfo: {\n ...state.fundPortInfo,\n portChartByChartType: setIsFetching(state.fundPortInfo.portChartByChartType)\n }\n };\n case informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_SUCCESS:\n return {\n ...state,\n fundPortInfo: {\n ...state.fundPortInfo,\n portChartByChartType: filterDataResult(state.fundPortInfo.portChartByChartType, action.payload)\n }\n };\n case informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_FAILURE:\n return {\n ...state,\n fundPortInfo: {\n ...state.fundPortInfo,\n portChartByChartType: resetDataResultToObject(state.fundPortInfo.portChartByChartType)\n }\n };\n case informationConstants.FETCH_HISTORICAL_NAV_START:\n return {\n ...state,\n fundHistoricalNav: {\n ...state.fundHistoricalNav,\n historicalNav: setIsFetching(state.fundHistoricalNav.historicalNav)\n }\n };\n case informationConstants.FETCH_HISTORICAL_NAV_SUCCESS:\n return {\n ...state,\n fundHistoricalNav: {\n ...state.fundHistoricalNav,\n currentPage: action.payload.currentPage,\n totalPage: action.payload.totalPage,\n historicalNav: filterDataResult(state.fundHistoricalNav.historicalNav, action.payload.items)\n }\n };\n case informationConstants.FETCH_HISTORICAL_NAV_FAILURE:\n return {\n ...state, \n fundHistoricalNav: {\n ...state.fundHistoricalNav,\n currentPage: 1,\n totalPage: 1,\n historicalNav: resetDataResult(state.fundHistoricalNav.historicalNav)\n }\n };\n case informationConstants.FETCH_HISTORICAL_NAV_CHANGE_PAGE:\n return {\n ...state,\n fundHistoricalNav: changePage(state.fundHistoricalNav, action.payload)\n };\n case informationConstants.FETCH_HISTORICAL_NAV_GRAPH_START:\n return {\n ...state,\n graphInfo: {\n ...state.graphInfo,\n historicalNavGraph: setIsFetching(state.graphInfo.historicalNavGraph)\n },\n };\n case informationConstants.FETCH_HISTORICAL_NAV_GRAPH_SUCCESS:\n return {\n ...state,\n graphInfo: {\n ...state.graphInfo,\n historicalNavGraph: filterDataResult(state.graphInfo.historicalNavGraph, action.payload)\n },\n };\n case informationConstants.FETCH_HISTORICAL_NAV_GRAPH_FAILURE:\n return {\n ...state,\n graphInfo: {\n ...state.graphInfo,\n historicalNavGraph: resetDataResult(state.graphInfo.historicalNavGraph)\n },\n };\n case informationConstants.FETCH_WEEKLY_FUND_RANKING_START:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n weeklyRanking: setIsFetching(state.statistic.weeklyRanking)\n }\n }; \n case informationConstants.FETCH_WEEKLY_FUND_RANKING_SUCCESS:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n weeklyRanking: filterDataResult(state.statistic.weeklyRanking, action.payload)\n }\n };\n case informationConstants.FETCH_WEEKLY_FUND_RANKING_FAILURE:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n weeklyRanking: resetDataResultToObject(state.statistic.weeklyRanking, action.payload)\n }\n };\n case informationConstants.FETCH_DRAWDOWN_BY_DATE_START:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n drawdownListByDate: setIsFetching(state.statistic.drawdownListByDate)\n }\n }; \n case informationConstants.FETCH_DRAWDOWN_BY_DATE_SUCCESS:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n drawdownListByDate: filterDataResult(state.statistic.drawdownListByDate, action.payload)\n }\n };\n case informationConstants.FETCH_DRAWDOWN_BY_DATE_FAILURE:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n drawdownListByDate: resetDataResult(state.statistic.drawdownListByDate, action.payload)\n }\n };\n case informationConstants.FETCH_MAXIMUM_DRAWDOWN_START:\n return {\n ...state,\n isFetching: true\n }; \n case informationConstants.FETCH_MAXIMUM_DRAWDOWN_SUCCESS:\n return {\n ...state,\n statistic: filterMaximumDrawdown(state.statistic, action.payload)\n };\n case informationConstants.FETCH_MAXIMUM_DRAWDOWN_FAILURE:\n return {\n ...state,\n statistic: resetMaximumDrawdown(state.statistic),\n errorMessage: action.payload\n };\n case informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_START:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n drawdownNavGraph: {\n ...state.statistic.drawdownNavGraph,\n isFetching: true\n }\n }\n }; \n case informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_SUCCESS:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n drawdownNavGraph: {\n ...state.statistic.drawdownNavGraph,\n isFetching: false,\n data: action.payload,\n errorMessage: null\n }\n }\n };\n case informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_FAILURE:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n drawdownNavGraph: {\n ...state.statistic.drawdownNavGraph,\n isFetching: false,\n data: [],\n errorMessage: action.payload\n }\n }\n };\n case informationConstants.FETCH_MONTHLY_RETURN_START:\n return {\n ...state,\n statistic: resetMonthlyReturn(state.statistic)\n }; \n case informationConstants.FETCH_MONTHLY_RETURN_SUCCESS:\n return {\n ...state,\n statistic: {\n ...state.statistic,\n monthlyReturns: filterMonthlyReturn(action.payload)\n }\n };\n case informationConstants.FETCH_MONTHLY_RETURN_FAILURE:\n return {\n ...state,\n statistic: resetMonthlyReturn(state.statistic),\n errorMessage: action.payload\n };\n case informationConstants.FETCH_PRICE_RANGE_START:\n return {\n ...state,\n statistic: resetPriceRange(state.statistic)\n }; \n case informationConstants.FETCH_PRICE_RANGE_SUCCESS:\n return {\n ...state,\n statistic: filterPriceRange(state.statistic, action.payload)\n };\n case informationConstants.FETCH_PRICE_RANGE_FAILURE:\n return {\n ...state,\n statistic: resetPriceRange(state.statistic),\n errorMessage: action.payload\n };\n case informationConstants.FETCH_VOLATILITIES_START:\n return {\n ...state,\n statistic: resetVolatilities(state.statistic)\n }; \n case informationConstants.FETCH_VOLATILITIES_SUCCESS:\n return {\n ...state,\n statistic: filterVolatilities(state.statistic, action.payload)\n };\n case informationConstants.FETCH_VOLATILITIES_FAILURE:\n return {\n ...state,\n statistic: resetVolatilities(state.statistic),\n };\n case informationConstants.FETCH_RETURN_EXPENSE_RATIO_START:\n return {\n ...state,\n }; \n case informationConstants.FETCH_RETURN_EXPENSE_RATIO_SUCCESS:\n return {\n ...state,\n statistic: filterReturnExpenseRatio(state.statistic, action.payload)\n };\n case informationConstants.FETCH_RETURN_EXPENSE_RATIO_FAILURE:\n return {\n ...state,\n statistic: resetReturnExpenseRatio(state.statistic),\n };\n case informationConstants.FETCH_MONTHLY_PROFIT_START:\n return {\n ...state,\n }; \n case informationConstants.FETCH_MONTHLY_PROFIT_SUCCESS:\n return {\n ...state,\n statistic: filterMonthlyProfit(state.statistic, action.payload)\n };\n case informationConstants.FETCH_MONTHLY_PROFIT_FAILURE:\n return {\n ...state,\n statistic: resetMonthlyProfit(state.statistic),\n };\n case informationConstants.FETCH_RETURN_HISTORY_START:\n return {\n ...state,\n }; \n case informationConstants.FETCH_RETURN_HISTORY_SUCCESS:\n return {\n ...state,\n statistic: filterReturnHistory(state.statistic, action.payload)\n };\n case informationConstants.FETCH_RETURN_HISTORY_FAILURE:\n return {\n ...state,\n statistic: resetReturnHistory(state.statistic),\n };\n case informationConstants.CHANGE_DRAWDOWN_STATISTIC_FILTERS:\n return {\n ...state,\n statistic: changeDrawdownSortingFilters(state.statistic, action.payload)\n };\n case informationConstants.CHANGE_NAV_GRAPH_DATE:\n return {\n ...state,\n statistic: changeNavGraphDate(state.statistic, action.payload),\n };\n case informationConstants.CHANGE_SORTED_DRAWDOWN:\n return {\n ...state,\n statistic: changeSortedDrawdown(state.statistic, action.payload),\n };\n case informationConstants.FETCH_DIVIDEND_START:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n dividendByDateType: setIsFetching(state.dividend.dividendByDateType)\n }\n };\n case informationConstants.FETCH_DIVIDEND_SUCCESS:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n currentPage: action.payload.currentPage,\n totalPage: action.payload.totalPage,\n dividendByDateType: filterDataResult(state.dividend.dividendByDateType, action.payload.items)\n }\n };\n case informationConstants.FETCH_DIVIDEND_FAILURE:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n currentPage: 1,\n totalPage: 1,\n dividendByDateType: resetDataResult(state.dividend.dividendByDateType, action.payload)\n }\n };\n case informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_START:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n dividendGroupByYear: setIsFetching(state.dividend.dividendGroupByYear)\n }\n };\n case informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_SUCCESS:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n dividendGroupByYear: filterDataResult(state.dividend.dividendGroupByYear, action.payload)\n }\n };\n case informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_FAILURE:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n dividendGroupByYear: resetDataResult(state.dividend.dividendGroupByYear, action.payload)\n }\n };\n case informationConstants.FETCH_DIVIDEND_DESCRIPTION_START:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n descriptions: setIsFetching(state.dividend.descriptions)\n }\n };\n case informationConstants.FETCH_DIVIDEND_DESCRIPTION_SUCCESS:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n descriptions: filterDataResult(state.dividend.descriptions, action.payload)\n }\n };\n case informationConstants.FETCH_DIVIDEND_DESCRIPTION_FAILURE:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n descriptions: resetDataResult(state.dividend.descriptions, action.payload)\n }\n };\n case informationConstants.FETCH_DIVIDEND_CHANGE_PAGE:\n return {\n ...state,\n dividend: {\n ...state.dividend,\n currentPage: action.payload\n }\n };\n default:\n return state;\n }\n};\n\nexport default informationReducer;\n","import { orderRequestConstants } from \"../_constants/order-request.constants\";\nimport {\n dispatchSearchFunds,\n dispatchSearchPortfolios,\n} from \"../_utils/order-request.utils\";\n\nconst initialState = {\n // Modal State\n isOpenModal: false,\n\n // Active tab\n activeTab: \"Buy\", // (eg. 'Buy', 'Sell', 'Switch')\n subActiveTab: \"SINGLE\", // (eg. 'SINGLE', 'DCA', 'BOTH')\n navigationFund: null,\n checkedFundAbleToOrder: {\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n orderRequestForm: null,\n\n // Fund Infomation\n fundInfo: {\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n\n fundInfo2: {\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n\n confirmOrderFund: {\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n\n isFetching: false,\n responseMessage: [],\n searchFundInfo: [],\n searchText: null,\n showResponseMessage: false,\n errorMessage: null,\n\n // form\n latestPlan: {},\n latestSettleDate: {},\n};\n\nconst orderRequestReducer = (state = initialState, action) => {\n switch (action.type) {\n // Toggled Buy-Sell Modals.\n case orderRequestConstants.TOGGLED_ORDER_FUNDS_REQUEST_MODAL:\n return {\n ...state,\n isOpenModal: !state.isOpenModal,\n fundId: state.isOpenModal ? null : state.fundId,\n };\n case orderRequestConstants.CLEAR_ERROR_MESSAGE:\n return {\n ...state,\n errorMessage: null,\n // showResponseMessage: false\n };\n // Updated Active Tab (buy, sell, switch).\n case orderRequestConstants.UPDATE_ACTIVE_TAB_ORDER_FUNDS_REQUEST_MODAL: {\n const { activeTab, subActiveTab } = action.payload;\n if (\n !action.payload ||\n (activeTab === state.activeTab && subActiveTab === state.subActiveTab)\n ) {\n return state;\n }\n\n let resetSubActiveTab = subActiveTab ?? state.subActiveTab;\n if (activeTab === \"Buy\") {\n resetSubActiveTab = \"SINGLE\";\n }\n\n if (activeTab === \"Sell\") {\n // REMOVE THIS CONDITION WHEN SUB ACTIVE HAVE SELL CONTINEOUS TAB.\n return {\n ...state,\n activeTab: activeTab,\n subActiveTab: subActiveTab ?? initialState.subActiveTab,\n };\n }\n\n return {\n ...state,\n activeTab: activeTab ?? state.activeTab,\n subActiveTab: subActiveTab ?? resetSubActiveTab,\n };\n }\n // Updated Fund Id to order request.\n case orderRequestConstants.UPDATE_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL:\n return !action.payload\n ? state\n : {\n ...state,\n navigationFund: action.payload,\n };\n case orderRequestConstants.CLEAR_NAVIGATION_FUND_TO_ORDER_REQUEST_MODAL:\n return {\n ...state,\n navigationFund: null,\n };\n // Fetch Fund Info (Buy, Sell, Switch-Out).\n case orderRequestConstants.FETCH_BUY_FUND_INFO_START:\n return {\n ...state,\n fundInfo: {\n ...state.fundInfo,\n isFetching: true,\n },\n };\n case orderRequestConstants.FETCH_SELL_FUND_INFO_START:\n return {\n ...state,\n isFetching: true,\n fundInfo: {\n ...state.fundInfo,\n isFetching: true,\n },\n };\n case orderRequestConstants.UPDATE_FUND_INFO:\n return {\n ...state,\n fundInfo: {\n ...state.fundInfo,\n isFetching: false,\n data: action.payload,\n errorMessage: null,\n },\n };\n case orderRequestConstants.CLEAR_FUND_INFO:\n return {\n ...state,\n fundInfo: {\n ...state.fundInfo,\n isFetching: false,\n data: null,\n errorMessage: action.payload,\n },\n };\n\n // Fetch Fund Info2 (Switch-In).\n case orderRequestConstants.FETCH_SWITCH_FUND_INFO_START:\n return {\n ...state,\n fundInfo2: {\n ...state.fundInfo2,\n isFetching: true,\n },\n };\n case orderRequestConstants.UPDATE_FUNDS_INFO_2:\n return {\n ...state,\n fundInfo2: {\n ...state.fundInfo2,\n isFetching: false,\n data: action.payload,\n errorMessage: null,\n },\n };\n case orderRequestConstants.CLEAR_FUND_INFO_2:\n return {\n ...state,\n fundInfo2: {\n ...state.fundInfo2,\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n };\n\n // Checked Fund able to order. (Buy, Switch)\n case orderRequestConstants.CLEAR_CHECKED_FUND_ABLE:\n return {\n ...state,\n checkedFundAbleToOrder: initialState.checkedFundAbleToOrder,\n showResponseMessage: false,\n orderRequestForm: null,\n };\n case orderRequestConstants.CHECKED_BUYABLE_FUND_START:\n return {\n ...state,\n orderRequestForm: action.payload,\n checkedFundAbleToOrder: {\n ...state.checkedFundAbleToOrder,\n isFetching: true,\n },\n };\n case orderRequestConstants.CHECKED_SELLABLE_FUND_START:\n return {\n ...state,\n orderRequestForm: action.payload,\n checkedFundAbleToOrder: {\n ...state.checkedFundAbleToOrder,\n isFetching: true,\n },\n };\n case orderRequestConstants.CHECKED_SWITCHABLE_FUND_START:\n return {\n ...state,\n orderRequestForm: action.payload,\n checkedFundAbleToOrder: {\n ...state.checkedFundAbleToOrder,\n isFetching: true,\n },\n };\n case orderRequestConstants.CHECKED_FUND_ABLE_TO_ORDER_SUCCESS:\n return {\n ...state,\n checkedFundAbleToOrder: {\n ...state.checkedFundAbleToOrder,\n isFetching: false,\n data: action.payload,\n errorMessage: null,\n },\n showResponseMessage: true,\n };\n case orderRequestConstants.CHECKED_FUND_ABLE_TO_ORDER_FAILURE:\n return {\n ...state,\n checkedFundAbleToOrder: {\n ...state.checkedFundAbleToOrder,\n isFetching: false,\n data: [],\n // errorMessage: action.payload\n },\n errorMessage: action.payload,\n };\n\n // Confirmed Order Fund.\n case orderRequestConstants.CONFIRM_ORDER_FUND_START:\n return {\n ...state,\n confirmOrderFund: {\n ...state.confirmOrderFund,\n isFetching: true,\n },\n };\n case orderRequestConstants.CONFIRM_ORDER_FUND_SUCCESS:\n return {\n ...state,\n confirmOrderFund: {\n ...state.confirmOrderFund,\n isFetching: false,\n data: action.payload,\n errorMessage: null,\n },\n };\n case orderRequestConstants.CONFIRM_ORDER_FUND_FAILURE:\n return {\n ...state,\n confirmOrderFund: {\n ...state.confirmOrderFund,\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n errorMessage: action.payload,\n };\n case orderRequestConstants.RESET_CONFIRM_ORDER_FUND:\n return {\n ...state,\n confirmOrderFund: {\n ...state.confirmOrderFund,\n data: null,\n errorMessage: null,\n },\n };\n // SEARCH FUND INFORMATION\n case orderRequestConstants.CLEAR_SEARCH_FUNDS_INFO:\n return {\n ...state,\n searchFundInfo: null,\n fundInfo: {\n ...state.fundInfo,\n isFetching: false,\n data: null,\n errorMessage: null,\n },\n fundId: null,\n };\n case orderRequestConstants.UPDATE_SEARCH_FUNDS_INFO:\n return {\n ...state,\n searchText: action.payload,\n };\n case orderRequestConstants.REMOVE_SEARCH_FUNDS_INFO:\n return {\n ...state,\n searchText: null,\n };\n // PORTIFOLIOS SEARCH\n case orderRequestConstants.UPDATE_SEARCH_PORTFOLIOS:\n return {\n ...state,\n searchText: action.payload,\n };\n case orderRequestConstants.TOGGLE_MODAL_MESSAGE:\n return {\n ...state,\n showResponseMessage: !state.showResponseMessage,\n orderRequestForm: null,\n };\n // LATEST SELECT PLAN\n case orderRequestConstants.UPDATE_LATEST_PLAN:\n return {\n ...state,\n latestPlan: action.payload,\n };\n case orderRequestConstants.CLEAR_LATEST_PLAN:\n return {\n ...state,\n latestPlan: {},\n };\n // LATEST SELECT SETTLE DATE\n case orderRequestConstants.UPDATE_LATEST_SETTLE_DATE:\n return {\n ...state,\n latestSettleDate: action.payload,\n };\n default:\n return state;\n }\n};\n\nexport default orderRequestReducer;\n","import { ipoConstants } from '../_constants/ipo.constants';\nimport {\n setIsFetching,\n filterIpoResults, \n resetIpoResults, \n sortType\n} from '../_utils/ipo.utils';\n\nconst initialState = {\n ipos: {\n isFetching: false,\n ipoResults: [],\n errorMessage: null\n },\n detailModal: false,\n currentDetailModal: null,\n queries: {\n sortBy: null\n }\n};\n\nconst ipoReducer = (state = initialState, action) => {\n switch (action.type) {\n case ipoConstants.FETCH_IPOS_START:\n return {\n ...state,\n ipos: setIsFetching(state.ipos)\n };\n case ipoConstants.FETCH_IPOS_SUCCESS:\n return {\n ...state,\n ipos: filterIpoResults(state.ipos, action.payload)\n };\n case ipoConstants.FETCH_IPOS_FAILURE:\n return {\n ...state,\n ipos: resetIpoResults(state.ipos, action.payload)\n };\n case ipoConstants.TOGGLE_DETAIL_MODAL:\n return {\n ...state,\n detailModal: !state.detailModal\n };\n case ipoConstants.SET_CURRENT_DETAIL_MODAL:\n return {\n ...state,\n currentDetailModal: action.payload\n };\n case ipoConstants.UPDATE_IPO_QUERIES:{\n if (!action.payload || !Object.keys(action.payload).length) {\n return state;\n }\n\n let updateAttribute = {};\n Object.keys(action.payload).forEach(attribute => {\n let value = action.payload[`${attribute}`];\n updateAttribute[attribute] = value;\n })\n\n return {\n ...state,\n queries: {\n ...state.queries,\n ...updateAttribute\n }\n };\n }\n default:\n return state;\n }\n};\n\nexport default ipoReducer;\n","import { monthlyReportConstants } from '../_constants/monthly-report.constants';\nimport {\n setIsFetching,\n resetResponseDataArrays,\n filterResponseData,\n resetResponseDataObject\n} from '../_utils/general.utils';\n\nimport { nanoid } from 'nanoid';\n\nlet newDate = (new Date()).toJSON();\n\nconst initialState = {\n sharedQueries: {\n date: newDate\n },\n monthlyReportTable: {\n queries: {\n sortType: 'd',\n sortKey: null,\n groupType: 'ACCOUNT_TYPE'\n },\n headers : [\n {\n header: 'ชื่อกองทุน',\n sortKey: 'fundCode'\n },\n {\n header: 'เงินลงทุน',\n sortKey: 'investmentAmount'\n },\n {\n header: 'มูลค่าปัจจุบัน',\n sortKey: 'marketAmount'\n },\n {\n header: 'ราคาทุนเฉลี่ย',\n sortKey: 'price'\n },\n {\n header: 'ราคาตลาด',\n sortKey: 'nav'\n },\n {\n header: 'P/L',\n sortKey: 'profitLoss'\n },\n {\n header: '%Port',\n sortKey: 'percentage'\n }\n ],\n responses: {\n isFetching: false,\n data: {},\n errorMessage: null\n }\n },\n monthlyReportChart: {\n cnsCategoryList: [\n {\n key: 'GMF',\n name: 'กองทั่วไป'\n },\n {\n key: 'LTF',\n name: 'LTF'\n },\n {\n key: 'RMF',\n name: 'RMF'\n },\n {\n key: 'SSF',\n name: 'SSF'\n },\n {\n key: 'SSFX',\n name: 'SSFX'\n },\n {\n key: 'TESG',\n name: 'TESG'\n }\n ],\n headers : [\n {\n header: 'เงินลงทุน',\n sortKey: 'investmentAmount'\n },\n {\n header: 'P/L',\n sortKey: 'profitLoss'\n },\n {\n header: 'มูลค่าตลาด',\n sortKey: 'marketAmount'\n },\n {\n header: '%Port',\n sortKey: 'profitLossPercentage'\n }\n ],\n chartViewList: [\n {\n key: 'CATEGORY',\n name: 'ประเภทกองทุน'\n },\n {\n key: 'FUND_LIST',\n name: 'รายกองทุน'\n },\n {\n key: 'RISK_LEVEL',\n name: 'ตามความเสี่ยง'\n },\n {\n key: 'ASSET_ALOCATE',\n name: 'ประเภทสินทรัพย์'\n }\n ],\n queries: {\n groupType: 'ACCOUNT_TYPE',\n chartView: 'CATEGORY',\n cnsCategory: []\n },\n responses: {\n isFetching: false,\n data: [],\n errorMessage: null\n }\n }\n};\n\nconst monthlyReportReducer = (state = initialState, action) => {\n switch (action.type) {\n case monthlyReportConstants.SET_MONTHLY_REPORT_SHARED_QUERIES: {\n let {key, value} = action.payload;\n let updateAttribute = {};\n updateAttribute[key] = value;\n\n return {\n ...state,\n sharedQueries: {\n ...state.sharedQueries,\n ...updateAttribute\n }\n };\n }\n case monthlyReportConstants.CLEAR_MONTHLY_REPORT_SHARED_QUERIES:\n return {\n ...state,\n sharedQueries: {\n accountNumber: [],\n date: newDate\n }\n };\n\n // Monthly Report Table\n case monthlyReportConstants.SET_MONTHLY_REPORT_TABLE_QUERIES: {\n let {key, value} = action.payload;\n let updateAttribute = {};\n\n switch (key) {\n case 'accountNumber': updateAttribute[key] = value; break;\n case 'sortKey': updateAttribute = {\n sortKey: value,\n sortType: value\n && value === state.monthlyReportTable.queries.sortKey\n && state.monthlyReportTable.queries.sortType !== 'a'\n ? 'a'\n : 'd'\n }; break;\n default: updateAttribute[key] = value; break;\n };\n\n return {\n ...state,\n monthlyReportTable: {\n ...state.monthlyReportTable,\n queries: {\n ...state.monthlyReportTable.queries,\n ...updateAttribute\n }\n }\n };\n }\n case monthlyReportConstants.FETCH_MONTHLY_REPORT_START:\n return {\n ...state,\n monthlyReportTable: {\n ...state.monthlyReportTable,\n responses: setIsFetching(state.monthlyReportTable.responses)\n }\n };\n case monthlyReportConstants.FETCH_MONTHLY_REPORT_SUCCESS:\n return {\n ...state,\n monthlyReportTable: {\n ...state.monthlyReportTable,\n responses: filterResponseData(state.monthlyReportTable, action.payload)\n }\n };\n case monthlyReportConstants.FETCH_MONTHLY_REPORT_FAILURE:\n return {\n ...state,\n monthlyReportTable: {\n ...state.monthlyReportTable,\n responses: resetResponseDataArrays(state.monthlyReportTable, action.payload)\n }\n };\n case monthlyReportConstants.CLEAR_MONTHLY_REPORT_TABLE_RESPONSES:\n return {\n ...state,\n monthlyReportTable: {\n ...state.monthlyReportTable,\n responses: resetResponseDataObject(state.monthlyReportChart.responses, action.payload)\n }\n };\n case monthlyReportConstants.CLEAR_MONTHLY_REPORT_TABLE_QUERIES:\n return {\n ...state,\n monthlyReportTable: {\n ...state.monthlyReportTable,\n queries: {\n sortType: 'd',\n sortKey: null,\n groupType: 'ACCOUNT_TYPE'\n },\n }\n };\n\n // Monthly Report Chart\n case monthlyReportConstants.SET_MONTHLY_REPORT_CHART_QUERIES: {\n let {key, value} = action.payload;\n let updateAttribute = {};\n\n switch (key) {\n case 'categories': updateAttribute[key] = value; break;\n default: updateAttribute[key] = value; break;\n };\n\n return {\n ...state,\n monthlyReportChart: {\n ...state.monthlyReportChart,\n queries: {\n ...state.monthlyReportChart.queries,\n ...updateAttribute\n }\n }\n };\n }\n case monthlyReportConstants.FETCH_MONTHLY_REPORT_CHART_START:\n return {\n ...state,\n monthlyReportChart: {\n ...state.monthlyReportChart,\n responses: setIsFetching(state.monthlyReportChart.responses)\n }\n };\n case monthlyReportConstants.FETCH_MONTHLY_REPORT_CHART_SUCCESS:\n return {\n ...state,\n monthlyReportChart: {\n ...state.monthlyReportChart,\n responses: {\n ...state.responses,\n isFetching: false,\n data: action.payload\n ? action.payload.map( mainItem => ({\n ...mainItem,\n id: nanoid(),\n subCategories: mainItem.subCategories.map( subItem => ({\n ...subItem,\n id: nanoid(),\n }))\n }))\n : [],\n errorMessage: null\n }\n }\n };\n case monthlyReportConstants.FETCH_MONTHLY_REPORT_CHART_FAILURE:\n return {\n ...state,\n monthlyReportChart: {\n ...state.monthlyReportChart,\n responses: resetResponseDataArrays(state.monthlyReportChart.responses, action.payload)\n }\n };\n case monthlyReportConstants.CLEAR_MONTHLY_REPORT_CHART_RESPONSES:\n return {\n ...state,\n monthlyReportChart: {\n ...state.monthlyReportChart,\n responses: resetResponseDataArrays(state.monthlyReportChart.responses, null)\n }\n };\n case monthlyReportConstants.CLEAR_MONTHLY_REPORT_CHART_QUERIES:\n return {\n ...state,\n monthlyReportChart: {\n ...state.monthlyReportChart,\n queries: {\n groupType: 'ACCOUNT_TYPE',\n categories: null\n },\n }\n };\n default:\n return state;\n }\n};\n\nexport default monthlyReportReducer;\n","import { calendarConstants } from '../_constants/calendar.constants';\nimport {\n setIsFetching,\n filterCalendarResults, \n resetCalendarResults,\n filterUserFund,\n filterCalendarByDate\n} from '../_utils/calendar.utils';\n\nconst initialState = {\n calendarByYear: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n calendarByDate: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n calendarYear: (new Date()).getFullYear(),\n userFund: null,\n userDate: null,\n isOpenModal: false\n};\n\nconst calendarReducer = (state = initialState, action) => {\n switch (action.type) {\n case calendarConstants.FETCH_CALENDAR_BY_YEAR_START:\n return {\n ...state,\n calendarByYear: setIsFetching(state.calendarByYear)\n };\n case calendarConstants.FETCH_CALENDAR_BY_YEAR_SUCCESS:\n return {\n ...state,\n calendarByYear: filterCalendarResults(state.calendarByYear, action.payload)\n };\n case calendarConstants.FETCH_CALENDAR_BY_YEAR_FAILURE:\n return {\n ...state,\n calendarByYear: resetCalendarResults(state.calendarByYear, action.payload)\n };\n case calendarConstants.UPDATE_CALENDAR_YEAR:\n return {\n ...state,\n calendarYear: action.payload\n };\n case calendarConstants.UPDATE_USER_FUND_CALENDAR:\n return {\n ...state,\n userFund: filterUserFund(action.payload)\n };\n case calendarConstants.UPDATE_USER_CALENDAR_DATE:\n return {\n ...state,\n userDate: action.payload\n };\n case calendarConstants.FETCH_CALENDAR_BY_DATE_START:\n return {\n ...state,\n calendarByDate: setIsFetching(state.calendarByDate)\n };\n case calendarConstants.FETCH_CALENDAR_BY_DATE_SUCCESS:\n return {\n ...state,\n calendarByDate: filterCalendarByDate(state.calendarByDate, action.payload)\n };\n case calendarConstants.FETCH_CALENDAR_BY_DATE_FAILURE:\n return {\n ...state,\n calendarByDate: resetCalendarResults(state.calendarByDate, action.payload)\n };\n default:\n return state;\n }\n};\n\nexport default calendarReducer;\n","import { transferConstants } from '../_constants/transfer.constants';\n\nconst initialState = {\n // Modal State \n isOpenModal: false\n};\n\nconst transferReducer = (state = initialState, action) => {\n switch (action.type) {\n case transferConstants.TOGGLED_TRANSFER_MODAL:\n return {\n ...state,\n isOpenModal: !state.isOpenModal\n //fundId: state.isOpenModal ? null : state.fundId\n };\n default:\n return state;\n }\n};\n\nexport default transferReducer;\n","export const setIsFetching = (state) => {\n return {\n ...state,\n isFetching: true\n }\n};\n\nexport const filterDataResults = (state, data) => {\n return {\n ...state,\n isFetching: false,\n data: data,\n errorMessage: null\n };\n};\n\nexport const resetDataResults = (state, message) => {\n return {\n ...state,\n isFetching: false,\n data: [],\n errorMessage: message\n };\n};\n\nexport const filterIsOpenModal = (state, data) => {\n return {\n ...state,\n isOpenModal: data ? true : false,\n data: data ? data : null,\n };\n};\n\nexport const updateFundIds = (state, data) => {\n let fundIds = data.length > 0 ? data.map(obj => obj.fundId) : [];\n \n return {\n ...state,\n fundIds: fundIds,\n };\n};","import { homeConstants } from '../_constants/home.constants';\nimport {\n setIsFetching,\n filterDataResults,\n resetDataResults,\n filterIsOpenModal,\n updateFundIds\n} from '../_utils/home.utils';\n\nconst initialState = {\n banner: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n highlightFund: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n navFund: {\n fundIds: [],\n navDate: '1Y',\n isFetching: false,\n data: [],\n errorMessage: null\n },\n topSubCategory: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n article: {\n isFetching: false,\n data: [],\n errorMessage: null\n },\n openSectionModal: {\n isOpenModal: false,\n data: null\n }\n};\n\nconst homeReducer = (state = initialState, action) => {\n switch (action.type) {\n case homeConstants.FETCH_BANNERS_START:\n return {\n ...state,\n banner: setIsFetching(state.banner)\n };\n case homeConstants.FETCH_BANNERS_SUCCESS:\n return {\n ...state,\n banner: filterDataResults(state.banner, action.payload)\n };\n case homeConstants.FETCH_BANNERS_FAILURE:\n return {\n ...state,\n banner: resetDataResults(state.banner, action.payload)\n };\n case homeConstants.FETCH_HIGHLIGHT_FUNDS_START:\n return {\n ...state,\n highlightFund: setIsFetching(state.highlightFund)\n };\n case homeConstants.FETCH_HIGHLIGHT_FUNDS_SUCCESS:\n return {\n ...state,\n highlightFund: filterDataResults(state.highlightFund, action.payload)\n };\n case homeConstants.FETCH_HIGHLIGHT_FUNDS_FAILURE:\n return {\n ...state,\n highlightFund: resetDataResults(state.highlightFund, action.payload)\n };\n case homeConstants.UPDATE_NAV_FUNDS:\n return {\n ...state,\n navFund: updateFundIds(state.navFund, action.payload)\n };\n case homeConstants.FETCH_NAV_FUNDS_START:\n return {\n ...state,\n navFund: setIsFetching(state.navFund)\n };\n case homeConstants.FETCH_NAV_FUNDS_SUCCESS:\n return {\n ...state,\n navFund: filterDataResults(state.navFund, action.payload)\n };\n case homeConstants.FETCH_NAV_FUNDS_FAILURE:\n return {\n ...state,\n navFund: resetDataResults(state.navFund, action.payload)\n };\n case homeConstants.FETCH_TOP_SUB_CATEGORIES_START:\n return {\n ...state,\n topSubCategory: setIsFetching(state.topSubCategory)\n };\n case homeConstants.FETCH_TOP_SUB_CATEGORIES_SUCCESS:\n return {\n ...state,\n topSubCategory: filterDataResults(state.topSubCategory, action.payload)\n };\n case homeConstants.FETCH_TOP_SUB_CATEGORIES_FAILURE:\n return {\n ...state,\n topSubCategory: resetDataResults(state.topSubCategory, action.payload)\n };\n case homeConstants.FETCH_ARTICLES_START:\n return {\n ...state,\n article: setIsFetching(state.article)\n };\n case homeConstants.FETCH_ARTICLES_SUCCESS:\n return {\n ...state,\n article: filterDataResults(state.article, action.payload)\n };\n case homeConstants.FETCH_ARTICLES_FAILURE:\n return {\n ...state,\n article: resetDataResults(state.article, action.payload)\n };\n case homeConstants.TOGGLE_ARTICLE_MODAL:\n return {\n ...state,\n openSectionModal: filterIsOpenModal(state.openSectionModal, action.payload)\n };\n default:\n return state;\n }\n};\n\nexport default homeReducer;\n","import { generalConstants } from '../_constants';\n\nconst generalReducer = (state = {}, action) => {\n switch (action.type) {\n case generalConstants.GET_COLOR_LIST_SUCCESS:\n return {\n ...state,\n [action.payload.type]: action.payload.data\n };\n case generalConstants.GET_COLOR_LIST_FAILURE:\n return state;\n case generalConstants.CLEAR_COLOR_LIST:\n return {\n ...state,\n [action.payload.type]: action.payload.data\n };\n default:\n return state;\n }\n};\n\nexport default generalReducer;\n","import { combineReducers } from 'redux';\nimport { persistReducer } from 'redux-persist';\nimport localforage from 'localforage';\nimport storageSession from 'redux-persist/lib/storage/session'\n\nimport mainReducer from '../_reducers/main.reducer';\nimport searchReducer from '../_reducers/search.reducer';\nimport authenticationReducer from '../_reducers/authentication.reducer';\nimport usersReducer from '../_reducers/users.reducer';\nimport alertReducer from '../_reducers/alert.reducer';\nimport investmentReducer from '../_reducers/investment.reducer';\nimport favoriteReducer from '../_reducers/favorite.reducer';\nimport fundRankingReducer from '../_reducers/fund-ranking.reducer';\nimport advanceSearchReducer from '../_reducers/advance-search.reducer';\nimport hotfundReducer from '../_reducers/hotfund.reducer';\nimport compareReducer from '../_reducers/compare.reducer';\nimport informationReducer from '../_reducers/information.reducer';\nimport orderRequestReducer from '../_reducers/order-request.reducer';\nimport ipoReducer from '../_reducers/ipo.reducer';\nimport monthlyReportReducer from '../_reducers/monthly-report.reducer';\nimport calendarReducer from '../_reducers/calendar.reducer';\nimport transferReducer from '../_reducers/transfer.reducer';\nimport homeReducer from '../_reducers/home.reducer';\nimport generalReducer from '../_reducers/general.reducer';\n\nconst sessionConfig = (name, data) => {\n const authPersistConfig = {\n key: name,\n storage: storageSession,\n };\n\n return persistReducer(authPersistConfig, data)\n}\n\nconst persistConfig = {\n key: 'root',\n storage: localforage,\n //whitelist: ['main', 'authentication']\n};\n\nlet reducers = {\n main: mainReducer,\n search: searchReducer,\n authentication: authenticationReducer,\n users: usersReducer,\n alert: alertReducer,\n information: informationReducer,\n investment: sessionConfig('investment', investmentReducer),\n favorite: sessionConfig('favorite', favoriteReducer),\n advanceSearch: sessionConfig('advanceSearch', advanceSearchReducer),\n hotfund: hotfundReducer,\n compare: sessionConfig('compare', compareReducer),\n orderRequest: orderRequestReducer,\n ipo: ipoReducer,\n monthlyReport: sessionConfig('monthlyReport', monthlyReportReducer),\n calendar: calendarReducer,\n transfer: transferReducer,\n home: homeReducer,\n fundRanking: sessionConfig('fundRanking', fundRankingReducer),\n general: generalReducer//sessionConfig()\n};\n\nconst rootReducer = combineReducers({\n ...reducers\n});\n\nexport default persistReducer(persistConfig, rootReducer);\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { searchInformation } from '../_services/search.services';\nimport { fetchSearchBuyableFunds } from '../_services/order-request.services';\nimport { \n searchSuccess, \n searchFailure,\n subNavSearchSuccess,\n subNavSearchFailure,\n searchFundCalendarSuccess,\n searchFundCalendarFailure\n} from '../_actions/search.actions';\nimport { searchConstants } from '../_constants/search.constants';\n\nexport function* searchStartAsync({ payload }) {\n try {\n const result = yield call(searchInformation, payload);\n yield put(searchSuccess(result.data));\n } catch (error) {\n yield put(searchFailure(error.message));\n }\n}\n\nexport function* subNavSearchStartAsync({ payload }) {\n try {\n const result = yield call(searchInformation, payload);\n yield put(subNavSearchSuccess(result.data));\n } catch (error) {\n yield put(subNavSearchFailure(error.message));\n }\n}\n\nexport function* searchFundCalendarStartAsync({ payload }) {\n let queryString = { keyword: payload };\n try {\n const result = yield call(fetchSearchBuyableFunds, queryString);\n yield put(searchFundCalendarSuccess(result.data));\n } catch (error) {\n yield put(searchFundCalendarFailure(error.message));\n }\n}\nexport function* searchStart() {\n yield takeLatest(searchConstants.FETCH_MAIN_SEARCH_START, searchStartAsync);\n}\n\nexport function* subNavSearchStart() {\n yield takeLatest(searchConstants.FETCH_SUBNAV_SEARCH_START, subNavSearchStartAsync);\n}\n\nexport function* searchFundCalendarStart() {\n yield takeLatest(searchConstants.FETCH_SEARCH_FUND_CALENDAR_START, searchFundCalendarStartAsync);\n}\n\nexport function* searchSagas() {\n yield all([call(searchStart), call(subNavSearchStart), call(searchFundCalendarStart)]);\n}\n","import axios_nomura from './axios-nomura.services';\nimport axios_cns_auth from './axios-cns-auth.services';\n\n// export const signIn = async (credential) => {\n// const { username, password } = credential;\n// return await axios_nomura.post(`api/v1/login`, {\n// username: username,\n// password: password\n// });\n// };\nexport const signIn = async (credential) => {\n return await axios_cns_auth.post(`api/v1/login`, credential);\n};\n\nexport const send2FA = async ({ accessToken,...applicationId }) => {\n return await axios_cns_auth.post(`api/v1/login/two_factor/send_code`, applicationId, {\n headers: {\n Authorization: `Bearer ${accessToken}`\n }\n });\n};\n\nexport const verify2FA = async (verifyCredential) => {\n return await axios_cns_auth.post(`api/v1/login/two_factor/verify`,verifyCredential);\n};\n\nexport const verify2FACode = async (verifyCredential) => {\n return await axios_cns_auth.post(`api/v1/login/two_factor/verify_code`, verifyCredential, {\n headers: {\n Authorization: `Bearer ${verifyCredential.accessToken}`\n }\n });\n};\n\nexport const verify2FAAuthenticator = async (verifyCredential) => {\n return await axios_cns_auth.post(`api/v1/login/two_factor/authenticator`,verifyCredential);\n};\n\nexport const signInCredential = async () => {\n return await axios_nomura.get('api/v1/login/ad_test', { \n headers: { \n 'Access-Control-Allow-Credentials': true\n }\n });\n};\n\nexport const signInDSA = async (payload) => {\n const DSACode = payload !== '' ? payload.split('=')[1] : payload;\n return await axios_nomura.get(`api/v1/login/dsa${payload}`, { \n headers: { \n 'Authorization': `Basic ${DSACode}`\n }\n });\n};\n\nexport const signInSSO = async (payload) => {\n const SSOCode = payload !== '' ? payload.split('=')[1] : payload;\n return await axios_nomura.get(`api/v1/login/sso?p=${SSOCode}`);\n};\n\nexport const fetchAccountList = async () => {\n return await axios_nomura.get(`api/v1/accounts`);\n};\n\nexport const fetchAccountInfo = async (accountNumber) => {\n return await axios_nomura.get(`api/v1/accounts/${accountNumber}`);\n};\n\nexport const fetchAccountName = async (accountNumber) => {\n return await axios_nomura.get(`api/v1/accounts/${accountNumber}/name`);\n};\n\nexport const refreshWithCookies = async (cookies) => {\n return await axios_cns_auth.post(`api/v1/login/refresh_token`, cookies);\n};\n\nexport const signOutWithCookies = async (cookies) => {\n return await axios_cns_auth.post(`api/v1/logout`, cookies);\n};","export const twoFactorAuthenticationMethodConstants = {\n NONE:'None',\n SMS:'SMS',\n EMAIL:'Email',\n AUTHENTICATOR: 'Authenticator',\n BYPASS: 'Bypass',\n}","export const tranformErrorResponses = (error) => {\n let errorResponse = {};\n switch(error?.response?.status) {\n case 400: {\n errorResponse = {\n title: 'เกิดข้อผิดพลาด',\n message: error.response?.data?.data?.message ?? error.response?.data?.message,\n buttons: error.response?.data?.data?.buttons,\n };\n break;\n };\n case 403: {\n errorResponse = {\n title: 'เกิดข้อผิดพลาด',\n message: error.response?.data?.message\n };\n break;\n }\n case 500: {\n errorResponse = {\n title: 'เกิดข้อผิดพลาด',\n message: error.response?.statusText\n };\n break;\n }\n default: {\n errorResponse = error;\n break;\n }\n }\n return errorResponse;\n};\n\nexport const errorMessageResponse = (error) => error?.response?.data?.message || `An error occurred (${error?.response?.status})`","import { takeLatest, call, put, all } from \"redux-saga/effects\";\nimport {\n signIn,\n send2FA,\n verify2FA,\n verify2FACode,\n signOutWithCookies,\n refreshWithCookies,\n fetchAccountList,\n fetchAccountInfo,\n signInCredential,\n fetchAccountName,\n verify2FAAuthenticator,\n signInDSA,\n signInSSO,\n} from \"../_services/authentication.services\";\nimport {\n signInSuccess,\n signInSuccessForMobile,\n signInFailure,\n verify2FAOpen,\n // getAccountListStart,\n getAccountMKT,\n getAccountListSuccess,\n getAccountListFailure,\n getAccountInfoSuccess,\n getAccountInfoFailure,\n toggleErrorMessageModal,\n signOut,\n getAccountNameSuccess,\n getAccountNameFailure,\n set2FALoading,\n updateAccountListMobileSuccess,\n} from \"../_actions/authentication.actions\";\nimport { updateErrorModal } from \"../_actions/main.actions\";\n\nimport { fetchFavoriteFundsByAccountStart } from \"../_actions/favorite.actions\";\n\nimport { twoFactorAuthenticationMethodConstants } from \"../_constants/twoFactorAuthenticationMethod.constants\";\nimport { authenticationConstants } from \"../_constants/authentication.constants\";\nimport { clearCookies, getCookie, setCookie } from \"../_utils/cookie.utils\";\nimport {\n updateUserAccounts,\n resetInvestment,\n} from \"../_actions/investment.actions\";\nimport { resetUserCategories } from \"../_actions/fund-ranking.actions\";\nimport { nanoid } from \"nanoid\";\nimport jwt_decode from \"jwt-decode\";\nimport { errorMessageResponse } from \"../_utils/service.utils\";\n\n// Worker\nexport function* signOutAsync() {\n // clear refreshToken & accessToken in cookies.\n const cookies = {\n refreshToken: getCookie(\"refreshToken\"),\n accessToken: getCookie(\"accessToken\"),\n };\n try {\n yield call(signOutWithCookies, cookies);\n } catch (err) {}\n clearCookies([\"token\", \"accessToken\", \"refreshToken\"]);\n yield put(resetInvestment());\n yield put(resetUserCategories());\n}\n\nexport function* refreshTokenAsync() {\n const cookies = {\n refreshToken: getCookie(\"refreshToken\"),\n token: getCookie(\"accessToken\"),\n };\n try {\n const result = yield call(refreshWithCookies, cookies);\n const newAccessToken = result.data.token;\n if (result.data.token) {\n // Add accesstoken to cookies.\n let accessToken = getCookie(\"accessToken\");\n if (accessToken !== newAccessToken) {\n setCookie(\"accessToken\", newAccessToken);\n }\n }\n } catch (error) {\n if (error.response?.status === 401) {\n yield put(\n updateErrorModal({\n title: \"Session Expired\",\n message: \"Please log in again.\",\n })\n );\n yield put(signOut());\n }\n }\n}\n\nexport function* signInAsync({ payload }) {\n try {\n const { username, password, history } = payload;\n let credentials = {};\n credentials.applicationId = \"8961b7f1-e671-4262-b719-8c1fa1bcadd5\";\n credentials.username = username;\n credentials.password = password;\n credentials.ipAddress = \"127.0.0.1\";\n credentials.deviceId = nanoid(36);\n credentials.deviceName = navigator.userAgent;\n\n const result = yield call(signIn, credentials);\n if (\n !result.data.isTwoFactorAuthenticated &&\n result.data.twoFactorAuthenticationMethod !==\n twoFactorAuthenticationMethodConstants.BYPASS\n ) {\n if (\n result.data.twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.SMS ||\n result.data.twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.EMAIL\n ) {\n const application = {\n applicationId: credentials.applicationId,\n accessToken: result.data.accessToken,\n };\n const send2FAResult = yield call(send2FA, application);\n const twoFactorInfo = {\n twoFactorAuthenticationMethod:\n result.data.twoFactorAuthenticationMethod,\n referenceCode: send2FAResult.data.referenceCode ?? \"\",\n twoFactorId: null,\n twoFactorToken: result.data.accessToken,\n };\n yield put(verify2FAOpen(twoFactorInfo));\n } else if (\n result.data.twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.AUTHENTICATOR\n ) {\n const twoFactorInfo = {\n twoFactorAuthenticationMethod:\n result.data.twoFactorAuthenticationMethod,\n referenceCode: null,\n twoFactorId: result.data.twoFactorId,\n twoFactorToken: result.data.accessToken,\n };\n yield put(verify2FAOpen(twoFactorInfo));\n } else if (\n result.data.twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.NONE\n ) {\n yield put(set2FALoading(false));\n yield put(\n updateErrorModal({\n title: \"ช่องทางการยืนยันตัวตน\",\n message:\n \"กรุณาเลือกช่องทางยืนยันตัวตน ก่อนเข้าให้งาน Krungsri Securities iFund จากวิธีต่อไปนี้\\n1. SMS OTP ผ่านเบอร์มือถือที่ท่านแจ้งไว้\\n2. ผ่าน Google Authenticator\",\n })\n );\n }\n } else {\n yield put(signInSuccess({ user: result.data, logInType: \"general\" }));\n\n // Get User Account List.\n // yield put(getAccountListStart());\n const accountListResult = yield call(fetchAccountList);\n yield put(getAccountListSuccess(accountListResult.data?.accountList));\n yield put(getAccountMKT(accountListResult.data?.mkt));\n yield put(\n updateUserAccounts(accountListResult.data?.accountList.slice(0, 1))\n );\n\n // Store token in cookies.\n const newAccessToken = result.data.accessToken;\n if (result.data.accessToken) {\n // Add accesstoken to cookies.\n let accessToken = getCookie(\"accessToken\");\n if (accessToken !== newAccessToken) {\n setCookie(\"accessToken\", newAccessToken);\n }\n }\n const newRefreshToken = result.data.refreshToken;\n if (result.data.refreshToken) {\n // Add refreshtoken to cookies.\n let refreshToken = getCookie(\"refreshToken\");\n if (refreshToken !== newRefreshToken) {\n setCookie(\"refreshToken\", newRefreshToken);\n }\n }\n\n // Get Favorite funds.\n if (Object.keys(result.data).length && accountListResult.data.length) {\n yield put(fetchFavoriteFundsByAccountStart());\n yield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n }\n // Redirect to config page then log in success.\n // history.push('/main/investment');\n }\n } catch (error) {\n // Sign out and clear account list.\n yield put(signInFailure(errorMessageResponse(error)));\n yield put(toggleErrorMessageModal());\n // yield put(getAccountListFailure()); // to be check is this necessary to update\n }\n}\n\nexport function* verify2FAAsync({ payload }) {\n try {\n const {\n verifyCode,\n referenceCode,\n twoFactorId,\n twoFactorAuthenticationMethod,\n twoFactorToken,\n } = payload;\n let result = {};\n let credentials = {};\n credentials.applicationId = \"8961b7f1-e671-4262-b719-8c1fa1bcadd5\";\n credentials.code = verifyCode;\n credentials.ipAddress = \"127.0.0.1\";\n credentials.deviceId = nanoid(36);\n credentials.deviceName = navigator.userAgent;\n credentials.accessToken = twoFactorToken;\n\n if (\n twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.SMS ||\n twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.EMAIL\n ) {\n credentials.referenceCode = referenceCode;\n\n if (referenceCode === \"\") {\n result = yield call(verify2FA, credentials);\n } else {\n result = yield call(verify2FACode, credentials);\n }\n }\n if (\n twoFactorAuthenticationMethod ===\n twoFactorAuthenticationMethodConstants.AUTHENTICATOR\n ) {\n try {\n credentials.twoFactorId = twoFactorId;\n result = yield call(verify2FAAuthenticator, credentials);\n } catch (error) {\n credentials.referenceCode = referenceCode;\n\n if (referenceCode === \"\") {\n result = yield call(verify2FA, credentials);\n } else {\n result = yield call(verify2FACode, credentials);\n }\n }\n }\n\n yield put(signInSuccess({ user: result.data, logInType: \"general\" }));\n\n // Get User Account List.\n // yield put(getAccountListStart());\n const accountListResult = yield call(fetchAccountList);\n yield put(getAccountListSuccess(accountListResult.data?.accountList));\n yield put(getAccountMKT(accountListResult.data?.mkt));\n yield put(\n updateUserAccounts(accountListResult.data?.accountList.slice(0, 1))\n );\n\n // Store token in cookies.\n const newAccessToken = result.data.accessToken;\n if (result.data.accessToken) {\n // Add accesstoken to cookies.\n let accessToken = getCookie(\"accessToken\");\n if (accessToken !== newAccessToken) {\n setCookie(\"accessToken\", newAccessToken);\n }\n }\n const newRefreshToken = result.data.refreshToken;\n if (result.data.refreshToken) {\n // Add refreshtoken to cookies.\n let refreshToken = getCookie(\"refreshToken\");\n if (refreshToken !== newRefreshToken) {\n setCookie(\"refreshToken\", newRefreshToken);\n }\n }\n\n // Get Favorite funds.\n if (Object.keys(result.data)?.length && accountListResult.data?.length) {\n yield put(fetchFavoriteFundsByAccountStart());\n yield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n }\n } catch (error) {\n // Sign out and clear account list.\n yield put(signInFailure(errorMessageResponse(error)));\n yield put(toggleErrorMessageModal());\n // yield put(getAccountListFailure()); // to be check is this necessary to update\n }\n}\n\nexport function* updateSignInStatusForMobileAsync() {\n try {\n const token = getCookie(\"accessToken\");\n const decodedJwt = token ? jwt_decode(token) : null;\n const isExpiredToken = decodedJwt\n ? new Date(decodedJwt.exp * 1000).getTime() < new Date().getTime()\n : false;\n\n if (token && !isExpiredToken) {\n yield put(\n signInSuccessForMobile({\n user: {\n accessToken: token,\n },\n logInType: \"token\",\n })\n );\n // Get User Account List.\n const accountListResult = yield call(fetchAccountList);\n yield put(getAccountListSuccess(accountListResult.data?.accountList));\n yield put(getAccountMKT(accountListResult.data?.mkt));\n\n const accountList = accountListResult.data?.accountList ?? [];\n\n yield put(\n updateUserAccounts(\n accountList.length > 0 ? accountList.slice(0, 1) : []\n )\n );\n\n // Get Favorite funds.\n if (accountListResult.data.length) {\n yield put(fetchFavoriteFundsByAccountStart());\n yield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n }\n }\n } catch (error) {\n clearCookies([\"accessToken\", \"refreshToken\"]);\n yield put(resetInvestment());\n yield put(signInFailure(error.message));\n }\n}\n\nexport function* signInCredentialAsync({ payload }) {\n const { history } = payload;\n try {\n // add Account List from user.\n const result = yield call(signInCredential);\n yield put(signInSuccess({ user: result.data, logInType: \"AD\" }));\n\n // Get User Account List.\n // yield put(getAccountListStart());\n const accountListResult = yield call(fetchAccountList);\n yield put(getAccountListSuccess(accountListResult.data?.accountList));\n yield put(getAccountMKT(accountListResult.data?.mkt));\n yield put(\n updateUserAccounts(accountListResult.data?.accountList.slice(0, 1))\n );\n\n // Get Favorite funds.\n if (Object.keys(result.data).length && accountListResult.data.length) {\n yield put(fetchFavoriteFundsByAccountStart());\n yield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n }\n\n // history.push('/main');\n } catch (error) {\n if (error.response.status === 401) {\n yield put(signInFailure(\"You are unauthorized to access\"));\n yield put(toggleErrorMessageModal());\n }\n // Sign out and clear account list.\n // yield put(signInFailure(error.message));\n // yield put(getAccountListFailure());\n // yield put(signOut());\n // history.push('/main');\n }\n}\n\nexport function* signInDSAAsync({ payload }) {\n const { history } = payload;\n try {\n // add Account List from user.\n const result = yield call(signInDSA, history.location.search);\n yield put(signInSuccess({ user: result.data, logInType: \"DSA\" }));\n\n // Get User Account List.\n const accountListResult = yield call(fetchAccountList);\n yield put(getAccountListSuccess(accountListResult.data?.accountList));\n yield put(getAccountMKT(accountListResult.data?.mkt));\n\n // Get Favorite funds.\n if (Object.keys(result.data).length && accountListResult.data.length) {\n yield put(fetchFavoriteFundsByAccountStart());\n yield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n }\n\n history.push(\"/main\");\n } catch (error) {\n yield put(signOut());\n }\n}\n\nexport function* signInSSOAsync({ payload }) {\n const { history } = payload;\n try {\n // add Account List from user.\n const result = yield call(signInSSO, history.location.search);\n yield put(signInSuccess({ user: result.data, logInType: \"SSO\" }));\n\n // Get User Account List.\n const accountListResult = yield call(fetchAccountList);\n yield put(getAccountListSuccess(accountListResult.data?.accountList));\n yield put(getAccountMKT(accountListResult.data?.mkt));\n yield put(\n updateUserAccounts(accountListResult.data?.accountList.slice(0, 1))\n );\n\n // Get Favorite funds.\n if (Object.keys(result.data).length && accountListResult.data.length) {\n yield put(fetchFavoriteFundsByAccountStart());\n yield put(updateUserAccounts(accountListResult.data?.slice(0, 1)));\n }\n\n history.push(\"/main\");\n } catch (error) {\n yield put(signOut());\n }\n}\n\nexport function* getAccountListAsync({ payload }) {\n try {\n // add Account List from user.\n const result = yield call(fetchAccountList);\n yield put(getAccountListSuccess(result.data?.accountList));\n yield put(getAccountMKT(result.data?.mkt));\n yield put(updateAccountListMobileSuccess());\n } catch (error) {\n yield put(getAccountListFailure());\n }\n}\n\nexport function* getAccountInfoAsync({ payload }) {\n try {\n const result = yield call(fetchAccountInfo, payload);\n yield put(getAccountInfoSuccess(result.data));\n } catch (error) {\n yield put(getAccountInfoFailure());\n }\n}\n\nexport function* getAccountNameAsync({ payload }) {\n try {\n const result = yield call(fetchAccountName, payload);\n yield put(getAccountNameSuccess(result.data));\n } catch (error) {\n yield put(getAccountNameFailure());\n }\n}\n\n// Watcher\nexport function* signOutStart() {\n yield takeLatest(authenticationConstants.SIGN_OUT, signOutAsync);\n}\n\nexport function* refreshTokenStart() {\n yield takeLatest(authenticationConstants.REFRESH_TOKEN, refreshTokenAsync);\n}\n\nexport function* signInStart() {\n yield takeLatest(authenticationConstants.SIGN_IN_START, signInAsync);\n}\n\nexport function* updateSignInStatusForMobile() {\n yield takeLatest(\n authenticationConstants.UPDATE_SIGN_IN_STATUS_FOR_MOBILE,\n updateSignInStatusForMobileAsync\n );\n}\n\nexport function* signInCredentialStart() {\n yield takeLatest(\n authenticationConstants.SIGN_IN_CREDENTIAL_START,\n signInCredentialAsync\n );\n}\n\nexport function* signInDSAStart() {\n yield takeLatest(authenticationConstants.SIGN_IN_DSA_START, signInDSAAsync);\n}\n\nexport function* signInSSOStart() {\n yield takeLatest(authenticationConstants.SIGN_IN_SSO_START, signInSSOAsync);\n}\n\nexport function* getAccountListSaga() {\n yield takeLatest(\n authenticationConstants.GET_ACCOUNT_LIST_START,\n getAccountListAsync\n );\n}\n\nexport function* getAccountInfoSaga() {\n yield takeLatest(\n authenticationConstants.GET_ACCOUNT_INFO_START,\n getAccountInfoAsync\n );\n}\n\nexport function* getAccountNameSaga() {\n yield takeLatest(\n authenticationConstants.GET_ACCOUNT_NAME_START,\n getAccountNameAsync\n );\n}\n\nexport function* verify2FAStart() {\n yield takeLatest(authenticationConstants.VERIFY_2FA_START, verify2FAAsync);\n}\n\nexport function* authenticationSagas() {\n yield all([\n call(signOutStart),\n call(signInStart),\n call(signInCredentialStart),\n call(signInDSAStart),\n call(signInSSOStart),\n call(updateSignInStatusForMobile),\n call(getAccountListSaga),\n call(getAccountInfoSaga),\n call(getAccountNameSaga),\n call(refreshTokenStart),\n call(verify2FAStart),\n ]);\n}\n","import axios_nomura from './axios-nomura.services';\n\nexport const addFavoriteFund = async (data) => {\n return await axios_nomura.post(`api/v1/funds/favorite`, JSON.stringify(data.fundId));\n};\n\nexport const deleteFavoriteFund = async (data) => {\n return await axios_nomura.post(`api/v1/funds/favorite/delete`, JSON.stringify(data.fundId));\n};\n\nexport const putFavoriteFunds = async (data) => {\n return await axios_nomura.put(`api/v1/funds/favorite`, data.fundIds);\n};\n\nexport const fetchFavoriteFundsByAccount = async () => {\n return await axios_nomura.get(`api/v1/funds/favorites`);\n};\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\n\nimport { \n fetchFavoriteFundsByAccountSuccess,\n fetchFavoriteFundsByAccountFailure,\n fetchNavFavoriteFundsByAccountSuccess,\n fetchNavFavoriteFundsByAccountFailure,\n updateLocalFavoriteFunds\n} from '../_actions/favorite.actions';\nimport { favoriteConstants } from '../_constants';\n\nimport {\n addFavoriteFund,\n deleteFavoriteFund,\n putFavoriteFunds,\n fetchFavoriteFundsByAccount\n} from '../_services/favorite.services';\n\nimport { \n\tfetchNavForAdvanceSearch\n} from '../_services/advance-search.services';\n\nexport function* addFavoriteFundAsync({ payload }) {\n try {\n let result = yield call(addFavoriteFund, payload);\n if (result.code.slice(0,3) === '200') {\n yield put(updateLocalFavoriteFunds({type: 'add', fundId: payload.fundId}));\n }\n } catch (error) {\n }\n}\n\nexport function* deleteFavoriteFundAsync({ payload }) {\n try {\n let result = yield call(deleteFavoriteFund, payload);\n if (result?.code?.slice(0,3) === '200') {\n yield put(updateLocalFavoriteFunds({type: 'delete', fundId: payload.fundId}));\n }\n } catch (error) {\n }\n}\n\nexport function* putFavoriteFundsAsync({ payload }) {\n try {\n yield call(putFavoriteFunds, payload);\n } catch (error) {\n }\n}\n\nexport function* fetchFavoriteFundsByAccountAsync() {\n try {\n const result = yield call(fetchFavoriteFundsByAccount);\n yield put(fetchFavoriteFundsByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchFavoriteFundsByAccountFailure(error.message));\n }\n}\n\nexport function* fetchNavFavoriteFundsByAccountAsync({ payload }) {\n try {\n const result = yield call(fetchNavForAdvanceSearch, payload);\n yield put(fetchNavFavoriteFundsByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchNavFavoriteFundsByAccountFailure(error.message));\n }\n}\n\nexport function* addFavoriteFundStart() {\n yield takeLatest(favoriteConstants.ADD_FAVORITE_FUND, addFavoriteFundAsync);\n}\n\nexport function* deleteFavoriteFundStart() {\n yield takeLatest(favoriteConstants.DELETE_FAVORITE_FUND, deleteFavoriteFundAsync);\n}\n\nexport function* putFavoriteFundsStart() {\n yield takeLatest(favoriteConstants.PUT_FAVORITE_FUNDS, putFavoriteFundsAsync);\n}\n\nexport function* fetchFavoriteFundsByAccountStart() {\n yield takeLatest(favoriteConstants.FETCH_FAVORITE_FUNDS_BY_ACCOUNT_START, fetchFavoriteFundsByAccountAsync);\n}\n\nexport function* fetchNavFavoriteFundsByAccountStart() {\n yield takeLatest(favoriteConstants.FETCH_NAV_FAVORITE_FUNDS_BY_ACCOUNT_START, fetchNavFavoriteFundsByAccountAsync);\n}\n\nexport function* favoriteSagas() {\n yield all([\n call(addFavoriteFundStart),\n call(deleteFavoriteFundStart),\n call(putFavoriteFundsStart),\n call(fetchFavoriteFundsByAccountStart),\n call(fetchNavFavoriteFundsByAccountStart)\n ]);\n}\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\n\nimport { \n fetchHotfundSuccess,\n fetchHotfundFailure,\n} from '../_actions/hotfund.actions';\nimport { hotfundConstants } from '../_constants/hotfund.constants';\n\nimport {\n fetchHotfundByTopBottom,\n fetchHotfundAll,\n} from '../_services/hotfund.services';\n\nexport function* fetchHotfundAsync({ payload }) {\n try {\n if (payload && payload.viewType === 'ALL') {\n const resultAll = yield call(fetchHotfundAll, payload);\n yield put(fetchHotfundSuccess(resultAll.data));\n } else {\n const resultTopBottom = yield call(fetchHotfundByTopBottom, payload);\n yield put(fetchHotfundSuccess(resultTopBottom.data));\n }\n } catch (error) {\n yield put(fetchHotfundFailure(error.message));\n }\n}\n\nexport function* fetchHotfundStart() {\n yield takeLatest(hotfundConstants.FETCH_HOTFUND_START, fetchHotfundAsync);\n}\n\nexport function* hotfundSagas() {\n yield all([\n call(fetchHotfundStart),\n ]);\n}\n","import axios_nomura from './axios-nomura.services';\n\nexport const fetchCompareFunds = async (data) => {\n return await axios_nomura.get(`/api/v1/fundcompare`, { params: { fundIds: data }});\n};\n\nexport const fetchCompareFundsByPeriod = async (data) => {\n return await axios_nomura.get(`/api/v1/fundcompare/other`, { params: { fundIds: data.fundIds, type: data.type } })\n};\n\nexport const fetchGraphCompareFunds = async (data) => {\n return await axios_nomura.get(`/api/v1/fundcompare/graph`,\n { params: {startDate: data.startDate ?? '', endDate: data.endDate ?? '', mode: data.mode, fundIds: data.body } }\n );\n};\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\n\nimport { \n\tfetchCompareFunds,\n\tfetchGraphCompareFunds,\n\tfetchCompareFundsByPeriod\n} from '../_services/compare.services';\n\nimport { fetchNavForAdvanceSearch } from '../_services/advance-search.services';\nimport { \n\tfetchCompareFundsSuccess, \n\tfetchCompareFundsFailure,\n\tfetchCompareFundsByPeriodSuccess,\n\tfetchCompareFundsByPeriodFailure,\n\tfetchGraphCompareFundsSuccess,\n\tfetchGraphCompareFundsFailure,\n\tfetchNavCompareFundsSuccess,\n\tfetchNavCompareFundsFailure,\n\tclearCompareFund\n} from '../_actions/compare.actions';\nimport { compareConstants } from '../_constants/compare.constants';\n\nexport function* fetchCompareFundsAsync({ payload }) {\n\ttry {\n\t\t// yield put(clearCompareFund());\n\t\tconst result = yield call(fetchCompareFunds, payload);\n\t\tyield put(fetchCompareFundsSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchCompareFundsFailure(error));\n\t}\n}\n\nexport function* fetchCompareFundsStart() {\n\tyield takeLatest(compareConstants.FETCH_COMPARE_START, fetchCompareFundsAsync);\n}\n\nexport function* fetchCompareFundsByPeriodAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchCompareFundsByPeriod, payload);\n\t\tyield put(fetchCompareFundsByPeriodSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchCompareFundsByPeriodFailure(error));\n\t}\n}\n\nexport function* fetchCompareFundsByPeriodStart() {\n\tyield takeLatest(compareConstants.FETCH_COMPARE_FUNDS_BY_PERIOD_START, fetchCompareFundsByPeriodAsync);\n}\n\nexport function* fetchGraphCompareFundsAsync({ payload }) {\n\ttry {\n\t\t// yield put(clearCompareFund());\n\t\tconst result = yield call(fetchGraphCompareFunds, payload);\n\t\tyield put(fetchGraphCompareFundsSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchGraphCompareFundsFailure(error));\n\t}\n}\n\nexport function* fetchGraphCompareFundsStart() {\n\tyield takeLatest(compareConstants.FETCH_GRAPH_COMPARE_FUNDS_START, fetchGraphCompareFundsAsync);\n}\n\nexport function* fetchNavCompareFundsAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchNavForAdvanceSearch, payload);\n\t\tyield put(fetchNavCompareFundsSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchNavCompareFundsFailure(error));\n\t}\n}\n\nexport function* fetchNavCompareFundsStart() {\n\tyield takeLatest(compareConstants.FETCH_NAV_COMPARE_FUNDS_START, fetchNavCompareFundsAsync);\n}\n\nexport function* compareSagas() {\n\tyield all([\n\t\tcall(fetchCompareFundsStart),\n\t\tcall(fetchCompareFundsByPeriodStart),\n\t\tcall(fetchGraphCompareFundsStart),\n\t\tcall(fetchNavCompareFundsStart)\n\t]);\n}\n","import { takeLatest, call, put, all } from \"redux-saga/effects\";\nimport { store } from \"../redux/store\";\n\nimport {\n fetchHistories,\n fetchDCAs,\n fetchOrders,\n fetchPortfolioGroups,\n fetchNavPortfolios,\n fetchLots,\n fetchBooks,\n fetchDividends,\n fetchPreviousReturnByAccount,\n fetchPreviousReturnGraphByAccount,\n fetchAumGraphByAccount,\n fetchMonthlyReturnByAccount,\n fetchMaxDrawdownByAccount,\n fetchDrawdownByAccount,\n fetchLastDateOfAccountNumber,\n fetchVolatilityByAccount,\n fetchProfitByAccount,\n fetchActivedFunds,\n fetchAllFunds,\n fetchAllFundCodes,\n deleteOrderRequestFund,\n deleteDCAOrderRequestFund,\n} from \"../_services/investment.services\";\n\nimport { investmentConstants } from \"../_constants\";\n\nimport {\n fetchHistoriesSuccess,\n fetchHistoriesFailure,\n fetchDCAsStart,\n fetchDCAsSuccess,\n fetchDCAsFailure,\n fetchPortfoliosSuccess,\n fetchPortfoliosFailure,\n fetchNavPortfoliosSuccess,\n fetchNavPortfoliosFailure,\n fetchDividendsSuccess,\n fetchDividendsFailure,\n fetchOrdersStart,\n fetchOrdersSuccess,\n fetchOrdersFailure,\n fetchLotsSuccess,\n fetchLotsFailure,\n fetchNavsLotsSuccess,\n fetchNavsLotsFailure,\n fetchBooksSuccess,\n fetchBooksFailure,\n fetchPreviousReturnByAccountSuccess,\n fetchPreviousReturnByAccountFailure,\n fetchPreviousReturnGraphByAccountSuccess,\n fetchPreviousReturnGraphByAccountFailure,\n fetchHistoryGraphByAccountSuccess,\n fetchHistoryGraphByAccountFailure,\n fetchMonthlyReturnByAccountSuccess,\n fetchMonthlyReturnByAccountFailure,\n fetchMaxDrawdownByAccountSuccess,\n fetchMaxDrawdownByAccountFailure,\n fetchDrawdownByAccountSuccess,\n fetchDrawdownByAccountFailure,\n fetchLastDateOfAccountNumberSuccess,\n fetchLastDateOfAccountNumberFailure,\n fetchVolatilityByAccountSuccess,\n fetchVolatilityByAccountFailure,\n fetchProfitByAccountSuccess,\n fetchProfitByAccountFailure,\n fetchActivedFundsSuccess,\n fetchActivedFundsFailure,\n fetchAllFundsSuccess,\n fetchAllFundsFailure,\n fetchAllFundCodesSuccess,\n fetchAllFundCodesFailure,\n deleteOrderRequestSuccess,\n deleteOrderRequestFailure,\n deleteDCAOrderRequestSuccess,\n deleteDCAOrderRequestFailure,\n} from \"../_actions/investment.actions\";\n\nimport { signOut } from \"../_actions/authentication.actions\";\n\nexport function* fetchActivedFundsAsync({ payload }) {\n try {\n const result = yield call(fetchActivedFunds, payload);\n yield put(fetchActivedFundsSuccess(result.data));\n } catch (error) {\n yield put(fetchActivedFundsFailure(error.message));\n }\n}\n\nexport function* fetchAllFundsAsync({ payload }) {\n try {\n const result = yield call(fetchAllFunds, payload);\n yield put(fetchAllFundsSuccess(result.data));\n } catch (error) {\n yield put(fetchAllFundsFailure(error.message));\n }\n}\n\nexport function* fetchAllFundCodesAsync() {\n try {\n const result = yield call(fetchAllFundCodes);\n yield put(fetchAllFundCodesSuccess(result.data));\n } catch (error) {\n yield put(fetchAllFundCodesFailure(error.message));\n }\n}\n\nexport function* fetchHistoriesAsync({ payload }) {\n try {\n const result = yield call(fetchHistories, payload);\n yield put(fetchHistoriesSuccess(result.data));\n } catch (error) {\n yield put(fetchHistoriesFailure(error.message));\n }\n}\n\nexport function* deleteDCAOrderRequestStartAsync({ payload }) {\n try {\n const result = yield call(deleteDCAOrderRequestFund, payload);\n yield put(deleteDCAOrderRequestSuccess(result.data));\n const state = store.getState();\n const accounts = state.investment.userAccounts;\n const dcaOrderQueries = state.investment.dca.queries;\n const queries = {\n accountNumbers: accounts.map((x) => x.accountNumber),\n sortBy: dcaOrderQueries.sortBy,\n sortType: dcaOrderQueries.sortType,\n isActive:\n dcaOrderQueries.status?.value !== \"\"\n ? dcaOrderQueries.status.value\n : null,\n type: dcaOrderQueries.type?.value,\n funds: dcaOrderQueries.funds?.map((x) => x.fundCode),\n };\n yield put(fetchDCAsStart(queries));\n } catch (error) {\n yield put(deleteDCAOrderRequestFailure(error));\n }\n}\n\nexport function* fetchDCAsAsync({ payload }) {\n try {\n let result = yield call(fetchDCAs, payload);\n yield put(fetchDCAsSuccess(result.data));\n } catch (error) {\n yield put(fetchDCAsFailure(error.message));\n }\n}\n\nexport function* fetchPortfoliosAsync({ payload }) {\n try {\n const result = yield call(fetchPortfolioGroups, payload);\n yield put(fetchPortfoliosSuccess(result.data));\n } catch (error) {\n yield put(fetchPortfoliosFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchNavPortfoliosAsync({ payload }) {\n try {\n const result = yield call(fetchNavPortfolios, payload);\n yield put(fetchNavPortfoliosSuccess(result.data));\n } catch (error) {\n yield put(fetchNavPortfoliosFailure(error.message));\n }\n}\nexport function* fetchPreviousReturnByAccountAsync({ payload }) {\n try {\n const result = yield call(fetchPreviousReturnByAccount, payload);\n yield put(fetchPreviousReturnByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchPreviousReturnByAccountFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchHistoryGraphByAccountAsync({ payload }) {\n try {\n const { account, date, graphMode, dateType } = payload;\n let result;\n const queries = { ...date, dateType };\n\n switch (graphMode) {\n case \"PREVIOUSE_RETURN\":\n result = yield call(\n fetchPreviousReturnGraphByAccount,\n account,\n queries\n );\n break;\n case \"AUM\":\n result = yield call(fetchAumGraphByAccount, account, queries);\n break;\n case \"ALL\":\n let previousReturn = yield call(\n fetchPreviousReturnGraphByAccount,\n account,\n queries\n );\n let aum = yield call(fetchAumGraphByAccount, account, queries);\n result = previousReturn;\n if (result.data && result.data.length > 0) {\n result.data = result.data.map((obj) => {\n let secondValue;\n aum.data.forEach((obj2) => {\n if (obj.date === obj2.date) {\n secondValue = obj2.value;\n }\n });\n return {\n date: obj.date,\n leftGraphPoint: obj.value,\n rightGraphPoint: secondValue,\n };\n });\n }\n break;\n default:\n break;\n }\n yield put(fetchHistoryGraphByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchHistoryGraphByAccountFailure(error.message));\n }\n}\nexport function* fetchPreviousReturnGraphByAccountAsync({ payload }) {\n try {\n const result = yield call(\n fetchPreviousReturnGraphByAccount,\n payload.account,\n payload.data\n );\n yield put(fetchPreviousReturnGraphByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchPreviousReturnGraphByAccountFailure(error.message));\n }\n}\nexport function* fetchProfitByAccountAsync({ payload }) {\n try {\n const result = yield call(fetchProfitByAccount, payload);\n yield put(fetchProfitByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchProfitByAccountFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchMonthlyReturnByAccountAsync({ payload }) {\n try {\n const result = yield call(fetchMonthlyReturnByAccount, payload);\n yield put(fetchMonthlyReturnByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchMonthlyReturnByAccountFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchMaxDrawdownByAccountAsync({ payload }) {\n try {\n const result = yield call(fetchMaxDrawdownByAccount, payload);\n yield put(fetchMaxDrawdownByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchMaxDrawdownByAccountFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchDrawdownByAccountAsync({ payload }) {\n try {\n const result = yield call(\n fetchDrawdownByAccount,\n payload.account,\n payload.data\n );\n yield put(fetchDrawdownByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchDrawdownByAccountFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* setDefaultPortStatAsync() {\n try {\n const state = store.getState();\n const accountNumber = state.investment.userAccounts[0]?.accountNumber;\n const result = yield call(fetchLastDateOfAccountNumber, accountNumber);\n yield put(fetchLastDateOfAccountNumberSuccess(result.data));\n } catch (error) {\n yield put(fetchLastDateOfAccountNumberFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\n\nexport function* fetchVolatilityByAccountAsync({ payload }) {\n try {\n const result = yield call(fetchVolatilityByAccount, payload);\n yield put(fetchVolatilityByAccountSuccess(result.data));\n } catch (error) {\n yield put(fetchVolatilityByAccountFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchLotsAsync({ payload }) {\n try {\n const result = yield call(fetchLots, payload);\n yield put(fetchLotsSuccess(result.data));\n } catch (error) {\n yield put(fetchLotsFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchNavsLotsAsync({ payload }) {\n try {\n const result = yield call(fetchNavPortfolios, payload);\n yield put(fetchNavsLotsSuccess(result.data));\n } catch (error) {\n yield put(fetchNavsLotsFailure(error.message));\n }\n}\nexport function* fetchBooksAsync() {\n try {\n const { investment } = store.getState();\n const payload = {\n accountNumber: investment.userAccounts[0]?.accountNumber,\n fundIds: investment.book.queries.funds\n .filter((fund) => fund.fundId)\n .map((fund) => fund.fundId),\n fundCodes: investment.book.queries.funds\n .filter((fund) => fund.fundCode)\n .map((fund) => fund.fundCode),\n startDate: investment.book.queries.date.startDate,\n endDate: investment.book.queries.date.endDate,\n };\n const result = yield call(fetchBooks, payload);\n yield put(fetchBooksSuccess(result.data));\n } catch (error) {\n yield put(fetchBooksFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchDividendsAsync({ payload }) {\n try {\n const result = yield call(fetchDividends, payload);\n yield put(fetchDividendsSuccess(result.data));\n } catch (error) {\n yield put(fetchDividendsFailure(error.message));\n\n // Sign Out if Status 401\n // if (error.response?.status === 401) {\n // yield put(signOut());\n // }\n }\n}\nexport function* fetchOrdersAsync({ payload }) {\n try {\n const result = yield call(fetchOrders, payload);\n yield put(fetchOrdersSuccess(result.data));\n } catch (error) {\n yield put(fetchOrdersFailure(error.message));\n }\n}\n\nexport function* deleteOrderRequestStartAsync({ payload }) {\n try {\n const result = yield call(deleteOrderRequestFund, payload);\n yield put(deleteOrderRequestSuccess(result.data));\n const state = store.getState();\n const accounts = state.investment.userAccounts;\n const orderQueries = state.investment.order.queries;\n const queries = {\n accountNumbers: accounts.map((x) => x.accountNumber),\n sortBy: orderQueries.sortBy,\n sortType: orderQueries.sortType,\n status: orderQueries.status?.value,\n tradeType: orderQueries.tradeType?.value,\n remark: orderQueries.remark?.value,\n };\n yield put(fetchOrdersStart(queries));\n } catch (error) {\n yield put(deleteOrderRequestFailure(error));\n }\n}\n\nexport function* fetchActivedFundsStart() {\n yield takeLatest(\n investmentConstants.FETCH_ACTIVED_FUNDS_START,\n fetchActivedFundsAsync\n );\n}\nexport function* fetchAllFundsStart() {\n yield takeLatest(\n investmentConstants.FETCH_ALL_FUNDS_START,\n fetchAllFundsAsync\n );\n}\nexport function* fetchAllFundCodesStart() {\n yield takeLatest(\n investmentConstants.FETCH_ALL_FUND_CODES_START,\n fetchAllFundCodesAsync\n );\n}\nexport function* fetchHistoriesStart() {\n yield takeLatest(\n investmentConstants.FETCH_HISTORIES_START,\n fetchHistoriesAsync\n );\n}\nexport function* fetchDCAsSagaStart() {\n yield takeLatest(investmentConstants.FETCH_DCAS_START, fetchDCAsAsync);\n}\nexport function* fetchPortfoliosStart() {\n yield takeLatest(\n investmentConstants.FETCH_PORTFOLIOS_START,\n fetchPortfoliosAsync\n );\n}\nexport function* fetchNavPortfoliosStart() {\n yield takeLatest(\n investmentConstants.FETCH_NAV_PORTFOLIO_START,\n fetchNavPortfoliosAsync\n );\n}\nexport function* fetchPreviousReturnByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_PREVIOUS_RETURN_BY_ACCOUNT_START,\n fetchPreviousReturnByAccountAsync\n );\n}\nexport function* fetchHistoryGraphByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_HISTORY_GRAPH_BY_ACCOUNT_START,\n fetchHistoryGraphByAccountAsync\n );\n}\nexport function* fetchPreviousReturnGraphByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_PREVIOUS_RETURN_GRAPH_BY_ACCOUNT_START,\n fetchPreviousReturnGraphByAccountAsync\n );\n}\nexport function* fetchProfitByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_PROFIT_BY_ACCOUNT_START,\n fetchProfitByAccountAsync\n );\n}\nexport function* fetchMonthlyReturnByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_MONTHLY_RETURN_BY_ACCOUNT_START,\n fetchMonthlyReturnByAccountAsync\n );\n}\nexport function* fetchVolatilityByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_VOLATILITY_BY_ACCOUNT_START,\n fetchVolatilityByAccountAsync\n );\n}\nexport function* fetchMaxDrawdownByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_MAX_DRAWDOWN_BY_ACCOUNT_START,\n fetchMaxDrawdownByAccountAsync\n );\n}\nexport function* fetchDrawdownByAccountStart() {\n yield takeLatest(\n investmentConstants.FETCH_DRAWDOWN_BY_ACCOUNT_START,\n fetchDrawdownByAccountAsync\n );\n}\nexport function* setDefaultPortStatStart() {\n yield takeLatest(\n investmentConstants.SET_DEFAULT_PORT_STAT,\n setDefaultPortStatAsync\n );\n}\nexport function* fetchLotsStart() {\n yield takeLatest(investmentConstants.FETCH_LOTS_START, fetchLotsAsync);\n}\nexport function* fetchNavsLotsStart() {\n yield takeLatest(\n investmentConstants.FETCH_NAVS_LOTS_START,\n fetchNavsLotsAsync\n );\n}\nexport function* fetchBooksStart() {\n yield takeLatest(investmentConstants.FETCH_BOOKS_START, fetchBooksAsync);\n}\nexport function* fetchDividendsStart() {\n yield takeLatest(\n investmentConstants.FETCH_DIVIDENDS_START,\n fetchDividendsAsync\n );\n}\nexport function* fetchOrdersSagaStart() {\n yield takeLatest(investmentConstants.FETCH_ORDERS_START, fetchOrdersAsync);\n}\nexport function* deleteOrderRequestStart() {\n yield takeLatest(\n investmentConstants.DELETE_ORDER_REQUEST_START,\n deleteOrderRequestStartAsync\n );\n}\nexport function* deleteDCAOrderRequestStart() {\n yield takeLatest(\n investmentConstants.DELETE_DCA_ORDER_REQUEST_START,\n deleteDCAOrderRequestStartAsync\n );\n}\n\nexport function* investmentSagas() {\n yield all([\n call(fetchActivedFundsStart),\n call(fetchAllFundsStart),\n call(fetchAllFundCodesStart),\n call(fetchHistoriesStart),\n call(fetchDCAsSagaStart),\n call(fetchOrdersSagaStart),\n call(fetchPortfoliosStart),\n call(fetchDividendsStart),\n call(fetchNavPortfoliosStart),\n call(fetchPreviousReturnByAccountStart),\n call(fetchHistoryGraphByAccountStart),\n call(fetchPreviousReturnGraphByAccountStart),\n call(fetchProfitByAccountStart),\n call(fetchMonthlyReturnByAccountStart),\n call(fetchMaxDrawdownByAccountStart),\n call(fetchDrawdownByAccountStart),\n call(setDefaultPortStatStart),\n call(fetchVolatilityByAccountStart),\n call(fetchLotsStart),\n call(fetchNavsLotsStart),\n call(fetchBooksStart),\n call(deleteOrderRequestStart),\n call(deleteDCAOrderRequestStart),\n ]);\n}\n","import { takeLatest, call, put, all } from \"redux-saga/effects\";\n\nimport {\n fetchFundInfo,\n fetchHistoricalNav,\n fetchHistoricalNavGraph,\n fetchDividend,\n fetchDividendGroupByYear,\n fetchDrawdownByDate,\n fetchMaximumDrawdown,\n fetchMonthlyReturn,\n fetchPriceRange,\n fetchVolatilities,\n fetchReturnExpenseRatio,\n fetchMonthlyProfit,\n fetchReturnHistory,\n fetchTradingInformation,\n fetchFundAverageRating,\n voteFundAverageRating,\n fetchPortByFundId,\n fetchPortChartByFundIdAndChartType,\n fetchWeeklyFundRanking,\n fetchPortfolioInformation,\n fetchDividendDescription,\n} from \"../_services/information.services\";\nimport { fetchCalendarByDate } from \"../_services/calendar.services\";\n\nimport { informationConstants } from \"../_constants/information.constants\";\n\nimport {\n fetchFundInfoSuccess,\n fetchFundInfoFailure,\n clearFundInfo,\n fetchTradingInformationSuccess,\n fetchTradingInformationFailure,\n fetchFundAverageRatingSuccess,\n fetchFundAverageRatingFailure,\n fetchCalendarFundSuccess,\n fetchCalendarFundFailure,\n fetchHistoricalNavSuccess,\n fetchHistoricalNavFailure,\n fetchHistoricalNavGraphSuccess,\n fetchHistoricalNavGraphFailure,\n fetchFundAverageRatingStart,\n fetchFundPortInfoSuccess,\n fetchFundPortInfoFailure,\n fetchFundPortChartByChartTypeSuccess,\n fetchFundPortChartByChartTypeFailure,\n fetchDividendSuccess,\n fetchDividendFailure,\n fetchDividendGroupByYearSuccess,\n fetchDividendGroupByYearFailure,\n fetchWeeklyFundRankingSuccess,\n fetchWeeklyFundRankingFailure,\n fetchDrawdownByDateSuccess,\n fetchDrawdownByDateFailure,\n fetchMaximumDrawdownSuccess,\n fetchMaximumDrawdownFailure,\n fetchDrawdownNavGraphSuccess,\n fetchDrawdownNavGraphFailure,\n fetchMonthlyReturnSuccess,\n fetchMonthlyReturnFailure,\n fetchPriceRangeSuccess,\n fetchPriceRangeFailure,\n fetchVolatilitiesSuccess,\n fetchVolatilitiesFailure,\n fetchReturnExpenseRatioSuccess,\n fetchReturnExpenseRatioFailure,\n fetchMonthlyProfitSuccess,\n fetchMonthlyProfitFailure,\n fetchReturnHistorySuccess,\n fetchReturnHistoryFailure,\n fetchPortfolioInformationSuccess,\n fetchPortfolioInformationFailure,\n fetchDividendDescriptionSuccess,\n fetchDividendDescriptionFailure,\n} from \"../_actions/information.actions\";\n\nimport { convertDataToPortChart } from \"../_utils/information.utils\";\n\nexport function* fetchFundInfoAsync({ payload }) {\n try {\n yield put(clearFundInfo());\n const result = yield call(fetchFundInfo, payload);\n yield put(fetchFundInfoSuccess(result.data));\n } catch (error) {\n yield put(fetchFundInfoFailure(error.message));\n }\n}\n\nexport function* fetchPortfolioInformationAsync({ payload }) {\n try {\n const result = yield call(fetchPortfolioInformation, payload);\n yield put(fetchPortfolioInformationSuccess(result.data));\n } catch (error) {\n yield put(fetchPortfolioInformationFailure(error.message));\n }\n}\n\nexport function* fetchTradingInformationAsync({ payload }) {\n try {\n const result = yield call(fetchTradingInformation, payload);\n yield put(fetchTradingInformationSuccess(result.data));\n } catch (error) {\n yield put(fetchTradingInformationFailure(error.message));\n }\n}\n\nexport function* fetchHistoricalNavAsync({ payload }) {\n try {\n const result = yield call(fetchHistoricalNav, payload);\n yield put(fetchHistoricalNavSuccess(result.data));\n } catch (error) {\n yield put(fetchHistoricalNavFailure(error.message));\n }\n}\n\nexport function* fetchFundAverageRatingAsync({ payload }) {\n try {\n const result = yield call(fetchFundAverageRating, payload);\n yield put(fetchFundAverageRatingSuccess(result.data));\n } catch (error) {\n yield put(fetchFundAverageRatingFailure(error.message));\n }\n}\n\nexport function* voteFundAverageRatingAsync({ payload }) {\n try {\n yield call(voteFundAverageRating, payload);\n yield put(fetchFundAverageRatingStart(payload.fundId));\n } catch (error) {}\n}\n\nexport function* fetchPortByFundIdAsync({ payload }) {\n try {\n const result = yield call(fetchPortByFundId, payload);\n yield put(fetchFundPortInfoSuccess(result.data));\n } catch (error) {\n yield put(fetchFundPortInfoFailure(error));\n }\n}\n\nexport function* fetchPortChartByChartTypeAsync({ payload }) {\n try {\n const result = yield call(fetchPortChartByFundIdAndChartType, payload);\n const convertData = convertDataToPortChart(result.data, payload.chartType);\n yield put(fetchFundPortChartByChartTypeSuccess(convertData));\n } catch (error) {\n yield put(fetchFundPortChartByChartTypeFailure(error));\n }\n}\n\nexport function* fetchCalendarFundStartAsync({ payload }) {\n try {\n const result = yield call(fetchCalendarByDate, payload);\n yield put(fetchCalendarFundSuccess(result.data));\n } catch (error) {\n yield put(fetchCalendarFundFailure(error));\n }\n}\n\nexport function* fetchHistoricalNavGraphAsync({ payload }) {\n try {\n const result = yield call(fetchHistoricalNavGraph, payload);\n yield put(fetchHistoricalNavGraphSuccess(result.data));\n } catch (error) {\n yield put(fetchHistoricalNavGraphFailure(error.message));\n }\n}\n\nexport function* fetchWeeklyFundRankingAsync({ payload }) {\n try {\n const result = yield call(fetchWeeklyFundRanking, payload);\n yield put(fetchWeeklyFundRankingSuccess(result.data));\n } catch (error) {\n yield put(fetchWeeklyFundRankingFailure(error.message));\n }\n}\n\nexport function* fetchDrawdownByDateAsync({ payload }) {\n try {\n const result = yield call(fetchDrawdownByDate, payload);\n yield put(fetchDrawdownByDateSuccess(result.data));\n } catch (error) {\n yield put(fetchDrawdownByDateFailure(error.message));\n }\n}\n\nexport function* fetchMaximumDrawdownAsync({ payload }) {\n try {\n const result = yield call(fetchMaximumDrawdown, payload);\n yield put(fetchMaximumDrawdownSuccess(result.data));\n } catch (error) {\n yield put(fetchMaximumDrawdownFailure(error.message));\n }\n}\n\nexport function* fetchDrawdownNavGraphAsync({ payload }) {\n try {\n const result = yield call(fetchHistoricalNavGraph, payload);\n yield put(fetchDrawdownNavGraphSuccess(result.data));\n } catch (error) {\n yield put(fetchDrawdownNavGraphFailure(error.message));\n }\n}\n\nexport function* fetchMonthlyReturnAsync({ payload }) {\n try {\n const result = yield call(fetchMonthlyReturn, payload);\n yield put(fetchMonthlyReturnSuccess(result.data));\n } catch (error) {\n yield put(fetchMonthlyReturnFailure(error.message));\n }\n}\n\nexport function* fetchVolatilitiesAsync({ payload }) {\n try {\n const result = yield call(fetchVolatilities, payload);\n yield put(fetchVolatilitiesSuccess(result.data));\n } catch (error) {\n yield put(fetchVolatilitiesFailure(error.message));\n }\n}\n\nexport function* fetchPriceRangeAsync({ payload }) {\n try {\n const result = yield call(fetchPriceRange, payload);\n yield put(fetchPriceRangeSuccess(result.data));\n } catch (error) {\n yield put(fetchPriceRangeFailure(error.message));\n }\n}\n\nexport function* fetchReturnExpenseRatioAsync({ payload }) {\n try {\n const result = yield call(fetchReturnExpenseRatio, payload);\n yield put(fetchReturnExpenseRatioSuccess(result.data));\n } catch (error) {\n yield put(fetchReturnExpenseRatioFailure(error.message));\n }\n}\n\nexport function* fetchMonthlyProfitAsync({ payload }) {\n try {\n const result = yield call(fetchMonthlyProfit, payload);\n yield put(fetchMonthlyProfitSuccess(result.data));\n } catch (error) {\n yield put(fetchMonthlyProfitFailure(error.message));\n }\n}\n\nexport function* fetchReturnHistoryAsync({ payload }) {\n try {\n const result = yield call(fetchReturnHistory, payload);\n yield put(fetchReturnHistorySuccess(result.data));\n } catch (error) {\n yield put(fetchReturnHistoryFailure(error.message));\n }\n}\n\n// Dividend\nexport function* fetchDividendAsync({ payload }) {\n try {\n const result = yield call(fetchDividend, payload);\n yield put(fetchDividendSuccess(result.data));\n } catch (error) {\n yield put(fetchDividendFailure(error.message));\n }\n}\n\nexport function* fetchDividendGroupByYearAsync({ payload }) {\n try {\n const result = yield call(fetchDividendGroupByYear, payload);\n yield put(fetchDividendGroupByYearSuccess(result.data));\n } catch (error) {\n yield put(fetchDividendGroupByYearFailure(error.message));\n }\n}\n\nexport function* fetchDividendDescriptionAsync({ payload }) {\n try {\n const result = yield call(fetchDividendDescription, payload);\n yield put(fetchDividendDescriptionSuccess(result.data));\n } catch (error) {\n yield put(fetchDividendDescriptionFailure(error.message));\n }\n}\n\nexport function* fetchFundInfoStart() {\n yield takeLatest(\n informationConstants.FETCH_FUND_INFO_START,\n fetchFundInfoAsync\n );\n}\n\nexport function* fetchPortfolioInformationStart() {\n yield takeLatest(\n informationConstants.FETCH_PORTFOLIO_INFO_START,\n fetchPortfolioInformationAsync\n );\n}\nexport function* fetchTradingInformationStart() {\n yield takeLatest(\n informationConstants.FETCH_TRADING_INFO_START,\n fetchTradingInformationAsync\n );\n}\n\nexport function* fetchHistoricalNavStart() {\n yield takeLatest(\n informationConstants.FETCH_HISTORICAL_NAV_START,\n fetchHistoricalNavAsync\n );\n}\n\nexport function* fetchFundAverageRatingStartSaga() {\n yield takeLatest(\n informationConstants.FETCH_FUND_AVERAGE_RATING_START,\n fetchFundAverageRatingAsync\n );\n}\n\nexport function* voteFundAverageRatingStart() {\n yield takeLatest(\n informationConstants.VOTE_FUND_AVERAGE_RATING,\n voteFundAverageRatingAsync\n );\n}\n\nexport function* fetchPortByFundIdStart() {\n yield takeLatest(\n informationConstants.FETCH_FUND_PORT_INFO_START,\n fetchPortByFundIdAsync\n );\n}\n\nexport function* fetchPortChartByChartTypeStart() {\n yield takeLatest(\n informationConstants.FETCH_FUND_PORT_CHART_BY_CHART_TYPE_START,\n fetchPortChartByChartTypeAsync\n );\n}\n\nexport function* fetchCalendarFundStart() {\n yield takeLatest(\n informationConstants.FETCH_CALENDAR_FUND_START,\n fetchCalendarFundStartAsync\n );\n}\n\nexport function* fetchHistoricalNavGraphStart() {\n yield takeLatest(\n informationConstants.FETCH_HISTORICAL_NAV_GRAPH_START,\n fetchHistoricalNavGraphAsync\n );\n}\n\nexport function* fetchWeeklyFundRankingStart() {\n yield takeLatest(\n informationConstants.FETCH_WEEKLY_FUND_RANKING_START,\n fetchWeeklyFundRankingAsync\n );\n}\n\nexport function* fetchDividendStart() {\n yield takeLatest(\n informationConstants.FETCH_DIVIDEND_START,\n fetchDividendAsync\n );\n}\n\nexport function* fetchDividendDescriptionStart() {\n yield takeLatest(\n informationConstants.FETCH_DIVIDEND_DESCRIPTION_START,\n fetchDividendDescriptionAsync\n );\n}\n\nexport function* fetchDrawdownByDateStart() {\n yield takeLatest(\n informationConstants.FETCH_DRAWDOWN_BY_DATE_START,\n fetchDrawdownByDateAsync\n );\n}\n\nexport function* fetchMaximumDrawdownStart() {\n yield takeLatest(\n informationConstants.FETCH_MAXIMUM_DRAWDOWN_START,\n fetchMaximumDrawdownAsync\n );\n}\n\nexport function* fetchDrawdownNavGraphStart() {\n yield takeLatest(\n informationConstants.FETCH_DRAWDOWN_NAV_GRAPH_START,\n fetchDrawdownNavGraphAsync\n );\n}\n\nexport function* fetchMonthlyReturnStart() {\n yield takeLatest(\n informationConstants.FETCH_MONTHLY_RETURN_START,\n fetchMonthlyReturnAsync\n );\n}\n\nexport function* fetchPriceRangeStart() {\n yield takeLatest(\n informationConstants.FETCH_PRICE_RANGE_START,\n fetchPriceRangeAsync\n );\n}\n\nexport function* fetchVolatilitiesStart() {\n yield takeLatest(\n informationConstants.FETCH_VOLATILITIES_START,\n fetchVolatilitiesAsync\n );\n}\n\nexport function* fetchReturnExpenseRatioStart() {\n yield takeLatest(\n informationConstants.FETCH_RETURN_EXPENSE_RATIO_START,\n fetchReturnExpenseRatioAsync\n );\n}\n\nexport function* fetchMonthlyProfitStart() {\n yield takeLatest(\n informationConstants.FETCH_MONTHLY_PROFIT_START,\n fetchMonthlyProfitAsync\n );\n}\n\nexport function* fetchReturnHistoryStart() {\n yield takeLatest(\n informationConstants.FETCH_RETURN_HISTORY_START,\n fetchReturnHistoryAsync\n );\n}\n\nexport function* fetchDividendGroupByYearStart() {\n yield takeLatest(\n informationConstants.FETCH_DIVIDEND_GROUP_BY_YEAR_START,\n fetchDividendGroupByYearAsync\n );\n}\n\nexport function* informationSagas() {\n yield all([\n call(fetchFundInfoStart),\n call(fetchPortfolioInformationStart),\n call(fetchTradingInformationStart),\n call(fetchFundAverageRatingStartSaga),\n call(voteFundAverageRatingStart),\n call(fetchCalendarFundStart),\n call(fetchPortByFundIdStart),\n call(fetchPortChartByChartTypeStart),\n call(fetchHistoricalNavStart),\n call(fetchHistoricalNavGraphStart),\n call(fetchDividendStart),\n call(fetchWeeklyFundRankingStart),\n call(fetchDrawdownByDateStart),\n call(fetchMaximumDrawdownStart),\n call(fetchDrawdownNavGraphStart),\n call(fetchMonthlyReturnStart),\n call(fetchPriceRangeStart),\n call(fetchVolatilitiesStart),\n call(fetchReturnExpenseRatioStart),\n call(fetchMonthlyProfitStart),\n call(fetchReturnHistoryStart),\n call(fetchDividendGroupByYearStart),\n call(fetchDividendDescriptionStart),\n ]);\n}\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { searchInformation } from '../_services/search.services';\nimport {\n\tfetchConfirmSellFund, \n\tfetchBuyFundInfo, \n\tfetchSellFundInfo,\n\tfetchSwitchFundInfo,\n\tfetchCheckedSwitchableFund,\n\tfetchSendQuestionBackToConfirm,\n\tfetchBuyableFund,\n\tfetchSellableFund,\n\tfetchConfirmSwitchFund\n} from '../_services/order-request.services';\nimport {\n\tcheckedFundAbleToOrderSuccess,\n\tcheckedFundAbleToOrderFailure,\n\tconfirmOrderFundSuccess,\n\tconfirmOrderFundFailure,\n\tupdateFundInfo,\n\tupdateFundInfo2,\n\tclearSearchFundInfo,\n\tclearSearchFundInfo2\n} from '../_actions/order-request.actions';\nimport { orderRequestConstants } from '../_constants/order-request.constants';\nimport { store } from '../redux/store';\nimport { tranformErrorResponses } from '../_utils/service.utils';\n\nexport function* fetchBuyFundInfoAsync({ payload }) {\n\ttry {\n\t\tlet result = yield call(fetchBuyFundInfo, payload);\n\t\tresult.data.fund.fundId = payload.fundId;\n\t\tresult.data.fund.color = payload.color;\n\t\tresult.data.fund.riskLevel = payload.fund.riskLevel || result.data.fund.riskLevel;\n\t\tresult.data.fund.categoryName = payload.categoryName;\n\t\tresult.data.fund.categoryCode = payload.fund.categoryCode;\n\t\tyield put(updateFundInfo(result.data));\n\t} catch (error) {\n\t\tyield put(clearSearchFundInfo());\n\t}\n}\n\nexport function* fetchCheckedBuyableFundAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchBuyableFund, payload);\n\t\tyield put(checkedFundAbleToOrderSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(checkedFundAbleToOrderFailure(tranformErrorResponses(error)));\n\t}\n}\n\nexport function* fetchCheckedSellableFundAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchSellableFund, payload);\n\t\tyield put(checkedFundAbleToOrderSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(checkedFundAbleToOrderFailure(tranformErrorResponses(error)));\n\t}\n}\n\nexport function* fetchCheckedSwitchableFundAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchCheckedSwitchableFund, payload);\n\t\tyield put(checkedFundAbleToOrderSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(checkedFundAbleToOrderFailure(tranformErrorResponses(error)));\n\t}\n}\n\nexport function* fetchConfirmOrderFundAsync({ payload }) {\n\ttry {\n\t\tconst state = store.getState();\n\t\tconst activeTab = state.orderRequest.activeTab;\n\t\tconst urlAPI = activeTab === 'Buy'\n\t\t\t? fetchSendQuestionBackToConfirm\n\t\t\t:\tactiveTab === 'Sell'\n\t\t\t\t? fetchConfirmSellFund\n\t\t\t\t:\tactiveTab === 'Switch'\n\t\t\t\t\t? fetchConfirmSwitchFund\n\t\t\t\t\t: null\n\n\t\tconst result = yield call(urlAPI, payload);\n\t\tyield put(confirmOrderFundSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(confirmOrderFundFailure(tranformErrorResponses(error)));\n\t}\n}\n\nexport function* fetchSellFundInfoAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchSellFundInfo, payload);\n\n\t\tconst mapData = {\n\t\t\t...result.data,\n\t\t\tfund: {\n\t\t\t\t...result.data.fund,\n\t\t\t\taccountType: payload.accountType,\n\t\t\t\tfundId: payload.fundId,\n\t\t\t\tcolor: payload.color,\n\t\t\t\tcategoryCode: payload.fund?.categoryCode\n\t\t\t}\n\t\t}\n\t\tyield put(updateFundInfo(mapData));\n\t} catch (error) {\n\t\tyield put(clearSearchFundInfo());\n\t}\n}\n\nexport function* fetchSwitchFundInfoAsync({ payload }) {\n\ttry {\n\t\tconst tempPayload = { \n\t\t\t...payload, \n\t\t\ttoFundId: payload.toFund?.fundId, \n\t\t\ttoFundCode: payload.toFund?.fundCode \n\t\t};\n\t\t\n\t\tlet result = yield call(fetchSwitchFundInfo, tempPayload);\n\t\tresult.data = { \n\t\t\t...result.data,\n\t\t\tfund: {\n\t\t\t\t...result.data.fund,\n\t\t\t\tcolor: payload.color,\n\t\t\t\tfundId: payload.toFund?.fundId,\n\t\t\t\tcategoryCode: payload.toFund?.categoryCode\n\t\t\t}\n\t\t}\n\n\t\tyield put(updateFundInfo2(result.data));\n\t} catch (error) {\n\t\tyield put(clearSearchFundInfo2());\n\t}\n}\n\nexport function* fetchBuyFundInfoStart() {\n\tyield takeLatest(orderRequestConstants.FETCH_BUY_FUND_INFO_START, fetchBuyFundInfoAsync);\n}\n\nexport function* fetchCheckedBuyableFundStart() {\n\tyield takeLatest(orderRequestConstants.CHECKED_BUYABLE_FUND_START, fetchCheckedBuyableFundAsync);\n}\n\nexport function* fetchCheckedSellableFundStart() {\n\tyield takeLatest(orderRequestConstants.CHECKED_SELLABLE_FUND_START, fetchCheckedSellableFundAsync);\n}\n\nexport function* fetchCheckedSwitchableFundStart() {\n\tyield takeLatest(orderRequestConstants.CHECKED_SWITCHABLE_FUND_START, fetchCheckedSwitchableFundAsync);\n}\n\nexport function* fetchSellFundInfoStart() {\n\tyield takeLatest(orderRequestConstants.FETCH_SELL_FUND_INFO_START, fetchSellFundInfoAsync);\n}\n\nexport function* fetchSwitchFundInfoStart() {\n\tyield takeLatest(orderRequestConstants.FETCH_SWITCH_FUND_INFO_START, fetchSwitchFundInfoAsync);\n}\n\nexport function* fetchConfirmOrderFundStart() {\n\tyield takeLatest(orderRequestConstants.CONFIRM_ORDER_FUND_START, fetchConfirmOrderFundAsync);\n}\n\nexport function* orderRequestSagas() {\n\tyield all([\n\t\tcall(fetchBuyFundInfoStart),\n\t\tcall(fetchCheckedBuyableFundStart),\n\t\tcall(fetchCheckedSellableFundStart),\n\t\tcall(fetchCheckedSwitchableFundStart),\n\t\tcall(fetchSellFundInfoStart),\n\t\tcall(fetchSwitchFundInfoStart),\n\t\tcall(fetchConfirmOrderFundStart)\n\t]);\n}\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\n\n/* reducer, selector, action */\nimport {\n\tfetchAdvanceSearchFiltersSuccess,\n\tfetchAdvanceSearchFiltersFailure,\n\tfetchAdvanceSearchSuccess,\n\tfetchAdvanceSearchFailure,\n\tfetchNavAdvanceSearchSuccess,\n\tfetchNavAdvanceSearchFailure,\n\tupdateDefaultQueriesAdvanceSearch\n} from '../_actions/advance-search.actions';\n\nimport { advanceSearchConstants } from '../_constants/advance-search.constants';\n\nimport {\n\tfetchAdvanceSearchFilters,\n\tfetchNavForAdvanceSearch\n} from '../_services/advance-search.services';\nimport { fetchFundSearch } from '../_services/information.services';\n\n// Worker\nexport function* fetchAdvanceSearchFiltersAsync() {\n\ttry {\n\t\tconst result = yield call(fetchAdvanceSearchFilters);\n\t\tyield put(updateDefaultQueriesAdvanceSearch(result.data));\n\t\tyield put(fetchAdvanceSearchFiltersSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchAdvanceSearchFiltersFailure(error));\n\t}\n}\n\nexport function* fetchAdvanceSearchAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchFundSearch, payload);\n\t\tyield put(fetchAdvanceSearchSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchAdvanceSearchFailure(error));\n\t}\n}\n\nexport function* fetchNavAdvanceSearchAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchNavForAdvanceSearch, payload);\n\t\tyield put(fetchNavAdvanceSearchSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchNavAdvanceSearchFailure(error));\n\t}\n}\n\n// Watcher\nexport function* fetchAdvanceSearchFiltersToSaga() {\n\tyield takeLatest(advanceSearchConstants.FETCH_ADVANCE_SEARCH_FILTERS_START, fetchAdvanceSearchFiltersAsync);\n}\n\nexport function* fetchAdvanceSearchToSaga() {\n\tyield takeLatest(advanceSearchConstants.FETCH_ADVANCE_SEARCH_START, fetchAdvanceSearchAsync);\n}\n\nexport function* fetchNavAdvanceSearchToSaga() {\n\tyield takeLatest(advanceSearchConstants.FETCH_NAV_ADVANCE_SEARCH_START, fetchNavAdvanceSearchAsync);\n}\n\n// Call Root-Saga\nexport function* advanceSearchSagas() {\n\tyield all([\n\t\tcall(fetchAdvanceSearchFiltersToSaga), \n\t\tcall(fetchAdvanceSearchToSaga), \n\t\tcall(fetchNavAdvanceSearchToSaga)\n\t]);\n}\n","import axios_nomura from './axios-nomura.services';\nimport axios_test from './axios-mock.services';\n\nexport const fetchIpos = async (ipoType) => {\n return await axios_nomura.get(`api/v1/ipo`, { params: { type: ipoType } });\n};\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { fetchIpos } from '../_services/ipo.services';\nimport { fetchIposSuccess, fetchIposFailure } from '../_actions/ipo.actions';\nimport { ipoConstants } from '../_constants/ipo.constants';\n\nexport function* fetchIpoStartAsync({ payload }) {\n try {\n const result = yield call(fetchIpos, payload);\n yield put(fetchIposSuccess(result.data));\n } catch (error) {\n yield put(fetchIposFailure(error.message));\n }\n}\n\nexport function* fetchIpoStart() {\n yield takeLatest(ipoConstants.FETCH_IPOS_START, fetchIpoStartAsync);\n}\nexport function* ipoSagas() {\n yield all([call(fetchIpoStart)]);\n}\n","import axios_nomura from './axios-nomura.services';\n\nexport const fetchRank = async (fundId) => {\n return await axios_nomura.get(`api/v1/funds/${fundId}/rank`, { params: { type: '1Y' } } );\n};\n\nexport const fetchFundRank = async (data) => {\n return await axios_nomura.get(`api/v1/funds/${data.fundId}/rank`, { params: { type: data.type } });\n};\n\nexport const fetchCategories = async () => {\n return await axios_nomura.get(`api/v1/category`);\n};\n\nexport const fetchUserCategories = async () => {\n return await axios_nomura.get(`api/v1/category/favorite`);\n};\n\nexport const saveUserCategories = async (data) => {\n return await axios_nomura.post(`api/v1/category/favorite`, data);\n};\n","import axios_nomura from './axios-nomura.services';\nimport axios from './axios-mock.services';\n\nexport const fetchBanners = async () => {\n return await axios_nomura.get(`api/v1/home/banners`);\n};\n\nexport const fetchHighlightFunds = async () => {\n return await axios_nomura.get(`api/v1/home/hot_funds`);\n};\n\nexport const fetchTopSubCategories = async () => {\n return await axios_nomura.get(`api/v1/home/category_rankings`);\n};\n\nexport const fetchArticles = async () => {\n return await axios_nomura.get(`api/v1/home/article_categories`);\n};\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { pullUserCategories } from '../_utils/fund-ranking.utils';\n\nimport {\n fetchRankingSearchFiltersSuccess,\n fetchRankingSearchFiltersFailure,\n fetchRankingsSuccess,\n fetchRankingsFailure,\n fetchCategoriesSuccess,\n fetchCategoriesFailure,\n fetchUserCategoriesStart,\n fetchUserCategoriesSuccess,\n fetchUserCategoriesFailure,\n saveUserCategoriesSuccess,\n saveUserCategoriesFailure,\n setDefaultFundRankingQueries,\n fetchNavRankingsSuccess,\n fetchNavRankingsFailure,\n fetchFundRankSuccess,\n fetchFundRankFailure,\n fetchHighlightFundSuccess,\n fetchHighlightFundFailure,\n fetchRankSuccess,\n fetchRankFailure,\n updateUserCategories\n} from '../_actions/fund-ranking.actions';\nimport { fundRankingConstants } from '../_constants/fund-ranking.constants';\n\nimport {\n fetchCategories,\n fetchUserCategories,\n saveUserCategories,\n fetchFundRank,\n fetchRank\n} from '../_services/fund-ranking.services';\nimport {\n fetchAdvanceSearchFilters,\n fetchNavForAdvanceSearch\n} from '../_services/advance-search.services';\nimport {\n fetchHighlightFunds\n} from '../_services/home.services';\nimport { fetchFundSearch } from '../_services/information.services';\n\nimport { store } from '../redux/store';\n\nexport function* fetchRankingSearchFiltersAsync() {\n\ttry {\n\t\tconst result = yield call(fetchAdvanceSearchFilters);\n\t\tyield put(fetchRankingSearchFiltersSuccess(result.data));\n yield put(setDefaultFundRankingQueries(result.data));\n\t} catch (error) {\n\t\tyield put(fetchRankingSearchFiltersFailure(error));\n\t}\n}\n\nexport function* fetchRankingSearchFiltersStart() {\n yield takeLatest(fundRankingConstants.FETCH_RANK_SEARCH_FILTERS_START, fetchRankingSearchFiltersAsync);\n}\n\nexport function* fetchFundRankAsync({payload}) {\n\ttry {\n\t\tconst result = yield call(fetchFundRank, payload);\n\t\tyield put(fetchFundRankSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchFundRankFailure(error));\n\t}\n}\n\nexport function* fetchFundRankStart() {\n yield takeLatest(fundRankingConstants.FETCH_FUND_RANK_START, fetchFundRankAsync);\n}\n\nexport function* fetchNavRankingsAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchNavForAdvanceSearch, payload);\n\t\tyield put(fetchNavRankingsSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchNavRankingsFailure(error));\n\t}\n}\n\nexport function* fetchNavRankingsStart() {\n yield takeLatest(fundRankingConstants.FETCH_NAV_RANKINGS_START, fetchNavRankingsAsync);\n}\n\nexport function* fetchRankStartAsync({ payload }) {\n const { page } = payload;\n delete payload.page;\n try {\n const result = yield call(fetchRank, payload);\n yield put(fetchRankSuccess(result.data));\n } catch (error) {\n yield put(fetchRankFailure(error.message));\n }\n}\n\nexport function* fetchRankStart() {\n yield takeLatest(fundRankingConstants.FETCH_RANK_START, fetchRankStartAsync);\n}\n\nexport function* fetchRankingsStartAsync({payload}) {\n try {\n const result = yield call(fetchFundSearch, payload);\n yield put(fetchRankingsSuccess(result.data));\n // add page & current for in the future\n // yield put(updatePage(result.data.currentPage));\n // yield put(setTotalPage(result.data.totalPage));\n } catch (error) {\n yield put(fetchRankingsFailure(error.message));\n // yield put(updatePage(1));\n // yield put(setTotalPage(1));\n }\n}\n\nexport function* fetchRankingsStart() {\n yield takeLatest(fundRankingConstants.FETCH_RANKINGS_START, fetchRankingsStartAsync);\n}\n\nexport function* fetchCategoriesStartAsync() {\n const { authentication, fundRanking: { userCategory : { userCategories } } } = store.getState();\n // let user = state.authentication.currentNumbers.toString();\n\n try {\n if (!authentication.isSignIn && userCategories.length > 1) {\n return\n }\n yield put(updateUserCategories({ isFetching: true }));\n const first = yield call(fetchCategories);\n yield put(fetchCategoriesSuccess(first.data));\n // user = user !== '' ? 'User2' : null; //Change to username instant 'User2' later\n const second = yield call(fetchUserCategories);\n const data = pullUserCategories(second.data, first.data);\n yield put(fetchUserCategoriesSuccess(data));\n } catch (error) {\n yield put(fetchCategoriesFailure(error.message));\n yield put(fetchUserCategoriesFailure(error.message));\n }\n}\n\nexport function* fetchCategoriesStart() {\n yield takeLatest(fundRankingConstants.FETCH_CATEGORIES_START, fetchCategoriesStartAsync);\n}\n\nexport function* fetchUserCategoriesStartAsync() {\n const state = store.getState();\n const categories = state.fundRanking.category.categories;\n try {\n if (categories == null) {\n return;\n }\n\n const result = yield call(fetchUserCategories);\n const data = pullUserCategories(result.data, categories);\n yield put(fetchUserCategoriesSuccess(data));\n } catch (error) {\n yield put(fetchUserCategoriesFailure(error.message));\n }\n}\n\nexport function* fetchUserCategoriesStartSaga() {\n yield takeLatest(fundRankingConstants.FETCH_USER_CATEGORIES_START, fetchUserCategoriesStartAsync);\n}\n\nexport function* saveUserCategoriesStartAsync({ payload }) {\n const state = store.getState();\n let user = state.authentication.user;\n\n try {\n if (user) {\n // user = 'User2'; // remove this line after api have already request real username\n yield call(saveUserCategories, payload);\n yield put(fetchUserCategoriesStart(user));\n } else {\n yield put(fetchUserCategoriesSuccess(payload));\n }\n } catch (error) {\n yield put(saveUserCategoriesFailure(error.message));\n }\n}\n\nexport function* saveUserCategoriesStart() {\n yield takeLatest(fundRankingConstants.SAVE_USER_CATEGORIES_START, saveUserCategoriesStartAsync);\n}\n\nexport function* fetchHighlightFundStartAsync() {\n try {\n const result = yield call(fetchHighlightFunds);\n yield put(fetchHighlightFundSuccess(result.data));\n } catch (error) {\n yield put(fetchHighlightFundFailure(error.message));\n }\n}\n\nexport function* fetchHighlightFundStart() {\n yield takeLatest(fundRankingConstants.FETCH_HIGHLIGHT_FUND_START, fetchHighlightFundStartAsync);\n}\n\nexport function* fundRankingSagas() {\n yield all([\n call(fetchRankStart),\n call(fetchRankingSearchFiltersStart),\n call(fetchFundRankStart),\n call(fetchRankingsStart),\n call(fetchCategoriesStart),\n call(fetchUserCategoriesStartSaga),\n call(saveUserCategoriesStart),\n call(fetchNavRankingsStart),\n call(fetchHighlightFundStart)\n ]);\n}\n","import axios_nomura from './axios-nomura.services';\n\nexport const fetchMonthlyReport = async (payload) => {\n let accountNumber = payload.accountNumber.length > 0 ? payload.accountNumber.toString() : null;\n delete payload.accountNumber;\n return await axios_nomura.post(`api/v1/accounts/${accountNumber}/monthly_report`, JSON.stringify(payload));\n};\n\nexport const fetchMonthlyReportChart = async (payload) => {\n return await axios_nomura.post(`/api/v1/accounts/${payload.accountNumber}/monthly_report/chart`, null, { params: { date: payload.date} });\n};\n\n// Monthly Report For Investment(Portfolio).\nexport const fetchMonthlyReportChartForPortFolios = async (payload) => {\n return await axios_nomura.post(`/api/v1/portfolios/groups/chart`, payload );\n};\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { store } from '../redux/store';\n\nimport { \n fetchMonthlyReport,\n fetchMonthlyReportChart,\n fetchMonthlyReportChartForPortFolios\n} from '../_services/monthly-report.services';\n\nimport { \n fetchMonthlyReportSuccess, \n fetchMonthlyReportFailure,\n fetchMonthlyReportChartSuccess,\n fetchMonthlyReportChartFailure,\n clearMonthluReportTableQueries,\n clearMonthluReportChartQueries,\n clearMonthluReportSharedQueries\n} from '../_actions/monthly-report.actions';\n\nimport { monthlyReportConstants } from '../_constants/monthly-report.constants';\n\nexport function* fetchMonthlyReportTableStartAsync() {\n const state = store.getState();\n const account = state.investment.userAccounts;\n const sharedQueries = state.monthlyReport.sharedQueries;\n const tableQueries = state.monthlyReport.monthlyReportTable.queries;\n \n let payload = {\n accountNumber: account.map(acc => acc.accountNumber)[0],\n date: sharedQueries.date,\n groupType: tableQueries.groupType,\n sortBy: tableQueries.sortKey,\n sortType: tableQueries.sortType\n }\n\n try {\n const result = yield call(fetchMonthlyReport, payload);\n yield put(fetchMonthlyReportSuccess(result.data));\n } catch (error) {\n yield put(fetchMonthlyReportFailure(error.message));\n }\n}\n\nexport function* fetchMonthlyReportChartStartAsync() {\n try { \n const state = store.getState();\n let payload = {};\n let result = null;\n\n if (state.main.currentPage === 'MONTHLY_REPORT') {\n payload['accountNumber'] = state.investment.userAccounts[0]?.accountNumber;\n payload['date'] = state.monthlyReport.sharedQueries.date;\n result = yield call(fetchMonthlyReportChart, payload);\n } else if (state.main.currentPage === 'INVESTMENT') {\n payload['accountNumbers'] = state.investment.userAccounts.map(x => x.accountNumber);\n result = yield call(fetchMonthlyReportChartForPortFolios, payload);\n } else {\n // THROW ERROR WHEN CURRENT PAGE IS NOT BOTH INVESTMENT AND MONTHLY_REPORT.\n const error = new Error( \"Your page not permission to access this content.\");\n throw(error);\n }\n\n yield put(fetchMonthlyReportChartSuccess(result.data));\n } catch (error) {\n yield put(fetchMonthlyReportChartFailure(error.message));\n }\n}\n\nexport function* clearMonthlyReportQueriesStart() {\n yield put(clearMonthluReportTableQueries());\n yield put(clearMonthluReportChartQueries());\n yield put(clearMonthluReportSharedQueries());\n}\n\nexport function* fetchMonthlyReportTableStart() {\n yield takeLatest(monthlyReportConstants.FETCH_MONTHLY_REPORT_START, fetchMonthlyReportTableStartAsync);\n}\n\nexport function* fetchMonthlyReportChartStart() {\n yield takeLatest(monthlyReportConstants.FETCH_MONTHLY_REPORT_CHART_START, fetchMonthlyReportChartStartAsync);\n}\n\nexport function* clearQueriesStart() {\n yield takeLatest(monthlyReportConstants.CLEAR_MONTHLY_REPORT_QUERIES_START, clearMonthlyReportQueriesStart);\n}\n\nexport function* monthlyReportSagas() {\n yield all([call(fetchMonthlyReportTableStart), call(fetchMonthlyReportChartStart), call(clearQueriesStart)]);\n}\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { fetchCalendarByYear, fetchCalendarByDate } from '../_services/calendar.services';\nimport { \n fetchCalendarByYearSuccess, \n fetchCalendarByYearFailure,\n fetchCalendarByDateSuccess, \n fetchCalendarByDateFailure\n} from '../_actions/calendar.actions';\nimport { calendarConstants } from '../_constants/calendar.constants';\n\nexport function* fetchCalendarByYearStartAsync({ payload }) {\n try {\n const result = payload.fundId ? yield call(fetchCalendarByDate, payload) : yield call(fetchCalendarByYear, payload);\n yield put(fetchCalendarByYearSuccess(result.data));\n } catch (error) {\n yield put(fetchCalendarByYearFailure(error.message));\n }\n}\n\nexport function* fetchCalendarByYearStart() {\n yield takeLatest(calendarConstants.FETCH_CALENDAR_BY_YEAR_START, fetchCalendarByYearStartAsync);\n}\n\nexport function* fetchCalendarByDateStartAsync({ payload }) {\n try {\n const result = yield call(fetchCalendarByDate, payload);\n yield put(fetchCalendarByDateSuccess(result.data));\n } catch (error) {\n yield put(fetchCalendarByDateFailure(error.message));\n }\n}\n\nexport function* fetchCalendarByDateStart() {\n yield takeLatest(calendarConstants.FETCH_CALENDAR_BY_DATE_START, fetchCalendarByDateStartAsync);\n}\n\nexport function* calendarSagas() {\n yield all([\n call(fetchCalendarByYearStart),\n call(fetchCalendarByDateStart)\n ]);\n}\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\n\nimport { \n fetchBanners,\n fetchHighlightFunds,\n fetchTopSubCategories,\n fetchArticles\n} from '../_services/home.services';\n\nimport {\n fetchNavForAdvanceSearch\n} from '../_services/advance-search.services';\n\nimport { \n fetchBannersSuccess, \n fetchBannersFailure,\n fetchHighlightFundsSuccess,\n fetchHighlightFundsFailure,\n updateNavFunds,\n fetchNavFundsSuccess,\n fetchNavFundsFailure,\n fetchTopSubCategoriesSuccess,\n fetchTopSubCategoriesFailure,\n fetchArticlesSuccess,\n fetchArticlesFailure,\n } from '../_actions/home.actions';\n\nimport { homeConstants } from '../_constants/home.constants';\n\nexport function* fetchBannersStartAsync() {\n try {\n const result = yield call(fetchBanners);\n yield put(fetchBannersSuccess(result.data));\n } catch (error) {\n yield put(fetchBannersFailure(error.message));\n }\n}\n\nexport function* fetchHighlightFundsStartAsync({payload}) {\n try {\n const result = yield call(fetchHighlightFunds, payload);\n yield put(updateNavFunds(result.data));\n yield put(fetchHighlightFundsSuccess(result.data));\n } catch (error) {\n yield put(fetchHighlightFundsFailure(error.message));\n }\n}\n\nexport function* fetchNavFundsAsync({ payload }) {\n\ttry {\n\t\tconst result = yield call(fetchNavForAdvanceSearch, payload);\n\t\tyield put(fetchNavFundsSuccess(result.data));\n\t} catch (error) {\n\t\tyield put(fetchNavFundsFailure(error));\n\t}\n}\n\nexport function* fetchTopSubCategoriesStartAsync() {\n try {\n const result = yield call(fetchTopSubCategories);\n yield put(fetchTopSubCategoriesSuccess(result.data));\n } catch (error) {\n yield put(fetchTopSubCategoriesFailure(error.message));\n }\n}\n\nexport function* fetchArticlesStartAsync() {\n try {\n const result = yield call(fetchArticles);\n yield put(fetchArticlesSuccess(result.data));\n } catch (error) {\n yield put(fetchArticlesFailure(error.message));\n }\n}\n\nexport function* fetchBannersStart() {\n yield takeLatest(homeConstants.FETCH_BANNERS_START, fetchBannersStartAsync);\n}\n\nexport function* fetchHighlightFundsStart() {\n yield takeLatest(homeConstants.FETCH_HIGHLIGHT_FUNDS_START, fetchHighlightFundsStartAsync);\n}\n\nexport function* fetchNavFundsStart() {\n yield takeLatest(homeConstants.FETCH_NAV_FUNDS_START, fetchNavFundsAsync);\n}\n\nexport function* fetchTopSubCategoriesStart() {\n yield takeLatest(homeConstants.FETCH_TOP_SUB_CATEGORIES_START, fetchTopSubCategoriesStartAsync);\n}\n\nexport function* fetchArticlesStart() {\n yield takeLatest(homeConstants.FETCH_ARTICLES_START, fetchArticlesStartAsync);\n}\n\nexport function* HomeSagas() {\n yield all([call(fetchBannersStart), call(fetchHighlightFundsStart), call(fetchTopSubCategoriesStart), call(fetchArticlesStart), call(fetchNavFundsStart)]);\n}\n","import { takeLatest, call, put, all } from 'redux-saga/effects';\nimport { \n getColorListFailure, \n getColorListSuccess \n} from '../_actions/general.actions';\nimport { generalConstants } from '../_constants';\nimport { fetchColors } from '../_services/general.service';\n\nexport function* getColorListAsync({ payload }) {\n try {\n const result = yield call(fetchColors, payload);\n yield put(getColorListSuccess({type: payload, data: result.data}));\n } catch (error) {\n yield put(getColorListFailure(error.message));\n }\n}\n\nexport function* getColorListStart() {\n yield takeLatest(generalConstants.GET_COLOR_LIST_START, getColorListAsync);\n}\nexport function* generalSagas() {\n yield all([call(getColorListStart)]);\n}\n","import { generalConstants } from '../_constants';\nimport { generalService } from '../_services';\n\nexport const generalActions = {\n getMenus\n};\n\n//Test API fetch data from MenuController\nfunction getMenus() {\n return generalService.getMenus()\n}\n\nexport const getColorList = (type) => ({\n type: generalConstants.GET_COLOR_LIST_START,\n payload: type\n})\nexport const getColorListSuccess = (data) => ({\n type: generalConstants.GET_COLOR_LIST_SUCCESS,\n payload: data\n})\nexport const getColorListFailure = (error) => ({\n type: generalConstants.GET_COLOR_LIST_FAILURE,\n payload: error\n})\nexport const clearColorList = (type) => ({\n type: generalConstants.CLEAR_COLOR_LIST,\n payload: type\n})\n","import thunk from 'redux-thunk';\nimport { logger } from 'redux-logger';\n\nconst getMiddlewares = () => {\n const result = [thunk];\n if (process.env.NODE_ENV === 'development') {\n result.push(logger);\n return result;\n }\n return result;\n};\n\nexport default getMiddlewares;\n","import { createStore, applyMiddleware, compose } from 'redux';\nimport { persistStore } from 'redux-persist';\nimport createSagaMiddleware from 'redux-saga';\nimport rootReducer from '../redux/root-reducer';\nimport rootSaga from '../redux/root-saga';\nimport getMiddlewares from '../_middlewares/middlewares';\n\nconst sagaMiddleware = createSagaMiddleware();\n\nconst middlewares = getMiddlewares();\nmiddlewares.push(sagaMiddleware);\n\n// In development, use the browser's Redux dev tools extension if installed\nconst enhancers = [];\nconst isDevelopment = process.env.NODE_ENV === 'development';\n\nif (isDevelopment && typeof window !== 'undefined' && window.devToolsExtension) {\n\tenhancers.push(window.devToolsExtension());\n}\n\nexport const store = createStore(rootReducer, compose(applyMiddleware(...middlewares), ...enhancers));\n\n// Mount rootSaga must be done after applyMiddleware\nsagaMiddleware.run(rootSaga);\n\nexport const persistor = persistStore(store);\n\nexport default { store, persistStore };\n","import { all, call } from 'redux-saga/effects';\n\nimport { searchSagas } from '../_sagas/search.sagas';\nimport { authenticationSagas } from '../_sagas/authentication.sagas';\nimport { favoriteSagas } from '../_sagas/favorite.sagas';\nimport { hotfundSagas } from '../_sagas/hotfund.sagas';\nimport { compareSagas } from '../_sagas/compare.sagas';\nimport { investmentSagas } from '../_sagas/investment.sagas';\nimport { informationSagas } from '../_sagas/information.sagas';\nimport { orderRequestSagas } from '../_sagas/order-request.sagas';\nimport { advanceSearchSagas } from '../_sagas/advance-search.sagas';\nimport { ipoSagas } from '../_sagas/ipo.sagas';\nimport { fundRankingSagas } from '../_sagas/fund-ranking.sagas';\nimport { monthlyReportSagas } from '../_sagas/monthly-report.sagas';\nimport { calendarSagas } from '../_sagas/calendar.sagas';\nimport { HomeSagas } from '../_sagas/home.sagas';\nimport { generalSagas } from '../_sagas/general.sagas';\n\nexport default function* rootSaga() {\n yield all([\n call(searchSagas),\n call(authenticationSagas),\n call(favoriteSagas),\n call(investmentSagas),\n call(informationSagas),\n call(orderRequestSagas),\n call(hotfundSagas),\n call(compareSagas),\n call(advanceSearchSagas),\n call(ipoSagas),\n call(fundRankingSagas),\n call(monthlyReportSagas),\n call(calendarSagas),\n call(HomeSagas),\n call(generalSagas)\n ]);\n}\n","/* main react */\nimport React from 'react';\n\n/* image */\nimport Loading from '../../assets/loading-yellow.gif'\n\nconst Spinner = () => (\n
\n \n
\n);\n\nexport default Spinner;\n","import { monthlyReportConstants } from '../_constants/monthly-report.constants';\n\nexport const fetchMonthlyReportTableStart = () => ({\n type: monthlyReportConstants.FETCH_MONTHLY_REPORT_START\n});\n\nexport const fetchMonthlyReportSuccess = (data) => ({\n type: monthlyReportConstants.FETCH_MONTHLY_REPORT_SUCCESS,\n payload: data\n});\n\nexport const fetchMonthlyReportFailure = (errorMessage) => ({\n type: monthlyReportConstants.FETCH_MONTHLY_REPORT_FAILURE,\n payload: errorMessage\n});\n\nexport const fetchMonthlyReportChartStart = () => ({\n type: monthlyReportConstants.FETCH_MONTHLY_REPORT_CHART_START\n});\n\nexport const fetchMonthlyReportChartSuccess = (data) => ({\n type: monthlyReportConstants.FETCH_MONTHLY_REPORT_CHART_SUCCESS,\n payload: data\n});\n\nexport const fetchMonthlyReportChartFailure = (errorMessage) => ({\n type: monthlyReportConstants.FETCH_MONTHLY_REPORT_CHART_FAILURE,\n payload: errorMessage\n});\n\nexport const setMonthlyReportTableQueries = (data) => ({\n type: monthlyReportConstants.SET_MONTHLY_REPORT_TABLE_QUERIES,\n payload: data\n})\n\nexport const setMonthlyReportSharedQueries = (data) => ({\n type: monthlyReportConstants.SET_MONTHLY_REPORT_SHARED_QUERIES,\n payload: data\n})\n\nexport const clearMonthluReportResponses = () => ({\n type: monthlyReportConstants.CLEAR_MONTHLY_REPORT_TABLE_RESPONSES\n});\n\nexport const clearMonthluReportTableQueries = () => ({\n type: monthlyReportConstants.CLEAR_MONTHLY_REPORT_TABLE_QUERIES\n});\n\nexport const clearMonthluReportChartQueries = () => ({\n type: monthlyReportConstants.CLEAR_MONTHLY_REPORT_CHART_QUERIES\n});\n\nexport const clearMonthluReportSharedQueries = () => ({\n type: monthlyReportConstants.CLEAR_MONTHLY_REPORT_SHARED_QUERIES\n});\n\nexport const clearMonthluReportQueries = () => ({\n type: monthlyReportConstants.CLEAR_MONTHLY_REPORT_QUERIES_START\n})","import { advanceSearchConstants } from '../_constants/advance-search.constants';\n\nexport const updateAdvanceSearchQueries = (queries) => ({\n\ttype: advanceSearchConstants.UPDATE_ADVANCE_SEARCH_QUERIES,\n\tpayload: queries\n});\n\nexport const updateDefaultQueriesAdvanceSearch = (queries) => ({\n\ttype: advanceSearchConstants.UPDATE_DEFAULT_QUERIES_ADVANCE_SEARCH,\n\tpayload: queries\n});\n\nexport const resetQueriesAdvanceSearch = () => ({\n\ttype: advanceSearchConstants.RESET_QUERIES_ADVANCE_SEARCH\n});\n\nexport const fetchAdvanceSearchFiltersStart = () => ({\n\ttype: advanceSearchConstants.FETCH_ADVANCE_SEARCH_FILTERS_START,\n});\n\nexport const fetchAdvanceSearchFiltersSuccess = (data) => ({\n\ttype: advanceSearchConstants.FETCH_ADVANCE_SEARCH_FILTERS_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchAdvanceSearchFiltersFailure = (message) => ({\n\ttype: advanceSearchConstants.FETCH_ADVANCE_SEARCH_FILTERS_FAILURE,\n\tpayload: message\n});\n\nexport const fetchAdvanceSearchStart = (data) => ({\n\ttype: advanceSearchConstants.FETCH_ADVANCE_SEARCH_START,\n\tpayload: data\n});\n\nexport const fetchAdvanceSearchSuccess = (data) => ({\n\ttype: advanceSearchConstants.FETCH_ADVANCE_SEARCH_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchAdvanceSearchFailure = (message) => ({\n\ttype: advanceSearchConstants.FETCH_ADVANCE_SEARCH_FAILURE,\n\tpayload: message\n});\n\nexport const updateNavDateChart = (dateType) => ({\n\ttype: advanceSearchConstants.UPDATE_NAV_DATE_ADVANCE_SEARCH,\n\tpayload: dateType\n});\n\nexport const fetchNavAdvanceSearchStart = (data) => ({\n\ttype: advanceSearchConstants.FETCH_NAV_ADVANCE_SEARCH_START,\n\tpayload: data\n});\n\nexport const fetchNavAdvanceSearchSuccess = (data) => ({\n\ttype: advanceSearchConstants.FETCH_NAV_ADVANCE_SEARCH_SUCCESS,\n\tpayload: data\n});\n\nexport const fetchNavAdvanceSearchFailure = (message) => ({\n\ttype: advanceSearchConstants.FETCH_NAV_ADVANCE_SEARCH_FAILURE,\n\tpayload: message\n});\n\nexport const updateCurrentPageSearch = (page) => ({\n\ttype: advanceSearchConstants.UPDATE_CURRENT_PAGE_SEARCH,\n\tpayload: page\n});\n\nexport const updateTableColumn = (columnList) => ({\n\ttype: advanceSearchConstants.UPDATE_TABLE_COLUMN,\n\tpayload: columnList\n});","import axios from 'axios';\nimport '../_configs';\nimport { store } from '../redux/store';\n\nconst config = global.gConfig;\n\n// let mainUrl = `${config.webUrl}/cnsauth/`;\nlet mainUrl = process.env.REACT_APP_CNSAUTH_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 user = state.authentication.user;\n\t\tif (user && !request.headers.hasOwnProperty('Authorization')) {\n\t\t\trequest.headers['Authorization'] = 'Bearer ' + user.accessToken;\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\tconsole.log(error);\n\n\t\treturn Promise.reject(error);\n\t}\n);\n\nexport default instance;\n","import { searchConstants } from '../_constants/search.constants';\n\nexport const searchStart = (keyword) => ({\n type: searchConstants.FETCH_MAIN_SEARCH_START,\n payload: keyword\n});\n\nexport const searchSuccess = (data) => ({\n type: searchConstants.FETCH_MAIN_SEARCH_SUCCESS,\n payload: data\n});\n\nexport const searchFailure = (errorMessage) => ({\n type: searchConstants.FETCH_MAIN_SEARCH_FAILURE,\n payload: errorMessage\n});\n\nexport const clearSearch = () => ({\n type: searchConstants.CLEAR_MAIN_SEARCH\n});\n\nexport const updateSearch = (searchText) => ({\n type: searchConstants.UPDATE_MAIN_SEARCH,\n payload: searchText\n});\n\nexport const removeSearch = () => ({\n type: searchConstants.REMOVE_MAIN_SEARCH\n});\n\n// Search Fund Ranking\nexport const subNavSearchStart = (keyword) => ({\n type: searchConstants.FETCH_SUBNAV_SEARCH_START,\n payload: keyword\n});\n\nexport const subNavSearchSuccess = (data) => ({\n type: searchConstants.FETCH_SUBNAV_SEARCH_SUCCESS,\n payload: data\n});\n\nexport const subNavSearchFailure = (errorMessage) => ({\n type: searchConstants.FETCH_SUBNAV_SEARCH_FAILURE,\n payload: errorMessage\n});\n\nexport const clearSubNavSearch = () => ({\n type: searchConstants.CLEAR_SUBNAV_SEARCH\n});\n\nexport const updateSubNavSearch = (searchText) => ({\n type: searchConstants.UPDATE_SUBNAV_SEARCH,\n payload: searchText\n});\n\nexport const removeSubNavSearch = () => ({\n type: searchConstants.REMOVE_SUBNAV_SEARCH\n});\n\n// Search Fund Calendar\nexport const searchFundCalendarStart = (keyword) => ({\n type: searchConstants.FETCH_SEARCH_FUND_CALENDAR_START,\n payload: keyword\n});\n\nexport const searchFundCalendarSuccess = (data) => ({\n type: searchConstants.FETCH_SEARCH_FUND_CALENDAR_SUCCESS,\n payload: data\n});\n\nexport const searchFundCalendarFailure = (errorMessage) => ({\n type: searchConstants.FETCH_SEARCH_FUND_CALENDAR_FAILURE,\n payload: errorMessage\n});\n\nexport const clearSearchFundCalendar = () => ({\n type: searchConstants.CLEAR_SEARCH_FUND_CALENDAR\n});\n\nexport const updateSearchFundCalendar = (searchText) => ({\n type: searchConstants.UPDATE_SEARCH_FUND_CALENDAR,\n payload: searchText\n});\n\nexport const removeSearchFundCalendar = () => ({\n type: searchConstants.REMOVE_SEARCH_FUND_CALENDAR\n});\n","export const authHeader = () => {\n // return authorization header with jwt token\n let user = JSON.parse(localStorage.getItem('user'));\n\n if (user && user.token) {\n return { Authorization: 'Bearer ' + user.token };\n } else {\n return {};\n }\n};\n","import { mainConstants } from '../_constants';\n\nexport const toggleScreenSize = () => ({\n type: mainConstants.TOGGLE_SCREEN_SIZE\n});\n\nexport const toggleSideBar = () => ({\n type: mainConstants.TOGGLE_SIDE_BAR\n});\n\nexport const toggleActivePage = (currentPage) => ({\n type: mainConstants.TOGGLE_ACTIVE_PAGE,\n payload: currentPage\n});\n\nexport const insertRoutes = (routes) => ({\n type: mainConstants.INSERT_ROUTES,\n payload: routes\n});\n\nexport const enablePaging = () => ({\n type: mainConstants.ENABLE_PAGING\n});\n\nexport const disablePaging = () => ({\n type: mainConstants.DISABLE_PAGING\n});\n\nexport const insertPages = (pages) => ({\n type: mainConstants.INSERT_PAGES,\n payload: pages\n});\n\nexport const updateErrorModal = (data) => ({\n type: mainConstants.UPDATE_ERROR_MODAL,\n payload: data\n});\n\nexport const clearErrorModal = () => ({\n type: mainConstants.CLEAR_ERROR_MODAL\n});\n","import axios_nomura from './axios-nomura.services';\n\nexport const fetchCalendarByDate = async (data) => {\n return await axios_nomura.get(`api/v1/calendars`, { params: { startAt: data.startAt ?? '', endAt: data.endAt ?? '', fundId: data.fundId } });\n};\n\nexport const fetchCalendarByYear = async (data) => {\n return await axios_nomura.get(`api/v1/calendars/summary`, { params: { startAt: data.startAt ?? '', endAt: data.endAt ?? '', fundId: data.fundId } });\n};\n\nexport const fetchCalendarThaiHolidays = async () => {\n return await axios_nomura.get(`api/v1/calendars/thailand_holidays`);\n};","global.gConfig = {\n \"environment\": process.env.REACT_APP_STAGE || 'development',\n \"apiUrl\": \"https://ifundapi.azurewebsites.net\",\n \"webUrl\": process.env.REACT_APP_IFUND2_URL,\n \"apiKey\": \"kPsnBymCZGuqf8XH{EmPCWRUcu7rcGPbqppx\"\n}","import { calendarConstants } from '../_constants/calendar.constants';\n\n// Search calendar by year\nexport const fetchCalendarByYearStart = (data) => ({\n type: calendarConstants.FETCH_CALENDAR_BY_YEAR_START,\n payload: data\n});\nexport const fetchCalendarByYearSuccess = (data) => ({\n type: calendarConstants.FETCH_CALENDAR_BY_YEAR_SUCCESS,\n payload: data\n});\nexport const fetchCalendarByYearFailure = (errorMessage) => ({\n type: calendarConstants.FETCH_CALENDAR_BY_YEAR_FAILURE,\n payload: errorMessage\n});\nexport const updateCalendarYear = (year) => ({\n type: calendarConstants.UPDATE_CALENDAR_YEAR,\n payload: year\n});\nexport const updateUserFundCalendar= (fund) => ({\n type: calendarConstants.UPDATE_USER_FUND_CALENDAR,\n payload: fund\n});\n\n// Search fund calendar by date\nexport const fetchCalendarByDateStart = (data) => ({\n type: calendarConstants.FETCH_CALENDAR_BY_DATE_START,\n payload: data\n});\nexport const fetchCalendarByDateSuccess = (data) => ({\n type: calendarConstants.FETCH_CALENDAR_BY_DATE_SUCCESS,\n payload: data\n});\nexport const fetchCalendarByDateFailure = (errorMessage) => ({\n type: calendarConstants.FETCH_CALENDAR_BY_DATE_FAILURE,\n payload: errorMessage\n});\nexport const updateUserCalendarDate = (date) => ({\n type: calendarConstants.UPDATE_USER_CALENDAR_DATE,\n payload: date\n})\n","import { createSelector } from \"reselect\";\n\nconst selectAuthentication = (state) => state.authentication;\n\nexport const selectUserCredential = createSelector(\n [selectAuthentication],\n (authentication) => authentication.userCredential\n);\nexport const selectLogInType = createSelector(\n [selectAuthentication],\n (authentication) => authentication.logInType\n);\n\nexport const selectSignInStatus = createSelector(\n [selectAuthentication],\n (authentication) => authentication.isSignIn\n);\nexport const selectIsOpenErrorMessageModal = createSelector(\n [selectAuthentication],\n (authentication) => authentication.isOpenErrorMessageModal\n);\n\nexport const selectErrorMessage = createSelector(\n [selectAuthentication],\n (authentication) => authentication.errorMessage\n);\nexport const selectIsOpenSignInModal = createSelector(\n [selectAuthentication],\n (authentication) => authentication.isOpenModal\n);\nexport const selectIsLoading2FA = createSelector(\n [selectAuthentication],\n (authentication) => authentication.isLoading2FA\n);\nexport const selectIsOpenVerify2FactorModal = createSelector(\n [selectAuthentication],\n (authentication) => authentication.isOpenVerify2FactorModal\n);\nexport const select2FAToken = createSelector(\n [selectAuthentication],\n (authentication) => authentication.twoFactorToken\n);\nexport const select2FAReferenceCode = createSelector(\n [selectAuthentication],\n (authentication) => authentication.referenceCode\n);\nexport const select2FATwoFactorId = createSelector(\n [selectAuthentication],\n (authentication) => authentication.twoFactorId\n);\nexport const select2FATwoFactorAuthenticationMethod = createSelector(\n [selectAuthentication],\n (authentication) => authentication.twoFactorAuthenticationMethod\n);\n// user acccount numbers\nexport const selectUserInformation = createSelector(\n [selectAuthentication],\n (authentication) => authentication.user\n);\nexport const selectUserType = createSelector(\n [selectUserInformation],\n (userInformation) => userInformation?.userType\n);\nexport const selectAccountMKT = createSelector(\n [selectAuthentication],\n (authentication) => authentication.mkt\n);\n\nexport const selectAccountList = createSelector(\n [selectAuthentication],\n (authentication) => authentication.accountList\n);\nexport const selectGetAccountListSuccess = createSelector(\n [selectAuthentication],\n (authentication) => authentication.getAccountListSuccess\n);\nexport const selectIsMobileCompletedLogin = createSelector(\n [selectAuthentication],\n (authentication) => authentication.isMobileCompletedLogin\n);\nexport const selectAccountInfo = createSelector(\n [selectAuthentication],\n (authentication) => authentication.accountInfo\n);\nexport const selectAccountName = createSelector(\n [selectAuthentication],\n (authentication) => authentication.accountName\n);\nexport const selectIsFetchingAuthentication = createSelector(\n [selectAuthentication],\n (authentication) => authentication.isFetching\n);\n","import { baseSort } from \"./general.utils\";\n\nexport const setIsFetching = (state) => {\n return {\n ...state,\n isFetching: true\n }\n};\n\nexport const filterIpoResults = (state, data) => {\n return {\n ...state,\n isFetching: false,\n ipoResults: data\n };\n};\n\nexport const resetIpoResults = (state, data) => {\n return {\n ...state,\n isFetching: false,\n ipoResults: [],\n errorMessage: data\n };\n};\n\nexport const sortType = [\n {\n value: 'date',\n label: 'ตามวันที่'\n },\n {\n value: 'risk',\n label: 'ตามความเสี่ยง'\n },\n {\n value: 'investAmount',\n label: 'ตามเงินลงทุน'\n },\n {\n value: 'returnAmount',\n label: 'ตามผลตอบแทน'\n },\n {\n value: 'fee',\n label: 'ตามค่าธรรมเนียม'\n }\n]\n\nexport\tconst sortItems = (items, sortType) => {\n if (!items) {\n return undefined;\n }\n\n let result;\n switch (sortType) {\n case 'date':\n result = items.sort( (a, b) => baseSort(new Date(a.sellEndedAt), new Date (b.sellEndedAt), 'a') || baseSort(a.fundCode, b.fundCode, 'a'));\n break;\n case 'risk':\n result = items.sort( (a, b) => baseSort(a.riskLevel, b.riskLevel, 'a') || baseSort(a.fundCode, b.fundCode, 'a'));\n break;\n case 'investAmount':\n result = items.sort( (a, b) => baseSort(a.initialPurchase, b.initialPurchase, 'a') || baseSort(a.fundCode, b.fundCode, 'a'));\n break;\n case 'returnAmount':\n result = items.sort( (a, b) => baseSort(a.forecastingReturn, b.forecastingReturn, 'd') || baseSort(a.fundCode, b.fundCode, 'a'));\n break;\n case 'fee':\n result = items.sort( (a, b) => baseSort(a.purchaseFee, b.purchaseFee, 'a') || baseSort(a.fundCode, b.fundCode, 'a'));\n break;\n default:\n result = items\n break;\n }\n\n return result;\n}\n\nexport const isInRangeDate = (checkedDate, startDate, endDate) => {\n if (!checkedDate || !startDate || !endDate) {\n return false;\n }\n return startDate.getTime() <= checkedDate.getTime() && checkedDate.getTime() <= endDate.getTime()\n}","import axios_nomura from './axios-nomura.services';\n\nexport const searchInformation = async (keyword) => {\n return await axios_nomura.get(`api/v1/search?keyword=${encodeURIComponent(keyword)}`);\n};\n","import axios from 'axios';\nimport '../_configs';\n\nconst config = global.gConfig;\n\n// let mainUrl = config.webUrl;\n// Temp Url for Mock\nlet mainUrl = 'https://6cbe0786-8a15-4078-aabd-01fef483050a.mock.pstmn.io';\n\n// let apiKey = 'kPsnBymCZGuqf8XH{EmPCWRUcu7rcGPbqppx'; // Mock not support api key\n\nconst instance = axios.create({\n baseURL: mainUrl,\n headers: { Accept: 'application/json' }\n // headers: { Accept: 'application/json', 'x-mock-match-request-body': true }\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\n// axios.defaults.headers.common['api key'] = 'x-api-key';\n// instance.defaults.headers.post['x-api-key'] = apiKey;\n\n// Interceptors Request\ninstance.interceptors.request.use(\n (request) => {\n // Edit request config\n const user = localStorage.getItem('user');\n if (user) {\n request.headers['Authorization'] = 'Bearer ' + user.token;\n }\n return request;\n },\n (error) => {\n return Promise.reject(error);\n }\n);\n\n// Interceptors Response\ninstance.interceptors.response.use(\n (response) => {\n // Edit response config\n return response.data;\n },\n (error) => {\n return Promise.reject(error.response.data);\n }\n);\n\nexport default instance;\n","import { authHeader } from '../_helpers';\n\nimport axios_nomura from './axios-nomura.services';\nimport { userService } from './user.service';\n\nimport '../_configs';\n\nvar config = global.gConfig;\n\nlet handleResponse = userService.handleResponse;\n\nconst getMenus = async () => {\n const requestOptions = {\n method: 'GET',\n headers: authHeader()\n };\n return await fetch(`${config.webUrl}/ifund2/api/menu/get_all`, requestOptions).then(handleResponse);\n};\n\nexport const generalService = {\n getMenus\n};\n\n\nexport const fetchColors = async (type) => {\n return await axios_nomura.get(`api/v1/colors`, { params: { type: type } });\n}","import { authHeader } from '../_helpers';\nimport '../_configs';\n\nvar config = global.gConfig;\n\nconst login = async (username, password) => {\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ username, password })\n };\n\n const response = await fetch(`api/user/login`, requestOptions);\n const user = await handleResponse(response);\n return user;\n};\n\nconst logout = () => {\n // remove user from local storage to log user out\n localStorage.removeItem('user');\n};\n\nconst getAll = async () => {\n const requestOptions = {\n method: 'GET',\n headers: authHeader()\n };\n\n const response = await fetch(`${config.apiUrl}/users`, requestOptions);\n return handleResponse(response);\n};\n\nconst getById = async (id) => {\n const requestOptions = {\n method: 'GET',\n headers: authHeader()\n };\n\n const response = await fetch(`${config.apiUrl}/users/${id}`, requestOptions);\n return handleResponse(response);\n};\n\nconst register = async (user) => {\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(user)\n };\n\n const response = await fetch(`${config.apiUrl}/users/register`, requestOptions);\n return handleResponse(response);\n};\n\nconst update = async (user) => {\n const requestOptions = {\n method: 'PUT',\n headers: { ...authHeader(), 'Content-Type': 'application/json' },\n body: JSON.stringify(user)\n };\n\n const response = await fetch(`${config.apiUrl}/users/${user.id}`, requestOptions);\n return handleResponse(response);\n};\n\n// prefixed function name with underscore because delete is a reserved word in javascript\nconst _delete = async (id) => {\n const requestOptions = {\n method: 'DELETE',\n headers: authHeader()\n };\n\n const response = await fetch(`${config.apiUrl}/users/${id}`, requestOptions);\n return handleResponse(response);\n};\n\nconst handleResponse = (response) => {\n return response.text().then((text) => {\n const data = text && JSON.parse(text);\n if (!response.ok) {\n if (response.status === 401) {\n // auto logout if 401 response returned from api\n logout();\n window.location.reload(true);\n }\n const error = (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n return data;\n });\n};\n\nexport const userService = {\n login,\n logout,\n register,\n getAll,\n getById,\n update,\n delete: _delete,\n handleResponse\n};\n","import { hotfundConstants } from '../_constants/hotfund.constants';\n\nexport const updateHotfundQueries = (queries) => ({\n type: hotfundConstants.UPDATE_HOTFUND_QUERIES,\n payload: queries\n});\n\nexport const updateHotfundTableColumns = (columns) => ({\n type: hotfundConstants.UPDATE_HOTFUND_TABLE_COLUMNS,\n payload: columns\n});\n\nexport const fetchHotfundStart = (data) => ({\n type: hotfundConstants.FETCH_HOTFUND_START,\n payload: data\n});\n\nexport const fetchHotfundSuccess = (data) => ({\n type: hotfundConstants.FETCH_HOTFUND_SUCCESS,\n payload: data\n});\n\nexport const fetchHotfundFailure = (errorMessage) => ({\n type: hotfundConstants.FETCH_HOTFUND_FAILURE,\n payload: errorMessage\n});\n","import { ipoConstants } from '../_constants/ipo.constants';\n\nexport const fetchIposStart = (ipoType) => ({\n type: ipoConstants.FETCH_IPOS_START,\n payload: ipoType\n});\n\nexport const fetchIposSuccess = (data) => ({\n type: ipoConstants.FETCH_IPOS_SUCCESS,\n payload: data\n});\n\nexport const fetchIposFailure = (errorMessage) => ({\n type: ipoConstants.FETCH_IPOS_FAILURE,\n payload: errorMessage\n});\n\nexport const toggleDetailModal = () => ({\n type: ipoConstants.TOGGLE_DETAIL_MODAL\n});\n\nexport const setCurrentDetailModal = (fundCode) => ({\n type: ipoConstants.SET_CURRENT_DETAIL_MODAL,\n payload: fundCode\n});\n\nexport const updateIPOQueries = (queries) => ({\n type: ipoConstants.UPDATE_IPO_QUERIES,\n payload: queries\n});\n","import axios_nomura from './axios-nomura.services';\nimport axios_mock from './axios-mock.services';\n\nexport const fetchHotfundByTopBottom = async (data) => {\n return await axios_nomura.get(`api/v1/hotcategories/topbottom`, {\n params: {\n dateType: data.dateType ?? null,\n startedAt: data.startedAt ?? null,\n endedAt: data.endedAt ?? null,\n fundTypes: data.fundTypes ?? [],\n sortBy: data.sortBy,\n sortType: data.sortType,\n }\n });\n};\n\nexport const fetchHotfundAll = async (data) => {\n return await axios_nomura.get(`api/v1/hotcategories/all`, {\n params: {\n dateType: data.dateType ?? null,\n startedAt: data.startedAt ?? null,\n endedAt: data.endedAt ?? null,\n fundTypes: data.fundTypes ?? [],\n sortBy: data.sortBy,\n sortType: data.sortType,\n }\n });\n};\n\nexport const fetchGraphCompareCategories = async (data) => {\n return await axios_nomura.get(`/api/v1/hotcategories/graph`,\n {\n params: {\n startDate: data.startDate ?? '',\n endDate: data.endDate ?? '',\n categoryCodes: data.categoryCodes,\n fundTypes: data.fundTypes,\n }\n }\n );\n};\n","import { useEffect } from 'react';\n\nconst addBodyClass = (className) => document.body.classList.add(className);\nconst removeBodyClass = (className) => document.body.classList.remove(className);\n\nexport const useBodyClass = (className) => {\n useEffect(() => {\n // Set up\n className instanceof Array ? className.map(addBodyClass) : addBodyClass(className);\n\n // Clean up\n return () => {\n className instanceof Array ? className.map(removeBodyClass) : removeBodyClass(className);\n };\n }, [className]);\n};\n\nexport const toggleActiveClass = (event) => {\n event.currentTarget.classList.toggle('active');\n};","export const transferConstants = {\n // Toggled Transfer Modals Constant\n TOGGLED_TRANSFER_MODAL: 'TOGGLED_TRANSFER_MODAL'\n};\n","module.exports = __webpack_public_path__ + \"static/media/loading-yellow.cac6e074.gif\";","/* main react */\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\n/* reducer, selector, action */\nimport { clearSignInErrorMessage, signInCredentialStart } from '../../_actions/authentication.actions';\nimport { selectErrorMessage, selectGetAccountListSuccess, selectSignInStatus } from '../../_selectors/authentication.selectors';\nimport { createStructuredSelector } from 'reselect';\nimport Spinner from '../../_components/spinner/spinner.component';\n\nconst ADLogin = (props) => {\n\n const {\n signInCredentialStart,\n signInStatus,\n signInErrorMessage,\n clearSignInErrorMessage,\n getAccountListSuccess,\n } = props;\n const history = useHistory();\n\n useEffect(() => {\n if (signInStatus && getAccountListSuccess) {\n history.push('/main')\n return\n }\n if (!signInStatus) {\n if (signInErrorMessage) {\n clearSignInErrorMessage()\n }\n signInCredentialStart({history})\n }\n }, [signInStatus, getAccountListSuccess]);\n\n return (\n
\n {\n signInErrorMessage &&\n

{signInErrorMessage}

\n }\n {\n !(getAccountListSuccess && signInErrorMessage) &&\n <>\n

กำลังเข้าสู่ระบบ กรุณารอสักครู่

\n \n \n }\n
\n );\n};\n\nconst mapStateToProps = createStructuredSelector({\n signInStatus: selectSignInStatus,\n signInErrorMessage: selectErrorMessage,\n getAccountListSuccess: selectGetAccountListSuccess,\n});\nconst mapDispatchToProps = (dispatch) => ({\n signInCredentialStart: (payload) => dispatch(signInCredentialStart(payload)),\n clearSignInErrorMessage: () => dispatch(clearSignInErrorMessage()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ADLogin);\n","/* main react */\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\n/* reducer, selector, action */\nimport { signInDSAStart } from '../../_actions/authentication.actions';\nimport Spinner from '../../_components/spinner/spinner.component';\n\nconst DSALogin = (props) => {\n\n const {\n signInDSAStart,\n } = props;\n const history = useHistory();\n\n useEffect(() => {\n signInDSAStart({history});\n });\n\n return (\n
\n

DSA Login - please wait...

\n \n
\n );\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n signInDSAStart: (payload) => dispatch(signInDSAStart(payload)),\n});\n\nexport default connect(null, mapDispatchToProps)(DSALogin);\n","/* main react */\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\n/* reducer, selector, action */\nimport { signInSSOStart } from '../../_actions/authentication.actions';\nimport Spinner from '../../_components/spinner/spinner.component';\n\nconst SSOLogin = (props) => {\n\n const {\n signInSSOStart,\n } = props;\n const history = useHistory();\n\n useEffect(() => {\n signInSSOStart({history});\n });\n\n return (\n
\n

SSO Login - please wait...

\n \n
\n );\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n signInSSOStart: (payload) => dispatch(signInSSOStart(payload)),\n});\n\nexport default connect(null, mapDispatchToProps)(SSOLogin);\n","import React from \"react\";\n\nfunction checkColorType(color) {\n var strColor = new Option().style;\n strColor.color = color;\n\n if (\n strColor.color === color ||\n /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/i.test(color)\n ) {\n return color;\n } else if (color === undefined) {\n return \"#FFFFFF\";\n } else if (color === \"default\") {\n // return '#868686'\n return \"currentColor\";\n } else if (color === \"main\") {\n return \"#3F3F3F\";\n } else if (color === \"gray-light\") {\n return \"#F1F1F1\";\n } else if (color === \"gray-dark\") {\n return \"#707070\";\n } else if (color === \"primary-brown\") {\n return \"#6F5F5E\";\n } else if (color === \"primary-yellow\") {\n return \"#F9BA00\";\n } else if (color === \"brown-dark\") {\n return \"#433938\";\n } else {\n return \"currentColor\";\n }\n}\n\nexport const CartIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"24\",\n height: props.height !== undefined ? props.height : \"21.716\",\n };\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const NotificationIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20.714\",\n height: props.height !== undefined ? props.height : \"24\",\n };\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const iFundIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"50\",\n height: props.height !== undefined ? props.height : \"50\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const PortfolioIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"19\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const OrderStatusIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"15\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const HistoricalTradeIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"23.25\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const InvestmentIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"18\",\n height: props.height !== undefined ? props.height : \"18\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const InvestmentStatisticIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"15\",\n height: props.height !== undefined ? props.height : \"14.547\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const SentOrderIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"13.66\",\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const WatchListIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"10.004\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const FundRankingIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"15.354\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const InvestorRankingIcon = (props) => {\n //\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"16\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const HotFundIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"16\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const FavoriteIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n stroke: checkColorType(props.stroke),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const StarIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20.85\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const FundCompareIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"14.146\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const IPOFundIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"16.283\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const FeedIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"14.825\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const PortIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"17\",\n height: props.height !== undefined ? props.height : \"13.283\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const ServiceIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"14.678\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const MiscellaneousIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"16\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const SignInIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"18.5\",\n height: props.height !== undefined ? props.height : \"24\",\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const SignOutIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"15.1\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const UserIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const AddWatchListIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"14.38\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const CaretIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"10.351\",\n height: props.height !== undefined ? props.height : \"6\",\n transform:\n props.direction !== undefined\n ? `rotate(${props.direction}deg)`\n : \"rotate(0deg)\",\n };\n\n if (props.display !== undefined && props.display !== false) {\n return (\n \n \n \n \n \n );\n } else {\n return <>;\n }\n};\n\nexport const BarIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20.144\",\n height: props.height !== undefined ? props.height : \"18.577\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const FilterIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"16.51\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const BuyIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"18.097\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const CalendarIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"19.464\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const ChangeColorIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"21.31\",\n height: props.height !== undefined ? props.height : \"21.302\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const DCAIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"18.652\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const DividendIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"17.578\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const CancelIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"16\",\n height: props.height !== undefined ? props.height : \"16\",\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport const UpIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"10.898\",\n height: props.height !== undefined ? props.height : \"9.146\",\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const DownIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"10.898\",\n height: props.height !== undefined ? props.height : \"9.146\",\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const DownloadIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"14\",\n height: props.height !== undefined ? props.height : \"12.068\",\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const ExcelIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"18.878\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const InformationIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const ListIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"13.75\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const MenuIcon = (props) => {\n let config = {\n fill: checkColorType(\"brown-dark\"),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"14.625\",\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const PdfIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport const RemarkIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"17.199\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const SearchAdvanceIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const SearchIcon = (props) => {\n let config = {\n fill: checkColorType(\"primary-brown\"),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n if (props.display !== undefined && props.display !== false) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n } else {\n return <>;\n }\n};\n\nexport const SellIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"20.001\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const TransferIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"17.804\",\n height: props.height !== undefined ? props.height : \"13.997\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const SortDownIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"11\",\n height: props.height !== undefined ? props.height : \"11.5\",\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport const SortUpIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"11\",\n height: props.height !== undefined ? props.height : \"11.5\",\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport const SwitchIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"19.51\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const HomeIcon = (props) => {\n let config = {\n fill: checkColorType(\"primary-brown\"),\n width: props.width !== undefined ? props.width : \"26.005\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const FAQIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const HeartIcon = (props) => {\n const config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : 20,\n height: props.height !== undefined ? props.height : 20,\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport const BookIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : 40,\n height: props.height !== undefined ? props.height : 40.448,\n };\n\n return (\n \n \n \n \n \n );\n};\n\nexport const SecurityIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"25.268\",\n height: props.height !== undefined ? props.height : \"19.839\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const GlobeIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const IndustryIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const BookmarkIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"40\",\n height: props.height !== undefined ? props.height : \"40.44\",\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const CompareIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const HistoryIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"16\",\n height: props.height !== undefined ? props.height : \"16\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const ChartIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"16\",\n height: props.height !== undefined ? props.height : \"14.755\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const MultipleChartIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n );\n};\n\nexport const ArrowIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"11\",\n height: props.height !== undefined ? props.height : \"11\",\n transform:\n props.direction !== undefined\n ? `rotate(${props.direction}deg)`\n : \"rotate(0deg)\", // 0 = left | > 0 will rotate right\n };\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const LongArrowIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"13.79\",\n height: props.height !== undefined ? props.height : \"20\",\n transform:\n props.direction !== undefined\n ? `rotate(${props.direction}deg)`\n : \"rotate(0deg)\", // 0 = down | > 0 will rotate right\n };\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const WarningIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"18.606\",\n height: props.height !== undefined ? props.height : \"16\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const CheckedIcon = (props) => {\n return (\n \n \n \n \n \n );\n};\n\nexport const EditIcon = (props) => {\n let config = {\n color: props.color !== undefined ? props.color : \"default\",\n width: props.width !== undefined ? props.width : \"16\",\n height: props.height !== undefined ? props.height : \"16\",\n };\n\n return (\n \n \n \n );\n};\n\nexport const PlusIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"21.5\",\n height: props.height !== undefined ? props.height : \"21.5\",\n };\n\n return (\n \n \n \n );\n};\n\nexport const DocumentIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"17.796\",\n height: props.height !== undefined ? props.height : \"20\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const MonthlyReportIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"15.75\",\n height: props.height !== undefined ? props.height : \"21\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const DocumentFormIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"50\",\n height: props.height !== undefined ? props.height : \"56.41\",\n };\n\n switch (props.formType) {\n case \"new\":\n return (\n \n \n \n \n \n \n );\n case \"buy\":\n return (\n \n \n \n \n \n \n \n \n \n );\n case \"sell\":\n return (\n \n \n \n \n \n \n \n );\n case \"switch\":\n return (\n \n \n \n \n \n \n \n );\n case \"document\":\n return (\n \n \n \n \n \n );\n default:\n return \"\";\n }\n};\n\nexport const DeleteIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"20\",\n height: props.height !== undefined ? props.height : \"18.954\",\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const DragIcon = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const LockIcon = (props) => {\n let config = {\n fill: checkColorType(props.color),\n width: props.width !== undefined ? props.width : \"14.5\",\n height: props.height !== undefined ? props.height : \"18.5\",\n };\n\n return (\n \n \n \n \n \n \n );\n};\n\nexport const RefreshIcon = () => {\n return (\n \n \n \n \n );\n};\n","import { baseSort, groupItemsByAttr } from \"./general.utils\";\n\nexport const dispatchSearchFunds = (data) => {\n const result = data ? data.fundInformation : {};\n return result;\n};\n\nexport const dispatchSearchPortfolios = (state, data) => {\n let result = [];\n let keyword = state.searchText.toUpperCase();\n\n if (data) {\n Object.keys(data).map((index) => {\n let currentCode = data[index].fundCode.toUpperCase();\n if (currentCode.includes(keyword) || !keyword) {\n result.push({\n 'thailandFundCode': data[index].fundCode,\n 'categoryName': data[index].category\n })\n }\n })\n };\n return result;\n};\n\nexport const secondsOfDay = (time) => {\n if (time) {\n let str = time.split(':');\n let initTime = 3600;\n let seconds = 0;\n str.forEach((x) => {\n seconds += x*initTime;\n if (initTime > 0) {\n initTime /= 60;\n }\n })\n return parseInt(seconds);\n }\n return null;\n};\n\n// Prevent press enter and removed focus on current target.\nexport const handlePreventDefault = (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n e.target.blur();\n }\n}\n\nexport const getFundList = (items, keyword) => {\n const filterFunds = filterFundBy(items, keyword);\n const groupFilterFunds = groupItemsByAttr(filterFunds, 'accountType');\n\n // Sort Groups\n const sortGroupFilterFunds = Object.keys(groupFilterFunds).sort().reduce(function (result, key) {\n result[key] = groupFilterFunds[key];\n return result;\n }, {});\n\n return sortGroupFilterFunds;\n}\n\nexport const filterFundBy = (items, target, filterNames) => {\n if (!items || !items.length) return [];\n\n const targetValue = target?.toUpperCase();\n const filterBy = filterNames\n ? filterNames.length\n ? filterNames\n : [filterNames]\n : ['fundCode', 'categoryNameTh'];\n\n const filterItems = targetValue\n ? items.filter(item => filterBy.find(\n key => item[key]?.toUpperCase().includes(targetValue)\n ))\n : items;\n\n const sortFilterItems = filterItems.sort((a, b) => baseSort(a.fundCode, b.fundCode, 'a'));\n\n return sortFilterItems;\n}\n\nexport const findNode = (tree, key, value, childrenKey) => {\n for (let node of tree) {\n if (node[key] === value) return node\n\n if (node[childrenKey]) {\n let desiredNode = findNode(node[childrenKey], key, value, childrenKey)\n if (desiredNode) return desiredNode\n }\n }\n return false\n}\n\nexport const flatNode = ({ subItems = [], ...rest }) => [rest, ...subItems?.flatMap(flatNode) || []]","var menus = [\n {\n path: '/investment',\n name: 'การลงทุนของฉัน',\n icon: 'PortfolioIcon',\n component: 'INVESTMENT',\n layout: '/main',\n section: 'user',\n onSidebar: true,\n showTitle: true,\n subMenus: [\n {\n path: '/investment/information',\n name: 'Information',\n icon: 'InformationIcon',\n component: 'INFORMATION',\n layout: '/main'\n },\n {\n path: '/investment/portfolio',\n name: 'Portfolio',\n icon: 'PortfolioIcon',\n component: 'PORTFOLIO',\n layout: '/main'\n },\n {\n path: '/investment/order',\n name: 'Order',\n icon: 'OrderStatusIcon',\n component: 'ORDER',\n layout: '/main'\n },\n {\n path: '/investment/lot',\n name: 'LOT',\n icon: '',\n component: 'LOT',\n layout: '/main'\n },\n {\n path: '/investment/book',\n name: 'Book',\n icon: '',\n component: 'BOOK',\n layout: '/main'\n },\n {\n path: '/investment/history',\n name: 'History',\n icon: 'HistoricalTradeIcon',\n component: 'HISTORY',\n layout: '/main'\n },\n {\n path: '/investment/dca',\n name: 'DCA',\n icon: '',\n component: 'DCA',\n layout: '/main'\n },\n {\n path: '/investment/div',\n name: 'DIV',\n icon: '',\n component: 'DIV',\n layout: '/main'\n }\n ],\n isLoggedIn: true\n },\n {\n path: '/investment/order',\n name: 'รายการซื้อขาย',\n icon: 'OrderStatusIcon',\n // component: 'ORDER',\n layout: '/main',\n section: 'user',\n onSidebar: true,\n showTitle: true,\n isLoggedIn: true\n },\n {\n path: '/order-confirm',\n name: 'ส่งคำสั่ง',\n icon: 'SentOrderIcon',\n component: 'SENT_ORDER',\n layout: '/main',\n section: 'user',\n onSidebar: true,\n showTitle: true,\n isLoggedIn: true\n },\n {\n path: '/order_request',\n name: 'ส่งคำสั่ง',\n icon: 'SentOrderIcon',\n component: 'ORDER_REQUEST',\n layout: '/main',\n section: 'user',\n onSidebar: false,\n showTitle: true,\n isLoggedIn: true\n },\n {\n path: '/favorite',\n name: 'รายการโปรด',\n icon: 'FavoriteIcon',\n component: 'FAVORITE',\n layout: '/main',\n section: 'user',\n onSidebar: true,\n showTitle: true,\n isLoggedIn: true\n },\n {\n path: '/monthly-report',\n name: 'รายงานรายเดือน',\n icon: 'MonthlyReportIcon',\n component: 'MONTHLY_REPORT',\n layout: '/main',\n section: 'user',\n onSidebar: true,\n showTitle: true,\n isLoggedIn: true\n },\n {\n path: '/fund_ranking',\n name: 'จัดอันดับกองทุน',\n icon: 'FundRankingIcon',\n component: 'FUND_RANKING',\n layout: '/main',\n section: 'main',\n onSidebar: true,\n showTitle: true,\n searchAble: true,\n isLoggedIn: false\n },\n {\n path: '/hotfund',\n name: 'กลุ่มกองทุนมาแรง',\n icon: 'HotFundIcon',\n component: 'HOTFUND',\n layout: '/main',\n section: 'main',\n onSidebar: true,\n showTitle: true,\n searchAble: true,\n isLoggedIn: false\n },\n {\n path: '/compare',\n name: 'เปรียบเทียบกองทุน',\n icon: 'CompareIcon',\n component: 'COMPARE',\n layout: '/main',\n section: 'main',\n onSidebar: true,\n showTitle: true,\n subMenus: [\n {\n path: '/compare/fund_compare',\n name: 'ข้อมูล',\n icon: 'FundCompareIcon',\n component: 'FUND_COMPARE',\n layout: '/main'\n },\n /* {\n path: '/compare/copyport_compare',\n name: 'CopyportCompare',\n icon: 'PortIcon',\n component: 'COPYPORT_COMPARE',\n layout: '/main'\n }, */\n {\n path: '/compare/graph_compare',\n name: 'กราฟ',\n icon: 'ChartIcon',\n component: 'GRAPH_COMPARE',\n layout: '/main'\n }\n ],\n isLoggedIn: false\n },\n {\n path: '/search',\n name: 'สแกนหากองทุน',\n icon: 'SearchAdvanceIcon',\n component: 'ADVANCE_SEARCH',\n layout: '/main',\n section: 'main',\n onSidebar: true,\n showTitle: true,\n /*subMenus: [\n {\n path: '/search/fund',\n name: 'กองทุน',\n icon: '',\n component: 'ADVANCE_SEARCH_FUND',\n layout: '/main'\n },\n {\n path: '/search/copyport',\n name: 'Copyport',\n icon: '',\n component: 'ADVANCE_SEARCH_COPYPORT',\n layout: '/main'\n },\n ]*/\n },\n {\n path: '/ipo',\n name: 'กองทุน IPO',\n icon: 'IPOFundIcon',\n component: 'IPO',\n layout: '/main',\n section: 'main',\n onSidebar: true,\n showTitle: false,\n subMenus: [\n {\n path: '/ipo/fund_ipo',\n name: 'FUND IPO',\n icon: 'IPOFundIcon',\n component: 'FUND_IPO',\n layout: '/main'\n },\n {\n path: '/ipo/term_fund',\n name: 'Term Fund',\n icon: 'IPOFundIcon',\n component: 'TERM_FUND',\n layout: '/main'\n },\n {\n path: '/ipo/rollover',\n name: 'Rollover',\n icon: 'IPOFundIcon',\n component: 'ROLLOVER',\n layout: '/main'\n }\n ],\n isLoggedIn: false\n },\n // {\n // path: '/transfer',\n // name: 'โอนกองทุนมาโนมูระ',\n // icon: 'TransferIcon',\n // component: 'TRANSFER',\n // layout: '/main',\n // section: 'other',\n // onSidebar: true,\n // showTitle: true,\n // isLoggedIn: true\n // },\n {\n path: '/calendar',\n name: 'ปฏิทินกองทุน',\n icon: 'CalendarIcon',\n component: 'CALENDAR',\n layout: '/main',\n section: 'other',\n onSidebar: true,\n showTitle: true,\n isLoggedIn: false\n },\n {\n path: '/download_form',\n name: 'แบบฟอร์มการลงทุน',\n icon: 'DocumentIcon',\n component: 'DOWNLOAD_FORM',\n layout: '/main',\n section: 'other',\n onSidebar: true,\n showTitle: true,\n isLoggedIn: true\n },\n {\n path: '/faq',\n name: 'แนะนำฟังชั่นและ FAQ',\n icon: 'FAQIcon',\n component: 'FAQ',\n layout: '/main',\n section: 'other',\n onSidebar: true,\n showTitle: true,\n isLoggedIn: false\n },\n {\n path: '/fund_information',\n name: 'ข้อมูลกองทุน',\n icon: '',\n component: 'FUND_INFORMATION',\n layout: '/main',\n section: 'other',\n onSidebar: false,\n showTitle: true,\n isLoggedIn: false\n },\n {\n path: '/ui_kit',\n name: 'UI Kits',\n icon: 'fas fa-main',\n component: 'UI_KIT',\n layout: '/blank',\n onSidebar: false,\n showTitle: true,\n isLoggedIn: false\n },\n {\n path: '/home',\n name: 'Home',\n icon: 'HomeIcon',\n component: 'HOME',\n layout: '/main',\n section: 'other',\n onSidebar: false,\n showTitle: false,\n isLoggedIn: false\n },\n {\n path: '/ad_login',\n name: 'AD Login',\n // icon: 'HomeIcon',\n component: 'AD_LOGIN',\n layout: '/main',\n // section: 'other',\n onSidebar: false,\n // showTitle: false,\n isLoggedIn: false\n },\n {\n path: '/dsa',\n name: 'DSA Login',\n // icon: 'HomeIcon',\n component: 'DSA_LOGIN',\n layout: '/main',\n // section: 'other',\n onSidebar: false,\n // showTitle: false,\n isLoggedIn: false\n },\n {\n path: '/sso',\n name: 'SSO Login',\n // icon: 'HomeIcon',\n component: 'SSO_LOGIN',\n layout: '/main',\n // section: 'other',\n onSidebar: false,\n // showTitle: false,\n isLoggedIn: false\n },\n {\n path: '/sign_out',\n name: 'SIGN OUT',\n component: 'SIGN_OUT',\n layout: '/main',\n onSidebar: false,\n isLoggedIn: false\n },\n];\n\nexport default menus;\n","import React, { useEffect, lazy, Suspense } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { BrowserRouter, Route, Switch, Redirect } from 'react-router-dom';\r\nimport TagManager from 'react-gtm-module';\r\n\r\nimport Spinner from '../_components/spinner/spinner.component';\r\n\r\nimport { insertRoutes, disablePaging } from '../_actions/main.actions';\r\nimport menus from '../routes';\r\nimport AdLogin from '../Pages/ad-login';\r\nimport DSALogin from '../Pages/dsa-login'; \r\nimport SSOLogin from '../Pages/sso-login';\r\n\r\n// import { PrivateRoute } from '../PrivateRoute';\r\n\r\n// import Home from '../_layouts/home.component';\r\n// import Blank from '../_layouts/blank.component';\r\n// import Main from '../_layouts/main.component';\r\n\r\nconst Main = lazy(() => import('../_layouts/main.component'));\r\n\r\nconst App = (props) => {\r\n const { insertRoutes, disablePaging } = props;\r\n\r\n useEffect(() => {\r\n insertRoutes(menus);\r\n disablePaging();\r\n }, [insertRoutes, disablePaging]);\r\n\r\n useEffect(() => {\r\n TagManager.initialize({ gtmId: process.env.REACT_APP_GTM_ID });\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n }>\r\n {/*
} /> */}\r\n {/* } /> */}\r\n {/*
} /> */}\r\n } /> {/* (signInStatus ? : null)} />*/}\r\n } /> {/* (signInStatus ? : null)} />*/}\r\n } /> {/* (signInStatus ? : null)} />*/}\r\n } /> {/* (signInStatus ? : null)} />*/}\r\n
} />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n insertRoutes: (routes) => dispatch(insertRoutes(routes)),\r\n disablePaging: () => dispatch(disablePaging())\r\n});\r\n\r\nexport default connect(null, mapDispatchToProps)(App);\r\n","import 'bootstrap/dist/css/bootstrap.min.css';\r\nimport '../src/scss/index.scss';\r\nimport 'react-date-range/dist/styles.css'; // main css file\r\nimport 'react-date-range/dist/theme/default.css'; // theme css file\r\nimport 'react-date-picker/dist/DatePicker.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { PersistGate } from 'redux-persist/integration/react';\r\nimport { store, persistor } from './redux/store';\r\nimport App from './App/App';\r\n// import registerServiceWorker from './registerServiceWorker';\r\n\r\n// Create browser history to use in the Redux store\r\n// const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\n// const history = createBrowserHistory({ basename: baseUrl });\r\n\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n rootElement\r\n);\r\n\r\n// registerServiceWorker();\r\n"],"sourceRoot":""}