{"version":3,"sources":["_helpers/format-date-time.js","_selectors/index.js","_helpers/format-number.js","_selectors/investment.selectors.js","_components/icons/fund-category.js","_contexts/shared.context.js","_components/modals/general-modal.component.jsx","_components/forms/inputs/input-date-time.component.jsx","_components/items/risk-render.component.jsx","_selectors/order-request.selectors.js","_helpers/icon-convertor.js","_components/dropdown/single-account-number-filter.component.jsx","_components/dropdown/single-select-dropdown.component.jsx","_selectors/favorite.selectors.js","_components/search/search-item.component.jsx","_selectors/compare.selectors.js","_components/spinner/loading-spinner.component.jsx","Pages/sign-in-and-sign-up/sign-in-modal.component.jsx","_helpers/map-component.js","_selectors/advance-search.selectors.js","_selectors/main.selectors.js","_selectors/search.selectors.js","Pages/compare/add-compare-item-modal.component.jsx","_components/search/search-item-v2.component.jsx","_components/search/search-fund-v2.component.jsx","assets/logo-kss.svg","assets/logo-ifund.png","_actions/transfer.actions.js","_selectors/transfer.selectors.js","_components/navbars/toggler.component.jsx","_components/search/main-search-modal.component.jsx","_components/navbars/main-navbar.component.jsx","Pages/sign-in-and-sign-up/sign-in-and-sign-up.component.jsx","_components/profile/profile.component.jsx","_components/menus/menu.component.jsx","_components/sidebars/sidebar.component.jsx","_components/forms/inputs/input-format-number.component.jsx","Pages/order-request/_widget-form/buy-single-form.component.jsx","_components/buttons/button-list.jsx","_components/dropdown/plan-time-dropdown.component.jsx","Pages/order-request/_components/date-range-dropdown.component.jsx","Pages/order-request/_widget-form/buy-continually-form.component.jsx","Pages/order-request/_widget-form/input-order-search-form.component.jsx","Pages/order-request/_widget-form/input-search-switch-in-fund.component.jsx","Pages/order-request/_widget-form/input-search-switch-out-fund.component.jsx","Pages/order-request/_widget-form/input-order-search-by-accounts-form.component.jsx","Pages/order-request/_widget-form/search-fund-info.component.jsx","Pages/order-request/buy-widget.component.jsx","Pages/order-request/_widget-form/sell-single-form.component.jsx","Pages/order-request/_widget-form/sell-continually-form.component.jsx","Pages/order-request/sell-widget.component.jsx","Pages/order-request/_widget-form/switch-single-form.component.jsx","Pages/order-request/_widget-form/switch-continually-form.component.jsx","Pages/order-request/switch-widget.component.jsx","Pages/order-request/order-request-form-modal.component.jsx","Pages/transfer/_components/input-search-form.component.jsx","Pages/transfer/_components/search-fund-info.component.jsx","Pages/transfer/transfer-modal.component.jsx","Pages/order-request/order-response-modal.component.jsx","_components/modals/warning-modal.component.jsx","Pages/sign-in-and-sign-up/verify-2factor-auth-modal.component.jsx","_layouts/main.component.jsx","_helpers/caching.js"],"names":["getYear","year","language","type","LANGUAGE","TH","parseInt","toString","slice","getMonthNames","monthIndex","monthEn","monthTh","monthEnAbbr","monthThAbbr","compareDate","time1","time2","arguments","length","undefined","NaN","getTime","Date","toDateString","getMonth","getDate","resetTime","dateObj","resetType","UTC","getFullYear","buddhistDateFormat","isBuddhistDate","setFullYear","formatDateTime","toJSONDate","dateTimeObj","getTimezoneOffset","toJSON","split","toThaiDate","dateTimeString","dateSplit","EN","toSingleDate","toDateTime","format","parseISO","toStringHour","dateTime","defaultYearList","nextYear","prevYear","currentYear","initYear","yearLimit","yearList","push","formatNumber","number","fixedDigit","floatResult","parseFloat","toFixed","replace","includes","listResult","shrinkMillionNumber","Intl","NumberFormat","selectInvestment","state","investment","selectUserAccounts","createSelector","userAccounts","selectActivedFunds","accountNumber","colors","activedFunds","funds","selectAllFunds","allFunds","selectAllFundCodes","_investment$allFundCo","allFundCodes","selectPortfolio","portfolio","selectPortfolios","portfolios","selectPortfoliosResponses","data","selectPortfoliosQueries","queries","selectNavPortfolios","navPortfolios","selectIsFetchingPortfolio","isFetching","selectPortfolioHeaders","totalPortInvestment","totalPortProfit","totalPortPercent","totalPortValue","headers","selectPortfolioStatistic","portfolioStatistic","selectPreviousReturnByAccount","previousReturn","selectHistoryGraphByAccount","historyGraph","selectPreviousReturnGraphByAccount","previousReturnGraph","selectMonthlyReturnByAccount","monthlyReturn","selectProfitByAccount","profit","selectVolatilityByAccount","volatility","selectMaxDrawdownByAccount","maxDrawdown","selectDrawdownByAccount","drawdown","selectLastDateOfAccountNumber","lastDate","selectOrder","order","selectOrderHeaders","selectOrderTables","orders","selectOrderQueries","selectOrderErrorMessage","errorMessage","selectBook","book","selectTableBookHeaders","tableHeaders","selectQueriesBooks","selectBooksResponse","response","selectDividend","dividend","selectQueriesDividends","selectDividendTable","table","selectDividends","dividends","selectIsFetchingDividend","selectLot","lot","selectTableLotHeaders","selectFundTypeLotList","defaultFundTypeList","concat","map","fund","name","fundCode","value","selectGroupTypeLotList","groupTypeList","selectQueriesLots","selectLotsResponse","selectHistory","navs","history","selectHistoryQueries","selectHistoryResponses","accountNumbers","selectHistoryTableColumns","columnList","selectRemarkList","remarkList","selectStatusList","statusList","selectDCA","currentPage","totalPage","dca","selectDCAQueries","selectDCAResponses","selectDCATableColumns","selectDCAErrorMessage","selectDCATradeTypeList","tradeTypeList","selectDCAStatusList","selectInvestSearch","investSearch","THCA000002","props","config","fill","color","width","height","React","createElement","className","xmlns","style","viewBox","id","data-name","d","transform","stroke","strokeMiterlimit","strokeWidth","THCA000001","THCA000044","rx","THCA000009","THCA000010","THCA000011","THCA000027","THCA000028","THCA000029","THCA000030","THCA000039","THCA000038","THCA000036","THCA000040","THCA000041","THCA000045","THCA000049","THCA000043","THCA000031","THCA000019","THCA000005","THCA000004","THCA000003","THCA000012","THCA000013","THCA000006","THCA000042","THCA000047","THCA000048","Number","version","clip-path","THCA000023","THCA000018","THCA000033","THCA000015","THCA000034","THCA000016","THCA000032","THCA000008","THCA000007","THCA000014","THCA000026","THCA000035","THCA000037","THCA000046","THCA000025","THCA000024","THCA000022","KCS0001","href","x","y","KCS0002","KCS0003","KCS0004","KCS0005","KCS0006","KCS0007","KCS0008","KCS0009","KCS3951","KCS7997","KCS5691","KCS4131","timelines","sortKey","nameEn","days","months","years","groupTypes","styleProperties","unbuyableStyle","unsellableStyle","xdDayStyle","defaultActivityList","defaultStatusList","pieCategories","category","paymentDetails","bankName","bankAccount","GeneralModal","_ref","isOpen","toggle","title","children","titleCenter","Modal","backdrop","centered","onClick","CancelIcon","renderHolidays","date","holidays","getDay","holidayFlag","forEach","hol","holidayDate","renderDisabled","isDisabled","matchHoliday","DateInput","currentTime","handleCurrentTime","isDisabledPast","bgColor","showIcon","openDateCalendar","setOpenDateCalendar","useState","toggleDateCalendar","newDate","minDate","sub","maxDate","add","selectedDate","setSelectedDate","displayBuddHistDate","setHolidays","useEffect","async","fetchCalendarThaiHolidays","then","catch","err","getThaiHolidays","updateCalendar","btnType","setYear","useActiveDateCalendar","open","yearButtons","document","getElementsByClassName","Array","from","element","addEventListener","e","target","closest","querySelector","scrollIntoView","querySelectorAll","index","classList","remove","Dropdown","DropdownToggle","CalendarIcon","stopPropagation","DatePicker","autoFocus","clearIcon","disableCalendar","onChange","buddhistDate","christDate","onKeyDown","event","key","DropdownMenu","CaretIcon","display","direction","UncontrolledDropdown","flip","DropdownItem","active","Calendar","activeStartDate","startOfMonth","calendarType","tileClassName","_ref2","tileDisabled","_ref3","changedDate","DateRangeInput","_ref4","handleChangeTime","isDisabledEndDate","isLimitedStartDate","openStartDateCalendar","setOpenStartDateCalendar","openEndDateCalendar","setOpenEndDateCalendar","startDate","endDate","Fragment","Row","Col","DateInputDropdown","toggleStartDateCalendar","_","min","toggleEndDateCalendar","placeHolder","_ref5","_currentTime","initDate","limitedEndDate","isOpenModal","setIsOpenModal","handleToggle","item","JSON","parse","Object","keys","tempDate","disabled","stringify","month","_ref6","_ref7","RiskRender","defaultFontSize","level","size","selectOrderRequest","orderRequest","selectErrorMessageModal","selectIsOpenOrderRequestModal","selectActiveTabOrderRequestModal","activeTab","selectSubActiveTabOrderRequestModal","subActiveTab","selectOrderRequestForm","orderRequestForm","selectCheckedFundAbleToOrder","checkedFundAbleToOrder","selectConfirmOrderFund","confirmOrderFund","selectFundInfo","fundInfo","selectFundInfoData","selectFundInfo2","fundInfo2","selectFundInfo2Data","selectNavigationFund","navigationFund","selectSearchFundInfo","searchFundInfo","selectSearchFundInfoStatus","searchText","selectShowResponseMessage","responseMessage","showResponseMessage","selectLatestPlan","latestPlan","selectLatestSettleDate","latestSettleDate","iconConvertor","ICONS","PortfolioIcon","OrderStatusIcon","SentOrderIcon","FavoriteIcon","StarIcon","CompareIcon","FundCompareIcon","SearchAdvanceIcon","IPOFundIcon","TransferIcon","DocumentIcon","MonthlyReportIcon","FAQIcon","BuyIcon","SellIcon","SwitchIcon","ChartIcon","PortIcon","InformationIcon","MiscellaneousIcon","HistoryIcon","HistoricalTradeIcon","InvestmentIcon","InvestmentStatisticIcon","FundRankingIcon","InvestorRankingIcon","HotFundIcon","FeedIcon","WatchListIcon","ServiceIcon","mapStateToProps","createStructuredSelector","accountName","selectAccountName","isTabletOrMobile","mainSelectors","selectIsMobileScreenSize","isMobileCompletedLogin","selectIsMobileCompletedLogin","userType","selectUserType","connect","dispatch","getAccountNameStart","getAccountListStart","classNames","accountList","updateAccounts","whiteBg","dropdownOpen","setDropdownOpen","inputValue","setInputValue","switchIcon","setSwitchIcon","inputRef","useRef","isMobileApp","getCookie","isAdUserType","unSelectAccounts","useMemo","filter","toUpperCase","alertModal","setAlertModal","toggleAlertModal","setDefaultState","useCallback","handleOutsideClick","selectedAccounts","setSelectedAccounts","handleClick","account","isMobileOrTablet","useMediaQuery","query","body","removeEventListener","toggleDropdownOpen","setDropdownUiState","bool","current","select","preventDefault","_accountList$filter","newAccounts","placeholder","ref","SearchIcon","SingleSelectDropdown","header","currentSelected","filterList","submitTarget","handleSubmit","iconDirection","setIconDirection","toggleDropdown","code","displayName","data-value","data-type","selectFavorite","favorite","selectTableColumns","tableColumns","selectCurrentColumns","currentColumns","defaultColumns","selectDefaultColumns","selectFavoriteFundsResponse","favoriteFunds","selectFavoriteFunds","favoriteResponse","_favoriteResponse$fun","selectNavFavoriteFundsResponse","navFunds","selectFavoriteFundsQueries","SearchResult","fundId","thailandFundCode","categoryName","categoryNameTh","categoryCode","CategoryIcon","iFundCategory","fundIconStyle","backgroundColor","ListGroupItem","data-route-id","data-submit","selectCompare","compare","selectIsOpenCompareModal","compareFunds","statusReturn","statusDrawdown","statusProportion","searchIndex","isOpenCompareModal","selectCompareFunds","selectGraphCompareFunds","graph","selectCompareFundPeriod","fundByPeriod","selectNavCompareFunds","selectCompareFundList","fundList","selectTempCompareFundList","tempCompareFunds","isLoading","authentication","isLoading2FA","src","Loading","signInStatus","selectSignInStatus","selectIsLoading2FA","set2FALoading","modal","submitSignIn","username","setUsername","password","setPassword","useHistory","credential","LoadingSpinner","onOpened","focusInput","getElementById","focus","Card","CardTitle","CardBody","Form","onSubmit","FormGroup","Label","Input","Checkbox","icon","CheckedIcon","Home","lazy","Investment","Information","Portfolio","Order","Lot","Book","History","DCA","Div","Favorite","MonthlyReport","FundInformation","FundRanking","InvestorRanking","Hotfund","Compare","FundCompare","CopyportCompare","GraphCompare","AdvanceSearch","Ipo","FundIpo","TermFund","Rollover","FundCalendar","DownloadForm","FAQ","UiKit","ADLogin","DSALogin","SSOLogin","SignOut","OrderRequest","mapComponent","toggleActivePage","component","path","COMPONENTS","HOME","INVESTMENT","INFORMATION","PORTFOLIO","ORDER","LOT","BOOK","HISTORY","DIV","FAVORITE","MONTHLY_REPORT","FUND_RANKING","INVESTOR_RANKING","HOTFUND","COMPARE","FUND_COMPARE","COPYPORT_COMPARE","GRAPH_COMPARE","ADVANCE_SEARCH","DOWNLOAD_FORM","FUND_INFORMATION","IPO","FUND_IPO","TERM_FUND","ROLLOVER","CALENDAR","UI_KIT","AD_LOGIN","DSA_LOGIN","SSO_LOGIN","SIGN_OUT","ORDER_REQUEST","selectAdvanceSearch","advanceSearch","selectTableHeaders","selectColors","selectSearchFilters","filters","selectCurrentHeaders","currentHeaders","defaultHeaders","selectDefaultHeaders","selectSearchResponse","searchResponse","selectCurrentPage","selectTotalPage","selectQueriesAdvanceSearch","selectDefaultQueriesAdvanceSearch","defaultQueries","selectNavDate","navDate","selectSearchNavResults","searchNavResults","selectSearchNavs","selectIsFetchingNavSearchResults","selectMain","main","isMobileScreenSize","selectIsOpenSideBar","isOpenSideBar","selectRoutes","routes","selectCurrentMenu","selectIsPaging","isPaging","selectPages","pages","selectErrorModal","errorModal","selectIsOpenErrorModal","selectSearch","search","selectMainNavs","mainNavs","selectMainNavsSearchList","searchList","selectMainNavsSearchStatus","selectSubNavs","subNavs","selectSubNavsSearchList","selectSubNavsSearchStatus","selectfundCalendar","calendarSearch","selectSearchFundCalendarList","selectSearchFundCalendarStatus","AddCompareItemModal","tempFund","setTempFund","isOverLimit","setIsOverLimit","handleOnSubmit","payload","currentTarget","getAttribute","SearchFund2","fundObject","temp","DragDropContext","onDragEnd","destination","tempData","source_data","splice","source","Droppable","droppableId","provided","assign","innerRef","droppableProps","Draggable","draggableId","draggableProps","dragHandleProps","DragIcon","removeTempFund","ModalFooter","SearchItem2","SearchFund","isDisplay","setIsDisplay","isDisplayCancel","setIsDisplayCancel","setSearchList","refId","getItemList","res","searchInformation","keyword","itemList","fundInformation","handler","_refId$current","contains","window","handleSearch","hasFocus","focusingIndex","currentResult","dataset","selectItem","handleClickItem","autoComplete","onKeyUp","clearInput","input","click","ListGroup","module","exports","toggleTransferModal","transferConstants","TOGGLED_TRANSFER_MODAL","selectIsOpenTransferModal","transfer","isOpenSidebar","toggleSidebar","toggleSideBar","aria-label","searchFilters","isModalOpen","handleSelectSearch","selectFund","handleFocusInput","modalBody","ModalHeader","ModalBody","SearchItem","handleClickResult","searchStatus","withRouter","searchStart","updateSearch","removeSearch","clearSearch","isSearchModal","setIsSearchModal","toggleSearchModal","debounceTextSearch","debounce","persist","currentId","blur","keyPressDropdown","MainSearchModal","Navbar","Toggler","Logo","alt","NavbarBrand","tag","Link","to","NavLink","HomeIcon","user","selectUserInformation","signInStart","verify2FAStart","_user$displayName","_user$username","signInModal","setSignInModal","toggleSignInModal","isDSAUserType","isSSOUserType","SignInModal","SignInIcon","UserIcon","Profile","SignInAndSignUp","isOpenTransferModal","toggleOrderRequestModal","updateOrderRequestModalTab","tab","updateActiveTabOrderRequestModal","isActive","IconName","toggleMobileSidebar","queryMobileBody","handleToggleOrderRequestModal","NavItem","data-tab","layout","logInType","selectLogInType","signOut","userSection","items","section","isLoggedIn","mainSection","otherSection","location","useLocation","tranformLocation","pathname","find","_routes$find","classnames","_activeTab","onSidebar","Menu","_activeTab2","_activeTab3","handleSignOut","SignOutIcon","NumberInput","initValue","handleChange","handleKey","currentValue","setCurrentValue","onlyNumberRegEx","maximumFractionDigits","pattern","rawValue","trim","submitValue","formatValue","endsWith","BuySingleForm","_fundInfo$payTypes$ma","_fundInfo$payTypes","isSAAccount","updatePropertiesHandler","initFormikValue","settleDate","amount","payType","paymentChannel","validate","Yup","shape","buyDate","required","typeError","minimum","nullable","when","is","formik","useFormik","initialValues","enableReinitialize","validationSchema","onReset","values","_fundInfo$fund","_userAccounts$","_fundInfo$fund2","tempPaymentChannel","accountType","bankCode","purchaseTypeOptions","payTypes","option","purchaseByOptions","setPurchaseByOptions","getChannel","_userAccounts$2","paymentOption","fetchChannelByAccount","displayedText","bankAccountNumber","setFieldValue","updateSingleSelected","dropdown","dropdownTarget","dropdownValue","isSettleDateEqualLastYear","handleDateCaret","caretType","nextDate","prevDate","reverse","useImperativeHandle","Submit","submitForm","fieldToReset","setValues","setTimeout","setErrors","setFieldTouched","errors","handlePreventDefault","resetForm","ButtonList","classname","_data$type","label","planType","weekDays","monthList","value2","PlanTimeDropdown","_currentPlan","currentPlan","submitPlan","PlanForm","transformTextHandler","DAYS","WEEKS","MONTHS","join","textDisplay","setTextDisplay","tempPlaned","setTempPlaned","setActiveTab","_tempData$type$find","_tempData$type","isChecked","_tempData$type2","_tempData$type3","_tempData$type4","handleCancel","_planType$find","_planType$find$value","toLowerCase","DateRangeDropdown","currentStartDate","currentEndDate","displayDate","setDisplayDate","defaultDate","start","end","checked","handleSubmitDate","_selectedDate$startDa","_selectedDate$endDate","_selectedDate$endDate2","BuyContinuallyForm","_fundInfo$payTypes$fi","_formik$errors$planDa","updateLatestPlan","clearLatestPlan","updateLatestSettleDate","planRef","defaultStartDate","setDate","planDate","dcaDate","test","exclusive","params","message","tempPlanDate","reduce","prev","curr","newSettleDate","InputOrderSearchForm","_fundInfo$fund$color","_fundInfo$fund4","_fundInfo$fund5","_fundInfo$fund6","_fundInfo$fund7","_fundInfo$fund8","handleSearchFundInfo","resetSearchFundInfo","handleAccountType","mode","isSubmittableOrder","setSearchText","searchFundList","setSearchFundList","bgStyle","boxShadow","handleResetSearchFundInfo","_e$currentTarget$data","_e$dataset","resultItem","_fundInfo$fund3","defaultChecked","_e$currentTarget","fetchSearchBuyableFunds","_response$data","searchFund","isDCA","InputSearchSwitchInFund","switchOutFund","accountTypes","O","S","setFundList","groupFunds","setGroupFunds","tempFundList","getFundList","ignoreFundGroups","handleSearchInput","_switchOutFund$fund","_switchOutFund$fund2","_switchOutFund$fund3","fetchSwitchableFunds","mapData","searchFundsByAccounts","handleAreaClick","_accountTypes$key$lab","_accountTypes$key","isReset","setIsReset","fetchSwitchableOutFunds","InputSearchFundByAccounts","fetchActivedFunds","fundListByAccounts","selectAccountList","fundInformation2","navigatedFund","clearSearchFundInfo","clearSearchFundInfo2","fetchBuyFundInfoStart","fetchSellFundInfoStart","fetchSwitchFundInfoStart","clearNavigationFundToOrderRequest","clearNavigationFundToOrderRequestModal","_fundInformation$fund4","_fundInformation$fund5","_fundInformation$fund6","_fundInformation$fund7","_fundInformation$fund8","_fundInformation$fund9","_fundInformation$fund10","_fundInformation$fund11","_fundInformation$fund12","_fundInformation$fund13","_fundInformation$fund14","_fundInformation$fund15","_fundInformation$fund16","_fundInformation$fund17","_fundInformation$fund18","_fundInformation$fund19","_fundInformation$fund20","_fundInformation$fund21","_fundInformation$fund22","_fundInformation$fund23","_fundInformation$fund24","_fundInformation$fund25","_fundInformation$fund26","_fundInformation$fund27","_fundInformation$fund28","_fundInformation$fund29","_fundInformation$fund30","_fundInformation$fund31","_fundInformation$fund32","_fundInformation$fund33","_fundInformation$fund34","_fundInformation$fund35","_fundInformation$fund36","_fundInformation$fund37","_fundInformation$fund38","_fundInformation$fund39","_fundInformation$fund40","_fundInformation$fund41","_fundInformation$fund42","_fundInformation$fund43","_fundInformation$fund44","_fundInformation$fund45","_fundInformation$fund46","_fundInformation$fund47","_fundInformation$fund48","_fundInformation$fund49","_fundInformation$fund50","_fundInformation$fund51","_fundInformation$fund52","_fundInformation2$fun","_fundInformation2$fun2","_fundInformation2$fun3","_fundInformation2$fun4","_fundInformation2$fun5","_fundInformation2$fun6","_fundInformation2$fun7","_fundInformation2$fun8","updateFundAccountType","_fund$accountNumber","_fund$thailandFundCod","_fundInformation$fund","_fundInformation$fund2","_fundInformation$fund3","clearFund","displayInputSearch","InputSearchSwitchOutFund","InputOrderSearchFormComponent","fee","actualFrontLoad","buyTime","riskLevel","nav","priceDate","documentUrl","BookIcon","minimumRedemption","deferLoad","sellTime","sellDate","redemptionSettlementDay","sellableUnit","switchableUnit","buyTypes","SINGLE","BOTH","buyTypeDSA","BuyFundTab","checkedBuyableFund","properties","setProperties","formARef","formBRef","handleChangeFormA","oneTime","handleChangeFormB","checkedFund","checkedBuyableFundStart","updateUserAccounts","accounts","updateErrorModal","updateActiveTab","setIsSAAccount","isSubmittableOrderAccountMemories","userAccountMemories","_userAccounts$filter","some","SingleAccountNumberFilter","SearchFundInfo","SellSingleForm","_formik$values","currentFundAccountType","purchaseUnitOptions","unit","tradeType","field","_fundInfo$sellableUni","_fundInfo$fund$invest","_fundInfo$fund$invest2","_fundInfo$fund$invest3","_fundInfo$fund2$inves","_fundInfo$fund$invest4","_fundInfo$fund3$inves","_fundInfo$fund$invest5","_fundInfo$fund4$inves","_fundInfo$fund$invest6","_fundInfo$fund5$inves","minimumRedemptionUnit","isSellAll","receivingDate","setReceivingDate","setIsSellAll","_fundInfo$bankAccount","_fundInfo$bankAccount2","tempChannels","bankAccounts","fetchGetReceivingDate","resetFormikForm","SellContinuallyForm","_fundInfo$fund8$inves","_fundInfo$fund9","_fundInfo$fund9$inves","accountNUmber","sellableBalance","sellTypes","SellFundTab","checkedSellableFund","fundAccountType","hasOwnProperty","checkedSellableFundStart","setFundAccountTypes","SwitchSingleForm","toFundInfo","_toFundInfo$fund$inve","_toFundInfo$fund","_toFundInfo$fund$inve2","_toFundInfo$fund$inve3","_toFundInfo$fund2","_toFundInfo$fund2$inv","_toFundInfo$fund$inve4","_toFundInfo$fund3","_toFundInfo$fund3$inv","_toFundInfo$fund$inve5","_toFundInfo$fund4","_toFundInfo$fund4$inv","_toFundInfo$fund5","SwitchContinuallyForm","switchTypes","switchTypeDSA","SwitchFundTab","checkedSwitchableFund","checkedSwitchableFundStart","updateFundInfo2","_fundInformation2$swi","_fundInfo$fund8$fee","_toFundInfo$fund2$fee","_toFundInfo$fund3$fee","minimumAmountSwitchableFund","isNaN","secondsOfDay","_fund$fundCode","_fundInfo$fund6$code","checkFundIsDCA","SearchFunInfo","LongArrowIcon","switchTime","tabList","toggleIsOpenModal","clearNavigationFund","accountAlertModal","setAccountAlertModal","toggleAccountAlertModal","currentAccount","Nav","tabs","TabIcon","handleUpdateActiveTab","handleToggleModal","BuyWidget","SellWidget","SwitchWidget","InputTransferSearchForm","mockTargetList","sourceFund","currentFund","setCurrentFund","targetFund","setTargetFund","targetList","setTargetList","isSelfTransfer","setIsSelfTransfer","handleSetTarget","targetType","obj","resetSearchTargetFundInfo","inputDate","setInputDate","updateInputDate","RecursiveCheckbox","_parentData$code","parentCode","parentData","subItems","checkedHandler","questions","status","hasChildren","parentNotHasChecked","parentOfDescriptionNotHasChecked","Boolean","for","AcceptMessage","preventSubmit","initialProperties","pinCode","isAdUser","headerLabel","buttonLabel","findSubitems","findNode","childCode","flatNode","question","currentChecked","siblingRadios","radio","closeModal","isKnowledgeAssessment","assessment","qualification","ErrorMessageModal","buttons","_question$url","url","checkedFundAble","clearErrorMessage","confirmedOrder","confirmOrderFundStart","clearCheckedFundAble","resetConfirmOrderFund","_confirmOrderFund$dat","_confirmOrderFund$dat2","_confirmOrderFund$dat3","_confirmOrderFund$dat4","_confirmOrderFund$dat5","_confirmOrderFund$dat6","_confirmOrderFund$dat7","isConfirmedOrder","setPreventSubmit","recursiveFlatten","array","flatArray","isArray","inner","closeAllModal","questionList","_e$questions","isAccept","WarningModal","referenceCode","select2FAReferenceCode","twoFactorId","select2FATwoFactorId","twoFactorAuthenticationMethod","select2FATwoFactorAuthenticationMethod","twoFactorToken","select2FAToken","submit2FACode","verifyCode","setVerifyCode","formRef","handlePinChange","nextFocusId","digit","substring","digitElement","LockIcon","maxLength","inputMode","isOpenOrderRequestModal","currentMenu","isOpenSignInModal","selectIsOpenSignInModal","compareFundList","tempCompareFundList","isOpenErrorMessageModal","selectIsOpenErrorMessageModal","selectErrorMessage","isOpenErrorModal","userInfo","isOpenVerify2FactorModal","selectIsOpenVerify2FactorModal","refreshToken","toggleCompareModal","toggleErrorMessageModal","toggle2FAModal","toggleScreenSize","updateTempCompareFunds","updateTemporaryCompareFunds","resetTempCompareFunds","resetTemporaryCompareFunds","addFundIdsToCompareFunds","fundIds","clearErrorModal","clearSignInErrorMessage","updateSignInStatusForMobile","_errorModal$title","match","isMobileLogin","isMobileSize","maxDeviceWidth","landingComponent","defaultRoute","route","showPopup","setShowPopup","timeoutId","localStorage","getItem","setItem","resetLocalStorageAtMidnight","millisecondsUntilMidnight","resetLocalStorage","console","log","clearTimeout","removeItem","token","caches","names","delete","reload","clear","closePopup","Verify2FactorModal","OrderRequestFormModal","TransferModal","OrderResponseModal","MainNavbar","Sidebar","Container","fluid","Switch","Suspense","fallback","Spinner","Route","render","Redirect","renderRoutes"],"mappings":"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","file":"static/js/18.a5488262.chunk.js","sourcesContent":["/* constants*/\nimport { LANGUAGE } from \"../_constants\";\n\nimport { format, isBefore, isEqual, parseISO, startOfMonth } from \"date-fns\";\n\nconst toJSONDate = (dateTimeObj) => {\n if (dateTimeObj !== undefined && dateTimeObj != null && dateTimeObj !== \"\") {\n // will switch to dateTimeObj.toLocaleDateString(); after recheck all related use\n let convertDateTime = new Date(\n dateTimeObj.getTime() - dateTimeObj.getTimezoneOffset() * 60000\n ).toJSON();\n let dateTimeSplit = convertDateTime.split(\"T\");\n return dateTimeSplit[0];\n } else {\n return \"Invalid Date and Time\";\n }\n};\n\nconst toSingleDate = (dateTimeString) => {\n if (dateTimeString !== undefined) {\n if (dateTimeString != null && dateTimeString !== \"\") {\n let dateTimeSplit = dateTimeString.split(\"T\");\n let dateSplit = dateTimeSplit[0].split(\"-\");\n\n return `${dateSplit[2]}/${dateSplit[1]}/${dateSplit[0]}`;\n } else {\n return \"-\";\n }\n } else {\n return \"Invalid Date and Time\";\n }\n};\n\nconst toThaiDate = (dateTimeString, type) => {\n type = type ? type : \"abbr\";\n if (dateTimeString !== undefined) {\n if (dateTimeString != null && dateTimeString !== \"\") {\n let dateTimeSplit = dateTimeString.split(\"T\");\n let dateSplit = dateTimeSplit[0].split(\"-\");\n\n return `${dateSplit[2]} ${getMonthNames(\n dateSplit[1],\n LANGUAGE.TH,\n type\n )} ${getYear(dateSplit[0], LANGUAGE.EN, type)}`;\n } else {\n return \"-\";\n }\n } else {\n return \"Invalid Date and Time\";\n }\n};\n\nconst getYear = (year, language, type) => {\n if (language === LANGUAGE.TH) {\n year = parseInt(year) + 543;\n\n if (type !== \"abbr\") {\n return year.toString();\n } else {\n return year.toString().slice(-2);\n }\n } else {\n if (type !== \"abbr\") {\n return year.toString();\n } else {\n return year.toString().slice(-2);\n }\n }\n};\n\nconst getMonthNames = (monthIndex, language, type) => {\n //monthIndex is started at index 1 until 12\n monthIndex = parseInt(monthIndex) - 1;\n\n const monthEn = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ];\n\n const monthTh = [\n \"มกราคม\",\n \"กุมภาพันธ์\",\n \"มีนาคม\",\n \"เมษายน\",\n \"พฤษภาคม\",\n \"มิถุนายน\",\n \"กรกฎาคม\",\n \"สิงหาคม\",\n \"กันยายน\",\n \"ตุลาคม\",\n \"พฤศจิกายน\",\n \"ธันวาคม\",\n ];\n\n const monthEnAbbr = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ];\n\n const monthThAbbr = [\n \"ม.ค.\",\n \"ก.พ.\",\n \"มี.ค.\",\n \"เม.ย.\",\n \"พ.ค.\",\n \"มิ.ย.\",\n \"ก.ค.\",\n \"ส.ค.\",\n \"ก.ย.\",\n \"ต.ค.\",\n \"พ.ย.\",\n \"ธ.ค.\",\n ];\n\n if (language === LANGUAGE.TH) {\n if (type !== \"abbr\") {\n return monthTh[monthIndex];\n } else {\n return monthThAbbr[monthIndex];\n }\n } else {\n if (type !== \"abbr\") {\n return monthEn[monthIndex];\n } else {\n return monthEnAbbr[monthIndex];\n }\n }\n};\n\nconst toStringHour = (dateTime) => {\n if (dateTime !== undefined) {\n if (dateTime != null && dateTime !== \"\") {\n let dateTimeSplit = dateTime.split(\"T\");\n let dateSplit = dateTimeSplit[1].split(\":\");\n\n return `${dateSplit[0]}:${dateSplit[1]}`;\n } else {\n return \"-\";\n }\n } else {\n return \"Invalid Date and Time\";\n }\n};\n\nconst defaultYearList = (nextYear = 0, prevYear) => {\n let currentYear = new Date().getFullYear();\n let initYear = typeof prevYear === \"number\" ? currentYear - prevYear : 1987;\n let yearLimit = currentYear + nextYear;\n let yearList = [];\n\n for (yearLimit; yearLimit >= initYear; yearLimit--) {\n yearList.push(yearLimit);\n }\n\n return yearList;\n};\n\n// date time check function\nexport const compareDate = (time1, time2, type = \"date\") => {\n // @param time1 and @param time2 must be date time type and defualt\n // @param type is 'date' it will compared all (day, month, year).\n if (!time1 || time1.getTime() === NaN || !time2 || time2.getTime() === NaN) {\n return false; //'Invalid Time'\n }\n\n time1 = new Date(time1.toDateString());\n time2 = new Date(time2.toDateString());\n\n switch (type) {\n case \"date\": {\n return (\n time1.getYear() === time2.getYear() &&\n time1.getMonth() === time2.getMonth() &&\n time1.getDate() === time2.getDate()\n );\n }\n case \"month\": {\n return (\n time1.getYear() === time2.getYear() &&\n time1.getMonth() === time2.getMonth()\n );\n }\n case \"year\": {\n return time1.getYear() === time2.getYear();\n }\n default:\n return false;\n }\n};\n\n// reset date object time to midnight\nexport const resetTime = (dateObj, resetType = \"local\") => {\n switch (resetType) {\n case \"local\": {\n // this will return {dateObj Date} with time as 07:00:00 GMT+0700\n // midnight in this case will depends on each computer time zone after to JSON (always output zero time)\n return new Date(\n Date.UTC(dateObj.getFullYear(), dateObj.getMonth(), dateObj.getDate())\n );\n }\n case \"original\": {\n // this will return {dateObj Date} with time as 00:00:00 GMT+0700\n // midnight in this case will be only in date object. when to JSON, its will apply timezone effect (output not always zero time)\n return new Date(\n dateObj.getFullYear(),\n dateObj.getMonth(),\n dateObj.getDate(),\n 0,\n 0,\n 0\n );\n }\n default:\n return dateObj;\n }\n};\n\nexport const toDateTime = (dateTimeString) =>\n format(parseISO(dateTimeString), \"dd/MM/yyyy HH:mm:ss\");\n\nexport const isBeforeOrEqualMonthYear = (firstDate, secondDate) => {\n if (!firstDate || !secondDate) return false;\n return (\n isBefore(startOfMonth(firstDate), startOfMonth(secondDate)) ||\n isEqual(startOfMonth(firstDate), startOfMonth(secondDate))\n );\n};\n\nexport const buddhistDateFormat = (dateObj, isBuddhistDate = true) => {\n if (!dateObj) return undefined;\n return isBuddhistDate\n ? new Date(new Date(dateObj).setFullYear(new Date(dateObj).getFullYear()))\n : new Date(\n new Date(dateObj).setFullYear(new Date(dateObj).getFullYear() - 543)\n );\n};\n\nexport const formatDateTime = {\n toJSONDate,\n toThaiDate,\n toSingleDate,\n toDateTime,\n toStringHour,\n getMonthNames,\n getYear,\n defaultYearList,\n};\n","export * from './main.selectors';\nexport * from './investment.selectors';\nexport * from './favorite.selectors';\n","const formatNumber = (number, fixedDigit=2) => {\n if (typeof number !== 'object' && number !== undefined && number !== null && number !== '') {\n let floatResult = parseFloat(number).toFixed(fixedDigit);\n if (parseFloat(floatResult) === 0) {\n floatResult = floatResult.replace('-', '');\n }\n if (floatResult.includes('.')) {\n let listResult = floatResult.split('.');\n return `${listResult[0].replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')}.${listResult[1]}`;\n } else {\n return `${floatResult.replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')}`;\n }\n } else {\n return '-';\n }\n};\n\nexport default formatNumber;\n\nexport const shrinkMillionNumber = (number) => {\n if (number !== undefined && number != null) {\n if (number >= 1000000) {\n return new Intl.NumberFormat().format(parseInt(number / 1000000));\n } else {\n return formatNumber(number);\n }\n } else {\n return '-';\n }\n};","import { createSelector } from \"reselect\";\n\nimport { defaultFundTypeList } from \"../_contexts/shared.context\";\n\nconst selectInvestment = (state) => state.investment;\n\n// USER's ACCOUNTS\nexport const selectUserAccounts = createSelector(\n [selectInvestment],\n (investment) => investment.userAccounts\n);\n\n/*-- main investment --*/\nexport const selectInvestmentAccountNumber = createSelector(\n [selectInvestment],\n (investment) => investment.accountNumber\n);\nexport const selectColors = createSelector(\n [selectInvestment],\n (investment) => investment.colors\n);\nexport const selectActivedFunds = createSelector(\n [selectInvestment],\n (investment) => investment.activedFunds.funds\n);\nexport const selectAllFunds = createSelector(\n [selectInvestment],\n (investment) => investment.allFunds.funds\n);\nexport const selectAllFundCodes = createSelector(\n [selectInvestment],\n (investment) => investment.allFundCodes?.funds\n);\n\n/*-- portfolio --*/\nexport const selectPortfolio = createSelector(\n [selectInvestment],\n (investment) => investment.portfolio\n);\nexport const selectPortfolios = createSelector(\n [selectPortfolio],\n (portfolio) => portfolio.portfolios\n);\nexport const selectPortfoliosResponses = createSelector(\n [selectPortfolios],\n (portfolios) => portfolios?.data\n);\nexport const selectPortfoliosQueries = createSelector(\n [selectPortfolio],\n (portfolio) => portfolio.queries\n);\nexport const selectNavPortfolios = createSelector(\n [selectPortfolio],\n (portfolio) => portfolio.navPortfolios\n);\nexport const selectIsFetchingPortfolio = createSelector(\n [selectPortfolio],\n (portfolio) => portfolio.isFetching\n);\nexport const selectTotalPortInvestment = createSelector(\n [selectPortfolio],\n (portfolio) =>\n portfolio.totalPortInvestment ? portfolio.totalPortInvestment : 0\n);\nexport const selectTotalPortProfit = createSelector(\n [selectPortfolio],\n (portfolio) => (portfolio.totalPortProfit ? portfolio.totalPortProfit : 0)\n);\nexport const selectTotalPortPercent = createSelector(\n [selectPortfolio],\n (portfolio) => (portfolio.totalPortPercent ? portfolio.totalPortPercent : 0)\n);\nexport const selectTotalPortValue = createSelector(\n [selectPortfolio],\n (portfolio) => (portfolio.totalPortValue ? portfolio.totalPortValue : 0)\n);\nexport const selectPortfolioHeaders = createSelector(\n [selectPortfolio],\n (portfolio) => portfolio.headers\n);\n// export const selectNavDateFilters = createSelector([selectPortfolio], (portfolio) => portfolio.navDateFilters);\n\n// PortFolio Statistics\nexport const selectPortfolioStatistic = createSelector(\n [selectInvestment],\n (investment) => investment.portfolioStatistic\n);\nexport const selectAccountOfPortfolioStatistic = createSelector(\n [selectPortfolioStatistic],\n (portfolioStatistic) => portfolioStatistic.accountNumber\n);\nexport const selectPreviousReturnByAccount = createSelector(\n [selectPortfolioStatistic],\n (portfolioStatistic) => portfolioStatistic.previousReturn\n);\nexport const selectHistoryGraphByAccount = createSelector(\n [selectPortfolioStatistic],\n (portfolioStatistic) => portfolioStatistic.historyGraph\n);\nexport const selectPreviousReturnGraphByAccount = createSelector(\n [selectPortfolioStatistic],\n (portfolioStatistic) => portfolioStatistic.previousReturnGraph\n);\nexport const selectMonthlyReturnByAccount = createSelector(\n [selectPortfolioStatistic],\n (portfolioStatistic) => portfolioStatistic.monthlyReturn\n);\nexport const selectProfitByAccount = createSelector(\n [selectPortfolioStatistic],\n (portfolioStatistic) => portfolioStatistic.profit\n);\nexport const selectVolatilityByAccount = createSelector(\n [selectPortfolioStatistic],\n (portfolioStatistic) => portfolioStatistic.volatility\n);\nexport const selectMaxDrawdownByAccount = createSelector(\n [selectPortfolioStatistic],\n (portfolioStatistic) => portfolioStatistic.maxDrawdown\n);\nexport const selectDrawdownByAccount = createSelector(\n [selectPortfolioStatistic],\n (portfolioStatistic) => portfolioStatistic.drawdown\n);\nexport const selectLastDateOfAccountNumber = createSelector(\n [selectPortfolioStatistic],\n (portfolioStatistic) => portfolioStatistic.lastDate\n);\n\n/*-- order --*/\nexport const selectOrder = createSelector(\n [selectInvestment],\n (investment) => investment.order\n);\nexport const selectOrderHeaders = createSelector(\n [selectOrder],\n (order) => order.headers\n);\nexport const selectOrderTables = createSelector(\n [selectOrder],\n (order) => order.orders.data\n);\nexport const selectOrderQueries = createSelector(\n [selectOrder],\n (order) => order.queries\n);\nexport const selectOrderErrorMessage = createSelector(\n [selectOrder],\n (order) => order.orders.errorMessage\n);\n\n/*-- book --*/\nexport const selectBook = createSelector(\n [selectInvestment],\n (investment) => investment.book\n);\nexport const selectTableBookHeaders = createSelector(\n [selectBook],\n (book) => book.tableHeaders\n);\nexport const selectQueriesBooks = createSelector(\n [selectBook],\n (book) => book.queries\n);\nexport const selectBooksResponse = createSelector(\n [selectBook],\n (book) => book.response\n);\n\n/*-- dividend --*/\nexport const selectDividend = createSelector(\n [selectInvestment],\n (investment) => investment.dividend\n);\nexport const selectQueriesDividends = createSelector(\n [selectDividend],\n (dividend) => dividend.queries\n);\nexport const selectDividendTable = createSelector(\n [selectDividend],\n (dividend) => dividend.table\n);\nexport const selectDividends = createSelector([selectDividend], (dividend) =>\n dividend.dividends ? dividend.dividends : []\n);\nexport const selectIsFetchingDividend = createSelector(\n [selectDividend],\n (dividend) => dividend.isFetching\n);\n\n/*-- lot --*/\nexport const selectLot = createSelector(\n [selectInvestment],\n (investment) => investment.lot\n);\nexport const selectTableLotHeaders = createSelector(\n [selectLot],\n (lot) => lot.tableHeaders\n);\nexport const selectFundTypeLotList = createSelector(\n [selectActivedFunds],\n (activedFunds) =>\n activedFunds.length > 0\n ? defaultFundTypeList.concat(\n activedFunds.map((fund) => ({\n name: fund.fundCode,\n value: fund.fundCode,\n type: \"fundCode\",\n }))\n )\n : defaultFundTypeList\n);\nexport const selectGroupTypeLotList = createSelector(\n [selectLot],\n (lot) => lot.groupTypeList\n);\nexport const selectQueriesLots = createSelector(\n [selectLot],\n (lot) => lot.queries\n);\nexport const selectLotsResponse = createSelector(\n [selectLot],\n (lot) => lot.response\n);\nexport const selectNavLots = createSelector([selectLot], (lot) => lot.navs);\n\n/*-- history --*/\nexport const selectHistory = createSelector(\n [selectInvestment],\n (investment) => investment.history\n);\nexport const selectHistoryQueries = createSelector(\n [selectHistory],\n (history) => history.queries\n);\nexport const selectHistoryUserAccounts = createSelector(\n [selectHistoryQueries],\n (queries) => queries.accountNumbers\n);\nexport const selectHistoryResponses = createSelector(\n [selectHistory],\n (history) => history.response\n);\nexport const selectHistoryTableColumns = createSelector(\n [selectHistory],\n (history) => history.columnList\n);\n\nexport const selectRemarkList = createSelector(\n [selectHistory],\n (history) => history.remarkList\n);\nexport const selectStatusList = createSelector(\n [selectHistory],\n (history) => history.statusList\n);\n\nexport const selectCurrentPage = createSelector(\n [selectHistory],\n (history) => history.currentPage\n);\nexport const selectTotalPage = createSelector(\n [selectHistory],\n (history) => history.totalPage\n);\n// export const selectHistories = createSelector([selectHistory], (history) => (history.histories ? history.histories : []));\n// export const selectHistoryTable = createSelector([selectHistory], (history) => history.table);\n// export const selectList = createSelector([selectHistory], (history) => history.list);\n\n/*-- DCA --*/\nexport const selectDCA = createSelector(\n [selectInvestment],\n (investment) => investment.dca\n);\nexport const selectDCAQueries = createSelector(\n [selectDCA],\n (dca) => dca.queries\n);\nexport const selectDCAUserAccounts = createSelector(\n [selectDCAQueries],\n (queries) => queries.accountNumbers\n);\nexport const selectDCAResponses = createSelector(\n [selectDCA],\n (dca) => dca.response\n);\nexport const selectDCATableColumns = createSelector(\n [selectDCA],\n (dca) => dca.columnList\n);\nexport const selectDCAErrorMessage = createSelector(\n [selectDCA],\n (dca) => dca.response.errorMessage\n);\n\nexport const selectDCATradeTypeList = createSelector(\n [selectDCA],\n (dca) => dca.tradeTypeList\n);\nexport const selectDCAStatusList = createSelector(\n [selectDCA],\n (dca) => dca.statusList\n);\n\n// INVEST SEARCH\nexport const selectInvestSearch = createSelector(\n [selectInvestment],\n (investment) => investment.investSearch\n);\n","import React from 'react';\n\nexport const THCA000002 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '19.72',\n height: props.height ? props.height : '25.402'\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000001 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '20.201',\n height: props.height ? props.height : '25.402'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000044 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '19.5',\n height: props.height ? props.height : '19.5'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000009 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '23.75',\n height: props.height ? props.height : '23.75'\n };\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000010 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '22.917',\n height: props.height ? props.height : '12.834'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000011 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '29.216',\n height: props.height ? props.height : '12.834'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000027 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '11.796',\n height: props.height ? props.height : '21.75'\n };\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000028 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '12.556',\n height: props.height ? props.height : '19.55'\n };\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000029 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '18.032',\n height: props.height ? props.height : '19.5'\n };\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000030 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '17.962',\n height: props.height ? props.height : '19.5'\n };\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000039 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '13.6',\n height: props.height ? props.height : '19.49'\n };\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000038 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '21.304',\n height: props.height ? props.height : '19.927'\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 THCA000036 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '23.079',\n height: props.height ? props.height : '20'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000040 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '20.27',\n height: props.height ? props.height : '21.628'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000041 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '20.311',\n height: props.height ? 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\nexport const THCA000045 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '20.28',\n height: props.height ? props.height : '21.466'\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 THCA000049 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '20.28',\n height: props.height ? props.height : '21.466'\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 THCA000043 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '17.776',\n height: props.height ? props.height : '21.198'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000031 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '26.556',\n height: props.height ? props.height : '19.261'\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 THCA000019 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '26.556',\n height: props.height ? props.height : '22.31'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\nexport const THCA000005 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '20',\n height: props.height ? props.height : '20'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000004 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '33.864',\n height: props.height ? props.height : '21.694'\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 THCA000003 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '26.049',\n height: props.height ? props.height : '21.694'\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\nexport const THCA000012 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '19.046',\n height: props.height ? props.height : '21.675'\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 THCA000013 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '19.046',\n height: props.height ? props.height : '23.786'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000006 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '19.046',\n height: props.height ? props.height : '23.985'\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 THCA000042 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '19.046',\n height: props.height ? props.height : '21.675'\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 THCA000047 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '22.274',\n height: props.height ? props.height : '21.675'\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\nexport const THCA000048 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? Number(props.width) * 1.5 : '30',\n height: props.height ? Number(props.height) * 1.5 : '30'\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 THCA000023 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '29.506',\n height: props.height ? props.height : '8.676'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000018 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '26.569',\n height: props.height ? props.height : '18.827'\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 THCA000033 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '34.804',\n height: props.height ? props.height : '18.827'\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 THCA000015 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '26.57',\n height: props.height ? props.height : '20.939'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000034 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '29.077',\n height: props.height ? props.height : '20.939'\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 THCA000016 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '26.569',\n height: props.height ? props.height : '21.138'\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 THCA000032 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '22.075',\n height: props.height ? props.height : '20.326'\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 THCA000008 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '22.74',\n height: props.height ? props.height : '20.274'\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 THCA000007 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '22.075',\n height: props.height ? props.height : '20.326'\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 THCA000014 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '23.316',\n height: props.height ? props.height : '23.888'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000026 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '24.267',\n height: props.height ? props.height : '14.974'\n };\n\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000035 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '26.055',\n height: props.height ? props.height : '23.042'\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 THCA000037 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '22.08',\n height: props.height ? props.height : '23.167'\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\nexport const THCA000046 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '25.535',\n height: props.height ? props.height : '23.042'\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 THCA000025 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '17.046',\n height: props.height ? props.height : '22.716'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const THCA000024 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '27.023',\n height: props.height ? props.height : '23.165'\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 THCA000022 = (props) => {\n let config = {\n fill: props.color ? props.color : '#FFF',\n width: props.width ? props.width : '27.023',\n height: props.height ? props.height : '25.379'\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\n// Custom Categoty\nexport const KCS0001 = () => {\n return (\n \n \n \n \n \n \n );\n}\n\nexport const KCS0002 = () => {\n return (\n \n \n \n \n \n \n );\n}\n\nexport const KCS0003 = () => {\n return (\n \n \n \n \n \n \n );\n}\n\nexport const KCS0004 = () => {\n return (\n \n \n \n \n \n \n );\n}\n\nexport const KCS0005 = () => {\n return (\n \n \n \n \n \n \n );\n}\n\nexport const KCS0006 = () => {\n return (\n \n \n \n \n \n \n );\n}\n\nexport const KCS0007 = () => {\n return (\n \n \n \n \n \n \n );\n}\n\nexport const KCS0008 = () => {\n return (\n \n \n \n \n \n \n );\n}\n\nexport const KCS0009 = () => {\n return (\n \n \n \n \n \n \n );\n}\n\nexport const KCS3951 = () => {\n return (\n \n \n \n \n \n \n );\n}\n\nexport const KCS7997 = () => {\n return (\n \n \n \n \n \n \n );\n}\n\nexport const KCS5691 = () => {\n return (\n \n \n \n \n \n \n );\n}\n\nexport const KCS4131 = () => {\n return (\n \n \n \n \n \n \n );\n}","export const timelines = [\n { \n sortKey: 'ytd', \n name: 'YTD', \n nameEn: 'YTD',\n value: null \n },\n { \n sortKey: '1d', \n name: '1 วัน', \n nameEn: '1D',\n value: {days: 0} \n },\n { \n sortKey: '1w', \n name: '1 สัปดาห์', \n nameEn: '1W',\n value: {days: 7} \n },\n { \n sortKey: '1m', \n name: '1 เดือน', \n nameEn: '1M',\n value: {months: 1} \n },\n { \n sortKey: '3m', \n name: '3 เดือน', \n nameEn: '3M',\n value: {months: 3} \n },\n { \n sortKey: '6m', \n name: '6 เดือน', \n nameEn: '6M',\n value: {months: 6} \n },\n { \n sortKey: '1y', \n name: '1 ปี', \n nameEn: '1Y',\n value: {years: 1} \n },\n { \n sortKey: '3y', \n name: '3 ปี', \n nameEn: '3Y',\n value: {years: 3} \n },\n { \n sortKey: '5y', \n name: '5 ปี', \n nameEn: '5Y',\n value: {years: 5} \n },\n { \n sortKey: 'all', \n name: 'ทั้งหมด', \n nameEn: 'ALL',\n value: null \n },\n { \n sortKey: 'custom', \n name: 'เลือกวัน', \n nameEn: 'CUSTOM',\n value: null \n }\n];\n\nexport const groupTypes = [\n {\n sortKey: 'account_type',\n name: 'ประเภทบัญชี',\n value: 'ACCOUNT_TYPE'\n },\n {\n sortKey: 'category',\n name: 'ประเภทกองทุน',\n value: 'CATEGORY'\n }\n];\n\nexport const newDateTimeStamp = (new Date()).toJSON();\n\nexport const styleProperties = {\n unbuyableStyle : { color: '#FF5024' },\n unsellableStyle : { color: '#034BBB' },\n xdDayStyle : { color: '#A3218E' }\n};\n\nexport const defaultFundTypeList = [\n {\n name: 'ทั้งหมด',\n value: 'ALL',\n type: 'fundType'\n },\n {\n name: 'กองทั่วไป',\n value: 'GMF',\n type: 'fundType'\n },\n {\n name: 'LTF',\n value: 'LTF',\n type: 'fundType'\n },\n {\n name: 'RMF',\n value: 'RMF',\n type: 'fundType'\n },\n {\n name: 'SSF',\n value: 'SSF',\n type: 'fundType'\n },\n {\n name: 'TESG',\n value: 'TESG',\n type: 'fundType'\n }\n];\n\nexport const defaultActivityList = [\n {\n name: 'DCA',\n value: 'DCA'\n },\n {\n name: 'B',\n value: 'Buy'\n },\n {\n name: 'S',\n value: 'Sell'\n },\n {\n name: 'I',\n value: 'Switch In'\n },\n {\n name: 'O',\n value: 'Switch Out'\n },\n {\n name: 'W',\n value: 'Switch'\n }\n];\n\nexport const defaultStatusList = [\n {\n name: 'C',\n value: 'Completed'\n },\n {\n name: 'P',\n value: 'On Process'\n },\n {\n name: 'R',\n value: 'Rejected'\n },\n {\n name: 'X',\n value: 'Canceled'\n }\n];\n\nexport const pieCategories = [\n {\n category: 'หุ้น',\n color: '#CC5F06'\n }, \n {\n category: 'ตราสารหนี้',\n color: '#F5DF76'\n },\n {\n category: 'เงินสด',\n color: '#6EA7BC'\n },\n {\n category: 'อื่นๆ',\n color: '#874B4B'\n }\n]\n\nexport const paymentDetails = (type, bankName, bankAccount) => {\n\tswitch (type) {\n\t\tcase 'A':\n\t\tcase 'ATS':\n\t\tcase 'F':\n\t\t\treturn `ATS${bankName ? `/${bankName}` : ''}${bankAccount ? `-${bankAccount}` : ''}`;\n\t\tcase 'Pay-In':\n\t\tcase 'P':\n\t\t\treturn `Bill Pay${bankName ? `-${bankName}` : ''}`;\n\t\tcase 'Credit Card':\n\t\tcase 'C':\n\t\t\treturn 'ตัดบัตรเครดิต';\n\t\tdefault:\n\t\t\treturn '-';\n\t}\n}","/* main react */\nimport React from \"react\";\n\n/* ui component */\nimport { Modal } from \"reactstrap\";\nimport { CancelIcon } from \"../icons/icons\";\n\nconst GeneralModal = ({\n isOpen,\n toggle,\n title,\n children,\n titleCenter = false\n}) => {\n\n return (\n \n
\n {title}\n \n
\n
\n {children}\n
\n
\n );\n};\n\nexport default GeneralModal;\n","/* main react */\nimport React, { useEffect, useState } from \"react\";\n\n/* constants*/\nimport { LANGUAGE } from \"../../../_constants\";\n\n/* helper function */\nimport { sub, add, setYear, startOfMonth } from \"date-fns\";\nimport * as Calendar from \"react-calendar\";\nimport DatePicker from \"react-date-picker\";\nimport { fetchCalendarThaiHolidays } from \"../../../_services/calendar.services\";\nimport {\n buddhistDateFormat,\n formatDateTime,\n} from \"../../../_helpers/format-date-time\";\nimport { compareDate } from \"../../../_helpers/format-date-time\";\n\n/* ui component */\nimport {\n Dropdown,\n DropdownToggle,\n DropdownMenu,\n Row,\n Col,\n UncontrolledDropdown,\n DropdownItem,\n} from \"reactstrap\";\nimport { CalendarIcon, CaretIcon } from \"../../icons/icons\";\nimport _ from \"underscore\";\n\nconst renderHolidays = (date, holidays) => {\n if (date.getDay() === 0 || date.getDay() === 6) {\n return \"holiday\";\n } else {\n let holidayFlag = \"\";\n holidays.forEach((hol) => {\n let holidayDate = new Date(hol);\n if (compareDate(date, holidayDate)) {\n holidayFlag = \"holiday\";\n }\n });\n\n return holidayFlag;\n }\n};\n\nconst renderDisabled = (date, holidays, isDisabled) => {\n if (\n isDisabled &&\n date.getTime() < new Date().getTime() &&\n !compareDate(date, new Date())\n ) {\n return true;\n }\n\n let matchHoliday = false;\n holidays.forEach((hol) => {\n let holidayDate = new Date(hol);\n if (compareDate(date, holidayDate)) {\n matchHoliday = true;\n }\n });\n return matchHoliday;\n};\n\nconst useActiveDateCalendar = (date, open) => {\n useEffect(() => {\n const nodes = document.querySelectorAll(\n \".react-calendar__month-view__days__day\"\n );\n nodes.forEach((element, index) => {\n element.classList.remove(\"active\");\n if (index === date.getDate() - 1) {\n element.classList.add(\"active\");\n }\n });\n }, [date, open]);\n};\n\n// custom date input component\nexport const DateInput = ({\n currentTime,\n handleCurrentTime,\n isDisabledPast = false,\n bgColor = \"#FFFFFF\",\n showIcon = false,\n nextYear = 0,\n prevYear = 0,\n}) => {\n const [openDateCalendar, setOpenDateCalendar] = useState(false);\n const toggleDateCalendar = () => setOpenDateCalendar(!openDateCalendar);\n\n const yearList = formatDateTime.defaultYearList(nextYear, prevYear);\n const newDate = new Date();\n const minDate = prevYear ? sub(new Date(), { years: prevYear }) : new Date();\n const maxDate = nextYear\n ? add(new Date(), { years: nextYear })\n : new Date(new Date().getFullYear(), 11, 31);\n const [selectedDate, setSelectedDate] = useState(newDate);\n\n const displayBuddHistDate = buddhistDateFormat(selectedDate);\n\n const [holidays, setHolidays] = useState([]);\n async function getThaiHolidays() {\n await fetchCalendarThaiHolidays()\n .then((response) => {\n setHolidays(response.data);\n })\n .catch((err) => {\n setHolidays([]);\n });\n }\n useEffect(() => {\n getThaiHolidays();\n }, []);\n\n const updateCalendar = (btnType) => {\n if (btnType === \"prev\") {\n setSelectedDate(sub(selectedDate, { months: 1 }));\n } else if (btnType === \"next\") {\n setSelectedDate(add(selectedDate, { months: 1 }));\n } else {\n setSelectedDate(setYear(selectedDate, btnType));\n }\n };\n\n const handleChangeDate = (changedDate) => {\n setSelectedDate(new Date(changedDate));\n toggleDateCalendar();\n handleCurrentTime(changedDate);\n };\n\n const handleTypingDateChange = (buddhistDate) => {\n const christDate = buddhistDateFormat(buddhistDate, false);\n setSelectedDate(christDate);\n handleCurrentTime(christDate);\n };\n\n const handleTypingDateKeyDown = (event) => {\n if (event.key === \"Enter\") {\n toggleDateCalendar();\n }\n };\n\n useEffect(() => {\n let yearButtons = document.getElementsByClassName(\"active-year-btn\");\n Array.from(yearButtons).forEach((element) => {\n element.addEventListener(\"click\", (e) => {\n let currentBtn = e.target.closest(\".dropdown\");\n let currentYear = currentBtn.querySelector(\".dropdown-item.active\");\n currentYear.scrollIntoView(false);\n });\n });\n }, []);\n\n useEffect(() => {\n setSelectedDate(currentTime || newDate);\n }, [currentTime]);\n\n useActiveDateCalendar(selectedDate, openDateCalendar);\n\n return (\n \n \n {showIcon && }\n \n {openDateCalendar ? (\n
e.stopPropagation()}>\n \n
\n ) : (\n formatDateTime.toThaiDate(formatDateTime.toJSONDate(selectedDate))\n )}\n
\n \n \n
\n
\n updateCalendar(\"prev\")}\n >\n \n \n

\n \n {formatDateTime.getMonthNames(\n selectedDate.getMonth() + 1,\n LANGUAGE.TH\n )}\n \n \n \n

\n \n {formatDateTime.getYear(\n selectedDate.getFullYear(),\n LANGUAGE.EN\n )}\n \n \n

\n
\n \n
\n {yearList.length > 0 &&\n yearList.map((year) => {\n return (\n updateCalendar(year)}\n >\n {formatDateTime.getYear(year, LANGUAGE.EN)}\n \n );\n })}\n \n
\n

\n updateCalendar(\"next\")}\n >\n \n \n
\n renderHolidays(date, holidays)}\n tileDisabled={({ date }) =>\n renderDisabled(date, holidays, isDisabledPast)\n }\n onClick={handleChangeDate}\n maxDate={maxDate}\n />\n
\n
\n \n );\n};\n\n// custom date range input component\nexport const DateRangeInput = ({\n currentTime,\n handleChangeTime,\n isDisabledPast = false,\n isDisabledEndDate = false,\n isLimitedStartDate = false,\n bgColor = \"#FFFFFF\",\n nextYear = 0,\n prevYear,\n}) => {\n const [openStartDateCalendar, setOpenStartDateCalendar] = useState(false);\n const toggleStartDateCalendar = () =>\n setOpenStartDateCalendar(!openStartDateCalendar);\n const [openEndDateCalendar, setOpenEndDateCalendar] = useState(false);\n const toggleEndDateCalendar = () =>\n setOpenEndDateCalendar(!openEndDateCalendar);\n\n const newDate = new Date(new Date().toDateString());\n const [selectedDate, setSelectedDate] = useState({\n startDate: newDate,\n endDate: newDate,\n });\n\n const handleChangeStartDate = (changedDate) => {\n handleChangeTime({\n ...selectedDate,\n startDate: changedDate,\n });\n };\n\n const handleChangeEndDate = (changedDate) => {\n handleChangeTime({\n ...selectedDate,\n endDate: changedDate,\n });\n };\n\n useEffect(() => {\n let yearButtons = document.getElementsByClassName(\"active-year-btn\");\n Array.from(yearButtons).forEach((element) => {\n element.addEventListener(\"click\", (e) => {\n let currentBtn = e.target.closest(\".dropdown\");\n let currentYear = currentBtn.querySelector(\".dropdown-item.active\");\n currentYear.scrollIntoView(false);\n });\n });\n }, []);\n\n useEffect(() => {\n setSelectedDate({\n startDate: currentTime.startDate || newDate,\n endDate: currentTime.endDate,\n });\n }, [currentTime.startDate, currentTime.endDate]);\n\n return (\n <>\n \n \n
วันเริ่มต้น
\n \n \n \n \n
วันสิ้นสุด
\n \n \n
\n \n );\n};\n\nexport const DateInputDropdown = ({\n id,\n isOpen = false,\n toggle,\n currentTime,\n minDate,\n handleChangeTime,\n isDisabled = false,\n isDisabledPast = false,\n bgColor = \"#FFFFFF\",\n placeHolder,\n nextYear = 0,\n prevYear,\n}) => {\n const newDate = new Date(new Date().toDateString());\n\n if (currentTime && typeof currentTime === \"object\") {\n currentTime = new Date(currentTime);\n }\n\n const initDate = currentTime ?? newDate;\n\n const limitedEndDate = nextYear\n ? add(new Date(new Date().getFullYear(), 11, 31), { years: nextYear })\n : undefined;\n const yearList = formatDateTime.defaultYearList(nextYear, prevYear);\n\n const [isOpenModal, setIsOpenModal] = useState(isOpen);\n const handleToggle = () => {\n if (toggle !== undefined && toggle !== null) {\n toggle();\n }\n setIsOpenModal(!isOpenModal);\n };\n\n const [holidays, setHolidays] = useState([]);\n async function getThaiHolidays() {\n await fetchCalendarThaiHolidays()\n .then((response) => {\n setHolidays(response.data);\n })\n .catch((err) => {\n setHolidays([]);\n });\n }\n useEffect(() => {\n getThaiHolidays();\n }, []);\n\n const updateCalendar = (event) => {\n const item = JSON.parse(event);\n Object.keys(item).map((key) => {\n let tempDate;\n if (key === \"year\") {\n tempDate = setYear(initDate, item[key]);\n } else if (key === \"month\") {\n tempDate = add(initDate, { months: item[key] });\n }\n\n handleChangeTime(tempDate);\n return;\n });\n };\n\n const updateDateHandler = (date) => {\n // update parent value and toggle dropdown\n handleChangeTime(date);\n handleToggle();\n };\n\n return (\n \n \n \n {currentTime\n ? formatDateTime.toThaiDate(formatDateTime.toJSONDate(currentTime))\n : placeHolder ?? \"-\"}\n \n \n \n
\n
\n updateCalendar(JSON.stringify({ month: -1 }))}\n >\n \n \n

\n \n {formatDateTime.getMonthNames(\n initDate.getMonth() + 1,\n LANGUAGE.TH\n )}\n \n \n \n

\n \n {formatDateTime.getYear(\n initDate.getFullYear(),\n LANGUAGE.EN\n )}\n \n \n

\n
\n \n
\n {yearList.length > 0 &&\n yearList.map((year) => {\n return (\n \n updateCalendar(JSON.stringify({ year: year }))\n }\n >\n {formatDateTime.getYear(year, LANGUAGE.EN)}\n \n );\n })}\n \n
\n

\n updateCalendar(JSON.stringify({ month: 1 }))}\n >\n \n \n
\n date.getDate() === initDate.getDate() ? 'active' : ''}\n tileClassName={({ date }) => renderHolidays(date, holidays)}\n tileDisabled={({ date }) =>\n renderDisabled(date, holidays, isDisabledPast)\n }\n onClick={updateDateHandler}\n minDate={minDate}\n maxDate={limitedEndDate}\n />\n
\n
\n \n );\n};\n","/* main react */\nimport React from 'react';\n\nconst RiskRender = (\n{\n\tlevel,\n\tcolor = '#B9B9B9',\n\tclassName = '',\n\tsize\n\t\t/* \n\t\t\tavailable size ***string only***\n\t\t\t- xxl : 60px\n\t\t\t- xl : 50px\n\t\t\t- lg : 40px\n\t\t\t- md : 30px\n\t\t\t- mb : 25px\n\t\t\t- sm : 20px\n\t\t\t- xs : 16px\n\t\t\t- title : 100px\n\t\t*/\n}) => {\n\n\tlet defaultFontSize;\n\tswitch (size) {\n\t\tcase 'xxl':\n\t\t\tdefaultFontSize = '48';\n\t\t\tbreak;\n\n\t\tcase 'xl':\n\t\t\tdefaultFontSize = '36';\n\t\t\tbreak;\n\n\t\tcase 'lg':\n\t\t\tdefaultFontSize = '28';\n\t\t\tbreak;\n\n\t\tcase 'md':\n\t\t\tdefaultFontSize = '20';\n\t\t\tbreak;\n\n\t\tcase 'mb':\n\t\t\tdefaultFontSize = '16';\n\t\t\tbreak;\n\n\t\tcase 'sm':\n\t\t\tdefaultFontSize = '12';\n\t\t\tbreak;\n\n\t\tcase 'xs':\n\t\t\tdefaultFontSize = '10';\n\t\t\tbreak;\n\n\t\tcase 'title':\n\t\t\tdefaultFontSize = '60';\n\t\t\tbreak;\n\t\n\t\tdefault:\n\t\t\tdefaultFontSize = '16';\n\t\t\tbreak;\n\t}\n\n\treturn (\n\t\t\n\t\t\t{\n\t\t\t\tlevel\n\t\t\t\t? parseInt(level) > 8\n\t\t\t\t\t? '8+'\n\t\t\t\t\t: level\n\t\t\t\t: '-'\n\t\t\t}\n\t\t\n\t)\n}\n\nexport default RiskRender;","import { createSelector } from 'reselect';\n\nexport const selectOrderRequest = (state) => state.orderRequest;\nexport const selectErrorMessageModal = createSelector([selectOrderRequest], (orderRequest) => orderRequest.errorMessage);\n\nexport const selectIsOpenOrderRequestModal = createSelector([selectOrderRequest], (orderRequest) => orderRequest.isOpenModal);\nexport const selectActiveTabOrderRequestModal = createSelector([selectOrderRequest], (orderRequest) => orderRequest.activeTab);\nexport const selectSubActiveTabOrderRequestModal = createSelector([selectOrderRequest], (orderRequest) => orderRequest.subActiveTab);\n\nexport const selectOrderRequestForm = createSelector([selectOrderRequest], (orderRequest) => orderRequest.orderRequestForm);\n\n// Check fund \nexport const selectCheckedFundAbleToOrder = createSelector([selectOrderRequest], (orderRequest) => orderRequest.checkedFundAbleToOrder);\n\nexport const selectConfirmOrderFund = createSelector([selectOrderRequest], (orderRequest) => orderRequest.confirmOrderFund);\n\n// Fund Info\nexport const selectFundInfo = createSelector([selectOrderRequest], (orderRequest) => orderRequest.fundInfo);\nexport const selectFundInfoData = createSelector([selectFundInfo], (fundInfo) => fundInfo.data);\n\nexport const selectFundInfo2 = createSelector([selectOrderRequest], (orderRequest) => orderRequest.fundInfo2);\nexport const selectFundInfo2Data = createSelector([selectFundInfo2], (fundInfo2) => fundInfo2.data);\n\nexport const selectNavigationFund = createSelector([selectOrderRequest], (orderRequest) => orderRequest.navigationFund);\nexport const selectSearchFundInfo = createSelector([selectOrderRequest], (orderRequest) => orderRequest.searchFundInfo)\nexport const selectSearchFundInfoStatus = createSelector([selectOrderRequest], (orderRequest) => (orderRequest.searchText ? true : false));\n\nexport const selectIsFetching = createSelector([selectOrderRequest], (orderRequest) => orderRequest.isFetching);\nexport const selectResponseMessage = createSelector([selectOrderRequest], (orderRequest) => orderRequest.responseMessage);\nexport const selectShowResponseMessage = createSelector([selectOrderRequest], (orderRequest) => orderRequest.showResponseMessage);\n\n// Form\nexport const selectLatestPlan = createSelector([selectOrderRequest], (orderRequest) => orderRequest.latestPlan);\nexport const selectLatestSettleDate = createSelector([selectOrderRequest], (orderRequest) => orderRequest.latestSettleDate);\n\n","import React from 'react';\nimport {\n PortfolioIcon,\n OrderStatusIcon,\n FavoriteIcon,\n HistoryIcon,\n HistoricalTradeIcon,\n InvestmentIcon,\n InvestmentStatisticIcon,\n SentOrderIcon,\n StarIcon,\n WatchListIcon,\n ChartIcon,\n FundRankingIcon,\n InvestorRankingIcon,\n HotFundIcon,\n CompareIcon,\n FundCompareIcon,\n SearchAdvanceIcon,\n IPOFundIcon,\n TransferIcon,\n CalendarIcon,\n DocumentIcon,\n MonthlyReportIcon,\n FAQIcon,\n FeedIcon,\n PortIcon,\n InformationIcon,\n ServiceIcon,\n BuyIcon,\n SellIcon,\n SwitchIcon,\n MiscellaneousIcon\n} from '../_components/icons/icons';\n\nconst iconConvertor = (name, color, width, height) => {\n const ICONS = {\n PortfolioIcon: ,\n OrderStatusIcon: ,\n SentOrderIcon: ,\n FavoriteIcon: ,\n StarIcon: ,\n CompareIcon: ,\n FundCompareIcon: ,\n SearchAdvanceIcon: ,\n IPOFundIcon: ,\n TransferIcon: ,\n CalendarIcon: ,\n DocumentIcon: ,\n MonthlyReportIcon: ,\n FAQIcon: ,\n BuyIcon: ,\n SellIcon: ,\n SwitchIcon: ,\n ChartIcon: ,\n PortIcon: ,\n InformationIcon: ,\n MiscellaneousIcon: ,\n HistoryIcon: ,\n HistoricalTradeIcon: ,\n InvestmentIcon: ,\n InvestmentStatisticIcon: ,\n FundRankingIcon: ,\n InvestorRankingIcon: ,\n HotFundIcon: ,\n FeedIcon: ,\n WatchListIcon: ,\n ServiceIcon: \n };\n\n return ICONS[name] ? <>{ICONS[name]} : null;\n};\n\nexport default iconConvertor;\n","/* main react */\nimport React, {\n useEffect,\n useState,\n useMemo,\n useRef,\n useCallback,\n} from \"react\";\nimport { connect } from \"react-redux\";\nimport { getCookie } from \"../../_utils/cookie.utils\";\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from \"reselect\";\nimport {\n selectAccountName,\n selectIsMobileCompletedLogin,\n selectUserType,\n} from \"../../_selectors/authentication.selectors\";\nimport { mainSelectors } from \"../../_selectors\";\n\nimport {\n getAccountNameStart,\n getAccountListStart,\n} from \"../../_actions/authentication.actions\";\n\n/* ui component */\nimport {\n Dropdown,\n DropdownToggle,\n DropdownMenu,\n DropdownItem,\n Input,\n} from \"reactstrap\";\nimport { CaretIcon, SearchIcon } from \"../icons/icons\";\nimport GeneralModal from \"../modals/general-modal.component\";\n\nimport { useMediaQuery } from \"react-responsive\";\n\nconst SingleAccountNumberFilter = ({\n classNames,\n accountList,\n userAccounts,\n updateAccounts,\n whiteBg,\n isTabletOrMobile,\n accountName,\n getAccountNameStart,\n getAccountListStart,\n isMobileCompletedLogin,\n userType,\n}) => {\n const [dropdownOpen, setDropdownOpen] = useState(false);\n const toggleDropdownOpen = () => setDropdownOpen(!dropdownOpen);\n const [inputValue, setInputValue] = useState(\"\");\n const [switchIcon, setSwitchIcon] = useState(dropdownOpen);\n\n const inputRef = useRef();\n\n const isMobileApp = getCookie(\"isMobileApp\") === \"true\";\n\n const isAdUserType = [\"FA\", \"DSA\"].includes(userType);\n\n const unSelectAccounts = useMemo(() => {\n if (accountList?.length > 50) {\n return accountList\n .filter((x) => x.accountNumber.includes(inputValue.toUpperCase()))\n .slice(0, 50);\n }\n return accountList.filter((x) =>\n x.accountNumber.includes(inputValue.toUpperCase())\n );\n }, [accountList, inputValue]);\n\n const [alertModal, setAlertModal] = useState(false);\n const toggleAlertModal = () => setAlertModal(!alertModal);\n\n const handleOpenDropdown = (bool) => {\n setDropdownOpen(bool);\n setSwitchIcon(bool);\n };\n\n const setDropdownUiState = () => {\n handleOpenDropdown(true);\n setInputValue(\"\");\n inputRef.current.select();\n };\n\n const handleKey = (event) => {\n if (event.key === \" \") {\n event.preventDefault();\n } else if (event.key === \"Enter\") {\n let newAccounts =\n accountList.filter(\n (x) => x.accountNumber === inputValue.toUpperCase()\n ) ?? [];\n if (newAccounts.length) {\n updateAccounts(newAccounts);\n } else {\n toggleAlertModal();\n }\n setDropdownOpen(false);\n }\n };\n\n const setDefaultState = useCallback(() => {\n setDropdownOpen(false);\n setInputValue(userAccounts.map((x) => x.accountNumber).toString());\n }, [userAccounts]);\n\n const handleSearch = (e) => {\n setInputValue(e.target.value);\n if (!dropdownOpen) {\n setDropdownOpen(true);\n }\n };\n\n const handleOutsideClick = useCallback(\n (e) => {\n if (e.target.closest(\"#account-select\") === null) {\n setDefaultState();\n }\n },\n [setDefaultState]\n );\n\n const [selectedAccounts, setSelectedAccounts] = useState(\"\");\n\n const handleClick = (account) => {\n updateAccounts([account]);\n setInputValue(account.accountNumber);\n setDropdownOpen(!dropdownOpen);\n setSelectedAccounts(account);\n };\n\n const isMobileOrTablet = useMediaQuery({ query: \"(max-width: 576px)\" });\n\n useEffect(() => {\n if (accountList?.length) {\n if (!userAccounts.length) {\n updateAccounts(accountList.slice(0, 1));\n } else if (userAccounts.length > 1) {\n updateAccounts(userAccounts.slice(0, 1));\n } else if (userAccounts.length === 1) {\n setInputValue(userAccounts.map((x) => x.accountNumber).toString());\n }\n }\n setSelectedAccounts(userAccounts.map((x) => x.accountNumber).toString());\n }, [accountList, userAccounts]);\n\n useEffect(() => {\n if (!inputValue) return;\n getAccountNameStart(inputValue);\n }, [inputValue]);\n\n useEffect(() => {\n if (accountList.length === 0 && isMobileApp && !isMobileCompletedLogin) {\n getAccountListStart();\n }\n }, []);\n\n useEffect(() => {\n document.body.addEventListener(\"click\", handleOutsideClick);\n return () => {\n document.body.removeEventListener(\"click\", handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return (\n <>\n \n

เลขที่บัญชีไม่ถูกต้อง

\n \n
\n {!isAdUserType && isTabletOrMobile ? (\n \n {\n setInputValue(inputValue);\n setDropdownOpen(true);\n }}\n >\n {inputValue}\n \n \n \n
\n
\n {accountList.map((account) => {\n return (\n handleClick(account)}\n >\n \n
\n {account.accountNumber}\n
\n
\n {account?.name}\n
\n
\n \n );\n })}\n
\n
\n \n ) : (\n {\n return;\n }}\n >\n \n \n \n \n \n \n
\n
\n {unSelectAccounts?.length > 0 ? (\n unSelectAccounts.map((account) => {\n return (\n handleClick(account)}\n >\n \n
\n {account.accountNumber}\n
\n
\n {account?.name}\n
\n
\n \n );\n })\n ) : !isTabletOrMobile ? (\n

ไม่พบเลขที่บัญชี

\n ) : (\n
ไม่พบเลขที่บัญชี
\n )}\n
\n
\n \n )}\n {!isTabletOrMobile && (\n
{accountName}
\n )}\n
\n \n );\n};\n\nconst mapStateToProps = createStructuredSelector({\n accountName: selectAccountName,\n isTabletOrMobile: mainSelectors.selectIsMobileScreenSize,\n isMobileCompletedLogin: selectIsMobileCompletedLogin,\n userType: selectUserType,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n getAccountNameStart: (queries) => dispatch(getAccountNameStart(queries)),\n getAccountListStart: () => dispatch(getAccountListStart()),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(SingleAccountNumberFilter);\n","/* main react */\nimport React, { useEffect, useState } from 'react';\n\n/* ui component */\nimport { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\nimport { CaretIcon } from '../icons/icons';\n\nconst SingleSelectDropdown = (props) => {\n\tconst {\n\t\tclassName,\n\t\twidth, // nullable\n\t\theader,\n\t\tcurrentSelected,\n\t\tplaceholder,\n\t\tfilterList,\n\t\tsubmitTarget,\n\t\thandleSubmit,\n\t\tisDisabled\n\t} = props;\n\n\tconst [dropdownOpen, setDropdownOpen] = useState(false);\n\tconst toggleDropdown = () => setDropdownOpen(!dropdownOpen);\n\tconst [iconDirection, setIconDirection] = useState(180);\n\n\tuseEffect(() => {\n\t\tdropdownOpen ? setIconDirection(180) : setIconDirection(0);\n\t}, [dropdownOpen]);\n\n\treturn (\n\t\t
\n\t\t\t{\n\t\t\t\theader &&
{header}
\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfilterList && filterList.length && currentSelected !== undefined \n\t\t\t\t\t\t\t?\tfilterList.filter((item) => item.code === currentSelected).map((x) => x.displayName)\n\t\t\t\t\t\t\t:\tplaceholder\n\t\t\t\t\t\t\t\t?\t{placeholder}\n\t\t\t\t\t\t\t\t:\t'-'\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{ \n\t\t\t\t\t\tfilterList?.map((item) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{item.displayName}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default SingleSelectDropdown;\n","import { createSelector } from 'reselect';\n\nconst selectFavorite = (state) => state.favorite;\n\nexport const selectColors = createSelector([selectFavorite], (favorite) => favorite.colors);\n\n// Table columns\nexport const selectTableColumns = createSelector([selectFavorite], (favorite) => favorite.tableColumns);\nexport const selectCurrentColumns = createSelector([selectFavorite], (favorite) => favorite.currentColumns.length ? favorite.currentColumns : favorite.defaultColumns);\nexport const selectDefaultColumns = createSelector([selectFavorite], (favorite) => favorite.defaultColumns);\n\n// Favorite Funds Response\nexport const selectFavoriteFundsResponse = createSelector([selectFavorite], (favorite) => favorite.favoriteFunds);\nexport const selectFavoriteFunds = createSelector([selectFavoriteFundsResponse], (favoriteResponse) => favoriteResponse?.funds ?? []);\n\nexport const selectNavFavoriteFundsResponse = createSelector([selectFavorite], (favorite) => favorite.navFunds);\n\n// Queries\nexport const selectFavoriteFundsQueries = createSelector([selectFavorite], (favorite) => favorite.queries);\n\n// Account Number\nexport const selectAccountNumber = createSelector([selectFavorite], (favorite) => favorite.accountNumber);\n","/* main react */\nimport React from 'react';\n\n/* ui component */\nimport { ListGroupItem } from 'reactstrap';\nimport * as iFundCategory from '../icons/fund-category';\n\nconst SearchResult = ({ handleClick, data }) => {\n const { fundId, fundCode, thailandFundCode, categoryName, categoryNameTh, categoryCode, color } = data;\n\n const handlePropagation = (event) => {\n event.stopPropagation();\n };\n \n const CategoryIcon = iFundCategory[categoryCode];\n const fundIconStyle = {\n backgroundColor: color ?? '#B9B9B9', // risk level's color 0\n color: 'white',\n };\n \n return (\n handlePropagation(e)} \n data-route-id={fundId} \n data-submit={JSON.stringify(data)}\n >\n
\n \n \n {\n !!CategoryIcon\n && \n }\n \n {thailandFundCode ?? fundCode}\n \n {categoryName ?? categoryNameTh}\n
\n \n );\n};\n\nexport default SearchResult;\n","import { createSelector } from 'reselect';\n\nconst selectCompare = (state) => state.compare;\n\nexport const selectCompareFundsLoaded = createSelector([selectCompare], (compare) => !!compare.compareFunds);\nexport const selectStatusReturn = createSelector([selectCompare], (compare) => compare.statusReturn);\nexport const selectStatusDrawdown = createSelector([selectCompare], (compare) => compare.statusDrawdown);\nexport const selectStatusProportion = createSelector([selectCompare], (compare) => compare.statusProportion);\nexport const selectSearchIndex = createSelector([selectCompare], (compare) => compare.searchIndex);\n\nexport const selectIsOpenCompareModal = createSelector([selectCompare], (compare) => compare.isOpenCompareModal);\nexport const selectCompareFunds = createSelector([selectCompare], (compare) => compare.funds);\nexport const selectGraphCompareFunds = createSelector([selectCompare], (compare) => compare.graph);\nexport const selectCompareFundPeriod = createSelector([selectCompare], (compare) => compare.fundByPeriod);\nexport const selectNavCompareFunds = createSelector([selectCompare], (compare) => compare.navFunds);\nexport const selectCompareFundList = createSelector([selectCompare], (compare) => compare.fundList);\nexport const selectTempCompareFundList = createSelector([selectCompare], (compare) => compare.tempCompareFunds);","import React from 'react';\nimport { connect } from 'react-redux';\nimport Loading from '../../assets/loading-yellow.gif'\n\nconst LoadingSpinner = (props) => {\n return (\n
\n \n
\n );\n};\n\nconst mapStateToProps = (state) => ({\n isLoading: state.authentication.isLoading2FA\n});\n\nexport default connect(mapStateToProps)(LoadingSpinner);\n","/* main react */\nimport React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router';\nimport { connect } from 'react-redux';\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from 'reselect';\nimport { selectSignInStatus, selectIsLoading2FA } from '../../_selectors/authentication.selectors';\nimport { set2FALoading } from '../../_actions/authentication.actions';\n/* ui component */\nimport { Modal, Card, CardTitle, CardBody, Form, FormGroup, Input, Label } from 'reactstrap';\nimport { Checkbox } from 'pretty-checkbox-react';\nimport { CancelIcon, CheckedIcon } from '../../_components/icons/icons';\n\nimport LoadingSpinner from '../../_components/spinner/loading-spinner.component'\n\nimport { getCookie } from '../../_utils/cookie.utils';\n\nconst SignInModal = (props) => {\n const { modal, toggle, submitSignIn, signInStatus, set2FALoading, isLoading2FA } = props;\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n const history = useHistory();\n const isMobileApp = getCookie('isMobileApp') === 'true';\n\t\n let credential = {\n username: '',\n password: '',\n history\n };\n\n const focusInput = () => {\n document.getElementById('input-username').focus();\n };\n\n const handleSubmit = (e) => {\n e.preventDefault();\n credential.username = username;\n credential.password = password;\n submitSignIn(credential);\n set2FALoading(true);\n toggle();\n };\n \n\n return (isMobileApp && modal && !signInStatus) ? history.push('/main/mobile_login') : (\n <>\n {isLoading2FA && }\n \n \n \n

เข้าสู่ระบบ

\n \n
\n \n
\n \n \n setUsername(e.target.value)} \n placeholder='ชื่อผู้ใช้งาน' \n />\n \n\n \n \n setPassword(e.target.value)} \n placeholder='รหัสผ่าน' \n />\n \n\n \n }>\n จดจำฉันไว้ในระบบ\n \n\n \n ลืมรหัสผ่าน ?\n \n \n\n
\n \n
\n
\n
\n
\n
\n \n ) ;\n};\n\nconst mapStateToProps = createStructuredSelector({\n\tsignInStatus: selectSignInStatus,\n isLoading2FA: selectIsLoading2FA\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n set2FALoading: (isLoading) => dispatch(set2FALoading(isLoading))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SignInModal);","import React, { lazy } from 'react';\n\n// Home\nconst Home = lazy(() => import('../Pages/home/home.component'));\n\n// Investment\nconst Investment = lazy(() => import('../Pages/investment/investment.component'));\nconst Information = lazy(() => import('../Pages/investment/information.component'));\nconst Portfolio = lazy(() => import('../Pages/investment/portfolio.component'));\nconst Order = lazy(() => import('../Pages/investment/order.component'));\nconst Lot = lazy(() => import('../Pages/investment/lot.component'));\nconst Book = lazy(() => import('../Pages/investment/book.component'));\nconst History = lazy(() => import('../Pages/investment/history.component'));\nconst DCA = lazy(() => import('../Pages/investment/dca.component'));\nconst Div = lazy(() => import('../Pages/investment/div.component'));\n\n// Favorite\nconst Favorite = lazy(() => import('../Pages/favorite/favorite.component'));\n//const FavoriteFund = lazy(() => import('../Pages/favorite/favorite-fund.component'));\n\n// Monthly Report\nconst MonthlyReport = lazy(() => import('../Pages/monthly-report/monthly-report.component'));\n// FundInformation\nconst FundInformation = lazy(() => import('../Pages/fund-information/fund-information.component'));\n\n// FundRanking\nconst FundRanking = lazy(() => import('../Pages/fund-ranking/fund-ranking.component'));\n\n// InvestorRanking\nconst InvestorRanking = lazy(() => import('../Pages/investor-ranking/investor-ranking.component'));\n\n// Hotfund\nconst Hotfund = lazy(() => import('../Pages/hotfund/hotfund.component'));\n\n// Compare\nconst Compare = lazy(() => import('../Pages/compare/compare.component'));\nconst FundCompare = lazy(() => import('../Pages/compare/fund-compare.component'));\nconst CopyportCompare = lazy(() => import('../Pages/compare/copyport-compare.component'));\nconst GraphCompare = lazy(() => import('../Pages/compare/graph-compare.component'));\n\n// Search\nconst AdvanceSearch = lazy(() => import('../Pages/search/advance-search.component'));\n\n// IPO\nconst Ipo = lazy(() => import('../Pages/ipo'));\nconst FundIpo = lazy(() => import('../Pages/ipo/fund-ipo.component'));\nconst TermFund = lazy(() => import('../Pages/ipo/term-fund.component'));\nconst Rollover = lazy(() => import('../Pages/ipo/rollover.component'));\n\n// Calendar\nconst FundCalendar = lazy(() => import('../Pages/calendar/calendar.component'));\n\n// Miscellaneous\n//const Miscellaneous = lazy(() => import('../Pages/miscel laneous/miscellaneous.component'));\nconst DownloadForm = lazy(() => import('../Pages/miscellaneous/download-form.component'));\n\n// FAQ\nconst FAQ = lazy(() => import('../Pages/faq/faq.component'));\n\n// UiKit\nconst UiKit = lazy(() => import('../Pages/ui-kit/ui-kit.component'));\n\n// ADLogin\nconst ADLogin = lazy(() => import('../Pages/ad-login'));\n\n// DSALogin\nconst DSALogin = lazy(() => import('../Pages/dsa-login'));\n\n// SSOLogin\nconst SSOLogin = lazy(() => import('../Pages/sso-login'));\n\n// SIGN OUT\nconst SignOut = lazy(() => import('../Pages/sign-out'));\n\n// Order Request for mobile app\nconst OrderRequest = lazy(() => import('../Pages/order-request/order-request.component'));\n\nconst mapComponent = (item, toggleActivePage) => {\n const { component, path } = item;\n const COMPONENTS = {\n HOME: Home, // default page is home page\n INVESTMENT: Investment, // investment\n INFORMATION: Information, // investment\n PORTFOLIO: Portfolio, // investment\n ORDER: Order, // investment\n LOT: Lot, // investment\n BOOK: Book, // investment\n DCA: DCA, // investment\n HISTORY: History, // investment\n DIV: Div, // investment\n FAVORITE: Favorite, // favorite\n //FAVORITE_FUND: FavoriteFund, // favorite fund\n MONTHLY_REPORT: MonthlyReport, // monthly report\n FUND_RANKING: FundRanking, // ranking\n INVESTOR_RANKING: InvestorRanking, // ranking\n HOTFUND: Hotfund, // hotfund\n COMPARE: Compare, // compare\n FUND_COMPARE: FundCompare, // compare\n COPYPORT_COMPARE: CopyportCompare, // compare\n GRAPH_COMPARE: GraphCompare, // compare\n ADVANCE_SEARCH: AdvanceSearch, // advance search\n DOWNLOAD_FORM: DownloadForm, // form \n FAQ: FAQ,\n FUND_INFORMATION: FundInformation, // fund information\n IPO: Ipo,\n FUND_IPO: FundIpo, // fund IPO\n TERM_FUND: TermFund,\n ROLLOVER: Rollover,\n CALENDAR: FundCalendar,\n UI_KIT: UiKit,\n AD_LOGIN: ADLogin,\n DSA_LOGIN: DSALogin,\n SSO_LOGIN: SSOLogin,\n SIGN_OUT: SignOut,\n ORDER_REQUEST: OrderRequest // call order modal landing page for mobile app\n };\n\n if (path.split('/').length === 2) {\n toggleActivePage(component);\n }\n return COMPONENTS[component] ? React.createElement(COMPONENTS[component]) : null;\n};\n\nexport default mapComponent;\n","import { createSelector } from 'reselect';\n\nconst selectAdvanceSearch = (state) => state.advanceSearch;\n\nexport const selectTableHeaders = createSelector([selectAdvanceSearch], (advanceSearch) => advanceSearch.tableHeaders);\nexport const selectColors = createSelector([selectAdvanceSearch], (advanceSearch) => advanceSearch.colors);\n\n// Search Filters from APIs\nexport const selectSearchFilters = createSelector([selectAdvanceSearch], (advanceSearch) => advanceSearch.filters);\n\n// Header from Column Table List \nexport const selectCurrentHeaders = createSelector([selectAdvanceSearch], (advanceSearch) => advanceSearch.currentHeaders.length ? advanceSearch.currentHeaders : advanceSearch.defaultHeaders);\nexport const selectDefaultHeaders = createSelector([selectAdvanceSearch], (advanceSearch) => advanceSearch.defaultHeaders);\n\n// Search Results from APIs\nexport const selectSearchResponse = createSelector([selectAdvanceSearch], (advanceSearch) => advanceSearch.searchResponse);\nexport const selectCurrentPage = createSelector([selectSearchResponse], (searchResponse) => searchResponse.currentPage);\nexport const selectTotalPage = createSelector([selectSearchResponse], (searchResponse) => searchResponse.totalPage);\nexport const selectQueriesAdvanceSearch = createSelector([selectAdvanceSearch], (advanceSearch) => advanceSearch.queries);\nexport const selectDefaultQueriesAdvanceSearch = createSelector([selectAdvanceSearch], (advanceSearch) => advanceSearch.defaultQueries);\n\n// Search Nav from APIs\nexport const selectNavDate = createSelector([selectAdvanceSearch], (advanceSearch) => advanceSearch.navDate);\nexport const selectSearchNavResults = createSelector([selectAdvanceSearch], (advanceSearch) => advanceSearch.searchNavResults);\nexport const selectSearchNavs = createSelector([selectSearchNavResults], (searchNavResults) => searchNavResults.navs);\nexport const selectIsFetchingNavSearchResults = createSelector([selectSearchNavResults], (searchNavResults) => searchNavResults.isFetching);\n","import { createSelector } from 'reselect';\n\nconst selectMain = (state) => state.main;\n\nconst selectIsMobileScreenSize = createSelector([selectMain], (main) => main.isMobileScreenSize);\nconst selectIsOpenSideBar = createSelector([selectMain], (main) => main.isOpenSideBar);\nconst selectRoutes = createSelector([selectMain], (main) => (main.routes ? main.routes : []));\nconst selectCurrentMenu = createSelector([selectMain], (main) => (main.routes !== null ? main.routes.filter((item) => item.component === main.currentPage)[0] : undefined));\nconst selectCurrentPage = createSelector([selectMain], (main) => (main.currentPage === 'undefined' ? main.routes[0].component : main.currentPage));\nconst selectIsPaging = createSelector([selectMain], (main) => main.isPaging);\nconst selectPages = createSelector([selectMain], (main) => main.pages);\nconst selectErrorModal = createSelector([selectMain], (main) => main.errorModal);\nconst selectIsOpenErrorModal = createSelector([selectErrorModal], (errorModal) => !!errorModal);\n\nexport const mainSelectors = {\n selectIsMobileScreenSize,\n selectIsOpenSideBar,\n selectRoutes,\n selectCurrentMenu,\n selectCurrentPage,\n selectIsPaging,\n selectPages,\n selectErrorModal,\n selectIsOpenErrorModal\n};\n","import { createSelector } from 'reselect';\n\nconst selectSearch = (state) => state.search;\n\n// MainNavs\nexport const selectMainNavs = createSelector([selectSearch], (main) => main.mainNavs);\nexport const selectMainNavsSearchList = createSelector([selectMainNavs], (mainNavs) => mainNavs.searchList);\nexport const selectMainNavsSearchStatus = createSelector([selectMainNavs], (mainNavs) => (mainNavs.searchText ? true : false));\n\n// MainSubNavs\nexport const selectSubNavs = createSelector([selectSearch], (main) => (main.subNavs));\nexport const selectSubNavsSearchList = createSelector([selectSubNavs], (subNavs) => subNavs.searchList);\nexport const selectSubNavsSearchStatus = createSelector([selectSubNavs], (subNavs) => (subNavs.searchText ? true : false));\n\n// Fund Calendar\nexport const selectfundCalendar = createSelector([selectSearch], (search) => (search.calendarSearch));\nexport const selectSearchFundCalendarList = createSelector([selectfundCalendar], (subNavs) => subNavs.searchList);\nexport const selectSearchFundCalendarStatus = createSelector([selectfundCalendar], (subNavs) => (subNavs.searchText ? true : false));\n","/* main react */\nimport React, { useEffect, useState } from 'react';\n\n/* ui component */\nimport { Modal, Card, CardBody, ModalFooter } from 'reactstrap';\nimport { CancelIcon, DragIcon } from '../../_components/icons/icons';\nimport * as iFundCategory from '../../_components/icons/fund-category';\nimport { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd';\n\n/* page component */\nimport SearchFund2 from '../../_components/search/search-fund-v2.component';\n\nconst AddCompareItemModal = ({\n\tfundList,\n\ttoggle,\n\tmodal,\n\thandleSubmit,\n\tisTabletOrMobile,\n}) => {\n\tconst [tempFund, setTempFund] = useState([]);\n\tconst [isOverLimit, setIsOverLimit] = useState();\n\n\tconst addTempFund = (fund) => {\n\t\t// convert string to json\n\t\tconst fundObject = JSON.parse(fund);\n\n\t\t//check json has fundId\n\t\tif (fundObject.fundId) {\n\t\t\t// update temp fund list\n\t\t\tsetTempFund(tempFund.filter(temp => temp.fundId !== fundObject.fundId).concat(fundObject));\n\t\t}\n\t}\n\n\tconst removeTempFund = (fundId) => {\n\t\tsetTempFund(tempFund.filter(temp => temp.fundId !== fundId));\n\t}\n\n\tconst handleOnSubmit = (event) => {\n\t\tevent.preventDefault();\n\t\ttoggle();\n\t\tlet payload = {funds: tempFund, type: event.currentTarget.getAttribute('data-value')};\n\t\thandleSubmit(payload);\n\t}\n\n\tuseEffect(() => {\n\t\tsetTempFund(fundList);\n\t}, [fundList, modal]);\n\n\tuseEffect(() => {\n\t\tsetIsOverLimit(tempFund.length > 10 || tempFund.length < 1);\n\t}, [tempFund, modal]);\n\n\tconst handleDragEnd = (e) => {\n\t\tif (!e.destination) return;\n\t\tlet tempData = Array.from(tempFund);\n\t\tlet [source_data] = tempData.splice(e.source.index, 1);\n\t\ttempData.splice(e.destination.index, 0, source_data);\n\t\tsetTempFund(tempData);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tisTabletOrMobile\n\t\t\t\t\t\t\t?\t

เปรียบเทียบกองทุน

\n\t\t\t\t\t\t\t:\t

เปรียบเทียบกองทุน

\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tisTabletOrMobile\n\t\t\t\t\t\t\t?\t<>\n\t\t\t\t\t\t\t\t\t
ชื่อ
\n\t\t\t\t\t\t\t\t\t
ประเภท
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t:\t<>\n\t\t\t\t\t\t\t\t\t
ชื่อ
\n\t\t\t\t\t\t\t\t\t
ประเภท
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t(provided) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttempFund.map((temp, index) => {\n\t\t\t\t\t\t\t\t\t\t\tconst CategoryIcon = iFundCategory[temp.categoryCode];\n\t\t\t\t\t\t\t\t\t\t\tconst fundIconStyle = {\n\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: (!!CategoryIcon && temp.color) ? temp.color : '#B9B9B9',\n\t\t\t\t\t\t\t\t\t\t\t\tcolor: 'white',\n\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t(provided) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!!CategoryIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&& \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisTabletOrMobile\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t?\t
{temp.fundCode || temp.thailandFundCode}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t:\t
{temp.fundCode || temp.thailandFundCode}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

{temp.categoryName}

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tเลือกแล้ว {tempFund.length} กอง\n\t\t\t\t\t\t\t*เลือกกองทุนเปรียบเทียบได้สูงสุด 10 กองทุน\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tเปรียบเทียบข้อมูล\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tเปรียบเทียบกราฟ\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default AddCompareItemModal;\n","/* main react */\nimport React from 'react';\n\n/* ui component */\nimport { ListGroupItem } from 'reactstrap';\nimport * as iFundCategory from '../icons/fund-category';\n\nconst SearchItem2 = ({ handleClick, data, id }) => {\n const { fundId, fundCode, thailandFundCode, categoryName, categoryNameTh, categoryCode, color } = data;\n\n const handleOnClick = (event) => {\n event.stopPropagation();\n handleClick(event)\n };\n \n const CategoryIcon = iFundCategory[categoryCode];\n const fundIconStyle = {\n backgroundColor: color ?? '#B9B9B9', // risk level's color 0\n color: 'white',\n };\n \n return (\n \n
\n \n \n {\n !!CategoryIcon\n && \n }\n \n {thailandFundCode ?? fundCode}\n \n {categoryName ?? categoryNameTh}\n
\n \n );\n};\n\nexport default SearchItem2;\n","/* main react */\nimport React, { useState, useEffect, useRef } from \"react\";\n\n/* reducer, selector, action */\n/* helper function */\nimport _ from \"underscore\";\n\n/* ui component */\nimport { Input, ListGroup } from \"reactstrap\";\nimport { CancelIcon, SearchIcon } from \"../icons/icons\";\n\n/* page component */\nimport SearchItem2 from \"./search-item-v2.component\";\n\nimport { searchInformation } from \"../../_services/search.services\";\n\nconst SearchFund = (props) => {\n const { id, handleSubmit, placeholder, className } = props;\n\n const [isDisplay, setIsDisplay] = useState(false);\n const [isDisplayCancel, setIsDisplayCancel] = useState(false);\n const [searchList, setSearchList] = useState([]);\n\n const refId = useRef(null);\n\n const updateItemList = (itemList) => {\n setSearchList(itemList);\n };\n\n const clearItemList = () => {\n setSearchList([]);\n };\n\n const getItemList = async (keyword) => {\n try {\n const res = await searchInformation(keyword);\n updateItemList(res.data.fundInformation);\n if (!isDisplay) {\n setIsDisplay(true);\n }\n } catch (err) {\n clearItemList();\n }\n };\n\n useEffect(() => {\n function handler(event) {\n if (!refId.current?.contains(event.target)) {\n // change starts here\n setIsDisplay(false);\n\n // change starts here\n } else if (!isDisplay) {\n setIsDisplay(true);\n }\n }\n window.addEventListener(\"click\", handler);\n return () => window.removeEventListener(\"click\", handler);\n }, []);\n\n const clearSearch = () => {\n let input = refId.current.querySelector(\"input\");\n input.value = \"\";\n };\n\n const preventKey = (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n };\n\n const handleSearch = (e) => {\n // prevent re-render from button.\n e.preventDefault();\n\n // get value from current element and set initial setting.\n const { value } = e.target;\n let hasFocus = false;\n let focusingIndex = 0;\n\n // get elements in id is search-list-${id}\n let currentElements = document.getElementById(`search-list-${id}`);\n let currentResult = currentElements.getElementsByClassName(\"result-item\");\n\n switch (e.key) {\n case \"ArrowDown\":\n if (currentResult.length > 0) {\n Array.from(currentResult).forEach((element, index) => {\n if (element.classList.contains(\"focusing\")) {\n hasFocus = true;\n focusingIndex = index;\n }\n });\n\n if (!hasFocus) {\n currentResult[0].classList.add(\"focusing\");\n } else if (focusingIndex >= currentResult.length - 1) {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[0].classList.add(\"focusing\");\n } else {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[focusingIndex + 1].classList.add(\"focusing\");\n }\n }\n break;\n\n case \"ArrowUp\":\n if (currentResult.length > 0) {\n Array.from(currentResult).forEach((element, index) => {\n if (element.classList.contains(\"focusing\")) {\n hasFocus = true;\n focusingIndex = index;\n }\n });\n\n if (!hasFocus) {\n currentResult[currentResult.length - 1].classList.add(\"focusing\");\n } else if (focusingIndex <= 0) {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[currentResult.length - 1].classList.add(\"focusing\");\n } else {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[focusingIndex - 1].classList.add(\"focusing\");\n }\n }\n break;\n\n case \"ArrowLeft\" || \"ArrowRight\": // prevent new fetch APIs\n break;\n\n case \"Enter\": //\n if (currentResult.length > 0) {\n Array.from(currentResult).forEach((element) => {\n if (element.classList.contains(\"focusing\")) {\n const { value } = element.dataset;\n selectItem(value);\n }\n });\n }\n\n // e.target.blur();\n break;\n\n default:\n // Fetch APIs\n if (value === \"\" || value === null) {\n // Fetch init data\n getItemList(\" \");\n setIsDisplayCancel(false);\n } else {\n Array.from(currentResult).forEach((element, index) => {\n currentResult[index].classList.remove(\"focusing\");\n });\n\n // Fetch data from keyword\n getItemList(value);\n if (currentResult.length > 0) {\n currentResult[0].classList.add(\"focusing\");\n }\n\n setIsDisplayCancel(true);\n }\n\n break;\n }\n };\n\n const handleClickItem = (event) => {\n const { value } = event.currentTarget.dataset;\n selectItem(value);\n };\n\n const clearInput = () => {\n let input = refId.current.querySelector(\"input\");\n input.value = \"\";\n input.click();\n };\n\n const selectItem = (item) => {\n handleSubmit(item);\n setIsDisplay(false);\n clearSearch();\n };\n\n return (\n \n \n \n \n \n \n \n \n\n \n
\n {searchList && isDisplay\n ? searchList.map((item, index) => (\n \n ))\n : null}\n
\n \n );\n};\n\nexport default SearchFund;\n","module.exports = __webpack_public_path__ + \"static/media/logo-kss.6d710b24.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo-ifund.79c64a7f.png\";","import { transferConstants } from '../_constants/transfer.constants';\n\n// Toggled Buy-Sell Modals Action\nexport const toggleTransferModal = () => ({\n type: transferConstants.TOGGLED_TRANSFER_MODAL\n});\n","import { createSelector } from 'reselect';\n\nexport const selectTransfer = (state) => state.transfer;\n\nexport const selectIsOpenTransferModal = createSelector([selectTransfer], (transfer) => transfer.isOpenModal);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { createStructuredSelector } from 'reselect';\n\nimport { toggleSideBar } from '../../_actions/main.actions';\nimport { mainSelectors } from '../../_selectors';\n\nconst Toggler = (props) => {\n const { isOpenSidebar, toggleSidebar, isTabletOrMobile } = props;\n\n if (isTabletOrMobile) {\n if (isOpenSidebar) {\n document.body.classList.add('sidebar-closed');\n } else {\n document.body.classList.remove('sidebar-closed');\n }\n } else {\n if (isOpenSidebar) {\n document.body.classList.remove('sidebar-closed');\n } else {\n document.body.classList.add('sidebar-closed');\n } \n }\n\n return (\n <>\n \n \n );\n};\n\nconst mapStateToProps = createStructuredSelector({\n isOpenSidebar: mainSelectors.selectIsOpenSideBar,\n isTabletOrMobile: mainSelectors.selectIsMobileScreenSize\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n toggleSidebar: () => dispatch(toggleSideBar())\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Toggler);\n","/* main react */\nimport React from 'react';\nimport { connect } from 'react-redux';\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from 'reselect';\nimport { selectSearchFilters } from '../../_selectors/advance-search.selectors';\n\n/* ui component */\nimport { Modal, ModalHeader, ModalBody, ListGroup, Input } from 'reactstrap';\nimport { CancelIcon, SearchIcon } from '../icons/icons';\n\n/* page component */\nimport SearchItem from './search-item.component';\n\nconst MainSearchModal = (props) => {\n\tconst {\n\t\tisModalOpen,\n\t\thandleToggle,\n\t\tsearchList,\n\t\thandleSelectSearch,\n\t\thandleSearch,\n\t\tselectFund\n\t} = props;\n\n\tconst handleClickResult = (fundId) => {\n\t\tselectFund(fundId);\n\t\thandleToggle();\n\t}\n\n\tconst handleFocusInput = () => {\n\t\tlet modalBody = document.getElementById('main-nav-search');\n\t\tif (modalBody) {\n\t\t\tmodalBody.querySelector('#search-input').click();\n\t\t\tmodalBody.querySelector('#search-input').focus();\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tค้นหา\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
กองทุน
\n\t\t\t\t\t
ประเภทกองทุน
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t{\n\t\t\t\t\tsearchList.fundInformation\n\t\t\t\t\t? searchList.fundInformation.map((item, index) => (\n\t\t\t\t\t\t\t handleClickResult(item.fundId)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))\n\t\t\t\t\t: null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n\nconst mapStateToProps = createStructuredSelector({\n\tsearchFilters: selectSearchFilters,\n});\n\nexport default connect(mapStateToProps)(MainSearchModal);\n","/* main react */\nimport React, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { withRouter, NavLink, Link } from \"react-router-dom\";\n\n/* library */\nimport { debounce } from \"lodash\";\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from \"reselect\";\nimport { mainSelectors } from \"../../_selectors\";\nimport {\n selectMainNavsSearchList,\n selectMainNavsSearchStatus,\n} from \"../../_selectors/search.selectors\";\nimport {\n searchStart,\n updateSearch,\n clearSearch,\n removeSearch,\n} from \"../../_actions/search.actions\";\nimport { toggleSideBar } from \"../../_actions/main.actions\";\n\n/* ui component */\nimport { Navbar, NavbarBrand, Input, ListGroup } from \"reactstrap\";\nimport {\n CartIcon,\n NotificationIcon,\n SearchIcon,\n HomeIcon,\n} from \"../icons/icons\";\nimport Logo from \"../../assets/logo-kss.svg\";\n\n/* page component */\nimport Toggler from \"./toggler.component\";\nimport SearchItem from \"../search/search-item.component\";\nimport MainSearchModal from \"../search/main-search-modal.component\";\n\nconst MainNavbar = (props) => {\n const {\n searchList,\n searchStatus,\n searchStart,\n updateSearch,\n clearSearch,\n removeSearch,\n history,\n isTabletOrMobile,\n isOpenSidebar,\n toggleSidebar,\n } = props;\n\n /* search on mobile */\n const [isSearchModal, setIsSearchModal] = useState(false);\n const toggleSearchModal = () => setIsSearchModal(!isSearchModal);\n /* end search on mobile */\n\n const preventKey = (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n }\n };\n\n // must refactored\n const disableSearch = () => {\n document.body.addEventListener(\"click\", (e) => {\n if (e.target.closest(\"#main-nav-search\") === null) {\n clearSearch();\n removeSearch();\n }\n });\n };\n\n const keyPressDropdown = (e) => {\n e.preventDefault();\n\n let hasFocus = false;\n let focusingIndex = 0;\n let currentResult = document.getElementsByClassName(\"result-item\");\n\n switch (e.key) {\n case \"ArrowDown\":\n if (currentResult.length > 0) {\n Array.from(currentResult).forEach((element, index) => {\n if (element.classList.contains(\"focusing\")) {\n hasFocus = true;\n focusingIndex = index;\n }\n });\n\n if (!hasFocus) {\n currentResult[0].classList.add(\"focusing\");\n } else if (focusingIndex >= currentResult.length - 1) {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[0].classList.add(\"focusing\");\n } else {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[focusingIndex + 1].classList.add(\"focusing\");\n }\n }\n break;\n\n case \"ArrowUp\":\n if (currentResult.length > 0) {\n Array.from(currentResult).forEach((element, index) => {\n if (element.classList.contains(\"focusing\")) {\n hasFocus = true;\n focusingIndex = index;\n }\n });\n\n if (!hasFocus) {\n currentResult[currentResult.length - 1].classList.add(\"focusing\");\n } else if (focusingIndex <= 0) {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[currentResult.length - 1].classList.add(\"focusing\");\n } else {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[focusingIndex - 1].classList.add(\"focusing\");\n }\n }\n break;\n\n case \"Enter\":\n if (currentResult.length > 0) {\n Array.from(currentResult).forEach((element) => {\n if (element.classList.contains(\"focusing\")) {\n let currentId = element.getAttribute(\"data-route-id\");\n selectFund(currentId);\n }\n });\n }\n\n clearSearch();\n removeSearch();\n e.target.blur();\n break;\n\n default:\n break;\n }\n };\n\n const debounceTextSearch = debounce((e) => {\n const { value } = e.target;\n let currentResult = document.getElementsByClassName(\"result-item\");\n if (value === \"\" || value == null) {\n updateSearch(\" \");\n searchStart(\" \");\n } else {\n Array.from(currentResult).forEach((element, index) => {\n currentResult[index].classList.remove(\"focusing\");\n });\n\n updateSearch(value);\n searchStart(value);\n\n if (currentResult.length > 0) {\n currentResult[0].classList.add(\"focusing\");\n }\n }\n }, 500);\n\n const handleSearch = (e) => {\n e.persist();\n if ([\"ArrowDown\", \"ArrowUp\", \"Enter\"].includes(e.key)) {\n keyPressDropdown(e);\n } else {\n debounceTextSearch(e);\n }\n };\n\n const handleSelectSearch = (e) => {\n e.preventDefault();\n\n const { value } = e.target;\n if (value === \"\" || value == null) {\n updateSearch(\" \");\n searchStart(\" \");\n }\n };\n\n useEffect(() => {\n clearSearch();\n disableSearch();\n\n return () => {\n clearSearch();\n };\n }, []);\n\n const selectFund = (fundId) => {\n document.getElementById(\"search-input\").value = \"\";\n removeSearch();\n history.push(`/main/fund_information/${fundId}`);\n };\n\n return (\n <>\n {isTabletOrMobile && (\n \n )}\n
\n \n
\n
\n \n
\n \"krungsri_securities_logo\"\n
\n \n
\n
\n {!isTabletOrMobile && (\n
\n \n \n \n \n
\n {searchList.fundInformation\n ? searchList.fundInformation.map((item, index) => (\n selectFund(item.fundId)}\n />\n ))\n : null}\n
\n
\n )}\n
\n
    \n {isTabletOrMobile && (\n
  • \n \n \n \n
  • \n )}\n
  • \n \n \n \n \n \n
  • \n\n {/*
  • \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t3\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
  • */}\n
\n
\n
\n
\n \n );\n};\n\nconst mapStateToProps = createStructuredSelector({\n searchStatus: selectMainNavsSearchStatus,\n searchList: selectMainNavsSearchList,\n isTabletOrMobile: mainSelectors.selectIsMobileScreenSize,\n isOpenSidebar: mainSelectors.selectIsOpenSideBar,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n searchStart: (keyword) => dispatch(searchStart(keyword)),\n updateSearch: (searchText) => dispatch(updateSearch(searchText)),\n removeSearch: () => dispatch(removeSearch()),\n clearSearch: () => dispatch(clearSearch()),\n toggleSidebar: () => dispatch(toggleSideBar()),\n});\n\nexport default withRouter(\n connect(mapStateToProps, mapDispatchToProps)(MainNavbar)\n);\n","/* main react */\nimport React, { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from 'reselect';\nimport { mainSelectors } from '../../_selectors/main.selectors';\nimport { selectSignInStatus, selectUserInformation, selectUserType } from '../../_selectors/authentication.selectors';\nimport { signInStart, verify2FAStart } from '../../_actions/authentication.actions';\n\n/* ui component */\nimport { SignInIcon, UserIcon } from '../../_components/icons/icons';\n\n/* image list */\nimport iFundLogo from '../../assets/logo-ifund.png';\n\n/* page component */\nimport SignInModal from './sign-in-modal.component';\n\nconst SignInAndSignUp = (props) => {\n\tconst { isOpenSidebar, signInStart, signInStatus, user, userType, isTabletOrMobile } = props;\n\tconst [signInModal, setSignInModal] = useState(false);\n\tconst toggleSignInModal = () => setSignInModal(!signInModal);\n\n\tconst isDSAUserType = ['DSA'].includes(userType);\n\tconst isSSOUserType = ['SSO'].includes(userType);\n\t\n\tuseEffect(() => { }, [signInStatus]);\n\n\treturn (\n\t\t<>\n\t\t\t{signInStatus ? (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\tprofile-image\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tLv.
\n\t\t\t\t\t\t\t\t\t7\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
BADGE
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
*/}\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\tprofile-image\n\t\t\t\t\t\t
*/}\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{/* \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t */}\n\t\t\t\t\t\t\t{isDSAUserType || isSSOUserType ?\n\t\t\t\t\t\t\t\tuser?.displayName ?? '-' : user?.username ?? '-'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t
{userAccounts.length > 0 ? accountList.map((account) => {return userAccounts.find((current) => current === account.accountNumber) ? account.name : null }) : '-'}
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tLv.
\n\t\t\t\t\t\t\t\t\t\t7\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t48 / 200 XP\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
BADGE
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
*/}\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

เข้าสู่ระบบ

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

เปิดบัญชี

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
หรือ
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tเปิดบัญชี\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nconst mapStateToProps = createStructuredSelector({\n\tsignInStatus: selectSignInStatus,\n\tisOpenSidebar: mainSelectors.selectIsOpenSideBar,\n\tuser: selectUserInformation,\n\tuserType: selectUserType,\n\tisTabletOrMobile: mainSelectors.selectIsMobileScreenSize\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n\tsignInStart: (credential) => dispatch(signInStart(credential)),\n\tverify2FAStart: (credential) => dispatch(verify2FAStart(credential))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SignInAndSignUp);\n","import React from 'react';\nimport SignInAndSignUp from '../../Pages/sign-in-and-sign-up/sign-in-and-sign-up.component';\n\nconst Profile = () => {\n\treturn (\n\t\t
\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default Profile;\n","/* main react */\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { NavLink } from 'react-router-dom';\nimport { NavItem } from 'reactstrap';\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from 'reselect';\nimport { toggleActivePage } from '../../_actions/main.actions';\nimport { toggleOrderRequestModal, updateActiveTabOrderRequestModal } from '../../_actions/order-request.actions';\nimport { toggleTransferModal } from '../../_actions/transfer.actions';\n\nimport { mainSelectors } from '../../_selectors';\nimport { selectIsOpenOrderRequestModal } from '../../_selectors/order-request.selectors';\nimport { selectIsOpenTransferModal } from '../../_selectors/transfer.selectors';\n\n/* ui component */\nimport iconConvertor from '../../_helpers/icon-convertor';\n\nconst Menu = (props) => {\n\tconst { \n\t\titem,\n\t\ttoggleActivePage, \n\t\ttoggleOrderRequestModal,\n\t\tupdateOrderRequestModalTab,\n\t\ttoggleTransferModal,\n\t\tisActive\n\t} = props;\n\tconst IconName = iconConvertor(item.icon);\n\n\tconst toggleMobileSidebar = (e) => {\n\t\tlet queryMobileBody = e.currentTarget.closest('#cns-mobile-content-wrapper');\n\t\tif (queryMobileBody) {\n\t\t\tqueryMobileBody.querySelector('.navbar-toggler').click();\n\t\t}\n\t}\n\n\tconst handleToggleOrderRequestModal = (event) => {\n\t\tupdateOrderRequestModalTab({activeTab: event.currentTarget.dataset.tab});\n\t\ttoggleOrderRequestModal();\n\t}\n\n\tif (item.path === '/order-confirm') {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{IconName} {item.name}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else if (item.path === '/transfer') {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{IconName} {item.name}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t{/* */}\n\t\t\t\t toggleActivePage(item.component)} title={item.name}>\n\t\t\t\t\t{IconName} {item.name}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nconst mapStateToProps = createStructuredSelector({\n\tcurrentPage: mainSelectors.selectCurrentPage,\n\tisOpenModal: selectIsOpenOrderRequestModal,\n\tisOpenTransferModal: selectIsOpenTransferModal\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n\ttoggleActivePage: (currentPage) => dispatch(toggleActivePage(currentPage)),\n\ttoggleOrderRequestModal: () => dispatch(toggleOrderRequestModal()),\n\tupdateOrderRequestModalTab: (tab) => dispatch(updateActiveTabOrderRequestModal(tab)),\n\ttoggleTransferModal: () => dispatch(toggleTransferModal())\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Menu);\n","/* main react */\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from 'reselect';\nimport { signOut } from '../../_actions/authentication.actions';\nimport { selectLogInType, selectSignInStatus } from '../../_selectors/authentication.selectors';\n\n/* helper function */\nimport classnames from 'classnames';\n\n/* ui component */\nimport { SignOutIcon } from '../icons/icons';\n\n/* page component */\nimport Profile from '../profile/profile.component';\nimport Menu from '../menus/menu.component';\nimport { useHistory } from 'react-router-dom';\nimport { selectIsOpenTransferModal } from '../../_selectors/transfer.selectors';\nimport { selectIsOpenOrderRequestModal } from '../../_selectors/order-request.selectors';\nimport { mainSelectors } from '../../_selectors';\n\nconst Sidebar = (props) => {\n const {\n routes,\n signInStatus,\n signOut,\n currentPage,\n isOpenModal,\n isOpenTransferModal,\n logInType\n } = props;\n const history = useHistory();\n const userSection = routes.filter((items) => items.section === 'user' && (signInStatus ? true : !items.isLoggedIn));\n const mainSection = routes.filter((items) => items.section === 'main' && (signInStatus ? true : !items.isLoggedIn));\n const otherSection = routes.filter((items) => items.section === 'other' && (signInStatus ? true : !items.isLoggedIn));\n // const miscellaneousSection = routes.filter((items) => items.section === 'miscellaneous');\n\n const location = useLocation();\n const tranformLocation = location.pathname.replace('/main', '');\n\n const handleSignOut = () => {\n // history.push('/'); // redirect to home page.\n history.push('/main/sign_out');\n }\n\n useEffect(() => { }, [signInStatus, location.key]);\n\n let activeTab;\n if (isOpenModal) {\n activeTab = routes.find(x => x.path === '/order-confirm');\n } else if (isOpenTransferModal) {\n activeTab = routes.find(x => x.path === '/transfer');\n } else {\n activeTab = routes.find(x => x.path === tranformLocation) ?? routes.find(x => x.component === currentPage);\n }\n\n return (\n \n );\n};\n\nconst mapStateToProps = createStructuredSelector({\n currentPage: mainSelectors.selectCurrentPage,\n signInStatus: selectSignInStatus,\n isOpenModal: selectIsOpenOrderRequestModal,\n isOpenTransferModal: selectIsOpenTransferModal,\n logInType: selectLogInType\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n signOut: () => dispatch(signOut())\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Sidebar);\n","/* main react */\nimport React, { useState, useEffect } from \"react\";\n\n/* helper function */\nimport { onlyNumberRegEx } from \"../../../_utils/general.utils\";\n\n/* ui component */\nimport { Input } from \"reactstrap\";\n\nexport const NumberInput = (props) => {\n const {\n initValue = \"\",\n className,\n handleChange,\n handleKey,\n isDisabled = false,\n } = props;\n\n const [currentValue, setCurrentValue] = useState(\"\");\n const formatChangeValue = (event) => {\n const rawValue = event.currentTarget.value;\n\n if (!rawValue.trim()) {\n setCurrentValue(\"\");\n handleChange(\"\");\n return;\n }\n\n if (rawValue !== \"\") {\n const submitValue = parseFloat(rawValue.replace(onlyNumberRegEx, \"\"));\n const formatValue = new Intl.NumberFormat(\"en\", {\n maximumFractionDigits: 5,\n }).format(submitValue);\n const dotCount = rawValue.split(\".\").length - 1;\n\n if (dotCount === 1 && rawValue.endsWith(\".\")) {\n setCurrentValue(formatValue + \".\" + rawValue.split(\".\")[1]);\n } else if (rawValue.endsWith(\"0\") && rawValue.includes(\".\")) {\n setCurrentValue(\n formatValue.split(\".\")[0] + \".\" + rawValue.split(\".\")[1]\n );\n } else {\n setCurrentValue(formatValue);\n }\n\n handleChange(submitValue);\n }\n };\n\n useEffect(() => {\n if (parseFloat(currentValue.replace(onlyNumberRegEx, \"\")) !== initValue) {\n setCurrentValue(\n new Intl.NumberFormat(\"en\", { maximumFractionDigits: 5 }).format(\n initValue\n )\n );\n }\n }, [initValue]);\n\n return (\n <>\n \n \n );\n};\n","/* main react */\nimport React, { useState, useEffect, useImperativeHandle } from 'react';\nimport { useFormik } from 'formik';\nimport * as Yup from 'yup';\n\n/* services */\nimport { fetchChannelByAccount } from '../../../_services/order-request.services';\nimport { fetchCalendarThaiHolidays } from '../../../_services/calendar.services';\n\n/* helper function */\nimport { sub, add } from 'date-fns';\nimport { compareDate } from '../../../_helpers/format-date-time';\n\n/* ui component */\nimport { FormGroup, Form } from 'reactstrap';\nimport { DateInput } from '../../../_components/forms/inputs/input-date-time.component';\nimport { CaretIcon } from '../../../_components/icons/icons';\nimport SingleSelectDropdown from '../../../_components/dropdown/single-select-dropdown.component';\nimport { handlePreventDefault } from '../../../_utils/order-request.utils';\nimport { NumberInput } from '../../../_components/forms/inputs/input-format-number.component';\n\nconst BuySingleForm = (props) => {\n\tconst {\n\t\trefId,\n\t\tfundInfo,\n\t\tisSAAccount,\n\t\tuserAccounts,\n\t\tupdatePropertiesHandler\n\t} = props;\n\n\tconst initFormikValue = {\n\t\tsettleDate: new Date(new Date().toDateString()),\n\t\tamount: '',\n\t\tpayType: null,\n\t\tpaymentChannel: null,\n\t};\n\n\tconst validate = Yup.object().shape({\n\t\tsettleDate: Yup.date()\n\t\t.min(fundInfo?.buyDate\n\t\t\t? new Date(new Date(fundInfo.buyDate).toDateString())\n\t\t\t: new Date(new Date().toDateString()),\n\t\t\t\t'ไม่สามารถเลือกวันที่ย้อนหลังได้'),\n\t\tamount: Yup.number()\n\t\t\t.required('โปรดระบุจำนวน')\n\t\t\t.typeError('โปรดระบุจำนวน')\n\t\t\t.min(fundInfo?.fund ? fundInfo.minimum : 0, `ยอดขั้นต่ำ ${fundInfo?.fund ? fundInfo.minimum : 0}`),\n\t\tpayType: Yup.string()\n\t\t\t.required('โปรดเลือกช่องทางการชำระเงิน').nullable(),\n\t\tpaymentChannel: Yup.mixed()\n\t\t\t.when('payType',{\n\t\t\t\tis: (payType) => payType != 'C' && payType != null,\n\t\t\t\tthen: Yup.string().required('โปรดเลือกบัญชี').nullable()\n\t\t\t}),\n\t});\n\n\tconst formik = useFormik({\n\t\tinitialValues: initFormikValue,\n\t\tenableReinitialize: true,\n\t\tvalidationSchema: validate,\n\t\tonReset: () => {\n\t\t\tupdatePropertiesHandler();\n\t\t},\n\t\tonSubmit: (values) => {\n\t\t\tlet tempPaymentChannel = JSON.parse(values.paymentChannel); // !!USE THIS MESSAGE WHEN API DONT NEED BANK ACCOUNT AND BANK CODE IN CASE payType === 'C' --> values.payType && values.payType != 'C' ? JSON.parse(values.paymentChannel) : null;\n\t\t\tlet temp = new Object({\n\t\t\t\t...values,\n\t\t\t\taccountType: isSAAccount ? 'S' : fundInfo?.fund?.accountType,\n\t\t\t\taccountNumber: userAccounts[0]?.accountNumber,\n\t\t\t\tfundCode: fundInfo?.fund?.code,\n\t\t\t\tbankCode: tempPaymentChannel?.[0],\n\t\t\t\tbankAccount: tempPaymentChannel?.[1]\n\t\t\t});\n\n\t\t\tdelete temp.paymentChannel;\n\n\t\t\tupdatePropertiesHandler(temp);\n\t\t}\n\t});\n\n\t// /* start mock select input list */\n\tconst purchaseTypeOptions = fundInfo?.payTypes?.map((option) => ({\n\t\t'displayName': option.name,\n\t\t'code': option.code\n\t})) ?? [];\n\n\tconst [purchaseByOptions, setPurchaseByOptions] = useState([]);\n\t/* end select input list */\n\n\tconst getChannel = (payType) => {\n\t\tlet payload = {\n\t\t\taccountNumber: userAccounts[0]?.accountNumber,\n\t\t\tfundId: fundInfo?.fundId,\n\t\t\tpaymentOption: payType\n\t\t}\n\n\t\tfetchChannelByAccount(payload)\n\t\t\t.then(res => {\n\t\t\t\tlet temp = res.data.map(item => ({\n\t\t\t\t\tdisplayName: item.displayedText,\n\t\t\t\t\tcode: JSON.stringify([item.bankCode, item.bankAccountNumber])\n\t\t\t\t}))\n\t\t\t\tsetPurchaseByOptions(temp);\n\t\t\t\tformik.setFieldValue('paymentChannel', payType === 'C' ? temp[0].code : undefined);\n\t\t\t})\n\t\t\t.catch(err => {\n\t\t\t\tsetPurchaseByOptions([]);\n\t\t\t\tformik.setFieldValue('paymentChannel', undefined);\n\t\t\t});\n\t}\n\n\tconst updateSingleSelected = (dropdown) => {\n\t\tlet dropdownTarget = dropdown.currentTarget.dataset.type;\n\t\tlet dropdownValue = dropdown.currentTarget.dataset.value !== undefined ? dropdown.currentTarget.dataset.value : null;\n\n\t\tif (dropdownTarget === 'payType') { //&& dropdownValue !== 'C'\n\t\t\tgetChannel(dropdownValue);\n\t\t}\n\n\t\tformik.setFieldValue(`${dropdownTarget}`, dropdownValue);\n\t};\n\n\tconst isSettleDateEqualLastYear = compareDate(formik.values.settleDate, new Date(new Date().getFullYear(), 11, 31))\n\t// date caret with holidays check\n\tconst [holidays, setHolidays] = useState([]);\n\tasync function getThaiHolidays() {\n await fetchCalendarThaiHolidays()\n .then((response) => {\n setHolidays(response.data);\n })\n\t\t\t.catch((err) => {\n\t\t\t\tsetHolidays([]);\n\t\t\t});\n\t}\n\tuseEffect(() => {\n\t\tgetThaiHolidays();\n\t}, []);\n\tconst handleDateCaret = (caretType) => {\n\t\tif (caretType === 'next') {\n\t\t\tlet nextDate = add(formik.values.settleDate, {days: 1});\n\t\t\tholidays.forEach(hol => {\n\t\t\t\tlet holidayDate = new Date(hol);\n\t\t\t\twhile (compareDate(holidayDate, nextDate)) {\n\t\t\t\t\tnextDate = add(nextDate, {days: 1});\n\t\t\t\t}\n\t\t\t});\n\t\t\tformik.setFieldValue('settleDate', nextDate);\n\t\t} else {\n\t\t\tlet prevDate = sub(formik.values.settleDate, {days: 1});\n\t\t\tholidays.slice().reverse().forEach(hol => {\n\t\t\t\tlet holidayDate = new Date(hol);\n\t\t\t\twhile (compareDate(holidayDate, prevDate)) {\n\t\t\t\t\tprevDate = sub(prevDate, {days: 1});\n\t\t\t\t}\n\t\t\t});\n\t\t\tformik.setFieldValue('settleDate', prevDate);\n\t\t}\n\t};\n\n\tuseImperativeHandle(refId, () => ({\n\t\tSubmit: async () => {\n\t\t\tawait formik.submitForm();\n\t\t}\n\t}));\n\n\tuseEffect(() => {\n\t\tif (!fundInfo) {\n\t\t\tconst { amount, ...fieldToReset } = initFormikValue\n\t\t\tformik.setValues({ ...formik.values, ...fieldToReset })\n\t\t\tsetTimeout(() => formik.setErrors({}))\n\t\t} else {\n\t\t\tformik.setFieldValue('settleDate', fundInfo?.buyDate\n\t\t\t? new Date(new Date(fundInfo.buyDate).toDateString())\n\t\t\t: new Date(new Date().toDateString()))\n\t\t\tlet ATSItem = purchaseTypeOptions.find(item => item.code === 'A');\n\t\t\tif (ATSItem) {\n\t\t\t\tformik.setFieldValue('payType', 'A');\n\t\t\t\tgetChannel('A');\n\t\t\t}\n\t\t}\n\t}, [fundInfo]);\n\n\tuseEffect(() => {\n\t\tif (formik.values.payType === 'A') {\n\t\t\tformik.setFieldValue('paymentChannel', purchaseByOptions[0].code);\n\t\t\tsetTimeout(() => formik.setFieldTouched('paymentChannel', true))\n\t\t}\n\t}, [purchaseByOptions]);\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
วันที่ทำรายการ
\n\t\t\t\t\t
\n\t\t\t\t\t\t new Date(fundInfo.buyDate).getTime() : true)}\n\t\t\t\t\t\t\tclassName='cns-btn btn-md btn-icon square secondary'\n\t\t\t\t\t\t\ttype='button'\n\t\t\t\t\t\t\tonClick={() => handleDateCaret('prev')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {formik.setFieldValue('settleDate', currentTime)}}\n\t\t\t\t\t\t\t\tbgColor='gray'\n\t\t\t\t\t\t\t\tshowIcon={true}\n\t\t\t\t\t\t\t\tprevYear={0}\n\t\t\t\t\t\t\t\tisDisabledPast\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t handleDateCaret('next')}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\tformik.errors.settleDate\n\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{formik.errors.settleDate}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
จำนวน
\n\t\t\t\t\t
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tformik.setFieldValue('amount', value);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\thandleKey={handlePreventDefault}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\tบาท\n\t\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\tformik.errors.amount\n\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{formik.errors.amount}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
ชำระโดย
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\tformik.errors.payType\n\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{formik.errors.payType}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\t(formik.values.payType && formik.values.payType !== 'C')\n\t\t\t\t\t\t?\t<>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tformik.errors.paymentChannel\n\t\t\t\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{formik.errors.paymentChannel}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t:\t<>\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default BuySingleForm;\n","import React from 'react';\n\nexport const ButtonList = ({ id, classname, itemList, data, type, handleChange }) => {\n\tif (!itemList?.length) {\n\t\treturn <>;\n\t}\n\t\n\treturn itemList.map((item, index) => {\n\t\treturn\t\n\t\t\t\t\t{item.label}\n\t\t\t\t\n\t})\n}","/* main react */\nimport React, { useState, useEffect } from 'react';\n\n/* helper function */\nimport classnames from 'classnames';\n\n/* ui component */\nimport { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\nimport { CalendarIcon } from '../icons/icons';\nimport { ButtonList } from '../buttons/button-list';\n\nconst planType = [\n\t{label: 'ทุกเดือน', value: 'MONTHLY'},\n\t{label: 'ทุกสัปดาห์', value: 'WEEKLY'},\n\t{label: 'กำหนดเอง', value: 'CUSTOM'}\n];\n\nconst weekDays = [\n\t{label: 'วันจันทร์', value: 'MONDAY'}, \n\t{label: 'วันอังคาร', value: 'TUESDAY'}, \n\t{label: 'วันพุธ', value: 'WEDNESDAY'}, \n\t{label: 'วันพฤหัส', value: 'THURSDAY'}, \n\t{label: 'วันศุกร์', value: 'FRIDAY'},\n\t{label: 'วันเสาร์', value: 'SATURDAY'},\n\t{label: 'วันอาทิตย์', value: 'SUNDAY'}\n];\n\nconst monthList = [\n\t{label: 'ม.ค.', value: '1', value2: 'JANUARY'}, \n\t{label: 'ก.พ.', value: '2', value2: 'FEBUARY'}, \n\t{label: 'มี.ค.', value: '3', value2: 'MARCH'}, \n\t{label: 'เม.ย.', value: '4', value2: 'APRIL'}, \n\t{label: 'พ.ค.', value: '5', value2: 'MAY'}, \n\t{label: 'มิ.ย.', value: '6', value2: 'JUNE'}, \n\t{label: 'ก.ค.', value: '7', value2: 'JULY'}, \n\t{label: 'ส.ค.', value: '8', value2: 'AUGUST'}, \n\t{label: 'ก.ย.', value: '9', value2: 'SEPTEMBER'}, \n\t{label: 'ต.ค.', value: '10', value2: 'OCTOBER'}, \n\t{label: 'พ.ย.', value: '11', value2: 'NOVEMBER'}, \n\t{label: 'ธ.ค.', value: '12', value2: 'DECEMBER'}\n];\n\nconst PlanTimeDropdown = ({\n\tclassName,\n\tplaceholder = '',\n\tcurrentPlan,\n\tsubmitPlan\n}) => {\n\tconst PlanForm = ({ activeTab, data, handleChange }) => {\n\t\tif (!activeTab) {\n\t\t\tactiveTab = 'MONTHLY'\n\t\t}\n\n\t\tswitch (activeTab) {\n\t\t\tcase 'MONTHLY':\n\t\t\t\treturn \t
\n\t\t\t\t\t\t\t ({label: item+1, value: index+1}))}\n\t\t\t\t\t\t\t\tdata={data}\n\t\t\t\t\t\t\t\ttype={'DAYS'}\n\t\t\t\t\t\t\t\thandleChange={handleChange}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
\n\t\t\tcase 'WEEKLY':\n\t\t\t\treturn
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\tcase 'CUSTOM':\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t ({label: item+1, value: index+1}))}\n\t\t\t\t\t\t\t\tdata={data}\n\t\t\t\t\t\t\t\ttype={'DAYS'}\n\t\t\t\t\t\t\t\thandleChange={handleChange}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
เลือกเดือนที่ต้องการ
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn <>\n\t\t}\n\t}\n\n\tif (!currentPlan) {\n\t\tcurrentPlan = new Object({});\n\t}\n\t\n\tconst transformTextHandler = (data, placeholder) => {\n\t\tconst { planType, DAYS, WEEKS, MONTHS } = data;\n\t\tswitch (planType?.value) { \n\t\t\tcase 'MONTHLY': return DAYS.length ? `วันที่ ${DAYS?.join(', ')} ของ ${planType.label}` : placeholder;\n\t\t\tcase 'WEEKLY': return WEEKS.length ? `${WEEKS.map(x => weekDays.find(y => y.value === x).label).join(', ')} ของ ${planType.label}` : placeholder;\n\t\t\tcase 'CUSTOM': return DAYS.length && MONTHS.length ? `วันที่ ${DAYS.join(', ')} ของ ${MONTHS.map(x => monthList.find(y => y.value === x).label).join(', ')}` : placeholder;\n\t\t\tdefault: return placeholder ?? '-';\n\t\t}\n\t}\n\n\tconst [dropdownOpen, setDropdownOpen] = useState(false);\n\tconst toggleDropdown = () => setDropdownOpen(!dropdownOpen);\n\tconst [textDisplay, setTextDisplay] = useState(placeholder);\n\tconst [tempPlaned, setTempPlaned] = useState(currentPlan ?? {});\n\tconst [activeTab, setActiveTab] = useState('MONTHLY');\n\n\tconst togglePlanType = (tab) => {\n\t\tif (activeTab !== tab) {\n\t\t\tsetActiveTab(tab);\n\t\t}\n\t};\n\n\tconst handleChange = (e) => {\n\t\tconst element = e.target;\n\t\tconst { value, type } = e.target.dataset;\n\t\tlet tempData = new Object({...tempPlaned});\n\n\t\tconst isChecked = tempData[type]?.find(x => x === value) ?? false;\n\n\tif (activeTab === 'WEEKLY' || (activeTab === 'CUSTOM' && type === 'DAYS')) {\n\t\tif (isChecked) {\n\t\t\ttempData[type] = tempData[type]?.filter(x => x !== value);\n\t\t} else {\n\t\t\ttempData[type] = [value];\n\t\t}\n\t} else {\n\t\tif (isChecked) {\n\t\t\ttempData[type] = tempData[type]?.filter(x => x !== value);\n\t\t} else {\n\t\t\ttempData[type] = tempData[type]?.length ? [ ...tempData[type], value] : [value];\n\t\t}\n\t}\n\n\t\tsetTempPlaned(tempData)\n\t};\n\n\tconst handleCancel = () => {\n\t\tsetTempPlaned(currentPlan);\n\t};\n\n\tconst handleSubmit = (e) => {\n\t\tsetTextDisplay(transformTextHandler({\n\t\t\t...tempPlaned,\n\t\t\tplanType: planType?.find(x => x.value === activeTab)\n\t\t}, placeholder));\n\t\tsubmitPlan({\n\t\t\t...tempPlaned,\n\t\t\tplanType: planType?.find(x => x.value === activeTab)?.value?.toLowerCase()\n\t\t});\n\t\ttoggleDropdown();\n\t};\n\n\tuseEffect(() => { \n\t\tif (Object.keys(tempPlaned).length) { // Clear tempPlaned Object when change active tab.\n\t\t\tsetTempPlaned({});\n\t\t}\n\t}, [activeTab]);\n\n\tuseEffect(() => {\n\t\tif (!Object.keys(currentPlan).length) { // Set init active tab and set text display when curerntPlan is empty Object.\n\t\t\tsetActiveTab(planType[0].value);\n\t\t\tsetTextDisplay(placeholder);\n\t\t} else {\n\t\t\tsetTextDisplay(\n\t\t\t\ttransformTextHandler({\n\t\t\t\t\t...currentPlan, planType: planType?.find(x => x.value === currentPlan.planType.toUpperCase()) \n\t\t\t\t}, placeholder)\n\t\t\t);\n\t\t}\n\t}, [currentPlan]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t

\n\t\t\t\t\t{textDisplay}\n\t\t\t\t

\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
แผน
\n\t\t\t\t\t
\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tplanType.map(x => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\ttogglePlanType(x.value);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{x.label}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
เลือกวันที่ต้องการ
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tยกเลิก\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tตกลง\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n\nexport default PlanTimeDropdown;","/* main react */\nimport React, { useState, useEffect } from 'react';\n\n/* helper function */\nimport { formatDateTime } from '../../../_helpers/format-date-time';\nimport { Checkbox } from 'pretty-checkbox-react';\n\n/* ui component */\nimport { Dropdown, DropdownToggle, DropdownMenu } from 'reactstrap';\nimport { DateRangeInput } from '../../../_components/forms/inputs/input-date-time.component';\nimport { CaretIcon, CalendarIcon, CheckedIcon } from '../../../_components/icons/icons';\n\nexport const DateRangeDropdown = (props) => {\n\tconst { currentStartDate, currentEndDate, handleClick, className, isDisabledPast = false, nextYear = 0, prevYear } = props;\n\n\tconst [dropdownOpen, setDropdownOpen] = useState(false);\n\tconst toggleDropdown = () => setDropdownOpen(!dropdownOpen);\n\n\tconst [displayDate, setDisplayDate] = useState('');\n\n\tconst defaultDate = new Date(new Date().toDateString());\n\tconst [selectedDate, setSelectedDate] = useState({\n\t\tstartDate: defaultDate,\n\t\tendDate: defaultDate\n\t});\n\n\tconst handleSubmitDate = () => {\n\t\thandleClick({\n\t\t\tstartDate: selectedDate.startDate?.toJSON(),\n\t\t\tendDate: selectedDate.endDate?.toJSON() ?? null\n\t\t});\n\t\ttoggleDropdown();\n\t};\n\t\n\tconst handleResetDate = () => {\n\t\tsetSelectedDate({\n\t\t\tstartDate: currentStartDate ? new Date(currentStartDate) : null, \n\t\t\tendDate: currentEndDate ? new Date(currentEndDate) : null\n\t\t});\n\n\t\ttoggleDropdown();\n\t};\n\n\tconst toggleIsDisableEndDate = () => {\n\t\tsetSelectedDate({\n\t\t\t...selectedDate,\n\t\t\tendDate: selectedDate.endDate ? null : new Date(new Date().toDateString())\n\t\t});\n\t}\n\n\tuseEffect(() => {\n\t\tconst start = currentStartDate ? new Date(currentStartDate) : null;\n\t\tconst end = currentEndDate ? new Date(currentEndDate) : null;\n\t\t\n\t\t// Set Text Display when currentStartDate or currentEndDate has changed\n\t\tif (end !== null) {\n\t\t\tsetDisplayDate(`${formatDateTime.toThaiDate(formatDateTime.toJSONDate(start))} - ${formatDateTime.toThaiDate(formatDateTime.toJSONDate(end))}`);\n\t\t} else {\n\t\t\tsetDisplayDate(`${formatDateTime.toThaiDate(formatDateTime.toJSONDate(start))} - ตลอดไป`);\n\t\t}\n\n\t\tsetSelectedDate({\n\t\t\tstartDate: start, \n\t\t\tendDate: end\n\t\t});\n\t},[currentStartDate, currentEndDate]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t

\n\t\t\t\t\t{displayDate}\n\t\t\t\t

\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\t\tclassName='border-checkbox'\n\t\t\t\t\t\tchecked={!selectedDate.endDate ? true: false} // IsChecked When selectedDate is null\n\t\t\t\t\t\tonChange={() => toggleIsDisableEndDate()}>\n\t\t\t\t\t\tตลอดไป\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}","/* main react */\nimport React, { useState, useRef, useEffect, useImperativeHandle } from 'react';\nimport { useFormik } from 'formik';\nimport * as Yup from 'yup';\n\n/* services */\nimport { fetchChannelByAccount } from '../../../_services/order-request.services';\n\n/* helper function */\nimport { compareDate } from '../../../_helpers/format-date-time';\n\n/* ui component */\nimport { FormGroup, Form } from 'reactstrap';\nimport SingleSelectDropdown from '../../../_components/dropdown/single-select-dropdown.component';\nimport PlanTimeDropdown from '../../../_components/dropdown/plan-time-dropdown.component';\nimport { DateRangeDropdown } from '../_components/date-range-dropdown.component';\nimport { handlePreventDefault } from '../../../_utils/order-request.utils';\nimport { NumberInput } from '../../../_components/forms/inputs/input-format-number.component';\n\nconst BuyContinuallyForm = (props) => {\n\tconst {\n\t\trefId,\n\t\tfundInfo,\n\t\tisSAAccount,\n\t\tuserAccounts,\n\t\tupdatePropertiesHandler,\n\t\tlatestPlan,\n\t\tupdateLatestPlan,\n\t\tclearLatestPlan,\n\t\tlatestSettleDate,\n\t\tupdateLatestSettleDate,\n\t} = props;\n\n\tconst planRef = useRef(); //Stored current start and end date.\n\tplanRef.current = latestSettleDate;\n\n\tconst defaultStartDate = new Date(new Date().toDateString());\n\tdefaultStartDate.setDate(defaultStartDate.getDate() + 1);\n\n\tconst initFormikValue = {\n\t\tsettleDate: defaultStartDate,\n\t\tendDate: null,\n\t\tamount: '',\n\t\tpayType: null,\n\t\tpaymentChannel: null,\n\t\tplanDate: {}\n\t};\n\n\tconst validate = Yup.object().shape({\n\t\tplanDate: Yup.object().shape({\n\t\t\tplanType: Yup.string().required('โปรดระบุเเผน'),\n\t\t}),\n\t\tsettleDate: Yup.date()\n\t\t\t.min(fundInfo?.buyDate\n\t\t\t\t? new Date(new Date(fundInfo.dcaDate).toDateString())\n\t\t\t\t: new Date(new Date().toDateString()),\n\t\t\t\t'ไม่สามารถเลือกวันที่ย้อนหลังได้'),\n\t\tamount: Yup.number()\n\t\t\t.required('โปรดระบุจำนวน')\n\t\t\t.typeError('โปรดระบุจำนวน')\n\t\t\t.min(fundInfo?.fund\n\t\t\t\t? fundInfo.minimum\n\t\t\t\t: 0,`ยอดขั้นต่ำ ${fundInfo?.fund ? fundInfo.minimum : 0}`\n\t\t\t),\n\t\tpayType: Yup.string()\n\t\t\t.nullable()\n\t\t\t.required('โปรดเลือกช่องทางการชำระเงิน'),\n\t\tpaymentChannel: Yup.string()\n\t\t\t.required('โปรดเลือกบัญชี').nullable(),\n\t\tendDate: Yup.mixed().test({\n\t\t\tname: 'endDate',\n\t\t\texclusive: false,\n\t\t\tparams: {},\n\t\t\tmessage: '${path} ห้ามเลือกก่อนวันเริ่มต้น',\n\t\t\ttest: function (value) {\n\t\t\t\tif (!value) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tlet start = new Date(planRef.current.startDate);\n\t\t\t\tlet end = new Date(value);\n\n\t\t\t\treturn start < end || compareDate(start, end) ? true : false;\n\t\t\t}\n\t\t})\n\t});\n\n\tconst formik = useFormik({\n\t\tinitialValues: initFormikValue,\n\t\tenableReinitialize: true,\n\t\tvalidationSchema: validate,\n\t\tonReset: () => {\n\t\t\tupdatePropertiesHandler();\n\t\t},\n\t\tonSubmit: (values) => {\n\t\t\tlet tempPlanDate = Object.keys(values.planDate).reduce((prev, curr) => {\n\t\t\t\tprev[curr.toLowerCase()] = values.planDate[curr];\n\t\t\t\treturn prev\n\t\t\t}, {});\n\n\t\t\tlet tempPaymentChannel = JSON.parse(values.paymentChannel);\n\t\t\tlet temp = {\n\t\t\t\t...values,\n\t\t\t\t...tempPlanDate,\n\t\t\t\taccountType: isSAAccount ? 'S' : fundInfo?.fund?.accountType,\n\t\t\t\taccountNumber: userAccounts[0]?.accountNumber,\n\t\t\t\tfundCode: fundInfo?.fund?.code,\n\t\t\t\tbankCode: tempPaymentChannel?.[0],\n\t\t\t\tbankAccount: tempPaymentChannel?.[1]\n\t\t\t};\n\n\t\t\tdelete temp.planDate;\n\t\t\tdelete temp.paymentChannel;\n\n\t\t\tupdatePropertiesHandler(temp);\n\t\t}\n\t});\n\n\t// /* start mock select input list */\n\tconst purchaseTypeOptions = fundInfo?.payTypes?.filter((option) => option.code === 'A')\n\t\t.map(option => ({\n\t\t\t'displayName': option.name,\n\t\t\t'code': option.code\n\t\t})) ?? [];\n\n\tconst [purchaseByOptions, setPurchaseByOptions] = useState([]);\n\t/* end select input list */\n\n\tconst getChannel = (payType) => {\n\t\tlet payload = {\n\t\t\taccountNumber: userAccounts[0]?.accountNumber,\n\t\t\tfundId: fundInfo?.fundId,\n\t\t\tpaymentOption: payType\n\t\t}\n\n\t\tfetchChannelByAccount(payload)\n\t\t\t.then(res => {\n\t\t\t\tlet temp = res.data.map(item => ({\n\t\t\t\t\tdisplayName: item.displayedText,\n\t\t\t\t\tcode: JSON.stringify([item.bankCode, item.bankAccountNumber])\n\t\t\t\t}))\n\t\t\t\tsetPurchaseByOptions(temp);\n\t\t\t})\n\t\t\t.catch(err => {\n\t\t\t\tsetPurchaseByOptions([]);\n\t\t\t});\n\t\tformik.setFieldValue('paymentChannel', undefined);\n\t}\n\n\tconst updateSingleSelected = (dropdown) => {\n\t\tlet dropdownTarget = dropdown.currentTarget.dataset.type;\n\t\tlet dropdownValue = dropdown.currentTarget.dataset.value !== undefined ? dropdown.currentTarget.dataset.value : null;\n\n\t\tif (dropdownTarget === 'payType') {\n\t\t\tgetChannel(dropdownValue);\n\t\t}\n\n\t\tformik.setFieldValue(`${dropdownTarget}`, dropdownValue);\n\t};\n\n\tconst updateSettleDateHandler = (e) => {\n\t\tformik.setFieldValue('settleDate', e.startDate);\n\t\tformik.setFieldValue('endDate', e.endDate);\n\t\t// planRef.current = e; // store current start and end date.\n\t\tupdateLatestSettleDate(e);\n\t}\n\n\tconst updatePlanHandler = (event) => {\n\t\tformik.setFieldValue('planDate', event);\n\t\tupdateLatestPlan(event);\n\t}\n\n\tuseImperativeHandle(refId, () => ({\n\t\tSubmit: async () => {\n\t\t\tawait formik.submitForm();\n\t\t}\n\t}));\n\n\tuseEffect(() => {\n\t\tif (!fundInfo) {\n\t\t\tconst { amount, planDate, ...fieldToReset } = initFormikValue\n\t\t\tformik.setValues({ ...formik.values, ...fieldToReset })\n\t\t\tformik.setFieldValue('settleDate', latestSettleDate?.startDate);\n\t\t\tformik.setFieldValue('endDate', latestSettleDate?.endDate);\n\t\t\tsetTimeout(() => formik.setErrors({}))\n\t\t} else {\n\t\t\tlet ATSItem = purchaseTypeOptions.find(item => item.code === 'A');\n\t\t\tif (ATSItem) {\n\t\t\t\tformik.setFieldValue('payType', 'A');\n\t\t\t\tgetChannel('A');\n\t\t\t}\n\t\t}\n\t}, [fundInfo]);\n\n\tuseEffect(() => {\n\t\tif (formik.values.payType === 'A') {\n\t\t\tformik.setFieldValue('paymentChannel', purchaseByOptions[0].code);\n\t\t}\n\t}, [purchaseByOptions]);\n\n\tuseEffect(() => {\n\t\tformik.setFieldValue('planDate', latestPlan);\n\t}, [latestPlan]);\n\n\tuseEffect(() => {\n\t\tlet newSettleDate;\n\t\tif (latestSettleDate.startDate === undefined) {\n\t\t\tnewSettleDate = new Date(new Date().toDateString());\n\t\t\tnewSettleDate.setDate(newSettleDate.getDate() + 1);\n\t\t} else {\n\t\t\tnewSettleDate = new Date(latestSettleDate.startDate);\n\t\t\tnewSettleDate.setDate(newSettleDate.getDate());\n\t\t}\n\t\tformik.setFieldValue('settleDate', newSettleDate);\n\t\tformik.setFieldValue('endDate', latestSettleDate.endDate);\n\t}, [latestSettleDate]);\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
แผน
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\tformik.errors.planDate?.planType\n\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{formik.errors.planDate.planType}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
มีผล
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\tformik.errors.settleDate\n\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{formik.errors.settleDate}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tformik.errors.endDate\n\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{formik.errors.endDate}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
จำนวน
\n\t\t\t\t\t
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tformik.setFieldValue('amount', value);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\thandleKey={handlePreventDefault}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\tบาท\n\t\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\tformik.errors.amount\n\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{formik.errors.amount}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
ชำระโดย
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\tformik.errors.payType\n\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{formik.errors.payType}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\t(formik.values.payType) // && formik.values.payType !== 'C'\n\t\t\t\t\t\t?\t<>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tformik.errors.paymentChannel\n\t\t\t\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{formik.errors.paymentChannel}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t:\t<>\n\t\t\t\t\t}\n\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default BuyContinuallyForm;\n","/* main react */\nimport React, { useState, useEffect } from \"react\";\n\n/* services */\nimport { fetchSearchBuyableFunds } from \"../../../_services/order-request.services\";\n\n/* ui component */\nimport { Card, CardBody, ListGroup, Form, FormGroup } from \"reactstrap\";\nimport {\n CancelIcon,\n SearchIcon,\n CheckedIcon,\n} from \"../../../_components/icons/icons\";\nimport * as iFundCategory from \"../../../_components/icons/fund-category\";\n\n/* page component */\nimport SearchItem from \"../../../_components/search/search-item.component\";\nimport { Checkbox } from \"pretty-checkbox-react\";\n\nconst InputOrderSearchForm = ({\n fundInfo,\n handleSearchFundInfo,\n resetSearchFundInfo,\n isTabletOrMobile,\n handleAccountType,\n userAccounts,\n userType,\n mode,\n isSubmittableOrder,\n}) => {\n const [searchText, setSearchText] = useState(null);\n const [searchFundList, setSearchFundList] = useState([]);\n\n const CategoryIcon = iFundCategory[fundInfo?.fund?.categoryCode];\n const color = fundInfo ? fundInfo.fund?.color ?? \"#B9B9B9\" : \"#FFD400\";\n\n let bgStyle = {\n backgroundColor: color,\n boxShadow: `0 10px 15px 0 ${color}66`,\n };\n\n async function searchFund(payload) {\n await fetchSearchBuyableFunds(payload).then((response) => {\n setSearchFundList(response?.data?.fundInformation);\n });\n }\n\n const handleSearchInput = (e) => {\n const { value } = e.target;\n\n let hasFocus = false;\n let focusingIndex = 0;\n let currentResult = document.getElementsByClassName(\"result-item\");\n switch (e.key) {\n case \"ArrowDown\":\n if (currentResult.length > 0) {\n Array.from(currentResult).forEach((element, index) => {\n if (element.classList.contains(\"focusing\")) {\n hasFocus = true;\n focusingIndex = index;\n }\n });\n\n if (!hasFocus) {\n currentResult[0].classList.add(\"focusing\");\n } else if (focusingIndex >= currentResult.length - 1) {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[0].classList.add(\"focusing\");\n } else {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[focusingIndex + 1].classList.add(\"focusing\");\n }\n }\n break;\n\n case \"ArrowUp\":\n if (currentResult.length > 0) {\n Array.from(currentResult).forEach((element, index) => {\n if (element.classList.contains(\"focusing\")) {\n hasFocus = true;\n focusingIndex = index;\n }\n });\n\n if (!hasFocus) {\n currentResult[currentResult.length - 1].classList.add(\"focusing\");\n } else if (focusingIndex <= 0) {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[currentResult.length - 1].classList.add(\"focusing\");\n } else {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[focusingIndex - 1].classList.add(\"focusing\");\n }\n }\n break;\n\n case \"Enter\":\n if (currentResult.length > 0) {\n Array.from(currentResult).forEach((element) => {\n if (element.classList.contains(\"focusing\")) {\n let resultItem = element.querySelector(\"div\");\n selectFund(resultItem);\n }\n });\n }\n\n setSearchFundList([]);\n break;\n\n default:\n if (value === null || value === undefined || value === \"\") {\n setSearchFundList([]);\n } else {\n Array.from(currentResult).forEach((e, index) => {\n currentResult[index].classList.remove(\"focusing\");\n });\n\n searchFund({\n accountNumber: userAccounts[0].accountNumber,\n keyword: value,\n isDCA: [\"DCA\", \"BOTH\"].includes(mode),\n });\n\n if (currentResult.length > 0) {\n currentResult[0].classList.add(\"focusing\");\n }\n }\n break;\n }\n };\n\n const handleResetSearchFundInfo = () => {\n setSearchText(null);\n setSearchFundList([]);\n resetSearchFundInfo();\n };\n\n const selectFund = (e) => {\n let resultItem = e.currentTarget\n ? e.currentTarget.dataset?.name\n : e.dataset?.name;\n handleSearchFundInfo(resultItem);\n setSearchFundList([]);\n setSearchText(JSON.parse(resultItem));\n };\n\n const handleChangeAccountType = (e) => {\n handleAccountType(e.currentTarget?.checked ? true : false);\n };\n\n useEffect(() => {\n handleResetSearchFundInfo();\n }, [userAccounts]);\n\n useEffect(() => {\n if (document.getElementById(\"order-modal-search-buy\")) {\n document.getElementById(\"order-modal-search-buy\").focus();\n }\n }, []);\n\n useEffect(() => {\n if (!fundInfo) {\n setSearchText(null);\n setSearchFundList([]);\n handleAccountType(false);\n }\n }, [fundInfo]);\n\n useEffect(() => {\n if (fundInfo?.fund?.accountType === \"S\") {\n handleAccountType(true);\n }\n }, [fundInfo, handleAccountType]);\n\n return (\n \n {fundInfo || searchText ? (\n \n
\n \n {!!CategoryIcon && (\n \n )}\n \n

\n {searchText?.thailandFundCode || fundInfo?.fund?.code}\n {fundInfo && {fundInfo.fund?.categoryNameTh}}\n

\n \n \n \n
\n
\n \n {fundInfo?.fund?.name}\n {fundInfo &&\n userAccounts[0]?.isSubmittableOrder &&\n userType === \"FA\" && ( // require user type condition to display and account type overwrite function\n }\n className=\"g-mt-15 border-checkbox\"\n defaultChecked={fundInfo?.fund?.accountType === \"S\"}\n disabled={fundInfo?.fund?.accountType === \"S\"}\n onChange={handleChangeAccountType}\n >\n บัญชี Selling Agent\n \n )}\n \n
\n ) : (\n \n {\n e.preventDefault();\n }}\n >\n \n \n {searchFundList && searchFundList.length ? (\n <>\n \n \n \n \n {searchFundList.map((item, index) => (\n \n ))}\n \n \n ) : (\n \n \n \n )}\n \n \n \n )}\n \n );\n};\n\nexport default InputOrderSearchForm;\n","/* main react */\nimport React, { useState, useEffect } from 'react';\n\n/* library */\nimport { debounce } from 'lodash';\n\n/* ui component */\nimport { Card, CardBody, ListGroup, Form, FormGroup } from 'reactstrap';\nimport { CancelIcon, SearchIcon } from '../../../_components/icons/icons';\nimport * as iFundCategory from '../../../_components/icons/fund-category';\n\n/* page component */\nimport SearchItem from '../../../_components/search/search-item.component';\nimport { fetchSwitchableFunds } from '../../../_services/order-request.services';\nimport { getFundList } from '../../../_utils/order-request.utils';\n\nconst InputSearchSwitchInFund = ({\n\tswitchOutFund,\n\tfundInfo,\n\thandleSearchFundInfo,\n\tresetSearchFundInfo,\n\tuserAccounts,\n\tisTabletOrMobile,\n\ttype,\n\tactiveTab,\n\tmode,\n}) => {\n\tconst accountTypes = {\n\t\tO: { label: 'บัญชี Ominibus' },\n\t\tS: { label: 'บัญชี Selling agent' },\n\t};\n\tconst isDCA = ['DCA', 'BOTH'].includes(mode);\n\tconst [searchText, setSearchText] = useState(null);\n\tconst [fundList, setFundList] = useState([]);\n\tconst [groupFunds, setGroupFunds] = useState({});\n\t\n\tlet CategoryIcon = iFundCategory[fundInfo?.fund?.categoryCode];\n\tconst color = fundInfo\n\t? fundInfo.fund?.color ?? '#B9B9B9'\n\t: '#FFD400';\n\n\tlet bgStyle = {\n\t\tbackgroundColor: color,\n\t\tboxShadow: `0 10px 15px 0 ${color}66`,\n\t};\n\n\t// API Services\n\tasync function searchFundsByAccounts(payload) {\n\t\tawait fetchSwitchableFunds(payload).then((response) => {\n\t\t\tlet { data } = response;\n\t\t\tif (data?.length) {\n\t\t\t\tlet mapData = data.map((fund) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...fund,\n\t\t\t\t\t\tcategoryName: fund.categoryNameTh,\n\t\t\t\t\t\tthailandFundCode: fund.fundCode,\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tsetFundList(mapData);\n\t\t\t} else {\n\t\t\t\tsetFundList([]);\n\t\t\t}\n\t\t});\n\t}\n\n\tconst handleSearchInput = (e) => {\n\t\te.preventDefault();\n\n\t\tlet hasFocus = false;\n\t\tlet focusingIndex = 0;\n\t\tlet currentResult = document.getElementsByClassName('result-item');\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\tif (currentResult.length > 0) {\n\t\t\t\t\tArray.from(currentResult).forEach((element, index) => {\n\t\t\t\t\t\tif (element.classList.contains('focusing')) {\n\t\t\t\t\t\t\thasFocus = true;\n\t\t\t\t\t\t\tfocusingIndex = index;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (!hasFocus) {\n\t\t\t\t\t\tcurrentResult[0].classList.add('focusing');\n\t\t\t\t\t} else if (focusingIndex >= currentResult.length - 1) {\n\t\t\t\t\t\tcurrentResult[focusingIndex].classList.remove('focusing');\n\t\t\t\t\t\tcurrentResult[0].classList.add('focusing');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentResult[focusingIndex].classList.remove('focusing');\n\t\t\t\t\t\tcurrentResult[focusingIndex + 1].classList.add('focusing');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'ArrowUp':\n\t\t\t\tif (currentResult.length > 0) {\n\t\t\t\t\tArray.from(currentResult).forEach((element, index) => {\n\t\t\t\t\t\tif (element.classList.contains('focusing')) {\n\t\t\t\t\t\t\thasFocus = true;\n\t\t\t\t\t\t\tfocusingIndex = index;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (!hasFocus) {\n\t\t\t\t\t\tcurrentResult[currentResult.length - 1].classList.add('focusing');\n\t\t\t\t\t} else if (focusingIndex <= 0) {\n\t\t\t\t\t\tcurrentResult[focusingIndex].classList.remove('focusing');\n\t\t\t\t\t\tcurrentResult[currentResult.length - 1].classList.add('focusing');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentResult[focusingIndex].classList.remove('focusing');\n\t\t\t\t\t\tcurrentResult[focusingIndex - 1].classList.add('focusing');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'Enter':\n\t\t\t\tif (currentResult.length > 0) {\n\t\t\t\t\tArray.from(currentResult).forEach((element) => {\n\t\t\t\t\t\tif (element.classList.contains('focusing')) {\n\t\t\t\t\t\t\tlet resultItem = element.querySelector('div');\n\t\t\t\t\t\t\tselectFund(resultItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tsetGroupFunds({});\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tconst debounceTextSearch = debounce((e) => {\n e.preventDefault();\n\t\tconst { value } = e.target;\n\t\tconst tempFundList = getFundList(fundList, value);\n\t\tconst ignoreFundGroups = ['P', 'A'];\n\t\tObject.keys(tempFundList).forEach((key) => {\n\t\t\tif (ignoreFundGroups.includes(key.toUpperCase())) {\n\t\t\t\tdelete tempFundList[key];\n\t\t\t}\n\t\t});\n\n\t\tlet currentResult = document.getElementsByClassName('result-item');\n\t\tif (value === '' || value === null) {\n\t\t\tsetGroupFunds(tempFundList);\n\t\t} else {\n\t\t\tArray.from(currentResult).forEach((element, index) => {\n\t\t\t\tcurrentResult[index].classList.remove('focusing');\n\t\t\t});\n\n\t\t\tif (currentResult.length > 0) {\n\t\t\t\tcurrentResult[0].classList.add('focusing');\n\t\t\t}\n\t\t\tsetGroupFunds(tempFundList);\n\t\t}\n\t\tsetGroupFunds('');\n\t\tsetGroupFunds(tempFundList);\n\t}, 300)\n\n\tconst handleSearch = (e) => {\n\t\te.persist()\n\t\tif(['ArrowDown', 'ArrowUp', 'Enter'].includes(e.key)) {\n\t\t\thandleSearchInput(e)\n\t\t} else {\n\t\t\tdebounceTextSearch(e)\n\t\t}\n\t};\n\n\tconst handleResetSearchFundInfo = () => {\n\t\tsetSearchText(null);\n\t\tsetGroupFunds({});\n\t\tresetSearchFundInfo();\n\t};\n\n\tconst selectFund = (e) => {\n\t\tlet resultItem = e.currentTarget ? e.currentTarget.dataset?.name : e.dataset?.name;\n\t\thandleSearchFundInfo(resultItem);\n\t\tsetGroupFunds({});\n\t};\n\n\tuseEffect(() => {\n\t\tif (userAccounts.length && switchOutFund?.fund) {\n\t\t\tlet payload = {\n\t\t\t\taccountNumber: userAccounts[0]?.accountNumber,\n\t\t\t\tfundCode: switchOutFund.fund?.code,\n\t\t\t\tfundId: switchOutFund.fund?.fundId,\n\t\t\t\taccountType: switchOutFund.fund?.accountType,\n\t\t\t\tisDCA: isDCA,\n\t\t\t};\n\n\t\t\tsearchFundsByAccounts(payload);\n\t\t} else if (fundList?.length) {\n\t\t\tsetFundList([]);\n\t\t}\n\n\t\t// clear fund.\n\t\tif ((!switchOutFund && fundInfo) || (isDCA && fundInfo && !fundInfo.isDCA)) {\n\t\t\thandleResetSearchFundInfo();\n\t\t}\n\t}, [userAccounts, switchOutFund, isDCA]);\n\n\tconst handleAreaClick = (e) => {\n\t\tif (e.target.closest('#switch-in-form') === null) {\n\t\t\tsetSearchText(null);\n\t\t\tsetGroupFunds({});\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tdocument.body.addEventListener('click', handleAreaClick);\n\n\t return () => {\n\t\t\tdocument.body.removeEventListener('click', handleAreaClick);\n\t };\n\t}, []);\n\n\treturn (\n\t\t\n\t\t\t{fundInfo || searchText ? (\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{!!CategoryIcon && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\t{searchText?.thailandFundCode || fundInfo?.fund?.code}\n\t\t\t\t\t\t\t{fundInfo && {fundInfo.fund?.categoryNameTh}}\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{fundInfo?.fund?.name}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t) : (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t.\n\t\t\t\t\t\t\t\tplaceholder='ค้นหากองทุน'\n\t\t\t\t\t\t\t\tonKeyUp={handleSearch}\n\t\t\t\t\t\t\t\tautoComplete='off'\n\t\t\t\t\t\t\t\tonClick={handleSearch}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{Object.keys(groupFunds).length ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{Object.keys(groupFunds).map((key) => (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{accountTypes[key]?.label ?? 'บัญชี -'}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{groupFunds[key].map((item, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default InputSearchSwitchInFund;\n","/* main react */\nimport React, { useState, useEffect } from \"react\";\n\n/* services */\nimport { fetchSwitchableOutFunds } from \"../../../_services/order-request.services\";\n\n/* ui component */\nimport { Card, CardBody, ListGroup, Form, FormGroup } from \"reactstrap\";\nimport { CancelIcon, SearchIcon } from \"../../../_components/icons/icons\";\nimport * as iFundCategory from \"../../../_components/icons/fund-category\";\n\n/* page component */\nimport SearchItem from \"../../../_components/search/search-item.component\";\nimport { getFundList } from \"../../../_utils/order-request.utils\";\n\nconst InputOrderSearchForm = ({\n fundInfo,\n handleSearchFundInfo,\n resetSearchFundInfo,\n isTabletOrMobile,\n userAccounts,\n userType,\n mode,\n isReset,\n setIsReset,\n}) => {\n const accountTypes = {\n O: { label: \"บัญชี Ominibus\" },\n S: { label: \"บัญชี Selling agent\" },\n };\n const [searchText, setSearchText] = useState(null);\n const [groupFunds, setGroupFunds] = useState([]);\n\n const CategoryIcon = iFundCategory[fundInfo?.fund?.categoryCode];\n const color = fundInfo ? fundInfo.fund?.color ?? \"#B9B9B9\" : \"#FFD400\";\n\n let bgStyle = {\n backgroundColor: color,\n boxShadow: `0 10px 15px 0 ${color}66`,\n };\n\n async function searchFund(payload) {\n await fetchSwitchableOutFunds(payload).then((response) => {\n const tempFundList = getFundList(response?.data);\n const ignoreFundGroups = [\"P\", \"A\"];\n Object.keys(tempFundList).forEach((key) => {\n if (ignoreFundGroups.includes(key.toUpperCase())) {\n delete tempFundList[key];\n }\n });\n\n setGroupFunds(tempFundList);\n });\n }\n\n const handleOnClickSearch = (e) => {\n handleSearchInput(e);\n };\n\n const handleSearchInput = (e) => {\n const { value } = e.target;\n\n let hasFocus = false;\n let focusingIndex = 0;\n let currentResult = document.getElementsByClassName(\"result-item\");\n switch (e.key) {\n case \"ArrowDown\":\n if (currentResult.length > 0) {\n Array.from(currentResult).forEach((element, index) => {\n if (element.classList.contains(\"focusing\")) {\n hasFocus = true;\n focusingIndex = index;\n }\n });\n\n if (!hasFocus) {\n currentResult[0].classList.add(\"focusing\");\n } else if (focusingIndex >= currentResult.length - 1) {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[0].classList.add(\"focusing\");\n } else {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[focusingIndex + 1].classList.add(\"focusing\");\n }\n }\n break;\n\n case \"ArrowUp\":\n if (currentResult.length > 0) {\n Array.from(currentResult).forEach((element, index) => {\n if (element.classList.contains(\"focusing\")) {\n hasFocus = true;\n focusingIndex = index;\n }\n });\n\n if (!hasFocus) {\n currentResult[currentResult.length - 1].classList.add(\"focusing\");\n } else if (focusingIndex <= 0) {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[currentResult.length - 1].classList.add(\"focusing\");\n } else {\n currentResult[focusingIndex].classList.remove(\"focusing\");\n currentResult[focusingIndex - 1].classList.add(\"focusing\");\n }\n }\n break;\n\n case \"Enter\":\n if (currentResult.length > 0) {\n Array.from(currentResult).forEach((element) => {\n if (element.classList.contains(\"focusing\")) {\n let resultItem = element.querySelector(\"div\");\n selectFund(resultItem);\n }\n });\n }\n\n setGroupFunds({});\n break;\n\n default:\n Array.from(currentResult).forEach((e, index) => {\n currentResult[index].classList.remove(\"focusing\");\n });\n\n searchFund({\n keyword: value,\n isDCA: [\"DCA\", \"BOTH\"].includes(mode),\n accountNumber: userAccounts[0]?.accountNumber,\n });\n\n if (currentResult.length > 0) {\n currentResult[0].classList.add(\"focusing\");\n }\n break;\n }\n };\n\n const handleResetSearchFundInfo = () => {\n setSearchText(null);\n setGroupFunds({});\n resetSearchFundInfo();\n };\n\n const selectFund = (e) => {\n let resultItem = e.currentTarget\n ? e.currentTarget.dataset?.name\n : e.dataset?.name;\n handleSearchFundInfo(resultItem);\n setGroupFunds({});\n setSearchText(JSON.parse(resultItem));\n };\n\n useEffect(() => {\n handleResetSearchFundInfo();\n }, [userAccounts]);\n\n useEffect(() => {\n if (isReset) {\n handleResetSearchFundInfo();\n setIsReset(false);\n }\n }, [isReset]);\n\n return (\n \n {fundInfo || searchText ? (\n \n
\n \n {!!CategoryIcon && (\n \n )}\n \n

\n {searchText?.thailandFundCode || fundInfo?.fund?.code}\n {fundInfo && {fundInfo.fund?.categoryNameTh}}\n

\n \n \n \n
\n
\n \n {fundInfo?.fund?.name}\n \n
\n ) : (\n \n {\n e.preventDefault();\n }}\n >\n \n \n {Object.keys(groupFunds).length ? (\n <>\n \n \n \n \n {Object.keys(groupFunds).map((key) => (\n <>\n \n {accountTypes[key]?.label ?? \"บัญชี -\"}\n \n {groupFunds[key].map((item, index) => (\n \n ))}\n \n ))}\n \n \n ) : (\n \n \n \n )}\n \n \n \n )}\n \n );\n};\n\nexport default InputOrderSearchForm;\n","/* main react */\nimport React, { useState, useEffect } from 'react';\n\nimport { fetchActivedFunds } from '../../../_services/investment.services';\n\n/* ui component */\nimport { Card, CardBody, ListGroup, Form, FormGroup } from 'reactstrap';\nimport { CancelIcon, SearchIcon } from '../../../_components/icons/icons';\nimport * as iFundCategory from '../../../_components/icons/fund-category';\n\n/* page component */\nimport SearchItem from '../../../_components/search/search-item.component';\nimport { getFundList } from '../../../_utils/order-request.utils';\n\nconst InputSearchFundByAccounts = ({\n\tfundInfo,\n\thandleSearchFundInfo,\n\tresetSearchFundInfo,\n\tuserAccounts,\n\tisTabletOrMobile\n}) => {\n\tconst accountTypes = {\n\t\t'O': {label: 'บัญชี Ominibus'},\n\t\t'S': {label: 'บัญชี Selling agent'}\n\t};\n\tconst [searchText, setSearchText] = useState(null);\n\tconst [fundList, setFundList] = useState([]);\n\tconst [groupFunds, setGroupFunds] = useState({});\n\n\tconst CategoryIcon = iFundCategory[fundInfo?.fund?.categoryCode];\n\tconst color = fundInfo\n\t? fundInfo.fund?.color ?? '#B9B9B9'\n\t: '#FFD400';\n\n\tlet bgStyle = {\n\t\tbackgroundColor: color,\n\t\tboxShadow: `0 10px 15px 0 ${color}66`\n\t};\n\n\t// API Services\n\tasync function searchFundsByAccounts(payload) {\n\t\tawait fetchActivedFunds(payload)\n\t\t\t.then((response) => {\n\t\t\t\tlet { data } = response;\n\t\t\t\tif (data?.length) {\n\t\t\t\t\tlet mapData = data.map((fund) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...fund,\n\t\t\t\t\t\t\tcategoryName: fund.categoryNameTh,\n\t\t\t\t\t\t\tthailandFundCode: fund.fundCode\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\tsetFundList(mapData);\n\t\t\t\t} else {\n\t\t\t\t\tsetFundList([]);\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tconst handleOnClickSearch = (e) => {\n\t\thandleSearchInput(e)\n\t}\n\n\tconst handleSearchInput = (e) => {\n\t\tlet { value } = e.target;\n\t\t\tconst tempFundList = getFundList(fundList, value);\n\t\t\tconst ignoreFundGroups = ['P', 'A'];\n\t\t\tObject.keys(tempFundList).forEach(key => {\n\t\t\t\tif (ignoreFundGroups.includes(key.toUpperCase())) {\n\t\t\t\t\tdelete tempFundList[key];\n\t\t\t\t}\n\t\t\t})\n\t\t\tlet hasFocus = false;\n\t\t\tlet focusingIndex = 0;\n\t\t\tlet currentResult = document.getElementsByClassName('result-item');\n\t\t\tswitch (e.key) {\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tif (currentResult.length > 0) {\n\t\t\t\t\t\tArray.from(currentResult).forEach((element, index) => {\n\t\t\t\t\t\t\tif (element.classList.contains('focusing')) {\n\t\t\t\t\t\t\t\thasFocus = true;\n\t\t\t\t\t\t\t\tfocusingIndex = index;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (!hasFocus) {\n\t\t\t\t\t\t\tcurrentResult[0].classList.add('focusing');\n\t\t\t\t\t\t} else if (focusingIndex >= currentResult.length - 1) {\n\t\t\t\t\t\t\tcurrentResult[focusingIndex].classList.remove('focusing');\n\t\t\t\t\t\t\tcurrentResult[0].classList.add('focusing');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentResult[focusingIndex].classList.remove('focusing');\n\t\t\t\t\t\t\tcurrentResult[focusingIndex + 1].classList.add('focusing');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tif (currentResult.length > 0) {\n\t\t\t\t\t\tArray.from(currentResult).forEach((element, index) => {\n\t\t\t\t\t\t\tif (element.classList.contains('focusing')) {\n\t\t\t\t\t\t\t\thasFocus = true;\n\t\t\t\t\t\t\t\tfocusingIndex = index;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (!hasFocus) {\n\t\t\t\t\t\t\tcurrentResult[currentResult.length - 1].classList.add('focusing');\n\t\t\t\t\t\t} else if (focusingIndex <= 0) {\n\t\t\t\t\t\t\tcurrentResult[focusingIndex].classList.remove('focusing');\n\t\t\t\t\t\t\tcurrentResult[currentResult.length - 1].classList.add('focusing');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentResult[focusingIndex].classList.remove('focusing');\n\t\t\t\t\t\t\tcurrentResult[focusingIndex - 1].classList.add('focusing');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Enter':\n\t\t\t\t\tif (currentResult.length > 0) {\n\t\t\t\t\t\tArray.from(currentResult).forEach((element) => {\n\t\t\t\t\t\t\tif (element.classList.contains('focusing')) {\n\t\t\t\t\t\t\t\tlet resultItem = element.querySelector('div');\n\t\t\t\t\t\t\t\tselectFund(resultItem);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tsetGroupFunds({});\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tArray.from(currentResult).forEach((e, index) => {\n\t\t\t\t\t\tcurrentResult[index].classList.remove('focusing');\n\t\t\t\t\t});\n\n\t\t\t\t\tif (currentResult.length > 0) {\n\t\t\t\t\t\tcurrentResult[0].classList.add('focusing');\n\t\t\t\t\t}\n\n\t\t\t\t\tsetGroupFunds(tempFundList);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t}\n\n\tconst handleResetSearchFundInfo = () => {\n\t\tsetSearchText(null);\n\t\tsetGroupFunds({});\n\t\tresetSearchFundInfo();\n\t}\n\n\tconst selectFund = (e) => {\n\t\tlet resultItem = e.currentTarget ? e.currentTarget.dataset?.name : e.dataset?.name;\n\t\thandleSearchFundInfo(resultItem);\n\t\tsetGroupFunds({});\n\t};\n\n\tuseEffect(() => {\n\t\tif (userAccounts.length) {\n\t\t\tsearchFundsByAccounts(userAccounts.map(x => x.accountNumber));\n\t\t} else if (fundList?.length) {\n\t\t\tsetFundList([]);\n\t\t}\n\n\t\treturn (() => {\n\t\t\thandleResetSearchFundInfo();\n\t\t})\n\t}, [userAccounts]);\n\n\tuseEffect(() => {\n\t\tif (document.getElementById('order-modal-search-sell')) {\n\t\t\tdocument.getElementById('order-modal-search-sell').focus();\n\t\t}\n\t}, []);\n\n\treturn (\n\t\t\n\t\t\t{\n\t\t\t\tfundInfo || searchText\n\t\t\t\t?\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t!!CategoryIcon\n\t\t\t\t\t\t\t\t\t&& \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{searchText?.thailandFundCode || fundInfo?.fund?.code}\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tfundInfo\n\t\t\t\t\t\t\t\t\t&& {fundInfo.fund?.categoryNameTh}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{fundInfo?.fund?.name}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t:\t\n\t\t\t\t\t\t
{ e.preventDefault() }}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tObject.keys(groupFunds).length\n\t\t\t\t\t\t\t\t\t? \t<>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tObject.keys(groupFunds).map(key => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{accountTypes[key]?.label ?? 'บัญชี -'}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgroupFunds[key].map((item, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t: \t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t}\n\t\t
\n\t);\n}\n\nexport default InputSearchFundByAccounts;\n","/* main react */\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from 'reselect';\nimport {\n\tselectFundInfoData,\n\tselectSearchFundInfo,\n\tselectSearchFundInfoStatus,\n\tselectActiveTabOrderRequestModal,\n\tselectFundInfo2Data,\n\tselectNavigationFund,\n\tselectSubActiveTabOrderRequestModal,\n} from '../../../_selectors/order-request.selectors';\nimport { selectActivedFunds, selectUserAccounts } from '../../../_selectors/investment.selectors';\nimport { mainSelectors } from '../../../_selectors';\nimport { selectAccountList, selectUserType } from '../../../_selectors/authentication.selectors';\nimport {\n\tclearSearchFundInfo,\n\tclearSearchFundInfo2,\n\tfetchBuyFundInfoStart,\n\tfetchSellFundInfoStart,\n\tfetchSwitchFundInfoStart,\n\tclearNavigationFundToOrderRequestModal,\n} from '../../../_actions/order-request.actions';\n\n/* helper function */\nimport { formatDateTime } from '../../../_helpers/format-date-time';\n\n/* ui component */\nimport { Card, CardBody } from 'reactstrap';\nimport { BookIcon } from '../../../_components/icons/icons';\n\n/* page component */\nimport InputOrderSearchFormComponent from './input-order-search-form.component';\nimport InputSearchSwitchInFund from './input-search-switch-in-fund.component';\nimport InputSearchSwitchOutFund from './input-search-switch-out-fund.component';\nimport InputSearchFundByAccounts from './input-order-search-by-accounts-form.component';\nimport formatNumber from '../../../_helpers/format-number';\nimport RiskRender from '../../../_components/items/risk-render.component';\n\nconst SearchFundInfo = ({\n\ttype, //type use in Switch mode (SWF = Switch From, SWT = Switch To)\n\tuserAccounts,\n\taccountList,\n\tclearSearchFundInfo,\n\tclearSearchFundInfo2,\n\tfetchBuyFundInfoStart,\n\tfundInformation,\n\tfetchSellFundInfoStart,\n\tfetchSwitchFundInfoStart,\n\tactiveTab,\n\tisTabletOrMobile,\n\tfundInformation2,\n\tnavigatedFund,\n\tuserType,\n\thandleAccountType,\n\tclearNavigationFundToOrderRequest,\n\tsubActiveTab,\n\tisReset,\n\tsetIsReset,\n\tupdateFundAccountType // local parent component passed for sell tab only\n}) => {\n\t// Handle type (Buy, Sell, Switch)\n\tif (!activeTab || !['Buy', 'Sell', 'Switch'].includes(activeTab)) {\n\t\tactiveTab = 'Buy';\n\t}\n\n\t// Set Search Fund Infomation\n\tconst handleSearchFundInfo = (e) => {\n\t\tconst fund = JSON.parse(e);\n\n\t\tif (fund) {\n\t\t\tlet payload = {};\n\n\t\t\tpayload['accountNumber'] = fund?.accountNumber ?? userAccounts[0]?.accountNumber;\n\t\t\tpayload['fundId'] = fund?.fundId;\n\t\t\tpayload['fundCode'] = fund?.thailandFundCode ?? fund?.fundCode;\n\t\t\tpayload['color'] = fund?.color;\n\t\t\tpayload['categoryName'] = fund?.categoryNameTh;\n\t\t\tpayload['fund'] = fund;\n\n\t\t\tif (activeTab === 'Buy') {\n\t\t\t\tfetchBuyFundInfoStart(payload);\n\t\t\t} else if (activeTab === 'Sell' || (activeTab === 'Switch' && type === 'SWF')) {\n\t\t\t\tpayload['accountType'] = fund?.accountType;\n\t\t\t\tif (activeTab === 'Sell') {\n\t\t\t\t\tupdateFundAccountType(fund?.accountType);\n\t\t\t\t}\n\t\t\t\tfetchSellFundInfoStart(payload);\n\t\t\t} else if (activeTab === 'Switch' && type === 'SWT') {\n\t\t\t\tpayload['accountType'] = fundInformation?.fund?.accountType;\n\t\t\t\tpayload['toFund'] = fund;\n\t\t\t\tpayload['fundId'] = fundInformation?.fund?.fundId;\n\t\t\t\tpayload['fundCode'] = fundInformation?.fund?.code;\n\t\t\t\tfetchSwitchFundInfoStart(payload);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst resetSearchFundInfo = () => {\n\t\tif (activeTab === 'Switch' && type === 'SWT') {\n\t\t\tclearSearchFundInfo2();\n\t\t} else {\n\t\t\tclearFund();\n\t\t}\n\t};\n\n\tconst clearFund = () => {\n\t\tif (fundInformation) {\n\t\t\tclearSearchFundInfo();\n\t\t\tif (navigatedFund) {\n\t\t\t\tclearNavigationFundToOrderRequest();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst displayInputSearch = (activeTab, type) => {\n\t\tswitch (activeTab) {\n\t\t\tcase 'Sell': {\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase 'Switch': {\n\t\t\t\t// Switch In\n\t\t\t\tif (type === 'SWT') {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Switch Out\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase 'Buy': {\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (navigatedFund) {\n\t\t\thandleSearchFundInfo(JSON.stringify(navigatedFund));\n\t\t}\n\t}, [navigatedFund]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{displayInputSearch(activeTab, type)}\n\t\t\t\t{activeTab === 'Buy' ? (\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{formatNumber(fundInformation?.minimum, 0)}

\n\t\t\t\t\t\t\tลงทุนขั้นต่ำ\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{fundInformation?.fund?.fee?.actualFrontLoad\n\t\t\t\t\t\t\t\t\t? `${formatNumber(fundInformation.fund.fee.actualFrontLoad)}%`\n\t\t\t\t\t\t\t\t\t: '-'}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\tค่าธรรมเนียมซื้อ\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{fundInformation?.fund?.investment?.buyTime ?? '-'}

\n\t\t\t\t\t\t\tซื้อได้ถึง\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tความเสี่ยง\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{fundInformation?.fund?.nav ?? '-'}

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tณ{' '}\n\t\t\t\t\t\t\t\t{fundInformation?.fund?.priceDate\n\t\t\t\t\t\t\t\t\t? formatDateTime.toThaiDate(fundInformation.fund.priceDate)\n\t\t\t\t\t\t\t\t\t: '-'}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tNAV ล่าสุด\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t) : activeTab === 'Sell' ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

{formatNumber(fundInformation?.fund?.investment?.minimumRedemption, 0)}

\n\t\t\t\t\t\t\t\tขายขั้นต่ำ\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{fundInformation?.fund?.fee?.deferLoad\n\t\t\t\t\t\t\t\t\t\t? `${formatNumber(fundInformation.fund.fee.deferLoad)}%`\n\t\t\t\t\t\t\t\t\t\t: '-'}\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tค่าธรรมเนียมขาย\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

{fundInformation?.fund?.investment?.sellTime ?? '-'}

\n\t\t\t\t\t\t\t\tขายได้ถึง\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tความเสี่ยง\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t{fundInformation?.sellDate\n\t\t\t\t\t\t\t\t\t\t? \"T+\" + fundInformation?.fund?.investment?.redemptionSettlementDay\n\t\t\t\t\t\t\t\t\t\t: '-'}\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tวันรับเงินค่าขาย\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

{fundInformation?.fund?.nav ?? '-'}

\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tณ{' '}\n\t\t\t\t\t\t\t\t\t{fundInformation?.fund?.priceDate\n\t\t\t\t\t\t\t\t\t\t? formatDateTime.toThaiDate(fundInformation.fund.priceDate)\n\t\t\t\t\t\t\t\t\t\t: '-'}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tNAV ล่าสุด\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tจำนวนหน่วยที่ขายได้\n\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{formatNumber(fundInformation?.sellableUnit, 4)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\tหน่วย\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tมูลค่า ณ วันที่\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfundInformation?.fund?.priceDate\n\t\t\t\t\t\t\t\t&&\tformatDateTime.toThaiDate(fundInformation.fund.priceDate)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t(fundInformation?.sellableUnit && fundInformation?.fund?.nav)\n\t\t\t\t\t\t\t\t?\tformatNumber(fundInformation?.sellableUnit * fundInformation?.fund?.nav, 2)\n\t\t\t\t\t\t\t\t:\t'-'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\tบาท\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t) : activeTab === 'Switch' ? (\n\t\t\t\t\ttype === 'SWF' ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tความเสี่ยง\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{fundInformation?.fund?.nav ?? '-'}
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tณ{' '}\n\t\t\t\t\t\t\t\t\t\t{fundInformation?.fund?.priceDate\n\t\t\t\t\t\t\t\t\t\t\t? formatDateTime.toThaiDate(fundInformation.fund.priceDate)\n\t\t\t\t\t\t\t\t\t\t\t: '-'}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tNAV ล่าสุด\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t{(fundInformation2?.switchableUnit >= 0) && fundInformation?.fund?.nav && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\tจำนวนหน่วยที่สับเปลี่ยนออกได้\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t\t\t\t\t{formatNumber(fundInformation2?.switchableUnit, 4)}{' '}\n\t\t\t\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t\t\t\tหน่วย\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\tมูลค่า ณ วันที่\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tfundInformation?.fund?.priceDate\n\t\t\t\t\t\t\t\t\t\t\t&&\tformatDateTime.toThaiDate(fundInformation.fund.priceDate)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t(fundInformation2?.switchableUnit && fundInformation?.fund?.nav)\n\t\t\t\t\t\t\t\t\t\t\t?\tformatNumber(fundInformation2?.switchableUnit * fundInformation?.fund?.nav, 2)\n\t\t\t\t\t\t\t\t\t\t\t: '-'\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t\t\t\t\tบาท\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t) : type === 'SWT' ? (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tความเสี่ยง\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

{fundInformation2?.fund?.nav ?? '-'}

\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tณ{' '}\n\t\t\t\t\t\t\t\t\t{fundInformation2?.fund?.priceDate\n\t\t\t\t\t\t\t\t\t\t? formatDateTime.toThaiDate(fundInformation2.fund.priceDate)\n\t\t\t\t\t\t\t\t\t\t: '-'}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tNAV ล่าสุด\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t)\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t)}\n\t\t\t\t{/* {\n\t\t\t\t\t(activeTab === 'Sell' || (activeTab === 'Switch' && type === 'SWF'))\n\t\t\t\t\t&&
\n\t\t\t\t\t\t\tจำนวนหน่วยที่สับเปลี่ยนออกได้ \n\t\t\t\t\t\t\t {formatNumber(fundInformation?.balanceUnit, 4)} หน่วย\n\t\t\t\t\t\t
\n\t\t\t\t} */}\n\t\t\t\n\t\t\n\t);\n};\n\nconst mapStateToProps = createStructuredSelector({\n\tsearchList: selectSearchFundInfo,\n\tfundListByAccounts: selectActivedFunds,\n\tfundInformation: selectFundInfoData,\n\tsearchStatus: selectSearchFundInfoStatus,\n\tuserAccounts: selectUserAccounts,\n\taccountList: selectAccountList,\n\tactiveTab: selectActiveTabOrderRequestModal,\n\tfundInformation2: selectFundInfo2Data,\n\tnavigatedFund: selectNavigationFund,\n\tisTabletOrMobile: mainSelectors.selectIsMobileScreenSize,\n\tuserType: selectUserType,\n\tsubActiveTab: selectSubActiveTabOrderRequestModal,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n\tclearSearchFundInfo: () => dispatch(clearSearchFundInfo()),\n\tclearSearchFundInfo2: () => dispatch(clearSearchFundInfo2()),\n\tfetchBuyFundInfoStart: (payload) => dispatch(fetchBuyFundInfoStart(payload)),\n\tfetchSellFundInfoStart: (payload) => dispatch(fetchSellFundInfoStart(payload)),\n\tfetchSwitchFundInfoStart: (payload) => dispatch(fetchSwitchFundInfoStart(payload)),\n\tclearNavigationFundToOrderRequest: () => dispatch(clearNavigationFundToOrderRequestModal()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SearchFundInfo);\n","/* main react */\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { connect } from \"react-redux\";\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from \"reselect\";\nimport {\n selectFundInfoData,\n selectCheckedFundAbleToOrder,\n selectSubActiveTabOrderRequestModal,\n selectLatestPlan,\n selectLatestSettleDate,\n} from \"../../_selectors/order-request.selectors\";\nimport {\n selectAccountList,\n selectUserType,\n} from \"../../_selectors/authentication.selectors\";\nimport { selectUserAccounts } from \"../../_selectors/investment.selectors\";\nimport { mainSelectors } from \"../../_selectors\";\nimport {\n clearSearchFundInfo,\n checkedBuyableFundStart,\n updateActiveTabOrderRequestModal,\n updateLatestPlan,\n clearLatestPlan,\n updateLatestSettleDate,\n} from \"../../_actions/order-request.actions\";\nimport { updateUserAccounts } from \"../../_actions/investment.actions\";\nimport { updateErrorModal } from \"../../_actions/main.actions\";\n\n/* helper function */\nimport classnames from \"classnames\";\n\n/* ui component */\nimport { Card, CardBody, Form, FormGroup } from \"reactstrap\";\nimport SingleAccountNumberFilter from \"../../_components/dropdown/single-account-number-filter.component\";\n\n/* page component */\nimport BuySingleForm from \"./_widget-form/buy-single-form.component\";\nimport BuyContinuallyForm from \"./_widget-form/buy-continually-form.component\";\nimport SearchFundInfo from \"./_widget-form/search-fund-info.component\";\n\nconst buyTypes = {\n SINGLE: { label: \"ซื้อครั้งเดียว\", value: \"SINGLE\" },\n DCA: { label: \"ซื้อสม่ำเสมอ\", value: \"DCA\" },\n BOTH: { label: \"ซื้อทั้ง 2 อย่าง\", value: \"BOTH\" },\n};\n\nconst buyTypeDSA = {\n SINGLE: { label: \"ซื้อครั้งเดียว\", value: \"SINGLE\" },\n};\n\nconst BuyFundTab = ({\n activeTab,\n fundInfo,\n userAccounts,\n checkedBuyableFund,\n isSAAccount,\n latestPlan,\n updateLatestPlan,\n clearLatestPlan,\n latestSettleDate,\n updateLatestSettleDate,\n}) => {\n const [properties, setProperties] = useState({});\n\n const formARef = useRef();\n const formBRef = useRef();\n\n const handleChangeFormA = (data) => {\n let temp = { ...properties };\n if (data) {\n temp = { ...temp, oneTime: data };\n } else {\n delete temp.oneTime;\n }\n setProperties(temp);\n };\n\n const handleChangeFormB = (data) => {\n let temp = { ...properties };\n if (data) {\n temp = { ...temp, dca: data };\n } else {\n delete temp.dca;\n }\n setProperties(temp);\n };\n\n const handleSubmit = async () => {\n if (activeTab === \"SINGLE\" || activeTab === \"BOTH\") {\n await formARef.current.Submit();\n }\n\n if (activeTab === \"DCA\" || activeTab === \"BOTH\") {\n await formBRef.current.Submit();\n }\n };\n\n useEffect(() => {\n setProperties({});\n }, [activeTab]);\n\n useEffect(() => {\n if (\n Object.keys(properties).length &&\n ((activeTab === \"BOTH\" &&\n properties.oneTime !== undefined &&\n properties.dca !== undefined) ||\n (activeTab === \"SINGLE\" && properties.oneTime !== undefined) ||\n (activeTab === \"DCA\" && properties.dca !== undefined))\n ) {\n checkedBuyableFund(properties);\n }\n }, [properties]);\n\n let component;\n switch (activeTab) {\n case \"SINGLE\":\n component = (\n \n );\n break;\n case \"DCA\":\n component = (\n \n );\n break;\n case \"BOTH\":\n component = (\n <>\n
ซื้อครั้งเดียว
\n \n
ซื้อสม่ำเสมอ
\n \n \n );\n break;\n }\n\n return (\n
\n {component}\n \n
\n
\n \n ส่งคำสั่ง\n \n
\n
\n
\n );\n};\n\nconst BuyWidget = (props) => {\n const {\n userAccounts,\n accountList,\n updateUserAccounts,\n fundInfo,\n checkedBuyableFund,\n checkedFund,\n updateErrorModal,\n isTabletOrMobile,\n subActiveTab,\n updateActiveTab,\n clearSearchFundInfo,\n latestPlan,\n updateLatestPlan,\n clearLatestPlan,\n latestSettleDate,\n updateLatestSettleDate,\n userType,\n } = props;\n // Local State props\n // const [activeTab, setActiveTab] = useState('SINGLE'); // Display Tab actived\n const [isSAAccount, setIsSAAccount] = useState(false);\n const isDSAUserType = [\"DSA\"].includes(userType);\n\n const isSubmittableOrderAccountMemories = React.useMemo(() => {\n if (isDSAUserType) {\n return accountList;\n } else {\n return accountList?.filter((x) => x.isSubmittableOrder) ?? [];\n }\n }, [accountList]);\n\n const userAccountMemories = React.useMemo(() => {\n return (\n userAccounts?.filter((x) =>\n isSubmittableOrderAccountMemories.some(\n (y) => y.accountNumber === x.accountNumber\n )\n ) ?? []\n );\n }, [userAccounts, accountList]);\n\n useEffect(() => {\n if (fundInfo && !fundInfo?.isDCA && subActiveTab !== \"SINGLE\") {\n // UNCOMMENT THIS LINE IF NEED SWITCH TO BUY SINGLE TAB --> setActiveTab('SINGLE');\n updateErrorModal({\n message: \"กองทุนต้นทางนี้ ไม่สามารถส่งคำสั่งซื้อสม่ำเสมอได้\",\n });\n clearSearchFundInfo();\n }\n }, [fundInfo, subActiveTab]);\n\n // Render Area\n return (\n <>\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n \n {isDSAUserType ? (\n
\n {Object.keys(buyTypeDSA).map((item) => {\n const { label, value } = buyTypeDSA[item];\n return (\n {\n value !== subActiveTab &&\n updateActiveTab({ subActiveTab: value });\n }}\n >\n {label}\n \n );\n })}\n
\n ) : (\n
\n
\n {Object.keys(buyTypes).map((item) => {\n const { label, value } = buyTypes[item];\n return (\n {\n value !== subActiveTab &&\n updateActiveTab({ subActiveTab: value });\n }}\n >\n {label}\n \n );\n })}\n
\n
\n )}\n \n \n
\n \n \n
\n
\n \n \n \n );\n};\n\nconst mapStateToProps = createStructuredSelector({\n userAccounts: selectUserAccounts,\n accountList: selectAccountList,\n fundInfo: selectFundInfoData,\n checkedFund: selectCheckedFundAbleToOrder,\n isTabletOrMobile: mainSelectors.selectIsMobileScreenSize,\n subActiveTab: selectSubActiveTabOrderRequestModal,\n latestPlan: selectLatestPlan,\n latestSettleDate: selectLatestSettleDate,\n userType: selectUserType,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n checkedBuyableFund: (payload) => dispatch(checkedBuyableFundStart(payload)),\n clearSearchFundInfo: () => dispatch(clearSearchFundInfo()),\n updateUserAccounts: (accounts) => dispatch(updateUserAccounts(accounts)),\n updateErrorModal: (payload) => dispatch(updateErrorModal(payload)),\n updateActiveTab: (payload) =>\n dispatch(updateActiveTabOrderRequestModal(payload)),\n updateLatestPlan: (payload) => dispatch(updateLatestPlan(payload)),\n clearLatestPlan: () => dispatch(clearLatestPlan()),\n updateLatestSettleDate: (payload) =>\n dispatch(updateLatestSettleDate(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(BuyWidget);\n","/* main react */\nimport React, { useState, useEffect, useImperativeHandle } from \"react\";\nimport { useFormik } from \"formik\";\nimport * as Yup from \"yup\";\n\n/* services */\nimport { fetchCalendarThaiHolidays } from \"../../../_services/calendar.services\";\n\n/* helper function */\nimport { sub, add } from \"date-fns\";\nimport {\n formatDateTime,\n compareDate,\n} from \"../../../_helpers/format-date-time\";\n\n/* ui component */\nimport { FormGroup, Form } from \"reactstrap\";\n// import { Checkbox } from 'pretty-checkbox-react';\nimport { CaretIcon } from \"../../../_components/icons/icons\";\nimport { DateInput } from \"../../../_components/forms/inputs/input-date-time.component\";\nimport SingleSelectDropdown from \"../../../_components/dropdown/single-select-dropdown.component\";\nimport { fetchGetReceivingDate } from \"../../../_services/order-request.services\";\nimport { handlePreventDefault } from \"../../../_utils/order-request.utils\";\nimport { NumberInput } from \"../../../_components/forms/inputs/input-format-number.component\";\n\nconst SellSingleForm = (props) => {\n const {\n refId,\n fundInfo,\n userAccounts,\n updatePropertiesHandler,\n currentFundAccountType,\n } = props;\n\n const purchaseUnitOptions = [\n {\n code: \"A\",\n displayName: \"บาท\",\n },\n {\n code: \"B\",\n displayName: \"หน่วย\",\n },\n {\n code: \"C\",\n displayName: \"ทั้งหมด\",\n },\n ];\n\n const ACCOUNT_TYPE = {\n sellingAgent: \"S\",\n };\n\n const initFormikValue = {\n settleDate: new Date(new Date().toDateString()),\n unit: \"\",\n amount: \"\",\n tradeType: purchaseUnitOptions[0].code,\n };\n\n const validate = Yup.object().shape({\n settleDate: Yup.date().min(\n fundInfo?.sellDate\n ? new Date(new Date(fundInfo.sellDate).toDateString())\n : new Date(new Date().toDateString()),\n \"ไม่สามารถเลือกวันที่ย้อนหลังได้\"\n ),\n amount: Yup.number()\n .required(\"โปรดระบุจำนวน\")\n .typeError(\"โปรดระบุจำนวน\")\n .when(\"tradeType\", (tradeType, field) =>\n tradeType === \"C\"\n ? fundInfo?.sellableUnit === 0\n ? field.min(1, \"ไม่มีหน่วยลงทุนคงเหลือ\")\n : field.min(\n fundInfo?.sellableUnit ?? 0,\n `ยอดขั้นต่ำ ${\n fundInfo?.fund?.investment?.minimumRedemptionUnit ?? 0\n } หน่วย`\n )\n : tradeType === \"B\"\n ? field.min(\n fundInfo?.fund?.investment?.minimumRedemptionUnit ?? 0,\n `ยอดขั้นต่ำ ${\n fundInfo?.fund?.investment?.minimumRedemptionUnit ?? 0\n } หน่วย`\n )\n : field.min(\n fundInfo?.fund?.investment?.minimumRedemption ?? 0,\n `ยอดขั้นต่ำ ${\n fundInfo?.fund?.investment?.minimumRedemption ?? 0\n } บาท`\n )\n ),\n paymentChannel: Yup.string().required(\"โปรดเลือกบัญชี\").nullable(),\n });\n\n const formik = useFormik({\n initialValues: initFormikValue,\n validationSchema: validate,\n enableReinitialize: true,\n onSubmit: (values) => {\n let tempPaymentChannel = JSON.parse(values.paymentChannel);\n let temp = new Object({\n ...values,\n accountType: currentFundAccountType,\n accountNumber: userAccounts[0]?.accountNumber,\n fundCode: fundInfo?.fund?.code,\n bankCode: tempPaymentChannel?.[0],\n bankAccount: tempPaymentChannel?.[1],\n payType: \"A\",\n });\n\n if (values.tradeType === \"B\") {\n temp.unit = temp.amount;\n delete temp.amount;\n } else if (values.tradeType === \"A\") {\n delete temp.unit;\n } else if (values.tradeType === \"C\") {\n temp.unit = temp.amount;\n temp.tradeType = \"B\";\n temp.isSellAll = true;\n delete temp.amount;\n }\n\n delete temp.paymentChannel;\n updatePropertiesHandler(temp);\n },\n });\n\n const [purchaseByOptions, setPurchaseByOptions] = useState([]);\n const [receivingDate, setReceivingDate] = useState(null);\n const [isSellAll, setIsSellAll] = useState(false);\n\n // Local Functions\n const resetFormikForm = () => {\n formik.resetForm({ values: initFormikValue });\n setIsSellAll(false);\n };\n\n const updateSingleSelected = (dropdown) => {\n let dropdownTarget = dropdown.currentTarget.dataset.type;\n let dropdownValue =\n dropdown.currentTarget.dataset.value !== undefined\n ? dropdown.currentTarget.dataset.value\n : null;\n\n if (dropdownTarget === \"tradeType\") {\n if (dropdownValue === \"C\") {\n formik.setFieldValue(\"amount\", fundInfo?.sellableUnit);\n setIsSellAll(true);\n } else {\n formik.setFieldValue(\"amount\", \"\");\n setIsSellAll(false);\n }\n }\n formik.setFieldValue(`${dropdownTarget}`, dropdownValue);\n };\n\n const isSettleDateEqualLastYear = compareDate(\n formik.values.settleDate,\n new Date(new Date().getFullYear(), 11, 31)\n );\n // date caret with holidays check\n const [holidays, setHolidays] = useState([]);\n async function getThaiHolidays() {\n await fetchCalendarThaiHolidays()\n .then((response) => {\n setHolidays(response.data);\n })\n .catch((err) => {\n setHolidays([]);\n });\n }\n useEffect(() => {\n getThaiHolidays();\n }, []);\n const handleDateCaret = (caretType) => {\n if (caretType === \"next\") {\n let nextDate = add(formik.values.settleDate, { days: 1 });\n holidays.forEach((hol) => {\n let holidayDate = new Date(hol);\n while (compareDate(holidayDate, nextDate)) {\n nextDate = add(nextDate, { days: 1 });\n }\n });\n formik.setFieldValue(\"settleDate\", nextDate);\n } else {\n let prevDate = sub(formik.values.settleDate, { days: 1 });\n holidays\n .slice()\n .reverse()\n .forEach((hol) => {\n let holidayDate = new Date(hol);\n while (compareDate(holidayDate, prevDate)) {\n prevDate = sub(prevDate, { days: 1 });\n }\n });\n formik.setFieldValue(\"settleDate\", prevDate);\n }\n };\n\n // handle ref from parent component\n useImperativeHandle(refId, () => ({\n Submit: async () => {\n await formik.submitForm();\n },\n }));\n\n useEffect(() => {\n let tempChannels =\n fundInfo?.bankAccounts?.map((item) => ({\n displayName: `${item.displayedText}`,\n code: JSON.stringify([item.bankCode, item.bankAccountNumber]),\n })) ?? [];\n\n setPurchaseByOptions(tempChannels);\n\n if (fundInfo) {\n formik.setFieldValue(\n \"settleDate\",\n fundInfo?.sellDate\n ? new Date(new Date(fundInfo.sellDate).toDateString())\n : new Date(new Date().toDateString())\n );\n } else {\n const { amount, ...fieldToReset } = initFormikValue;\n formik.setValues({ ...formik.values, ...fieldToReset });\n setTimeout(() => formik.setErrors({}));\n setIsSellAll(false);\n }\n }, [fundInfo]);\n\n useEffect(() => {\n // Get Receiving Date when fund info is not null.\n if (fundInfo && formik.values.settleDate) {\n let payload = {\n fundId: fundInfo?.fund?.fundId,\n settleDate: formik.values.settleDate,\n };\n\n fetchGetReceivingDate(payload)\n .then((res) => {\n setReceivingDate(res.data);\n })\n .catch((err) => {\n setReceivingDate(null);\n });\n } else if (!fundInfo) {\n setReceivingDate(null);\n }\n }, [formik.values.settleDate, fundInfo]);\n\n useEffect(() => {\n if (purchaseByOptions.length > 0) {\n formik.setFieldValue(\"paymentChannel\", purchaseByOptions[0].code);\n }\n }, [purchaseByOptions]);\n\n return (\n <>\n
\n \n
วันที่ทำรายการ
\n
\n \n new Date(fundInfo.sellDate).getTime()\n : true)\n }\n className=\"cns-btn btn-md btn-icon square secondary\"\n type=\"button\"\n onClick={() => handleDateCaret(\"prev\")}\n >\n \n \n
\n {\n formik.setFieldValue(\"settleDate\", currentTime);\n }}\n bgColor=\"gray\"\n showIcon={true}\n prevYear={0}\n isDisabledPast\n />\n
\n handleDateCaret(\"next\")}\n >\n \n \n
\n {formik.errors.settleDate && (\n <>\n
\n
\n {formik.errors.settleDate}\n
\n \n )}\n
\n \n
จำนวน
\n
\n {\n formik.setFieldValue(\"amount\", value);\n }}\n handleKey={handlePreventDefault}\n isDisabled={isSellAll}\n initValue={formik.values.amount}\n />\n
\n
\n \n
\n {formik.errors.amount && (\n <>\n
\n
\n {formik.values.tradeType === \"C\" &&\n fundInfo?.sellableUnit === 0 ? (\n ไม่มีหน่วยลงทุนคงเหลือ\n ) : formik.values.tradeType === \"C\" &&\n fundInfo?.sellableUnit > 0 ? (\n \"\"\n ) : (\n {formik.errors.amount}\n )}\n
\n \n )}\n
\n
\n \n
รับเงินโดย
\n
\n {fundInfo?.fund.accountType === ACCOUNT_TYPE.sellingAgent ? (\n
\n ตามบัญชีธนาคารที่ระบุไว้ตอนเปิดบัญชีครั้งแรก\n
\n ) : (\n updateSingleSelected(data)}\n />\n )}\n
\n {formik.errors.paymentChannel && (\n <>\n
\n
\n {formik.errors.paymentChannel}\n
\n \n )}\n
\n \n
วันที่รับเงิน
\n
\n {receivingDate ? formatDateTime.toThaiDate(receivingDate) : \"-\"}\n
\n
\n
\n
\n
\n \n ล้างข้อมูล\n \n
\n
\n
\n {/*
{JSON.stringify(formik.values, 2)}
*/}\n
\n \n );\n};\n\nexport default SellSingleForm;\n","/* main react */\nimport React, { useState, useRef, useImperativeHandle, useEffect } from 'react';\nimport { useFormik } from 'formik';\nimport * as Yup from 'yup';\n\n/* helper function */\nimport { add } from 'date-fns';\n\n/* ui component */\nimport { FormGroup, Input, Form } from 'reactstrap';\nimport { Checkbox } from 'pretty-checkbox-react';\nimport { CheckedIcon } from '../../../_components/icons/icons';\nimport SingleSelectDropdown from '../../../_components/dropdown/single-select-dropdown.component';\nimport PlanTimeDropdown from '../../../_components/dropdown/plan-time-dropdown.component';\nimport { DateRangeDropdown } from '../_components/date-range-dropdown.component';\nimport { fetchChannelByAccount } from '../../../_services/order-request.services';\nimport { formatDateTime, compareDate } from '../../../_helpers/format-date-time';\nimport { handlePreventDefault } from '../../../_utils/order-request.utils';\n\nconst SellContinuallyForm = (props) => {\n\tconst { \n\t\trefId,\n\t\tfundInfo, \n\t\tuserAccounts,\n\t\tupdatePropertiesHandler\n\t} = props;\n\t\n\tconst purchaseUnitOptions = [\n\t\t{\n\t\t\tcode: 'A', \n\t\t\tdisplayName: 'บาท'\n\t\t},\n\t\t{\n\t\t\tcode: 'B', \n\t\t\tdisplayName: 'หน่วย'\n\t\t}\n\t];\n\n\tconst planRef = useRef(); //Stored current start and end date.\n\n\tconst initFormikValue = {\n\t\tsettleDate: fundInfo?.sellDate \n\t\t\t? new Date(add(new Date(fundInfo.sellDate), { days: 1}).toDateString())\n\t\t\t: new Date(new Date().toDateString()),\n\t\tendDate: null,\n\t\tamount: '',\n\t\tpayType: null,\n\t\tplanDate: {},\n\t\ttradeType: purchaseUnitOptions[0].code,\n\t\tunit: ''\n\t};\n\n\tconst validate = Yup.object().shape({\n\t\tplanDate: Yup.object().shape({\n\t\t\tplanType: Yup.string().required('โปรดระบุเเผน'),\n\t\t}),\n\t\tsettleDate: Yup.date()\n\t\t\t.min(fundInfo?.sellDate \n\t\t\t\t? new Date(new Date(fundInfo.sellDate).toDateString()) \n\t\t\t\t: new Date(new Date().toDateString()),\n\t\t\t\t'ไม่สามารถเลือกวันที่ย้อนหลังได้'),\n\t\tamount: Yup.number()\n\t\t\t.required('โปรดระบุจำนวน')\n\t\t\t.typeError('โปรดระบุจำนวน')\n\t\t\t.when('tradeType', (tradeType, field) =>\n\t\t\t\ttradeType === 'C'\n\t\t\t\t\t? fundInfo?.sellableUnit === 0\n\t\t\t\t\t\t? field.min(1, \"ไม่มีหน่วยลงทุนคงเหลือ\")\n\t\t\t\t\t\t\t: field.min(fundInfo?.sellableUnit ?? 0, `ยอดขั้นต่ำ ${fundInfo?.fund?.investment?.minimumRedemptionUnit ?? 0} หน่วย`)\n\t\t\t\t: tradeType === 'B'\n\t\t\t\t\t? field.min(fundInfo?.fund?.investment?.minimumRedemptionUnit ?? 0, `ยอดขั้นต่ำ ${fundInfo?.fund?.investment?.minimumRedemptionUnit ?? 0} หน่วย`)\n\t\t\t\t: field.min(fundInfo?.fund?.investment?.minimumRedemption ?? 0, `ยอดขั้นต่ำ ${fundInfo?.fund?.investment?.minimumRedemption ?? 0} บาท`)\t\n\t\t\t),\n\t\tpayType: Yup.string()\n\t\t\t.nullable()\n\t\t\t.required('โปรดเลือกช่องทางการรับเงิน'),\n\t\tpaymentChannel: Yup.string()\n\t\t\t.required('โปรดเลือกบัญชี').nullable(),\n\t\tendDate: Yup.mixed().test({\n\t\t\tname: 'endDate',\n\t\t\texclusive: false,\n\t\t\tparams: {},\n\t\t\tmessage: '${path} ห้ามเลือกก่อนวันเริ่มต้น',\n\t\t\ttest: function (value) {\n\t\t\t\tif (!value) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tlet start = new Date(planRef.current.startDate);\n\t\t\t\tlet end = new Date(value);\n\n\t\t\t\treturn start < end || compareDate(start, end) ? true : false;\n\t\t\t}\n\t\t})\n\t});\n\n\tconst formik = useFormik({\n\t\tinitialValues: initFormikValue,\n\t\tenableReinitialize: true,\n\t\tvalidationSchema: validate,\n\t\tonReset: () => {\n\t\t\tupdatePropertiesHandler();\n\t\t},\n\t\tonSubmit: (values) => {\n\t\t\tlet tempPlanDate = Object.keys(values.planDate).reduce((prev, curr) => {\n\t\t\t\tprev[curr.toLowerCase()] = values.planDate[curr];\n\t\t\t\treturn prev\n\t\t\t}, {});\n\t\t\tlet tempPaymentChannel = JSON.parse(values.paymentChannel);\n\t\t\tlet temp = {\n\t\t\t\t...values,\n\t\t\t\t...tempPlanDate,\n\t\t\t\taccountType: fundInfo?.fund?.accountType,\n\t\t\t\taccountNumber: userAccounts[0]?.accountNUmber,\n\t\t\t\tfundCode: fundInfo?.fund?.code,\n\t\t\t\tbankCode: tempPaymentChannel?.[0],\n\t\t\t\tbankAccount: tempPaymentChannel?.[1]\n\t\t\t};\n\n\t\t\tif (values.tradeType === 'B') {\n\t\t\t\ttemp.unit = temp.amount;\n\t\t\t\tdelete temp.amount;\n\t\t\t} else if (values.tradeType === 'A') {\n\t\t\t\tdelete temp.unit;\n\t\t\t}\n\n\t\t\tdelete temp.planDate;\n\t\t\tdelete temp.paymentChannel;\n\n\t\t\tupdatePropertiesHandler(temp);\n\t\t}\n\t});\n\n\tconst purchaseTypeOptions = fundInfo?.payTypes?.map((option) => ({\n\t\t'displayName': option.name,\n\t\t'code': option.code\n\t})) ?? [];\n\n\tconst [purchaseByOptions, setPurchaseByOptions] = useState([]);\n\n\tconst updateSingleSelected = (dropdown) => {\n\t\tlet dropdownTarget = dropdown.currentTarget.dataset.type;\n\t\tlet dropdownValue = dropdown.currentTarget.dataset.value !== undefined ? dropdown.currentTarget.dataset.value : null;\n\n\t\tif (dropdownTarget === 'payType') {\n\t\t\tlet payload = {\n\t\t\t\taccountNumber: userAccounts[0]?.accountNumber,\n\t\t\t\tfundId: fundInfo?.fundId,\n\t\t\t\tpaymentOption: dropdownValue\n\t\t\t}\n\n\t\t\tfetchChannelByAccount(payload)\n\t\t\t\t.then(res => {\n\t\t\t\t\tlet temp = res.data.map(item => ({\n\t\t\t\t\t\tdisplayName: item.displayedText,\n\t\t\t\t\t\tcode: JSON.stringify([item.bankCode, item.bankAccount]) //code: item.bankCode\n\t\t\t\t\t}))\n\t\t\t\t\tsetPurchaseByOptions(temp);\n\t\t\t\t})\n\t\t\t\t.catch(err => {\n\t\t\t\t\tsetPurchaseByOptions([]);\n\t\t\t\t});\n\n\t\t\tformik.setFieldValue('paymentChannel', undefined);\n\t\t} else if (dropdownTarget === 'sellAllChecker') {\n\t\t\tconst { checked } = dropdown.currentTarget; // @param checked is bool true when selected check box.\n\t\t\tformik.setFieldValue('amount', !checked ? 0: formik.values.tradeType !== 'B' ? fundInfo?.sellableBalance : fundInfo?.sellableUnit);\n\t\t\treturn;\n\t\t} else if (dropdownTarget === 'tradeType') {\n\t\t\tformik.setFieldValue('amount', 0);\n\t\t}\n\n\t\tformik.setFieldValue(`${dropdownTarget}`, dropdownValue);\n\t};\n\n\tconst updateSettleDateHandler = (e) => {\n\t\tformik.setFieldValue('settleDate', e.startDate);\n\t\tformik.setFieldValue('endDate', e.endDate);\n\t\tplanRef.current = e; // store current start and end date.\t\t\n\t}\n\n\tconst updatePlanHandler = (event) => {\n\t\tformik.setFieldValue('planDate', event);\n\t}\n\n\tuseImperativeHandle(refId, () => ({\n\t\tSubmit: async () => {\n\t\t\tawait formik.submitForm();\n\t\t}\n\t}));\n\n\tuseEffect(() => {\n\t\tif (!fundInfo) {\n\t\t\tformik.resetForm({ values: initFormikValue });\n\t\t}\n\t}, [fundInfo])\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
แผน
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\tformik.errors.planDate?.planType\n\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{formik.errors.planDate.planType}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
มีผล
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\tformik.errors.settleDate \n\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{formik.errors.settleDate}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tformik.errors.endDate \n\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{formik.errors.endDate}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
จำนวน
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\tformik.errors.amount \n\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tformik.values.tradeType === 'C' && fundInfo?.sellableUnit === 0 \n\t\t\t\t\t\t\t\t\t\t\t? ไม่มีหน่วยลงทุนคงเหลือ\n\t\t\t\t\t\t\t\t\t\t\t\t: formik.values.tradeType === 'C' && (fundInfo?.sellableUnit > 0) ? ''\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {formik.errors.amount}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
รับเงินโดย
\n\t\t\t\t\t
\n\t\t\t\t\t\t updateSingleSelected(data)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t\t{\n\t\t\t\t\t\tformik.errors.paymentChannel \n\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{formik.errors.paymentChannel}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
วันที่รับเงิน
\n\t\t\t\t\t
\n\t\t\t\t\t{/* Todo via APIs get redemtion date */}\n\t\t\t\t\t{\n\t\t\t\t\t\tfundInfo?.fund?.investment?.redemptionSettlementDay \n\t\t\t\t\t\t? formatDateTime.toThaiDate(add(formik.values.settleDate, {days: fundInfo?.fund?.investment?.redemptionSettlementDay}).toJSON())\n\t\t\t\t\t\t: '-'\n\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default SellContinuallyForm;\n","/* main react */\nimport React, { useState, useEffect, useRef } from 'react';\nimport { connect } from 'react-redux';\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from 'reselect';\nimport { checkedSellableFundStart, updateActiveTabOrderRequestModal } from '../../_actions/order-request.actions';\nimport { updateErrorModal } from '../../_actions/main.actions'; \nimport { updateUserAccounts } from '../../_actions/investment.actions';\n\nimport { \n\tselectAccountList,\n\tselectUserType\n} from '../../_selectors/authentication.selectors';\nimport { selectFundInfoData, selectSubActiveTabOrderRequestModal } from '../../_selectors/order-request.selectors';\nimport { selectUserAccounts } from '../../_selectors/investment.selectors';\nimport { mainSelectors } from '../../_selectors';\n\n/* helper function */\nimport classnames from 'classnames';\n\n/* ui component */\nimport { Card, CardBody, FormGroup, Form } from 'reactstrap';\n\n/* page component */\nimport SellSingleForm from './_widget-form/sell-single-form.component';\nimport SellContinuallyForm from './_widget-form/sell-continually-form.component';\nimport SearchFundInfo from './_widget-form/search-fund-info.component';\nimport SingleAccountNumberFilter from '../../_components/dropdown/single-account-number-filter.component';\n\nconst sellTypes = {\n\t'SINGLE': {label: 'ขายครั้งเดียว', value: 'SINGLE'},\n\t'DCA': {label: 'ขายสม่ำเสมอ', value: 'DCA'},\n\t'BOTH': {label: 'ขายทั้ง 2 อย่าง', value: 'BOTH'},\n}\n\nconst SellFundTab = ({ activeTab, fundInfo, userAccounts, checkedSellableFund, fundAccountType }) => {\n\tconst [properties, setProperties] = useState({});\n\tconst formARef = useRef();\n\tconst formBRef = useRef();\n\n\tconst handleChangeFormA = (data) => {\n\t\t// setProperties({ ...properties, oneTime: data }); //use this line when have sell continue\n\t\tlet temp = { ...properties };\n\t\tif (data) {\n\t\t\ttemp = { ...temp, oneTime: data };\n\t\t} else {\n\t\t\tdelete temp.oneTime\n\t\t}\n\t\tsetProperties(temp);\n\t}\n\n\tconst handleChangeFormB = (data) => {\n\t\tlet temp = { ...properties };\n\t\tif (data) {\n\t\t\ttemp = { ...temp, dca: data };\n\t\t} else {\n\t\t\tdelete temp.dca\n\t\t}\n\t\tsetProperties(temp);\n\t}\n\t\n\tconst handleSubmit = async () => {\n\t\tif (activeTab === 'SINGLE' || activeTab === 'BOTH') {\n\t\t\tawait formARef.current.Submit();\n\t\t} \n\n\t\tif (activeTab === 'DCA' || activeTab === 'BOTH') {\n\t\t\tawait formBRef.current.Submit();\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tsetProperties({});\n\t}, [activeTab]);\n\n\tuseEffect(() => {\n\t\tif (Object.keys(properties).length \n\t\t\t&& ((activeTab === 'BOTH' && properties.hasOwnProperty('oneTime') && properties.hasOwnProperty('dca'))\n\t\t\t\t|| (activeTab === 'SINGLE' && Object.keys(properties).length)\n\t\t\t\t// || (activeTab === 'SINGLE' && properties.hasOwnProperty('oneTime')) //use this line when have sell continue\n\t\t\t\t|| (activeTab === 'DCA' && properties.hasOwnProperty('dca')))) {\n\t\t\tcheckedSellableFund(properties);\n\t\t}\n\t}, [properties])\n\n\tlet component;\n\tswitch (activeTab) {\n\t\tcase 'SINGLE':\n\t\t\tcomponent = \n\t\t\tbreak;\n\t\tcase 'DCA':\n\t\t\tcomponent = ;\n\t\t\tbreak;\n\t\tcase 'BOTH':\n\t\t\tcomponent = (\n\t\t\t\t<>\n\t\t\t\t\t
{sellTypes['SINGLE'].label}
\n\t\t\t\t\t\n\t\t\t\t\t
{sellTypes['DCA'].label}
\n\t\t\t\t\t;\n\t\t\t\t\n\t\t\t);\n\t\t\tbreak;\n\t}\n\n\treturn ( \t\n\t\t
\n\t\t\t{component}\n\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst SellWidget = (props) => {\n\t// Initial props\n\tconst {\n\t\tisTabletOrMobile,\n\t\taccountList, \n\t\tuserAccounts, \n\t\tupdateUserAccounts, \n\t\tfundInfo,\n\t\tcheckedSellableFund,\n\t\tupdateErrorModal,\n\t\tsubActiveTab,\n\t\tupdateActiveTab,\n\t\tuserType\n\t} = props;\n\n\t// Local State props\n\t// const [activeTab, setActiveTab] = useState('SINGLE'); // Display Tab actived\n\n\tconst isDSAUserType = ['DSA'].includes(userType);\n\n\tconst isSubmittableOrderAccountMemories = React.useMemo(() => {\n\t\tif (isDSAUserType) {\n\t\t\treturn accountList;\n\t\t} else {\n\t\t\treturn accountList?.filter(x => x.isSubmittableOrder) ?? [];\n\t\t}\n\t}, [accountList]);\n\n\tconst userAccountMemories = React.useMemo(() => {\n\t\treturn userAccounts?.filter(x => isSubmittableOrderAccountMemories.some(y => y.accountNumber === x.accountNumber)) ?? [];\n\t}, [userAccounts, accountList]);\n\n\tconst [fundAccountType, setFundAccountTypes] = useState('');\n\t// useEffect(() => {\n\t// \tif (fundInfo && !fundInfo?.isDCA && subActiveTab !== 'SINGLE') {\n\t// \t\t// UNCOMMENT THIS LINE IF NEED SWITCH TO SELL SINGLE TAB --> setActiveTab('switch_single');\n\t// \t\tupdateErrorModal({message: 'กองทุนนี้ไม่สามารถ สลับ DCA ได้'});\n\t// \t}\n\t// }, [fundInfo, subActiveTab])\n\n\t// Render Area \n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{/* { // TODO Phase II (Sell continue, Sell both).\n\t\t\t\t\t\t\t\t\t\tObject.keys(sellTypes).map((item) => {\n\t\t\t\t\t\t\t\t\t\t\tconst { label, value } = sellTypes[item];\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t { value !== subActiveTab && updateActiveTab({subActiveTab: value}) }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t} */}\n\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n}\n\nconst mapStateToProps = createStructuredSelector({\n\tuserAccounts: selectUserAccounts,\n\taccountList: selectAccountList,\n\tisTabletOrMobile: mainSelectors.selectIsMobileScreenSize,\n\tfundInfo: selectFundInfoData,\n\tsubActiveTab: selectSubActiveTabOrderRequestModal,\n\tuserType: selectUserType\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n\tupdateUserAccounts: (accounts) => dispatch(updateUserAccounts(accounts)),\n\tcheckedSellableFund: (data) => dispatch(checkedSellableFundStart(data)),\n\tupdateErrorModal: (payload) => dispatch(updateErrorModal(payload)),\n\tupdateActiveTab: (payload) => dispatch(updateActiveTabOrderRequestModal(payload))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SellWidget);\n","/* main react */\nimport React, { useEffect, useImperativeHandle, useState } from \"react\";\nimport { useFormik } from \"formik\";\nimport * as Yup from \"yup\";\n\n/* services */\nimport { fetchCalendarThaiHolidays } from \"../../../_services/calendar.services\";\n\n/* helper function */\nimport { sub, add } from \"date-fns\";\nimport { compareDate } from \"../../../_helpers/format-date-time\";\n\n/* ui component */\nimport { FormGroup, Form } from \"reactstrap\";\n// import { Checkbox } from 'pretty-checkbox-react';\nimport { CaretIcon, CheckedIcon } from \"../../../_components/icons/icons\";\nimport { DateInput } from \"../../../_components/forms/inputs/input-date-time.component\";\nimport SingleSelectDropdown from \"../../../_components/dropdown/single-select-dropdown.component\";\nimport { handlePreventDefault } from \"../../../_utils/order-request.utils\";\nimport { NumberInput } from \"../../../_components/forms/inputs/input-format-number.component\";\n\nconst SwitchSingleForm = (props) => {\n const { refId, fundInfo, toFundInfo, userAccounts, updatePropertiesHandler } =\n props;\n\n const purchaseUnitOptions = [\n {\n code: \"A\",\n displayName: \"บาท\",\n },\n {\n code: \"B\",\n displayName: \"หน่วย\",\n },\n {\n code: \"C\",\n displayName: \"ทั้งหมด\",\n },\n ];\n\n const [isSellAll, setIsSellAll] = useState(false);\n\n const initFormikValue = {\n settleDate: new Date(new Date().toDateString()),\n unit: \"\",\n amount: \"\",\n tradeType: purchaseUnitOptions[0].code,\n };\n\n const validate = Yup.object().shape({\n settleDate: Yup.date().min(\n toFundInfo?.sellDate\n ? new Date(new Date(toFundInfo.sellDate).toDateString())\n : new Date(new Date().toDateString()),\n \"ไม่สามารถเลือกวันที่ย้อนหลังได้\"\n ),\n amount: Yup.number()\n .required(\"โปรดระบุจำนวน\")\n .typeError(\"โปรดระบุจำนวน\")\n .when(\"tradeType\", (tradeType, field) =>\n tradeType === \"C\"\n ? toFundInfo?.switchableUnit === 0\n ? field.min(1, \"ไม่มีหน่วยลงทุนคงเหลือ\")\n : field.min(\n fundInfo?.sellableUnit ?? 0,\n `ยอดขั้นต่ำ ${\n fundInfo?.fund?.investment?.minimumRedemptionUnit ?? 0\n } หน่วย`\n )\n : tradeType === \"B\"\n ? field.min(\n toFundInfo?.fund?.investment?.minimumRedemptionUnit ?? 0,\n `ยอดขั้นต่ำ ${\n toFundInfo?.fund?.investment?.minimumRedemptionUnit ?? 0\n } หน่วย`\n )\n : field.min(\n toFundInfo?.fund?.investment?.minimum ?? 0,\n `ยอดขั้นต่ำ ${toFundInfo?.fund?.investment?.minimum ?? 0} บาท`\n )\n ),\n });\n\n const formik = useFormik({\n initialValues: initFormikValue,\n validationSchema: validate,\n enableReinitialize: true,\n onSubmit: (values) => {\n let temp = new Object({\n ...values,\n accountType: fundInfo?.fund?.accountType,\n accountNumber: userAccounts[0]?.accountNumber,\n fundCode: toFundInfo?.fund?.code,\n });\n\n if (values.tradeType === \"B\") {\n temp.unit = temp.amount;\n delete temp.amount;\n } else if (values.tradeType === \"A\") {\n delete temp.unit;\n } else if (values.tradeType === \"C\") {\n temp.unit = temp.amount;\n temp.tradeType = \"B\";\n delete temp.amount;\n }\n\n updatePropertiesHandler(temp);\n },\n });\n\n // Local Functions\n const resetFormikForm = () => {\n formik.resetForm({ values: initFormikValue });\n setIsSellAll(false);\n };\n\n const updateSingleSelected = (dropdown) => {\n let dropdownTarget = dropdown.currentTarget.dataset.type;\n let dropdownValue =\n dropdown.currentTarget.dataset.value !== undefined\n ? dropdown.currentTarget.dataset.value\n : null;\n\n if (dropdownTarget === \"tradeType\") {\n if (dropdownValue === \"C\") {\n formik.setFieldValue(\"amount\", toFundInfo?.switchableUnit);\n setIsSellAll(true);\n } else {\n formik.setFieldValue(\"amount\", \"\");\n setIsSellAll(false);\n }\n }\n\n formik.setFieldValue(`${dropdownTarget}`, dropdownValue);\n };\n\n const isSettleDateEqualLastYear = compareDate(\n formik.values.settleDate,\n new Date(new Date().getFullYear(), 11, 31)\n );\n // date caret with holidays check\n const [holidays, setHolidays] = useState([]);\n async function getThaiHolidays() {\n await fetchCalendarThaiHolidays()\n .then((response) => {\n setHolidays(response.data);\n })\n .catch((err) => {\n setHolidays([]);\n });\n }\n useEffect(() => {\n getThaiHolidays();\n }, []);\n const handleDateCaret = (caretType) => {\n if (caretType === \"next\") {\n let nextDate = add(formik.values.settleDate, { days: 1 });\n holidays.forEach((hol) => {\n let holidayDate = new Date(hol);\n while (compareDate(holidayDate, nextDate)) {\n nextDate = add(nextDate, { days: 1 });\n }\n });\n formik.setFieldValue(\"settleDate\", nextDate);\n } else {\n let prevDate = sub(formik.values.settleDate, { days: 1 });\n holidays\n .slice()\n .reverse()\n .forEach((hol) => {\n let holidayDate = new Date(hol);\n while (compareDate(holidayDate, prevDate)) {\n prevDate = sub(prevDate, { days: 1 });\n }\n });\n formik.setFieldValue(\"settleDate\", prevDate);\n }\n };\n\n useImperativeHandle(refId, () => ({\n Submit: async () => {\n await formik.submitForm();\n },\n }));\n\n useEffect(() => {\n if (!fundInfo) {\n const { amount, ...fieldToReset } = initFormikValue;\n formik.setValues({ ...formik.values, ...fieldToReset });\n setTimeout(() => formik.setErrors({}));\n setIsSellAll(false);\n }\n }, [fundInfo]);\n\n useEffect(() => {\n formik.setFieldValue(\n \"settleDate\",\n toFundInfo?.sellDate\n ? new Date(new Date(toFundInfo.sellDate).toDateString())\n : new Date(new Date().toDateString())\n );\n }, [toFundInfo]);\n\n return (\n <>\n
\n \n
วันที่ทำรายการ
\n
\n \n new Date(toFundInfo.sellDate).getTime()\n : true)\n }\n className=\"cns-btn btn-md btn-icon square secondary\"\n type=\"button\"\n onClick={() => handleDateCaret(\"prev\")}\n >\n \n \n
\n {\n formik.setFieldValue(\"settleDate\", currentTime);\n }}\n bgColor=\"gray\"\n showIcon={true}\n prevYear={0}\n isDisabledPast\n />\n
\n handleDateCaret(\"next\")}\n >\n \n \n
\n {formik.errors.settleDate && (\n <>\n
\n
\n {formik.errors.settleDate}\n
\n \n )}\n
\n \n
จำนวน
\n
\n {formik.values.tradeType === \"C\" ? (\n \n ) : (\n {\n formik.setFieldValue(\"amount\", value);\n }}\n handleKey={handlePreventDefault}\n isDisabled={isSellAll}\n initValue={formik.values.amount}\n />\n )}\n
\n
\n \n
\n {formik.errors.amount && (\n <>\n
\n
\n {formik.values.tradeType === \"C\" &&\n toFundInfo?.switchableUnit === 0 ? (\n ไม่มีหน่วยลงทุนคงเหลือ\n ) : formik.values.tradeType === \"C\" &&\n toFundInfo?.switchableUnit > 0 ? (\n \"\"\n ) : (\n {formik.errors.amount}\n )}\n
\n \n )}\n
\n
\n
\n
\n
\n \n ล้างข้อมูล\n \n
\n
\n
\n
\n \n );\n};\n\nexport default SwitchSingleForm;\n","/* main react */\nimport React, { useRef, useEffect, useImperativeHandle } from \"react\";\nimport { useFormik } from \"formik\";\nimport * as Yup from \"yup\";\n\n/* helper function */\nimport { compareDate } from \"../../../_helpers/format-date-time\";\n\n/* ui component */\nimport { FormGroup, Form } from \"reactstrap\";\nimport SingleSelectDropdown from \"../../../_components/dropdown/single-select-dropdown.component\";\nimport PlanTimeDropdown from \"../../../_components/dropdown/plan-time-dropdown.component\";\nimport { DateRangeDropdown } from \"../_components/date-range-dropdown.component\";\nimport { handlePreventDefault } from \"../../../_utils/order-request.utils\";\nimport { NumberInput } from \"../../../_components/forms/inputs/input-format-number.component\";\n\nconst SwitchContinuallyForm = (props) => {\n const {\n refId,\n fundInfo,\n toFundInfo,\n userAccounts,\n updatePropertiesHandler,\n latestPlan,\n updateLatestPlan,\n clearLatestPlan,\n latestSettleDate,\n updateLatestSettleDate,\n } = props;\n\n const purchaseUnitOptions = [\n {\n code: \"A\",\n displayName: \"บาท\",\n },\n {\n code: \"B\",\n displayName: \"หน่วย\",\n },\n ];\n\n const planRef = useRef(); //Stored current start and end date.\n planRef.current = latestSettleDate;\n\n const defaultStartDate = new Date(new Date().toDateString());\n defaultStartDate.setDate(defaultStartDate.getDate() + 2);\n\n const initFormikValue = {\n settleDate: defaultStartDate,\n endDate: null,\n amount: \"\",\n planDate: {},\n tradeType: purchaseUnitOptions[0].code,\n unit: \"\",\n };\n\n const validate = Yup.object().shape({\n planDate: Yup.object().shape({\n planType: Yup.string().required(\"โปรดระบุเเผน\"),\n }),\n settleDate: Yup.date().min(\n toFundInfo?.dcaDate\n ? new Date(new Date(toFundInfo.dcaDate).toDateString())\n : new Date(new Date().toDateString()),\n \"ไม่สามารถเลือกวันที่ย้อนหลังได้\"\n ),\n amount: Yup.number()\n .required(\"โปรดระบุจำนวน\")\n .typeError(\"โปรดระบุจำนวน\")\n .test(\"not-zero\", \"โปรดระบุจำนวน\", (value) => value !== 0)\n .when(\"tradeType\", (tradeType, field) =>\n tradeType === \"B\"\n ? field.min(\n toFundInfo?.fund?.investment?.minimumRedemptionUnit ?? 0,\n `ยอดขั้นต่ำ ${\n toFundInfo?.fund?.investment?.minimumRedemptionUnit ?? 0\n } หน่วย`\n )\n : field.min(\n toFundInfo?.fund?.investment?.minimum ?? 0,\n `ยอดขั้นต่ำ ${toFundInfo?.fund?.investment?.minimum ?? 0} บาท`\n )\n ),\n endDate: Yup.mixed().test({\n name: \"endDate\",\n exclusive: false,\n params: {},\n message: \"${path} ห้ามเลือกก่อนวันเริ่มต้น\",\n test: function (value) {\n if (!value) {\n return true;\n }\n\n let start = new Date(planRef.current.startDate);\n let end = new Date(value);\n\n return start < end || compareDate(start, end) ? true : false;\n },\n }),\n });\n\n const formik = useFormik({\n initialValues: initFormikValue,\n validationSchema: validate,\n enableReinitialize: true,\n onSubmit: (values) => {\n let tempPlanDate = Object.keys(values.planDate).reduce((prev, curr) => {\n prev[curr.toLowerCase()] = values.planDate[curr];\n return prev;\n }, {});\n let temp = {\n ...values,\n ...tempPlanDate,\n accountType: fundInfo?.fund?.accountType,\n accountNumber: userAccounts[0]?.accountNumber,\n fundCode: toFundInfo?.fund?.code,\n };\n\n if (values.tradeType === \"B\") {\n temp.unit = temp.amount;\n delete temp.amount;\n } else if (values.tradeType === \"A\") {\n delete temp.unit;\n }\n\n delete temp.planDate;\n delete temp.paymentChannel;\n\n updatePropertiesHandler(temp);\n },\n });\n\n // Local Functions\n const resetFormikForm = () => {\n formik.resetForm({ values: initFormikValue });\n };\n\n const updateSingleSelected = (dropdown) => {\n let dropdownTarget = dropdown.currentTarget.dataset.type;\n let dropdownValue =\n dropdown.currentTarget.dataset.value !== undefined\n ? dropdown.currentTarget.dataset.value\n : null;\n\n if (dropdownTarget === \"tradeType\") {\n formik.setFieldValue(\"amount\", \"\");\n }\n\n formik.setFieldValue(`${dropdownTarget}`, dropdownValue);\n };\n\n const updateSettleDateHandler = (e) => {\n formik.setFieldValue(\"settleDate\", e.startDate);\n formik.setFieldValue(\"endDate\", e.endDate);\n // planRef.current = e; // store current start and end date.\n updateLatestSettleDate(e);\n };\n\n const updatePlanHandler = (event) => {\n formik.setFieldValue(\"planDate\", event);\n updateLatestPlan(event);\n };\n\n useImperativeHandle(refId, () => ({\n Submit: async () => {\n await formik.submitForm();\n },\n }));\n\n useEffect(() => {\n if (!fundInfo) {\n const { amount, planDate, ...fieldToReset } = initFormikValue;\n formik.setValues({ ...formik.values, ...fieldToReset });\n setTimeout(() => formik.setErrors({}));\n }\n }, [fundInfo]);\n\n useEffect(() => {\n formik.setFieldValue(\"planDate\", latestPlan);\n }, [latestPlan]);\n\n useEffect(() => {\n let newSettleDate;\n if (latestSettleDate.startDate === undefined) {\n newSettleDate = new Date(new Date().toDateString());\n newSettleDate.setDate(newSettleDate.getDate() + 2);\n } else {\n newSettleDate = new Date(latestSettleDate.startDate);\n newSettleDate.setDate(newSettleDate.getDate());\n }\n formik.setFieldValue(\"settleDate\", newSettleDate);\n formik.setFieldValue(\"endDate\", latestSettleDate.endDate);\n }, [latestSettleDate]);\n\n return (\n <>\n
\n \n
แผน
\n
\n \n
\n {formik.errors.planDate?.planType && (\n <>\n
\n
\n \n {formik.errors.planDate.planType}\n \n
\n \n )}\n
\n \n
มีผล
\n
\n \n
\n {formik.errors.settleDate && (\n <>\n
\n
\n {formik.errors.settleDate}\n
\n \n )}\n {formik.errors.endDate && (\n <>\n
\n
\n {formik.errors.endDate}\n
\n \n )}\n
\n \n
จำนวน
\n
\n {\n formik.setFieldValue(\"amount\", value);\n }}\n handleKey={handlePreventDefault}\n initValue={formik.values.amount}\n />\n
\n
\n \n
\n {formik.errors.amount && (\n <>\n
\n
\n {formik.values.tradeType === \"B\" ? (\n toFundInfo?.switchableUnit === 0 ? (\n ไม่มีหน่วยลงทุนคงเหลือ\n ) : (\n {formik.errors.amount}\n )\n ) : (\n {formik.errors.amount}\n )}\n
\n \n )}\n
\n
\n
\n
\n \n ล้างข้อมูล\n \n
\n
\n
\n
\n \n );\n};\n\nexport default SwitchContinuallyForm;\n","/* main react */\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { connect } from \"react-redux\";\n\n/* reducer, selector, action */\nimport { updateUserAccounts } from \"../../_actions/investment.actions\";\nimport {\n checkedSwitchableFundStart,\n updateActiveTabOrderRequestModal,\n updateLatestPlan,\n updateLatestSettleDate,\n fetchSwitchFundInfoStart,\n updateFundInfo2,\n} from \"../../_actions/order-request.actions\";\nimport { updateErrorModal } from \"../../_actions/main.actions\";\nimport { createStructuredSelector } from \"reselect\";\nimport {\n selectAccountList,\n selectUserType,\n} from \"../../_selectors/authentication.selectors\";\nimport { mainSelectors } from \"../../_selectors\";\nimport {\n selectFundInfo2Data,\n selectFundInfoData,\n selectSubActiveTabOrderRequestModal,\n selectLatestPlan,\n selectLatestSettleDate,\n} from \"../../_selectors/order-request.selectors\";\nimport { selectUserAccounts } from \"../../_selectors/investment.selectors\";\nimport { secondsOfDay } from \"../../_utils/order-request.utils\";\n\n/* helper function */\nimport classnames from \"classnames\";\nimport formatNumber from \"../../_helpers/format-number\";\n\n/* ui component */\nimport { Card, CardBody, Form, FormGroup } from \"reactstrap\";\nimport { LongArrowIcon } from \"../../_components/icons/icons\";\nimport SingleAccountNumberFilter from \"../../_components/dropdown/single-account-number-filter.component\";\n\n/* page component */\nimport SwitchSingleForm from \"./_widget-form/switch-single-form.component\";\nimport SwitchContinuallyForm from \"./_widget-form/switch-continually-form.component\";\nimport SearchFunInfo from \"./_widget-form/search-fund-info.component\";\nimport GeneralModal from \"../../_components/modals/general-modal.component\";\nimport { fetchSwitchableOutFunds } from \"../../_services/order-request.services\";\n\nconst switchTypes = {\n SINGLE: { label: \"สับเปลี่ยนครั้งเดียว\", value: \"SINGLE\" },\n DCA: { label: \"สับเปลี่ยนสม่ำเสมอ\", value: \"DCA\" },\n BOTH: { label: \"สับเปลี่ยนทั้ง 2 อย่าง\", value: \"BOTH\" },\n};\n\nconst switchTypeDSA = {\n SINGLE: { label: \"สับเปลี่ยนครั้งเดียว\", value: \"SINGLE\" },\n};\n\nconst SwitchFundTab = ({\n activeTab,\n fundInfo,\n toFundInfo,\n userAccounts,\n checkedSwitchableFund,\n latestPlan,\n updateLatestPlan,\n latestSettleDate,\n updateLatestSettleDate,\n}) => {\n const [properties, setProperties] = useState({});\n const formARef = useRef();\n const formBRef = useRef();\n\n const handleChangeFormA = (data) => {\n let temp = { ...properties };\n if (data) {\n temp = { ...temp, oneTime: data };\n } else {\n delete temp.dca;\n }\n setProperties(temp);\n };\n\n const handleChangeFormB = (data) => {\n let temp = { ...properties };\n if (data) {\n temp = { ...temp, dca: data };\n } else {\n delete temp.dca;\n }\n setProperties(temp);\n };\n\n const handleSubmit = async () => {\n if (activeTab === \"SINGLE\" || activeTab === \"BOTH\") {\n await formARef.current.Submit();\n }\n\n if (activeTab === \"DCA\" || activeTab === \"BOTH\") {\n await formBRef.current.Submit();\n }\n };\n\n useEffect(() => {\n setProperties({});\n }, [activeTab]);\n\n useEffect(() => {\n if (\n Object.keys(properties).length &&\n ((activeTab === \"BOTH\" &&\n properties.oneTime !== undefined &&\n properties.dca !== undefined) ||\n (activeTab === \"SINGLE\" && properties.oneTime !== undefined) ||\n (activeTab === \"DCA\" && properties.dca !== undefined))\n ) {\n let payload = new Object({\n fundCode: fundInfo?.fund?.code,\n ...properties,\n });\n checkedSwitchableFund(payload);\n }\n }, [properties]);\n\n let component;\n switch (activeTab) {\n case \"SINGLE\":\n component = (\n \n );\n break;\n case \"DCA\":\n component = (\n \n );\n break;\n case \"BOTH\":\n component = (\n <>\n
{switchTypes[\"SINGLE\"].label}
\n \n
{switchTypes[\"DCA\"].label}
\n \n \n );\n break;\n }\n return (\n
\n {component}\n \n
\n
\n \n ส่งคำสั่ง\n \n
\n
\n
\n );\n};\n\nconst SwitchWidget = ({\n accountList,\n userAccounts,\n updateUserAccounts,\n fundInfo,\n fundInformation2,\n toFundInfo,\n isTabletOrMobile,\n checkedSwitchableFund,\n updateErrorModal,\n subActiveTab,\n updateActiveTab,\n latestPlan,\n updateLatestPlan,\n latestSettleDate,\n updateLatestSettleDate,\n userType,\n}) => {\n // Local State props\n // const [activeTab, setActiveTab] = useState('SINGLE');\n\n const [isReset, setIsReset] = useState(false);\n const isDSAUserType = [\"DSA\"].includes(userType);\n\n const isSubmittableOrderAccountMemories = React.useMemo(() => {\n if (isDSAUserType) {\n return accountList;\n } else {\n return accountList?.filter((x) => x.isSubmittableOrder) ?? [];\n }\n }, [accountList]);\n\n const userAccountMemories = React.useMemo(() => {\n return (\n userAccounts?.filter((x) =>\n isSubmittableOrderAccountMemories.some(\n (y) => y.accountNumber === x.accountNumber\n )\n ) ?? []\n );\n }, [userAccounts, accountList]);\n\n const minimumAmountSwitchableFund =\n !isNaN(fundInfo?.fund?.investment?.minimumRedemption) &&\n !isNaN(toFundInfo?.fund?.investment?.minimum)\n ? fundInfo.fund.investment.minimumRedemption >\n toFundInfo.fund.investment.minimum\n ? fundInfo.fund.investment.minimumRedemption\n : toFundInfo.fund.investment.minimum\n : null;\n\n const minimumTimeSwitchableFund =\n fundInfo?.fund?.investment?.sellTime && toFundInfo?.fund.investment.buyTime\n ? secondsOfDay(fundInfo?.fund?.investment?.sellTime) <\n secondsOfDay(toFundInfo?.fund.investment.buyTime)\n ? fundInfo?.fund?.investment?.sellTime\n : toFundInfo?.fund.investment.buyTime\n : null;\n\n async function checkFundIsDCA() {\n await fetchSwitchableOutFunds({\n keyword: undefined,\n isDCA: [\"DCA\", \"BOTH\"].includes(subActiveTab),\n accountNumber: userAccounts[0]?.accountNumber,\n }).then((response) => {\n if (\n response?.data?.length &&\n !response.data.some(\n (fund) =>\n fund?.fundCode?.toUpperCase() ===\n fundInfo?.fund?.code?.toUpperCase()\n )\n ) {\n updateErrorModal({\n message: \"กองทุนต้นทางนี้ ไม่สามารถส่งคำสั่งสับเปลี่ยนสม่ำเสมอได้\",\n });\n // \tclearSearchFundInfo();\n setIsReset(true);\n }\n });\n }\n\n // Reset active tab when fund info 2's isDCA is false and active tab not switch single.\n // Display Alert Modal when fund is not order DCA.\n useEffect(() => {\n if (fundInfo?.fund?.code && subActiveTab !== \"SINGLE\") {\n checkFundIsDCA();\n }\n }, [subActiveTab]);\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 {formatNumber(minimumAmountSwitchableFund, 0)}\n

\n สับเปลี่ยนขั้นต่ำ\n
\n
\n

\n {fundInformation2?.switchTime ?? \"-\"}\n {/* {minimumTimeSwitchableFund ?? '-'} */}\n

\n สับเปลี่ยนได้ถึง\n
\n
\n

\n {fundInfo?.fund?.fee?.deferLoad\n ? `${fundInfo.fund.fee.deferLoad}%`\n : \"-\"}\n

\n ค่าธรรมเนียมสับเปลี่ยนออก\n
\n
\n

\n {toFundInfo?.fund?.fee?.actualFrontLoad\n ? `${toFundInfo?.fund?.fee?.actualFrontLoad}%`\n : \"-\"}\n

\n ค่าธรรมเนียมสับเปลี่ยนเข้า\n
\n
\n \n \n\n \n \n {isDSAUserType ? (\n
\n {Object.keys(switchTypeDSA).map((item) => {\n const { label, value } = switchTypeDSA[item];\n return (\n {\n value !== subActiveTab &&\n updateActiveTab({ subActiveTab: value });\n }}\n // disabled={toFundInfo\n // \t? toFundInfo.isDCA\n // \t\t? false\n // \t\t: value !== 'SINGLE'\n // \t: false\n // }\n >\n {label}\n \n );\n })}\n
\n ) : (\n
\n
\n {Object.keys(switchTypes).map((item) => {\n const { label, value } = switchTypes[item];\n return (\n {\n value !== subActiveTab &&\n updateActiveTab({ subActiveTab: value });\n }}\n >\n {label}\n \n );\n })}\n
\n
\n )}\n \n \n
\n
\n
\n
\n \n
\n
\n \n );\n};\n\nconst mapStateToProps = createStructuredSelector({\n accountList: selectAccountList,\n userAccounts: selectUserAccounts,\n fundInfo: selectFundInfoData,\n toFundInfo: selectFundInfo2Data,\n isTabletOrMobile: mainSelectors.selectIsMobileScreenSize,\n subActiveTab: selectSubActiveTabOrderRequestModal,\n latestPlan: selectLatestPlan,\n latestSettleDate: selectLatestSettleDate,\n fundInformation2: selectFundInfo2Data,\n userType: selectUserType,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n updateUserAccounts: (accounts) => dispatch(updateUserAccounts(accounts)),\n checkedSwitchableFund: (payload) =>\n dispatch(checkedSwitchableFundStart(payload)),\n updateErrorModal: (payload) => dispatch(updateErrorModal(payload)),\n updateActiveTab: (payload) =>\n dispatch(updateActiveTabOrderRequestModal(payload)),\n updateLatestPlan: (payload) => dispatch(updateLatestPlan(payload)),\n updateLatestSettleDate: (payload) =>\n dispatch(updateLatestSettleDate(payload)),\n fetchSwitchFundInfoStart: (payload) =>\n dispatch(fetchSwitchFundInfoStart(payload)),\n updateFundInfo2: (payload) => dispatch(updateFundInfo2(payload)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SwitchWidget);\n","/* main react */\nimport React, { useState, useEffect } from 'react';\nimport { connect } from 'react-redux';\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from 'reselect';\nimport { selectAccountList } from '../../_selectors/authentication.selectors';\nimport {\n\tselectIsOpenOrderRequestModal,\n\tselectActiveTabOrderRequestModal,\n\tselectFundInfo2Data,\n\tselectFundInfoData,\n\tselectNavigationFund\n} from '../../_selectors/order-request.selectors';\nimport { mainSelectors } from '../../_selectors';\nimport { selectUserAccounts } from '../../_selectors/investment.selectors';\n\nimport {\n\ttoggleOrderRequestModal,\n\tupdateActiveTabOrderRequestModal,\n\tclearNavigationFundToOrderRequestModal,\n\tclearSearchFundInfo,\n\tclearSearchFundInfo2\n} from '../../_actions/order-request.actions';\nimport { updateUserAccounts } from '../../_actions/investment.actions';\n\n/* helper component */\nimport classnames from 'classnames';\n\n/* ui component */\nimport iconConvertor from '../../_helpers/icon-convertor';\nimport { Modal, Card, CardBody, Nav, NavItem, NavLink } from 'reactstrap';\nimport { CancelIcon } from '../../_components/icons/icons';\n\n/* page component */\nimport BuyWidget from './buy-widget.component';\nimport SellWidget from './sell-widget.component';\nimport SwitchWidget from './switch-widget.component';\n\nconst tabList = [\n\t{\n\t\tname: 'Buy',\n\t\ticon: 'BuyIcon'\n\t},\n\t{\n\t\tname: 'Sell',\n\t\ticon: 'SellIcon'\n\t},\n\t{\n\t\tname: 'Switch',\n\t\ticon: 'SwitchIcon'\n\t}\n];\n\nconst OrderRequestFormModal = (props) => {\n\tconst {\n\t\tisOpenModal,\n\t\ttoggleIsOpenModal,\n\t\tactiveTab,\n\t\tisTabletOrMobile,\n\t\tuserAccounts,\n\t\taccountList,\n\t\tupdateActiveTab,\n\t\tnavigatedFund,\n\t\tfundInformation,\n\t\tfundInformation2,\n\t\tclearSearchFundInfo,\n\t\tclearSearchFundInfo2,\n\t\tclearNavigationFund\n\t} = props;\n\n\tconst [accountAlertModal, setAccountAlertModal] = useState(false);\n\tconst toggleAccountAlertModal = () => {setAccountAlertModal(!accountAlertModal)};\n\n\tif (!activeTab && tabList.length) {\n\t\tupdateActiveTab(tabList[0].name);\n\t}\n\n\tconst clearFund = () => {\n\t\tif (fundInformation) {\n\t\t\tclearSearchFundInfo();\n\t\t}\n\n\t\tif (fundInformation2) {\n\t\t\tclearSearchFundInfo2();\n\t\t}\n\n\t\tif (navigatedFund) {\n\t\t\tclearNavigationFund();\n\t\t}\n\t}\n\n\tif (!isOpenModal) {\n\t\tclearFund();\n\t}\n\n\tconst handleToggleModal = () => {\n\t\ttoggleIsOpenModal();\n\t}\n\n\tconst handleUpdateActiveTab = (tab) => {\n\t\tclearFund();\n\t\tupdateActiveTab({ activeTab: tab })\n\t}\n\n\tuseEffect(() => {\n\t\tif (!userAccounts?.length && accountList?.length) {\n\t\t\tupdateUserAccounts(accountList.slice(0, 1));\n\t\t}\n\t}, [accountList]);\n\n\tuseEffect(() => {\n\t\tlet currentAccount = userAccounts?.length ? userAccounts[0].accountNumber : '';\n\t\tconst modelPortRegEx = /\\D{2}$/g;\n\t\tif (currentAccount.length > 6 && modelPortRegEx.test(currentAccount) && isOpenModal) {\n\t\t\ttoggleAccountAlertModal();\n\t\t}\n\t}, [isOpenModal, userAccounts]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'Buy': ,\n\t\t\t\t\t\t\t\t'Sell': ,\n\t\t\t\t\t\t\t\t'Switch': \n\t\t\t\t\t\t\t}[activeTab]\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{\n\t\t\t\tisOpenModal && accountAlertModal\n\t\t\t\t&&\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\tเลขที่บัญชี {userAccounts[0].accountNumber} เป็นการลงทุนในรูปแบบ Model port\n\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t}\n\t\t\n\t);\n};\n\nconst mapStateToProps = createStructuredSelector({\n\tisOpenModal: selectIsOpenOrderRequestModal,\n\tactiveTab: selectActiveTabOrderRequestModal,\n\tisTabletOrMobile: mainSelectors.selectIsMobileScreenSize,\n\tuserAccounts: selectUserAccounts,\n\taccountList: selectAccountList,\n\tnavigatedFund: selectNavigationFund,\n\tfundInformation: selectFundInfoData,\n\tfundInformation2: selectFundInfo2Data,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n\tupdateUserAccounts: (accounts) => dispatch(updateUserAccounts(accounts)),\n\ttoggleIsOpenModal: () => dispatch(toggleOrderRequestModal()),\n\tupdateActiveTab: (tab) => dispatch(updateActiveTabOrderRequestModal(tab)),\n\tclearSearchFundInfo: () => dispatch(clearSearchFundInfo()),\n\tclearSearchFundInfo2: () => dispatch(clearSearchFundInfo2()),\n\tclearNavigationFund: () => dispatch(clearNavigationFundToOrderRequestModal())\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OrderRequestFormModal);\n","/* main react */\nimport React, { useState } from 'react';\n\nimport { searchInformation } from '../../../_services/search.services';\n\n/* ui component */\nimport { Card, CardBody, ListGroup, Form, FormGroup } from 'reactstrap';\nimport { CancelIcon, SearchIcon } from '../../../_components/icons/icons';\nimport * as iFundCategory from '../../../_components/icons/fund-category';\n\n/* page component */\nimport SearchItem from '../../../_components/search/search-item.component';\n\nconst InputTransferSearchForm = ({ \n\tfundInfo,\n\thandleSearchFundInfo,\n\tresetSearchFundInfo,\n\tisTabletOrMobile\n}) => {\n\n\tconst [searchText, setSearchText] = useState(null);\n\tconst [searchFundList, setSearchFundList] = useState([]);\n\n\tconst CategoryIcon = iFundCategory[fundInfo?.fund?.categoryCode];\n\tlet bgStyle = { backgroundColor: '#FFD400' };\n\tif (fundInfo && fundInfo?.fund?.color) {\n\t\tbgStyle['backgroundColor'] = fundInfo.fund.color;\n\t}\n\t\n\tasync function searchFund(payload) {\n\t\tawait searchInformation(payload)\n\t\t .then((response) => {\n\t\t\tsetSearchFundList(response?.data?.fundInformation);\n\t\t });\n\t}\n\t\n\tconst handleSearchInput = (e) => {\n\t\tconst { value } = e.target;\n\t\tif (value === null || value === undefined || value === '') {\n\t\t\tsetSearchFundList([]);\n\t\t\t// setSearchText(null);\n\t\t} else {\n\t\t\tsearchFund(value);\n\t\t\t// setSearchText(true);\n\t\t}\t\t\n\t}\n\n\tconst handleResetSearchFundInfo = () => {\n\t\tsetSearchText(null);\n\t\tresetSearchFundInfo();\n\t}\n\n\tconst selectFund = (e) => {\n\t\tlet resultItem = e.currentTarget ? e.currentTarget.dataset?.name : e.dataset?.name;\n\t\thandleSearchFundInfo(resultItem);\n\t\tsetSearchFundList([]);\n\t\tsetSearchText(JSON.parse(resultItem));\n\t};\n\n\treturn (\n\t\t\n\t\t\t{\n\t\t\t\tfundInfo || searchText\n\t\t\t\t?\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t!!CategoryIcon\n\t\t\t\t\t\t\t\t\t&& \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{searchText?.thailandFundCode || fundInfo?.fund?.code}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{fundInfo?.fund?.name}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t:\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tsearchFundList && searchFundList.length\n\t\t\t\t\t\t\t\t\t?\t<>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{\t\n\t\t\t\t\t\t\t\t\t\t\t\tsearchFundList.map((item, index) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t:\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t}\n\t\t\n\t\t
\n\t);\n}\n\nexport default InputTransferSearchForm;\n","/* main react */\nimport React, { useState, useEffect } from 'react';\n\n/* ui component */\nimport { Card, CardBody } from 'reactstrap';\nimport { LongArrowIcon } from '../../../_components/icons/icons';\n\n/* page component */\nimport InputTransferSearchForm from './input-search-form.component';\n\nconst SearchFundInfo = ({ props }) => {\n\t\n\t// start mock data\n\tconst mockTargetList = [\n\t\t{\n\t\t\tfund: {\n\t\t\t\tcode: '0001',\n\t\t\t\tcolor: '#ff33ff',\n\t\t\t\tname: 'กองทุนทดสอบ 1'\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tfund: {\n\t\t\t\tcode: '0002',\n\t\t\t\tcolor: '#ffff33',\n\t\t\t\tname: 'กองทุนทดสอบ 2'\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tfund: {\n\t\t\t\tcode: '0003',\n\t\t\t\tcolor: '#33ffff',\n\t\t\t\tname: 'กองทุนทดสอบ 3'\n\t\t\t}\n\t\t}\n\t]\n\n\tconst sourceFund = {\n\t\tfund: {\n\t\t\tcode: '0001',\n\t\t\tcolor: '#ff33ff',\n\t\t\tname: 'กองทุนทดสอบ 1'\n\t\t}\n\t}\n\n\tconst [ currentFund, setCurrentFund ] = useState();\n\tconst [ targetFund, setTargetFund ] = useState();\n\tconst [ targetList, setTargetList ] = useState(mockTargetList);\n\tconst [ isSelfTransfer, setIsSelfTransfer ] = useState(false);\n\n\tconst handleSearchFundInfo = (e) => {\n setCurrentFund(sourceFund)\n }\n\n\tconst resetSearchFundInfo = () => {\n\t\tsetCurrentFund(null);\n\t};\n\n\tconst handleSearchTargetFundInfo = (e) => {\n setTargetFund(sourceFund)\n }\n\n\tconst resetSearchTargetFundInfo = () => {\n\t\tsetTargetFund(null);\n\t\tsetTargetList(mockTargetList);\n\t};\n\n\tconst handleSetTarget = (targetType) => {\n\t\tswitch (targetType) {\n\t\t\tcase 'self':\n\t\t\t\tsetIsSelfTransfer(true);\n\t\t\t\tsetTargetList([currentFund]);\n\t\t\t\tbreak;\n\t\t\tcase 'other':\n\t\t\t\tsetIsSelfTransfer(false);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n }\n\n\tuseEffect(() => {\n setIsSelfTransfer(targetList.filter(obj => obj.fund.code === sourceFund.fund.code).length > 0);\n\t}, [currentFund]);\n\t// end mock data\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t
\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcurrentFund\n\t\t\t\t\t\t\t?\tisSelfTransfer\n\t\t\t\t\t\t\t\t?\t<>\n\t\t\t\t\t\t\t\t\t\t

กองทุนนี้สามารถโอนย้ายโดยตรงมาที่โนมูระก็ได้

\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\ttargetList.length > 1\n\t\t\t\t\t\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

หรือเป็นการโอนเข้ากองทุนอื่นก็ได้(อาจมีค่าธรรมเนียม) กรุณาเลือกด้านล่าง

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tค่าธรรมเนียม วิธีการ เงื่อนไขการโอน เอกสารที่เกี่ยวข้อง ดูรายละเอียด ที่นี่\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t:\t<>\n\t\t\t\t\t\t\t\t\t\t

กองทุนนี้ไม่สามารถโอนย้ายโดยตรงมาที่โนมูระได้

\n\t\t\t\t\t\t\t\t\t\t

ต้องเป็นการโอนเข้ากองทุนอื่น ท่านสามารถเลือกกองปลายทางได้ด้านล่าง

\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t:\tค่าธรรมเนียม วิธีการ เงื่อนไขการโอน เอกสารที่เกี่ยวข้อง ดูรายละเอียด ที่นี่\n\t\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t{\n\t\t\t\tcurrentFund && !isSelfTransfer\n\t\t\t\t?\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\tค่าธรรมเนียม วิธีการ เงื่อนไขการโอน เอกสารที่เกี่ยวข้อง ดูรายละเอียด ที่นี่\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t:\t<>\n\t\t\t}\n\t\t\n\t);\n}\n\nexport default SearchFundInfo;\n","/* main react */\nimport React, { useState, useEffect, lazy } from 'react';\nimport { connect } from 'react-redux';\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from 'reselect';\nimport { \n\tselectIsOpenTransferModal,\n} from '../../_selectors/transfer.selectors';\nimport { \n\ttoggleTransferModal,\n} from '../../_actions/transfer.actions';\n\n/* helper function */\nimport { sub, add } from 'date-fns';\n\n/* ui component */\nimport { Modal, Card, CardBody, Form, FormGroup, Input } from 'reactstrap';\nimport { CancelIcon, CaretIcon } from '../../_components/icons/icons';\nimport { DateInput } from '../../_components/forms/inputs/input-date-time.component';\nimport SingleAccountNumberFilter from '../../_components/dropdown/single-account-number-filter.component';\n\n/* page component */\nimport SearchFundInfo from './_components/search-fund-info.component';\n\nconst TransferModal = (props) => {\n\tconst { isOpenModal, toggleIsOpenModal } = props;\n\n\tconst [ inputDate, setInputDate ] = useState(new Date());\n\tconst updateInputDate = (btnType) => {\n\t\tif (btnType === 'prev') {\n\t\t\tsetInputDate(sub(inputDate, {days: 1}));\n\t\t} else if (btnType === 'next') {\n\t\t\tsetInputDate(add(inputDate, {days: 1}));\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

โอนกองทุนมาโนมูระ

\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{/**/}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
วันที่ทำรายการ
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
จำนวน
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
หน่วย
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nconst mapStateToProps = createStructuredSelector({\n\tisOpenModal: selectIsOpenTransferModal,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n\ttoggleIsOpenModal: () => dispatch(toggleTransferModal()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TransferModal);\n","/* main react */\nimport React, { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { Link } from 'react-router-dom';\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from 'reselect';\nimport {\n\tselectShowResponseMessage,\n\tselectCheckedFundAbleToOrder,\n\tselectOrderRequestForm,\n\tselectActiveTabOrderRequestModal,\n\tselectErrorMessageModal,\n\tselectConfirmOrderFund,\n\tselectSubActiveTabOrderRequestModal\n} from '../../_selectors/order-request.selectors';\nimport { mainSelectors, selectUserAccounts } from '../../_selectors';\nimport { selectUserType } from '../../_selectors/authentication.selectors';\nimport {\n\tconfirmOrderFundStart,\n\tclearCheckedFundAble,\n\tclearErrorMessage,\n\tresetConfirmOrderFund,\n\ttoggleOrderRequestModal\n} from '../../_actions/order-request.actions';\n\nimport { findNode, flatNode } from '../../_utils/order-request.utils';\n\n/* ui component */\nimport {\n\tModal,\n\tInput,\n\tCard,\n\tCardBody,\n\tForm,\n} from 'reactstrap';\nimport { Checkbox } from 'pretty-checkbox-react';\nimport { CheckedIcon, CancelIcon } from '../../_components/icons/icons';\nimport GeneralModal from '../../_components/modals/general-modal.component';\n\nconst RecursiveCheckbox = ({code, parentCode, parentData, message, subItems, type, formik, checkedHandler, questions, status}) => {\n\tconst hasChildren = subItems?.length > 0;\n\n\tconst parentNotHasChecked = (parentData?.code && parentData?.type !== 'DESCRIPTION') ? !questions.includes(parentData.code) : false\n\tconst parentOfDescriptionNotHasChecked = (parentData?.type === 'DESCRIPTION' && Boolean(parentData?.parentCode)) ?\n\t!questions.includes(parentData.parentCode) : false\n\n\tconst isDisabled = status === 'disabled' || parentNotHasChecked || parentOfDescriptionNotHasChecked\n\n\treturn (\n\t\t<>\n\t\t\t{\n\t\t\t\ttype === 'DESCRIPTION'\n\t\t\t\t&&
{message}
\n\t\t\t}\n\t\t\t{\n\t\t\t\ttype === 'SINGLE'\n\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t}\n\t\t\t{\n\t\t\t\ttype === 'MULTIPLE'\n\t\t\t\t&&\t
\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tname={`questions`}\n\t\t\t\t\t\t\t\tchecked={questions.includes(code)}\n\t\t\t\t\t\t\t\tvalue={code}\n\t\t\t\t\t\t\t\tclassName={`wtf-${parentData.code} border-checkbox border-checkbox-disabled`}\n\t\t\t\t\t\t\t\tonChange={checkedHandler}\n\t\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t}\n\t\t\t{\n\t\t\t\thasChildren\n\t\t\t\t&& subItems.map((item) => (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t))\n\t\t\t}\n\t\t\n\t)\n}\n\nconst AcceptMessage = ({\n\tdata,\n\ttargetFund,\n\thandleSubmit,\n\tisOpen,\n\ttoggle,\n\tisTabletOrMobile,\n\tuserType,\n\tactiveTab,\n\tpreventSubmit,\n\tuserAccounts\n}) => {\n\tconst initialProperties = {\n\t\tquestions: [],\n\t\tpinCode: null\n\t}\n\tconst [properties, setProperties] = useState(initialProperties);\n\tconst currentAccount = userAccounts[0];\n\tconst isAdUser = ['DSA', 'FA'].includes(userType)\n\tconst headerLabel = {\n\t\t'Buy': 'คำเตือนความเสี่ยง',\n\t\t'Sell': isAdUser ? 'ยืนยันการส่งคำสั่ง' : 'กรุณาใส่ PIN CODE',\n\t\t'Switch': 'คำเตือนความเสี่ยง'\n\t}[activeTab]\n\tconst buttonLabel = {\n\t\t'Buy': 'ส่งคำสั่งซื้อ',\n\t\t'Sell': 'ส่งคำสั่งขาย',\n\t\t'Switch': 'ส่งคำสั่งสลับ'\n\t} [activeTab]\n\n\n\tconst updatePinCode = (e) => {\n\t\tsetProperties({\n\t\t\t...properties,\n\t\t\tpinCode: e.target.value\n\t\t})\n\t}\n\n\tconst submit = (e) => {\n\t\te.preventDefault();\n\t\thandleSubmit(properties);\n\t}\n\n\tconst closeModal = () => {\n\t\tsetProperties(initialProperties);\n\t\ttoggle();\n\t}\n\n\tconst checkedHandler = (e) => {\n\t\tconst { checked, value, name, type } = e.currentTarget;\n\n\t\t// Check box Handler\n\t\tif (type === 'checkbox') {\n\t\t\tif (checked) {\n\t\t\t\tif (!properties.questions.find(x => x === value)) {\n\t\t\t\t\tsetProperties({\n\t\t\t\t\t\t...properties,\n\t\t\t\t\t\tquestions: [...properties.questions, value]\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst findSubitems = findNode(data?.questions, 'code', value, 'subItems')\n\t\t\t\tconst childCode = flatNode(findSubitems).map(question => question.code)\n\t\t\t\tsetProperties({\n\t\t\t\t\t...properties,\n\t\t\t\t\tquestions: properties.questions.filter(code => !childCode.includes(code))\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Radio Handler\n\t\tif (type === 'radio') {\n\t\t\tif (checked) {\n\t\t\t\tlet currentChecked = properties.questions;\n\t\t\t\tcurrentChecked.push(value);\n\n\t\t\t\tlet siblingRadios = document.querySelectorAll(`input[name=\"${name}\"]:not(:checked)`);\n\t\t\t\tArray.from(siblingRadios).forEach(radio => {\n\t\t\t\t\tconst findSubitems = findNode(data?.questions, 'code', radio.value, 'subItems')\n\t\t\t\t\tconst childCode = flatNode(findSubitems).map(question => question.code)\n\t\t\t\t\tcurrentChecked = currentChecked.filter(code => !childCode.includes(code))\n\t\t\t\t});\n\n\t\t\t\tsetProperties({\n\t\t\t\t\t...properties,\n\t\t\t\t\tquestions: currentChecked\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\tisTabletOrMobile\n\t\t\t\t\t?\t

\n\t\t\t\t\t\t\t{headerLabel}\n\t\t\t\t\t\t

\n\t\t\t\t\t: <>\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\t!isTabletOrMobile\n\t\t\t\t\t\t?\t

\n\t\t\t\t\t\t\t\t{headerLabel}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t:\t<>\n\t\t\t\t\t}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdata?.questions.length > 0\n\t\t\t\t\t\t\t\t? data.questions.map((item) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tกองทุน: {targetFund.toString()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata?.isKnowledgeAssessment\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t&&\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{`* Knowledge Assessment = `}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{currentAccount?.assessment}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{`* Knowledge Qualification = `}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{currentAccount?.qualification}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t:\t<>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t!isAdUser &&\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{buttonLabel}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nconst ErrorMessageModal = ({ data : isOpenModal, data : {title, message, buttons} , toggle }) => {\n\treturn (\n\t\t\n\t\t\t
{message}
\n\t\t\t
1 ? 'justify-content-between' : 'justify-content-center'}`}>\n\t\t\t{\n\t\t\t\tbuttons?.map((question) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{question.displayedText}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t\t}\n\t\t\t
\n\t\t\n\t);\n}\n\nconst OrderResponseModal = ({\n\tcheckedFundAble,\n\tclearErrorMessage,\n\tshowResponseMessage,\n\tclearCheckedFundAble,\n\tconfirmedOrder,\n\tisTabletOrMobile,\n\torderRequestForm,\n\tuserType,\n\tuserAccounts,\n\tactiveTab,\n\tsubActiveTab,\n\terrorMessage,\n\tconfirmOrderFund,\n\tresetConfirmOrderFund,\n\ttoggleOrderRequestModal,\n\tconfirmOrderFund: { data : isConfirmedOrder }\n}) => {\n\tconst [preventSubmit, setPreventSubmit] = useState(false);\n\tconst [targetFund, setTargetFund] = useState([]);\n\n\tconst recursiveFlatten = function (array) {\n\t\tlet flatArray = [];\n\n\t\tarray.forEach((element) => {\n\t\t\tif (Array.isArray(element.subItems)) {\n\t\t\t\tlet inner = recursiveFlatten(element.subItems);\n\t\t\t\tflatArray.push(element.code, ...inner);\n\t\t\t} else {\n\t\t\t\tflatArray.push(element.code);\n\t\t\t}\n\t\t});\n\n\t\treturn flatArray;\n\t};\n\n\tconst handleSubmit = (e) => {\n\t\tlet questionList = checkedFundAble.data ? recursiveFlatten(checkedFundAble.data.questions) : [];\n\n\t\tlet temp = {\n\t\t\t...orderRequestForm,\n\t\t\tquestions: questionList?.length\n\t\t\t\t? questionList.map((code) => ({\n\t\t\t\t\tcode: code,\n\t\t\t\t\tisAccept: e.questions?.includes(code)\n\t\t\t\t}))\n\t\t\t\t: [],\n\t\t\tpinCode: e.pinCode\n\t\t}\n\n\t\tconfirmedOrder(temp);\n\t\tsetPreventSubmit(true);\n\t}\n\n\tconst closeAllModal = () => {\n\t\tresetConfirmOrderFund();\n\t\tclearCheckedFundAble();\n\t\ttoggleOrderRequestModal();\n\t}\n\n\tuseEffect(() => {\n\t\tif (errorMessage || isConfirmedOrder) {\n\t\t\tsetPreventSubmit(true);\n\t\t} else {\n\t\t\tsetPreventSubmit(false);\n\t\t}\n\t}, [errorMessage, isConfirmedOrder])\n\n\tuseEffect(() => {\n\t\tif (showResponseMessage) {\n\t\t\tObject.keys(orderRequestForm).map(key => {\n\t\t\t\tif (orderRequestForm[key].hasOwnProperty('fundCode')) {\n\t\t\t\t\tsetTargetFund([...targetFund, orderRequestForm[key].fundCode])\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsetTargetFund([]);\n\t\t}\n\t}, [showResponseMessage])\n\n\treturn (\n\t\t<>\n\t\t\t{\n\t\t\t\terrorMessage\n\t\t\t\t&&\t\n\t\t\t}\n\t\t\t{\n\t\t\t\tshowResponseMessage\n\t\t\t\t&&\t\n\t\t\t}\n\t\t\t{\n\t\t\t\tisConfirmedOrder\n\t\t\t\t&&\t\n\t\t\t\t\t\t\t
{confirmOrderFund.data?.message}
\n\t\t\t\t\t\t\t
1 ? 'justify-content-between' : 'justify-content-center'}`}>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconfirmOrderFund.data?.buttons?.map((question) => {\n\t\t\t\t\t\t\t\t\tif (question.url) {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{question.displayedText}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t closeAllModal()}>\n\t\t\t\t\t\t\t\t\t\t\t{question.displayedText}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t}\n\t\t\n\t);\n};\n\nconst mapStateToProps = createStructuredSelector({\n\tshowResponseMessage: selectShowResponseMessage,\n\t// fundCode: selectNavigationFund,\n\torderRequestForm: selectOrderRequestForm,\n\tcheckedFundAble: selectCheckedFundAbleToOrder,\n\tisTabletOrMobile: mainSelectors.selectIsMobileScreenSize,\n\tuserType: selectUserType,\n\tuserAccounts : selectUserAccounts,\n\tactiveTab: selectActiveTabOrderRequestModal,\n\tsubActiveTab: selectSubActiveTabOrderRequestModal,\n\terrorMessage: selectErrorMessageModal,\n\tconfirmOrderFund: selectConfirmOrderFund,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n\tclearErrorMessage: () => dispatch(clearErrorMessage()),\n\tconfirmedOrder: (data) => dispatch(confirmOrderFundStart(data)),\n\tclearCheckedFundAble: () => dispatch(clearCheckedFundAble()),\n\tresetConfirmOrderFund: () => dispatch(resetConfirmOrderFund()),\n\ttoggleOrderRequestModal: () => dispatch(toggleOrderRequestModal()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OrderResponseModal);\n","/* main react */\nimport React, { useState } from \"react\";\n\n/* ui component */\nimport { Modal } from \"reactstrap\";\n\nconst WarningModal = ({\n isOpen,\n toggle,\n title,\n children,\n titleCenter = false\n \n}) => {\n\n return (\n \n
\n
\n {title}\n
\n
\n\t\t{children}\n
\n
\n
\n );\n};\n\nexport default WarningModal;\n","/* main react */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { useHistory } from 'react-router';\nimport { connect } from 'react-redux';\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from 'reselect';\nimport { selectSignInStatus, select2FAReferenceCode, select2FATwoFactorId, select2FATwoFactorAuthenticationMethod, select2FAToken } from '../../_selectors/authentication.selectors';\n\n/* ui component */\nimport { Modal, Card, CardTitle, CardBody, Form, FormGroup, Input, Label } from 'reactstrap';\nimport { Checkbox } from 'pretty-checkbox-react';\nimport { CancelIcon, CheckedIcon, LockIcon } from '../../_components/icons/icons';\n\nimport { getCookie } from '../../_utils/cookie.utils';\nimport { values } from 'underscore';\n\nconst Verify2FactorModal = (props) => {\n const { modal, toggle, submit2FACode, signInStatus, referenceCode, twoFactorId, twoFactorAuthenticationMethod ,twoFactorToken} = props;\n const history = useHistory();\n const isMobileApp = getCookie('isMobileApp') === 'true';\n\n const [verifyCode,setVerifyCode] = useState('');\n const formRef = useRef();\n\n const focusInput = () => {\n setVerifyCode('');\n document.getElementById('digit1').focus();\n };\n\n const clearOTP = () => {\n Array.from({length: 6}).forEach((_, index)=> {\n var digitElement = document.getElementById(`digit${index + 1}`);\n if (digitElement) {\n digitElement.value = \"\";\n if(index === 0) {\n digitElement.focus();\n }\n }\n })\n }\n\n const sendVerify2FA = () => {\n submit2FACode({ verifyCode, referenceCode, twoFactorId, twoFactorAuthenticationMethod, twoFactorToken, history });\n toggle();\n };\n\n const handlePinChange = async (nextFocusId,digit,value) =>{\n setVerifyCode(verifyCode.substring(0, digit-1) + value + verifyCode.substring(digit, 6))\n document.getElementById(nextFocusId).focus();\n };\n\n useEffect(() => {\n if(verifyCode.length === 6) {\n sendVerify2FA();\n }\n },[verifyCode]);\n\n useEffect(() => {\n if(verifyCode.length === 0) {\n clearOTP();\n }\n }, [verifyCode])\n\n return (isMobileApp && modal && !signInStatus) ? history.push('/main/mobile_login') : (\n <>\n \n \n \n

กรุณาระบุรหัส OTP ที่ได้รับ

\n \n
\n \n
\n
\n \n
\n \n handlePinChange('digit2', 1, e.target.value)}\n />\n handlePinChange('digit3', 2, e.target.value)}\n />\n handlePinChange('digit4', 3, e.target.value)}\n />\n handlePinChange('digit5', 4, e.target.value)}\n />\n handlePinChange('digit6', 5, e.target.value)}\n />\n handlePinChange('digit1', 6, e.target.value)}\n />\n \n {\n referenceCode ? (\n \n {referenceCode}\n \n ):('')\n }\n \n {/* } className='u-font-size-14 border-checkbox'>\n จดจำอุปกรณ์นี้\n */}\n \n ส่งรหัส OTP อีกครั้ง\n \n \n
\n
\n
\n
\n \n ) ;\n};\n\nconst mapStateToProps = createStructuredSelector({\n\tsignInStatus: selectSignInStatus,\n referenceCode: select2FAReferenceCode,\n twoFactorId: select2FATwoFactorId,\n twoFactorAuthenticationMethod: select2FATwoFactorAuthenticationMethod,\n twoFactorToken: select2FAToken,\n});\n\nexport default connect(mapStateToProps)(Verify2FactorModal);","/* main react */\nimport React, { Suspense, useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n withRouter,\n Route,\n Switch,\n Redirect,\n useHistory,\n Link,\n} from \"react-router-dom\";\n\n/* reducer, selector, action */\nimport { createStructuredSelector } from \"reselect\";\nimport {\n toggleActivePage,\n toggleScreenSize,\n updateErrorModal,\n clearErrorModal,\n} from \"../_actions/main.actions\";\nimport {\n resetTemporaryCompareFunds,\n toggleCompareModal,\n updateTemporaryCompareFunds,\n addFundIdsToCompareFunds,\n} from \"../_actions/compare.actions\";\nimport { toggleTransferModal } from \"../_actions/transfer.actions\";\nimport {\n signInStart,\n toggleSignInModal,\n toggleErrorMessageModal,\n updateSignInStatusForMobile,\n toggle2FAModal,\n verify2FAStart,\n // signInCredentialStart,\n refreshToken,\n signOut,\n clearSignInErrorMessage,\n} from \"../_actions/authentication.actions\";\n\nimport { toggleOrderRequestModal } from \"../_actions/order-request.actions\";\n\nimport { mainSelectors } from \"../_selectors\";\nimport {\n selectSignInStatus,\n selectIsOpenSignInModal,\n selectIsOpenErrorMessageModal,\n selectErrorMessage,\n selectIsOpenVerify2FactorModal,\n // selectLogInType,\n selectUserInformation,\n} from \"../_selectors/authentication.selectors\";\nimport {\n selectIsOpenCompareModal,\n selectCompareFundList,\n selectTempCompareFundList,\n} from \"../_selectors/compare.selectors\";\nimport { selectIsOpenOrderRequestModal } from \"../_selectors/order-request.selectors\";\nimport { selectIsOpenTransferModal } from \"../_selectors/transfer.selectors\";\n\n/* helper function */\nimport mapComponent from \"../_helpers/map-component\";\nimport { useMediaQuery } from \"react-responsive\";\nimport { checkDevice } from \"../_helpers/browser-detection\";\nimport { handleCacheVersion } from \"../_helpers/caching\";\n\n/* ui component */\nimport { Container } from \"reactstrap\";\nimport Spinner from \"../_components/spinner/spinner.component\";\n\n/* page component */\nimport MainNavbar from \"../_components/navbars/main-navbar.component\";\nimport Sidebar from \"../_components/sidebars/sidebar.component\";\n//import SubNavBar from '../_components/navbars/sub-navbar.component';\n\n// Modal Component\nimport SignInModal from \"../Pages/sign-in-and-sign-up/sign-in-modal.component\";\nimport OrderRequestFormModal from \"../Pages/order-request/order-request-form-modal.component\";\nimport TransferModal from \"../Pages/transfer/transfer-modal.component\";\nimport OrderResponseModal from \"../Pages/order-request/order-response-modal.component\";\nimport GeneralModal from \"../_components/modals/general-modal.component\";\nimport WarningModal from \"../_components/modals/warning-modal.component\";\nimport AddCompareItemModal from \"../Pages/compare/add-compare-item-modal.component\";\nimport Verify2FactorModal from \"../Pages/sign-in-and-sign-up/verify-2factor-auth-modal.component\";\n\nimport { getCookie } from \"../_utils/cookie.utils\";\nimport jwt_decode from \"jwt-decode\";\n\nconst NOMURA_DIRECT_LOGIN_URL =\n \"https://www.krungsrisecurities.com/th/login/default.aspx\";\nconst Main = (props) => {\n const {\n routes,\n currentMenu,\n selectIsPaging,\n selectPages,\n toggleActivePage,\n match,\n location,\n signInStatus,\n compareFundList,\n tempCompareFundList,\n isOpenCompareModal,\n isOpenErrorMessageModal,\n toggleCompareModal,\n isOpenTransferModal,\n toggleTransferModal,\n isOpenSignInModal,\n toggleErrorMessageModal,\n isOpenOrderRequestModal,\n toggleSignInModal,\n signInStart,\n refreshToken,\n updateSignInStatusForMobile,\n isTabletOrMobile,\n toggleScreenSize,\n updateTempCompareFunds,\n resetTempCompareFunds,\n addFundIdsToCompareFunds,\n errorMessage,\n errorModal,\n isOpenErrorModal,\n updateErrorModal,\n clearErrorModal,\n clearSignInErrorMessage,\n isOpenVerify2FactorModal,\n verify2FAStart,\n toggle2FAModal,\n // signInCredentialStart,\n // logInType,\n userInfo,\n signOut,\n toggleIsOpenModal,\n } = props;\n\n const isMobileApp = getCookie(\"isMobileApp\") === \"true\";\n const isMobileLogin = getCookie(\"isMobileLogin\") === \"true\";\n\n // const isMobileOrTabletDevice = checkDevice();\n const isMobileSize = useMediaQuery({ maxDeviceWidth: \"992px\" });\n // const [additionalOffsetTop, setAdditionalOffsetTop] = useState({top: 'inherit'});\n\n // set Default route to Home page.\n // const defaultRoute = routes.find((route) => route.name === \"Home\");\n const landingComponent = isMobileApp && isMobileLogin ? \"INVESTMENT\" : \"HOME\";\n const defaultRoute = routes.find(\n (route) => route.component === landingComponent\n );\n\n let history = useHistory();\n\n /* start compare modal function */\n const addCompareFundsSubmit = (e) => {\n updateTempCompareFunds(e.funds);\n addFundIdsToCompareFunds(e.funds);\n switch (e.type) {\n case \"compare\":\n history.push(\"/main/compare/fund_compare\");\n break;\n case \"graph\":\n history.push(\"/main/compare/graph_compare\");\n break;\n default:\n break;\n }\n };\n /* end compare modal function */\n\n const renderRoutes = (routes) => {\n return routes.map((item) => {\n if (item.layout === \"/main\") {\n return (\n \n (item.section === \"user\" && !signInStatus) ||\n (!signInStatus && item.isLoggedIn) ? (\n \n ) : (\n mapComponent(item, toggleActivePage)\n )\n }\n />\n );\n } else {\n return null;\n }\n });\n };\n\n const [showPopup, setShowPopup] = useState(true);\n let timeoutId;\n\n useEffect(() => {\n const showPopup = localStorage.getItem(\"popupShown\");\n\n if (showPopup) {\n setShowPopup(false);\n } else {\n localStorage.setItem(\"popupShown\", true);\n }\n\n const resetLocalStorageAtMidnight = () => {\n const currentTime = new Date();\n\n // Calculate the remaining time until midnight\n const millisecondsUntilMidnight =\n new Date(\n currentTime.getFullYear(),\n currentTime.getMonth(),\n currentTime.getDate() + 1, // Tomorrow's date\n 0, // Midnight hour\n 0, // Midnight minute\n 0 // Midnight second\n ) - currentTime;\n\n // Schedule the reset action at midnight\n timeoutId = setTimeout(() => {\n resetLocalStorage();\n }, millisecondsUntilMidnight);\n console.log(\"time: \", millisecondsUntilMidnight);\n };\n\n resetLocalStorageAtMidnight();\n\n // Clean up the timeout when the component unmounts\n return () => {\n clearTimeout(timeoutId);\n };\n }, []);\n\n const resetLocalStorage = () => {\n setShowPopup(true);\n localStorage.removeItem(\"popupShown\");\n };\n\n const closePopup = () => {\n setShowPopup(false);\n localStorage.setItem(\"popupShown\", true);\n };\n\n useEffect(() => {\n if (isMobileSize !== isTabletOrMobile) {\n toggleScreenSize();\n }\n }, [isMobileSize]);\n\n useEffect(() => {\n if (compareFundList.length !== tempCompareFundList.length) {\n resetTempCompareFunds();\n }\n // if (logInType !== 'AD' && !signInStatus) {\n // \tsignInCredentialStart();\n // }\n }, [location.pathname]);\n\n // Handle Cookies.\n const token = getCookie(\"accessToken\");\n // const decodedJwt = token ? jwt_decode(token) : null;\n // const isExpiredToken = decodedJwt ? new Date(decodedJwt.exp * 1000).getTime() < new Date().getTime() : false;\n // useEffect(() => {\n // \tif (isExpiredToken) {\n // \t\tif (isMobileApp) {\n // \t\t\thistory.push('/main/refresh_token');\n // \t\t} else {\n // \t\t\trefreshToken();\n // \t\t}\n // \t}\n // }, [isExpiredToken, token, history, isMobileApp, refreshToken]);\n\n useEffect(() => {\n if (token) {\n if (isMobileLogin) {\n updateSignInStatusForMobile();\n }\n }\n }, [token]);\n\n useEffect(() => {\n if (errorMessage) {\n clearSignInErrorMessage();\n if (isOpenErrorMessageModal) {\n toggleErrorMessageModal();\n }\n }\n if (errorModal) {\n clearErrorModal();\n }\n handleCacheVersion();\n }, []);\n\n useEffect(() => {\n if (isOpenOrderRequestModal) {\n toggleIsOpenModal();\n }\n }, [location.pathname]);\n\n return (\n <>\n {showPopup && (\n \n
\n

\n

\n เพื่อประโยชน์ของท่าน\n โปรดศึกษาและทำความเข้าใจคำเตือนนี้ก่อนใช้โปรแกรมและก่อนทำรายการในระบบ\n iFund\n

\n

\n คำเตือนเกี่ยวกับการใช้โปรแกรมและข้อมูล\n

\n\n

\n \n 1.\n \n ข้อมูลและข่าวสารเกี่ยวกับการซื้อ ขายคืน\n หรือสับเปลี่ยนหน่วยลงทุน\n \n \n

\n\n

\n 1.1คำเตือนจากบริษัท\n

\n

\n โปรแกรมนี้จัดทำโดย บริษัทหลักทรัพย์ กรุงศรี จำกัด(มหาชน)\n (“บริษัท”) ข้อมูลและข่าวสารที่เกี่ยวกับการซื้อ ขายคืน\n หรือสับเปลี่ยนหน่วยลงทุนที่ปรากฏอยู่ในโปรแกรมนี้ได้มาจากแหล่งที่บริษัทเห็นว่ามีความถูกต้องน่าเชื่อถือ\n อย่างไรก็ตาม บริษัทไม่รับรองหรือรับประกันถึงความถูกต้อง\n ความสมบูรณ์ หรือความเหมาะสมของข้อมูลหรือข่าวสารดังกล่าว\n และไม่ได้ประกันราคาหรือผลตอบแทนของหน่วยลงทุนที่ปรากฏในโปรแกรม\n บริษัทรวมถึงบุคคลหรือบริษัทที่เกี่ยวข้อง\n ไม่รับผิดชอบในความเสียหายใด ๆ\n ต่อลูกค้าหรือบุคคลอื่นที่เกิดจากการใช้ข้อมูลและข่าวสารที่อยู่บนโปรแกรมนี้\n ลูกค้าควรศึกษาข้อมูลจากหนังสือชี้ชวนและใช้ดุลยพินิจอย่างระมัดระวังในการตัดสินใจในการลงทุน\n

\n\n

\n 1.2คำเตือนจาก Morning Star\n

\n

\n ข้อมูลบางส่วนที่ปรากฏอยู่ในโปรแกรมนี้ เป็นข้อมูลจาก บริษัท\n มอร์นิ่งสตาร์ รีเสิร์ช (ประเทศไทย) จำกัด (“มอร์นิ่งสตาร์”)\n และต่อไปนี้เป็นคำเตือนจาก มอร์นิ่งสตาร์{\" \"}\n \n “©2023 Morningstar. All Rights Reserved. The information, data,\n analyses and opinions (“Information”) contained herein: (1)\n include the proprietary information of Morningstar and its\n content providers; (2) may not be copied or redistributed except\n as specifically authorised; (3) do not constitute investment\n advice; (4) are provided solely for informational purposes; (5)\n are not warranted to be complete, accurate or timely; and (6)\n may be drawn from fund data published on various dates.\n Morningstar is not responsible for any trading decisions,\n damages or other losses related to the Information or its use.\n Please verify all of the Information before using it and don’t\n make any investment decision except upon the advice of a\n professional financial adviser. Past performance is no guarantee\n of future results. The value and income derived from investments\n may go down as well as up.”\n \n

คำแปล “©2023 มอร์นิ่งสตาร์ สงวนสิทธ์ในข้อมูล เนื้อหา\n บทวิเคราะห์ และความคิดเห็น (“ข้อมูล”) ที่แสดงอยู่นี้ (1)\n โดยถือเป็นกรรมสิทธิ์ของมอร์นิ่งสตาร์\n และของผู้จัดทำเนื้อหาของมอร์นิ่งสตาร์ (2) ห้ามไม่ให้ทำซ้ำ\n หรือแจกจ่าย เว้นแต่จะได้มีการอนุญาตเป็นกรณีเฉพาะ (3)\n ไม่ถือเป็นคำแนะนำในการลงทุน (4)\n มีวัตถุประสงค์เพื่อให้ข้อมูลเท่านั้น (5) ไม่มีการรับรองว่าสมบูรณ์\n ถูกต้อง หรือเป็นปัจจุบัน (6)\n และอาจนำมาจากข้อมูลกองทุนที่มีการตีพิมพ์ในช่วงเวลาที่แตกต่างกัน\n โดยมอร์นิ่งสตาร์จะไม่รับผิดต่อการตัดสินใจลงทุนใดๆ ความเสียหาย\n หรือการขาดทุนอื่นๆ ที่เกิดจากข้อมูล หรือการใช้ข้อมูล\n ผู้ลงทุนควรตรวจสอบข้อมูลทั้งหมดก่อนนำไปใช้ และไม่ควรตัดสินใจลงทุน\n เว้นแต่จะได้กระทำโดยคำปรึกษาจากที่ปรึกษาทางการเงินมืออาชีพ\n ผลการดำเนินงานในอดีตมิได้เป็นสิ่งยืนยันผลการดำเนินงานในอนาคต\n มูลค่าและผลตอบแทนจากการลงทุนอาจลดลงหรือเพิ่มขึ้นก็ได้”\n

\n\n

\n \n 2.ข้อมูลปฏิทินกองทุน\n \n

\n

\n \n ข้อมูลวันทำการหรือวันหยุดรับคำสั่งซื้อ ขายคืน\n หรือสับเปลี่ยนหน่วยลงทุนของกองทุนที่ปรากฏในปฏิทินกองทุน\n อาจมีการแก้ไขเพิ่มเติมหรือเปลี่ยนแปลงโดย\n บริษัทหลักทรัพย์จัดการกองทุน (“บลจ.”) ของกองทุนนั้นๆ\n บริษัทจึงไม่สามารถรับรองหรือรับประกันถึงความถูกต้องสมบูรณ์ของข้อมูลที่ปรากฏในปฏิทินกองทุนดังกล่าว\n ทั้งนี้\n ลูกค้าสามารถตรวจสอบข้อมูลวันทำการหรือวันหยุดรับคำสั่งซื้อ ขายคืน\n หรือสับเปลี่ยนหน่วยลงทุนของกองทุนต่างๆ ได้จากแต่ละเว็บไซต์ของ\n บลจ. กองทุนนั้นๆ\n \n

\n\n

\n คำเตือนเกี่ยวกับการทำรายการ\n

\n\n

\n \n 1.\n \n การส่งคำสั่งและเงื่อนไขการชำระเงินโดย ATS\n \n \n

\n

\n เวลาในการทำรายการ\n

\n

\n กรณีลูกค้าใช้บริการหักบัญชีอัตโนมัติ (ATS) ของธนาคารต่างๆ และ\n ส่งคำสั่งซื้อขายผ่านระบบ\n หลังจากเวลาที่ธนาคารกำหนดสำหรับการตัดบัญชี ATS\n บางธนาคารจะถือว่าเป็นรายการของวันทำการถัดไป ดังนี้\n

\n

\n สำหรับธนาคาร TISCO, KKP และ CIMB\n กรุณาส่งคำสั่งซื้อผ่านระบบก่อนเวลา 11.00 น.\n

\n

\n สำหรับธนาคาร BBL, SCB, KTB, KBANK,\n BAY, UOB, LH และ TTB กรุณาส่งคำสั่งซื้อผ่านระบบก่อนเวลา 14.30 น.\n

\n

\n หากส่งคำสั่งซื้อขายภายหลังเวลาดังกล่าว\n จะถือว่ารายการของวันทำการถัดไป\n

\n

\n สำหรับการชำระเงินโดยช่องทางอื่นๆ\n ลูกค้าสามารถส่งรายการซื้อผ่านระบบได้ภายในวันและเวลาทำการซื้อขายตามที่แต่ละกองทุนกำหนด\n

\n

\n \n กรณีที่ลูกค้ามีคำสั่งซื้อหน่วยลงทุนมากกว่า 1 รายการต่อวัน ระบบ\n Krungsri Securities iFund จะดำเนินการหักบัญชี ATS\n ตามยอดรวมมูลค่าซื้อทุกรายการภายในรอบเวลาตัดเงินนั้นๆ\n เป็นรายการเดียว (หักบัญชีครั้งเดียว โดยไม่แยกหักบัญชีต่อรายการ)\n หากเงินในบัญชีไม่เพียงพอชำระมูลค่าซื้อทุกรายการภายในรอบเวลาตัดเงินนั้นๆ\n จะมีผลให้คำสั่งซื้อภายในรอบเวลาตัดเงินนั้นๆ ถูกยกเลิกทุกรายการ\n หากลูกค้ายังประสงค์จะซื้อ ลูกค้าต้องคีย์คำสั่งซื้อใหม่\n

\n

\n ในการส่งคำสั่งซื้อ ขายคืน\n หรือสับเปลี่ยนหน่วยลงทุนผ่านระบบอินเทอร์เน็ตหรือระบบอิเล็คทรอนิกส์ใดๆ\n อาจมีการขัดข้องต่างๆ เช่น การสูญหายของข้อมูลระหว่างส่งข้อมูล\n ส่งข้อมูลไม่ได้ การผิดพลาดหรือคลาดเคลื่อนของข้อมูล\n การหยุดการทำงานของ Hardware และ/หรือ Software\n หรือการขัดข้องของระบบไฟฟ้า ระบบการสื่อสาร\n หรือคอมพิวเตอร์ของลูกค้าหรือบริษัท หรือของบุคคลอื่นที่เกี่ยวข้อง\n รวมทั้งเหตุขัดข้องใดๆ ซึ่งทำให้ลูกค้าไม่สามารถส่งคำสั่งได้\n ลูกค้าไม่สามารถอ้างเหตุดังกล่าวมาเรียกร้องค่าเสียหายกับบริษัทได้\n

\n\n

\n \n 2.\n \n การส่งคำสั่งซื้อหน่วยลงทุนแบบซื้อสม่ำเสมอ\n \n \n

\n

\n \n เมื่อผู้ลงทุนเลือกเมนูการสั่งซื้อแบบสม่ำเสมอ\n บริษัทจะทำรายการซื้อแบบอัตโนมัติสม่ำเสมอทุกสัปดาห์ ทุกเดือน\n หรือตามที่ผู้ถือหน่วยลงทุนกำหนด\n โดยผู้ถือหน่วยลงทุนตกลงจะชำระค่าซื้อหน่วยลงทุนให้กับบริษัทตามวัน\n เดือน จำนวนเงิน\n และหน่วยลงทุนที่ผู้ถือหน่วยลงทุนได้ทำรายการสั่งซื้อ\n

\n

\n \n มูลค่าเงินลงทุนขั้นต่ำที่ส่งคำสั่งซื้อหน่วยลงทุนในแต่ละงวดต้องไม่น้อยกว่ามูลค่าซื้อขั้นต่ำที่แต่ละกองทุนกำหนด\n

\n

\n \n หากวันที่ถึงกำหนดชำระค่าซื้อหน่วยลงทุนเป็นวันหยุดทำการ\n บริษัทจะทำรายการซื้อหน่วยลงทุนและดำเนินการตัดบัญชี ATS\n ของท่านในวันทำการถัดไป\n

\n

\n \n คำสั่งซื้อหน่วยลงทุนตามแผนการลงทุนแบบสม่ำเสมอ\n มีผลเมื่อบริษัทได้รับแจ้งผลอนุมัติการหักเงินจากบัญชี ATS\n ของลูกค้าหลังจากวันที่ลูกค้าเลือกให้คำสั่งซื้อหน่วยลงทุนเริ่มมีผล\n

\n

\n หากเงินในบัญชี ATS\n ของลูกค้ามีไม่เพียงพอที่จะชำระค่าซื้อหน่วยลงทุนของแต่ละกองทุนติดต่อกัน\n 2 ครั้ง บริษัทสงวนสิทธิยกเลิกคำสั่งซื้อหน่วยลงทุนแบบซื้อสม่ำเสมอ\n ออกจากระบบโดยอัตโนมัติ\n กรณีที่ลูกค้าประสงค์จะซื้อหน่วยลงทุนแบบซื้อสม่ำเสมอ\n ลูกค้าต้องส่งคำสั่งซื้อใหม่\n

\n

\n \n ลูกค้าสามารถขายหน่วยลงทุนที่ซื้อจากคำสั่งซื้อแบบสม่ำเสมอนี้ได้ตามปกติ\n ทั้งนี้ ขึ้นอยู่กับเงื่อนไขการรับซื้อคืนหน่วยลงทุนของแต่ละกองทุน\n

\n

\n \n คำสั่งซื้อหน่วยลงทุนนี้จะมีผลต่อไปจนกว่าผู้ถือหน่วยจะแจ้งยกเลิก\n โดยท่านสามารถแจ้งยกเลิกคำสั่งซื้อหน่วยลงทุนแบบสม่ำเสมอ\n ได้ด้วยตนเองผ่านระบบ Krungsri Securities iFund\n หรือผ่านที่ปรึกษาการเงินและการลงทุนที่ดูแลบัญชีของท่าน\n

\n\n

\n \n 3.\n \n การสับเปลี่ยนหน่วยลงทุนของกองทุน (Switch) ข้าม บลจ.\n \n \n

\n

\n \n เป็นเครื่องมือช่วยอำนวยความสะดวกแก่ลูกค้าในการคีย์คำสั่งขายหน่วยลงทุนของกองทุนต้นทางและคำสั่งซื้อหน่วยลงทุนของกองทุนปลายทางล่วงหน้าเท่านั้น\n รายการที่ถูกส่งไป บลจ.ต้นทางและ บลจ.ปลายทางจึงเป็นรายการขายและซื้อ\n ซึ่งต่างกับการ Switch กองทุนภายใน บลจ.เดียวกัน\n เพื่อประโยชน์แก่ลูกค้าไม่ต้องทำคำสั่งขายกองทุนเดิมก่อนแล้วค่อยมาซื้อกองทุนใหม่และสามารถซื้อกองทุนได้เป็นจำนวนเดียวกันกับเงินค่าขาย\n

\n

\n \n การคีย์สับเปลี่ยนหน่วยลงทุนของกองทุนต้นทาง (Switch out) ทั้งพอร์ต\n ต้องระบุเป็นจำนวนหน่วยเท่านั้น ทั้งนี้\n หากรายการขายถูกปฏิเสธการทำรายการ (Reject Order) จาก\n บลจ.ไม่ว่าด้วยเหตุผลใด รายการซื้อคู่นี้จะถูกยกเลิกรายการอัตโนมัติ\n

\n

\n \n เมื่อครบกำหนดวันรับเงินค่าขายคืนบริษัทจะโอนเงินค่าขายคืนเข้าบัญชีลูกค้าก่อน\n และตัดบัญชี ATS กลับมาชำระค่าซื้อใหม่\n โดยลูกค้าไม่ต้องคีย์คำสั่งซื้อหน่วยกองทุนปลายทางอีก\n

\n

\n \n บริษัทจะซื้อหน่วยกองทุนปลายทางในโอกาสแรกที่บริษัทตัด ATS\n ชำระค่าซื้อหน่วยกองทุนปลายทางสำเร็จ\n

\n
\n \n รับทราบ\n \n
\n )}\n\n \n {isOpenErrorMessageModal && (\n \n
{errorMessage}
\n \n )}\n {isOpenErrorModal && (\n \n
{errorModal?.message}
\n {errorModal?.title === \"ช่องทางการยืนยันตัวตน\" && (\n {\n window.open(NOMURA_DIRECT_LOGIN_URL, \"_blank\");\n clearErrorModal();\n }}\n >\n ต่อไป\n \n )}\n \n )}\n \n \n {isOpenOrderRequestModal && }\n \n \n
\n \n {!isMobileApp && (\n <>\n \n \n \n )}\n
\n \n \n }>\n {renderRoutes(routes)}\n {match.path === location.pathname ? (\n \n ) : null}\n \n \n \n
\n
\n \n );\n};\n\nconst mapStateToProps = createStructuredSelector({\n isOpenCompareModal: selectIsOpenCompareModal,\n isOpenOrderRequestModal: selectIsOpenOrderRequestModal,\n isOpenTransferModal: selectIsOpenTransferModal,\n routes: mainSelectors.selectRoutes,\n currentMenu: mainSelectors.selectCurrentMenu,\n selectIsPaging: mainSelectors.selectIsPaging,\n selectPages: mainSelectors.selectPages,\n signInStatus: selectSignInStatus,\n isOpenSignInModal: selectIsOpenSignInModal,\n isTabletOrMobile: mainSelectors.selectIsMobileScreenSize,\n compareFundList: selectCompareFundList,\n tempCompareFundList: selectTempCompareFundList,\n isOpenErrorMessageModal: selectIsOpenErrorMessageModal,\n errorMessage: selectErrorMessage,\n errorModal: mainSelectors.selectErrorModal,\n isOpenErrorModal: mainSelectors.selectIsOpenErrorModal,\n // logInType: selectLogInType,\n userInfo: selectUserInformation,\n isOpenVerify2FactorModal: selectIsOpenVerify2FactorModal,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n signOut: (currentPage) => dispatch(signOut(currentPage)),\n refreshToken: () => dispatch(refreshToken()),\n toggleActivePage: (currentPage) => dispatch(toggleActivePage(currentPage)),\n toggleCompareModal: () => dispatch(toggleCompareModal()),\n toggleTransferModal: () => dispatch(toggleTransferModal()),\n signInStart: (credential) => dispatch(signInStart(credential)),\n verify2FAStart: (credential) => dispatch(verify2FAStart(credential)),\n toggleErrorMessageModal: () => dispatch(toggleErrorMessageModal()),\n toggleSignInModal: () => dispatch(toggleSignInModal()),\n toggle2FAModal: () => dispatch(toggle2FAModal()),\n toggleScreenSize: () => dispatch(toggleScreenSize()),\n updateTempCompareFunds: (funds) =>\n dispatch(updateTemporaryCompareFunds(funds)),\n resetTempCompareFunds: () => dispatch(resetTemporaryCompareFunds()),\n addFundIdsToCompareFunds: (fundIds) =>\n dispatch(addFundIdsToCompareFunds(fundIds)),\n updateErrorModal: (message) => dispatch(updateErrorModal(message)),\n clearErrorModal: () => dispatch(clearErrorModal()),\n clearSignInErrorMessage: () => dispatch(clearSignInErrorMessage()),\n updateSignInStatusForMobile: () => dispatch(updateSignInStatusForMobile()),\n toggleIsOpenModal: () => dispatch(toggleOrderRequestModal()),\n // signInCredentialStart: (credential) => dispatch(signInCredentialStart(credential)),\n});\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(Main));\n","import { version } from \"../../package.json\"\n\nexport const handleCacheVersion = () => {\n const versionLocalStorage = localStorage.getItem('version')\n if (versionLocalStorage !== version) {\n if ('caches' in window) {\n caches.keys().then((names) => {\n names.forEach(name => {\n caches.delete(name)\n })\n })\n window.location.reload()\n }\n localStorage.clear()\n localStorage.setItem('version', version)\n }\n};"],"sourceRoot":""}