{"version":3,"sources":["services/marketNews/marketNewsService.ts","stores/marketNewsStore.ts","services/marketOrder/marketOrderService.ts","stores/marketOrderStore.ts","services/marketTrade/marketTradeService.ts","stores/marketTradeStore.ts","services/reportEventLogs/reportEventLogService.ts","stores/reportEventLogStore.ts","services/user/userService.ts","stores/userStore.ts","components/Loadable/index.tsx","components/Router/router.config.tsx","constants/routes.js","stores/storeIdentifier.ts","components/Router/ProtectedRoute.tsx","images/icons/dashIcon.svg","scenes/Logout/index.tsx","globals.ts","components/Router/index.tsx","lib/signalRAspNetCoreHelper.ts","App.tsx","services/abpUserConfigurationService.ts","registerServiceWorker.ts","index.tsx","stores/storeInitializer.ts","images/icons/marketNewsIcon.svg","lib/appconst.ts","utils/utils.ts","images/icons/compPerfomanceIcon.svg","lib/abpUtility.ts","services/backOffice/backOfficeService.ts","stores/backOfficeStore.ts","services/stockOrder/stockOrderService.ts","stores/stockOrderStore.ts","contexts/stores-context.ts","contexts/modal-context.ts","contexts/index.ts","services/storageService/storageService.ts","services/httpService.ts","hooks/use-stores.tsx","services/marketData/marketDataService.ts","stores/marketDataStore.ts","components/Loading/index.tsx","models/Roles/roleModel.ts","models/Roles/roleEditModel.ts","services/role/roleService.ts","stores/roleStore.ts","services/account/dto/isTenantAvailableOutput.ts","services/account/accountService.ts","stores/accountStore.ts","models/Login/loginModel.ts","services/tokenAuth/tokenAuthService.ts","stores/authenticationStore.ts","services/session/dto/getCurrentLoginInformations.ts","services/session/sessionService.ts","stores/sessionStore.ts","models/Tenants/TenantModel.ts","services/tenant/tenantService.ts","stores/tenantStore.ts"],"names":["http","get","result","data","MarketNewsStore","marketNewsService","getNews","this","marketNews","items","splice","observable","action","security","side","MarketOrderStore","calculateTotalOrders","orders","sortDir","qty","newOrders","sortedOrders","slice","_","forEach","item","mdEntrySize","totalQuantity","push","selectedSecurityId","orderbook","securityID","mdEntryType","buyOrders","find","obj","mdEntryID","sellOrders","isBuyLoading","isSellLoading","marketOrderService","getMarketOrders","marketOrders","mDEntryID","index1","findIndex","index2","index","MarketTradeStore","marketTradeService","getMarketTrades","marketTrades","marketTrade","ReportEventLogStore","reportEventLogService","getReportEventLogs","reportEventLog","report","createUserInput","post","updateUserInput","put","entityDto","delete","params","changeLanguageInput","pagedFilterAndSortedRequest","UserStore","userService","create","users","update","map","x","id","filter","getRoles","roles","editUser","userName","name","surname","emailAddress","isActive","roleNames","permissions","userTradingAccounts","getAll","languageName","async","changeLanguage","LoadableComponent","component","Loadable","loader","loading","Loading","userRouter","path","ROUTES","userBase","title","isLayout","showInMenu","userLogin","exact","userCreateAccount","userForgotPassword","userResetPassword","appRouters","appBase","permission","dashboard","iconCustom","src","dashIcon","realtimeTrading","icon","itemGroup","itemGroupItems","subMenu","compPerfomanceIcon","subMenuItems","allPriceLists","companyPriceLists","marketNewsIcon","gainersLossers","AppConsts","APP_ROLES","CUSTOMER","accountStatement","accountInflow","accountOutflow","portfolioHolding","portfolioMovement","portfolioValuation","purchaseContractNote","saleContractNote","auditTrail","adminReportStockOrders","adminUsermanagment","logOut","routers","landingPage","exceptionPage","Stores","AuthenticationStore","RoleStore","TenantStore","SessionStore","AccountStore","MarketDataStore","StockOrderDrawerStore","ProtectedRoute","Component","render","rest","user","useStores","sessionStore","currentLogin","props","abp","session","userId","isGranted","includes","toUpperCase","to","pathname","state","from","location","module","exports","Logout","inject","authenticationStore","logout","window","href","React","createReactClass","ReactDOM","$","jQuery","jquery","Router","UserLayout","utils","getRoute","AppLayout","encryptedAuthToken","getCookieValue","authorization","encrptedAuthTokenName","signalr","autoConnect","connect","undefined","hubs","qs","encodeURIComponent","remoteServiceBaseUrl","storageService","retrieve","url","Util","loadScript","event","on","AppEvents","common","addMarketStatistics","marketStat","trigger","updateMarketStatsSession","addOrderBook","deleteOrderBook","order","updateOrderBook","clearAllOrderBook","onMarketTrade","onExecutionReport","onNews","news","onNseConnection","connected","addStockOrder","stockOrder","updateStockOrder","replaceStockOrder","App","marketDataStore","useState","setLoading","useEffect","getCurrentLoginInformations","application","features","SignalRAspNetCoreHelper","initSignalR","isAuthenticated","getSecurityLists","catch","err","value","axios","appBaseUrl","store","defaults","baseURL","isLocalhost","Boolean","hostname","match","register","navigator","URL","process","toString","origin","addEventListener","swUrl","fetch","then","response","status","headers","indexOf","serviceWorker","ready","registration","unregister","reload","registerValidSW","checkValidServiceWorker","onupdatefound","installingWorker","installing","onstatechange","controller","error","Utils","setLocalization","abpUserConfigurationService","load","extend","clock","provider","getCurrentClockProvider","moment","locale","localization","currentLanguage","supportsMultipleTimezone","storesInjected","roleStore","tenantStore","userStore","accountStore","marketOrderStore","marketTradeStore","reportEventLogStore","marketNewsStore","stores","document","getElementById","registerServiceWorker","userManagement","defaultAdminUserName","defaultLocalizationSourceName","addAllOrderBook","onNotifyUserError","received","onOrderTransaction","APPNAME","ADMIN","BROKER","PERMISSION","VIEW_USERID_MARKET_WATCH","TRADE_ALL_ACCOUNTS","VIEW_ADMINSETTING","VIEW_ALL_ORDERS","BUY","SELL","getPageTitle","route","localizedAppName","L","length","debounce","callback","waitFor","timeout","args","clearTimeout","setTimeout","getRandomColor","stringInput","stringUniqueHash","reduce","acc","char","charCodeAt","script","createElement","type","body","appendChild","options","srcType","copy","copyIsArray","clone","target","i","deep","Array","isArray","language","setCookieValue","Date","getTime","appPath","currentProviderName","timing","unspecifiedClockProvider","utcClockProvider","localClockProvider","number","toFixed","replace","date","format","key","sourceName","localizationSourceName","localize","permissionName","auth","query","cscsAccount","cscsAcct","BackOfficeStore","backOfficeService","findCustomer","customers","getAccountBalance","getDashAccountPortfolioHolding","getDashAccountPortfolioValuation","payload","StockOrderStore","stockOrderService","getStockOrders","stockOrders","unshift","getOrderTransactionSummary","sendNewOrder","sendReplaceOrder","sendCancelOrderRequest","Object","freeze","stockOrderStore","backOfficeStore","storesContext","createContext","StoresProvider","Provider","ModalProvider","StorageService","storage","sessionStorage","getItem","JSON","parse","setItem","stringify","require","paramsSerializer","encode","interceptors","request","use","config","getToken","multiTenancy","getTenantIdCookie","Promise","reject","message","details","description","className","duration","useContext","MarketDataService","asc","marketDataService","getMarketStat","marketStats","securityLists","marketStatClean","cleanDeep","updateRow","getPricelimitRange","priceLimitRange","style","paddingTop","textAlign","size","RoleModel","displayName","RoleEditModel","role","grantedPermissionNames","createRoleInput","getRoleAsyncInput","updateRoleInput","roleService","roleEdit","getRolesAsync","getAllPermissions","allPermissions","getRoleForEdit","IsTenantAvaibleOutput","tenantId","isTenantAvaibleInput","registerInput","accessToken","verificationInput","tenancyName","accountService","isTenantAvailable","tenant","registrationOutput","resendVerificationToken","verifyAccount","resetPassword","changePassword","set","customerRegister","LoginModel","userNameOrEmailAddress","password","toggleRememberMe","rememberMe","toggleShowModal","showModal","authenticationInput","model","tokenAuthService","authenticate","rememberClient","registrationIncomplete","tokenExpireDate","expireInSeconds","setToken","encryptedAccessToken","localStorage","clear","clearToken","GetCurrentLoginInformations","sessionService","TenantModel","createTenantInput","updateTenantInput","tenantService","tenantModel","tenants"],"mappings":"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","file":"static/js/main.9af2dae3.chunk.js","sourcesContent":["import { PagedResultDto } from './../dto/pagedResultDto';\nimport { news } from './dto/news';\nimport http from '../httpService';\n\nclass MarketNewsService {\n public async getNews(): Promise> {\n let result = await http.get('/api/services/app/MarketData/GetNews');\n\n return result.data.result;\n }\n}\n\nexport default new MarketNewsService();\n","import { action, observable } from 'mobx';\nimport marketNewsService from '../services/marketNews/marketNewsService';\nimport { PagedResultDto } from '../services/dto/pagedResultDto';\nimport { news } from '../services/marketNews/dto/news';\n\nclass MarketNewsStore {\n @observable marketNews!: PagedResultDto;\n\n @action\n async getMarketNews() {\n let result = await marketNewsService.getNews();\n\n this.marketNews = result;\n }\n\n @action\n addMarketNews(marketNews: news) {\n this.marketNews.items.splice(0, 0, marketNews);\n }\n}\n\nexport default MarketNewsStore;\n","import { marketOrder } from './dto/marketOrder';\n// import { PagedResultDto } from './../dto/pagedResultDto';\nimport http from '../httpService';\n\nclass MarketOrderService {\n public async getMarketOrders(security: string, side: string): Promise {\n let result = await http.get(\n `/api/services/app/MarketData/getMarketOrders/?security=${security}&side=${side}`\n );\n\n return result.data.result;\n }\n}\n\nexport default new MarketOrderService();\n","import { action, observable } from 'mobx';\nimport { marketOrder } from '../services/marketOrder/dto/marketOrder';\nimport marketOrderService from '../services/marketOrder/marketOrderService';\nimport * as _ from 'lodash';\n\nclass MarketOrderStore {\n @observable sellOrders: marketOrder[] = [];\n @observable buyOrders: marketOrder[] = [];\n\n @observable isBuyLoading: boolean = false;\n @observable isSellLoading: boolean = false;\n\n @observable selectedSecurityId: string = '';\n\n @action\n setSelectedSecurityId(selectedSecurityId: string) {\n this.selectedSecurityId = selectedSecurityId;\n }\n\n @action\n addOrderBook(orderbook: marketOrder) {\n if (!this.selectedSecurityId || this.selectedSecurityId !== orderbook.securityID) return;\n\n if (orderbook.mdEntryType === '0') {\n let isBuyOrderExists = this.buyOrders.find((obj) => obj.mdEntryID === orderbook.mdEntryID);\n\n if (!isBuyOrderExists) {\n let orders = this.buyOrders;\n\n orders.push(orderbook);\n\n this.buyOrders = this.calculateTotalOrders(orders, 'desc');\n }\n } else if (orderbook.mdEntryType === '1') {\n let isSellOrderExists = this.sellOrders.find((obj) => obj.mdEntryID === orderbook.mdEntryID);\n\n if (!isSellOrderExists) {\n let orders = this.sellOrders;\n orders.push(orderbook);\n\n this.sellOrders = this.calculateTotalOrders(orders, 'asc');\n }\n }\n }\n\n @action\n async getAllOrderBook(security: string, side: string) {\n if (side === '0') {\n this.isBuyLoading = true;\n } else {\n this.isSellLoading = true;\n }\n\n let marketOrders = await marketOrderService.getMarketOrders(security, side);\n\n if (side === '0') {\n this.buyOrders = this.calculateTotalOrders(marketOrders, 'desc');\n this.isBuyLoading = false;\n } else {\n this.sellOrders = this.calculateTotalOrders(marketOrders, 'asc');\n this.isSellLoading = false;\n }\n }\n\n @action\n deleteOrderBook(mDEntryID: string) {\n console.log(mDEntryID);\n let index1 = this.buyOrders.findIndex((obj) => obj.mdEntryID === mDEntryID);\n\n if (index1 > -1) {\n let orders = this.buyOrders;\n\n orders.splice(index1, 1);\n\n this.buyOrders = this.calculateTotalOrders(orders, 'desc');\n return;\n }\n\n let index2 = this.sellOrders.findIndex((obj) => obj.mdEntryID === mDEntryID);\n\n if (index2 > -1) {\n let orders = this.sellOrders;\n\n orders.splice(index2, 1);\n\n this.sellOrders = this.calculateTotalOrders(orders, 'asc');\n }\n }\n\n @action\n updateOrderBook(orderbook: marketOrder) {\n if (!this.selectedSecurityId || this.selectedSecurityId !== orderbook.securityID) return;\n\n if (orderbook.mdEntryType === '0') {\n let index = this.buyOrders.findIndex((obj) => obj.mdEntryID === orderbook.mdEntryID);\n\n if (index > -1) {\n let orders = this.buyOrders;\n orders[index] = orderbook;\n\n this.buyOrders = this.calculateTotalOrders(orders, 'desc');\n }\n } else if (orderbook.mdEntryType === '1') {\n let index = this.sellOrders.findIndex((obj) => obj.mdEntryID === orderbook.mdEntryID);\n\n if (index > -1) {\n let orders = this.sellOrders;\n orders[index] = orderbook;\n\n this.sellOrders = this.calculateTotalOrders(orders, 'asc');\n }\n }\n }\n\n @action\n clearAllOrderBook(security: string) {\n if (!this.selectedSecurityId || this.selectedSecurityId !== security) return;\n\n this.buyOrders = [];\n this.sellOrders = [];\n }\n\n calculateTotalOrders = function (orders: marketOrder[], sortDir: 'asc' | 'desc') {\n let qty = 0;\n\n let newOrders: any = [];\n\n let sortedOrders: any[] = orders.slice();\n\n sortedOrders = _.orderBy(\n sortedOrders,\n ['mdEntryPx', 'mdEntryTime', 'mdEntryPositionNo'],\n [sortDir]\n );\n\n sortedOrders.forEach(function (item) {\n qty += item.mdEntrySize;\n item.totalQuantity = qty;\n newOrders.push(item);\n });\n\n return newOrders;\n };\n}\n\nexport default MarketOrderStore;\n","import { marketTrade } from './dto/marketTrade';\nimport http from '../httpService';\nimport { PagedResultDto } from '../dto/pagedResultDto';\n\nclass MarketTradeService {\n public async getMarketTrades(): Promise> {\n let result = await http.get('api/services/app/marketData/getMarketTrades');\n\n return result.data.result;\n }\n}\n\nexport default new MarketTradeService();\n","import { marketTrade } from './../services/marketTrade/dto/marketTrade';\nimport { action, observable } from 'mobx';\nimport marketTradeService from '../services/marketTrade/marketTradeService';\n\nclass MarketTradeStore {\n @observable marketTrades!: marketTrade[];\n\n @action\n async getMarketTrades() {\n let result = await marketTradeService.getMarketTrades();\n\n this.marketTrades = result.items;\n }\n\n @action\n addMarketTrade(marketTrade: marketTrade) {\n const result = this.marketTrades?.find((obj) => obj.mdEntryID === marketTrade.mdEntryID);\n\n if (!result) {\n this.marketTrades && this.marketTrades.splice(0, 0, marketTrade);\n }\n }\n\n @action\n deleteAll() {\n this.marketTrades = [];\n }\n}\n\nexport default MarketTradeStore;\n","import { reportEventLog } from './dto/reportEventLog';\nimport http from '../httpService';\n\nclass ReportEventLogService {\n public async getReportEventLogs(): Promise {\n let result = await http.get('/api/services/app/ReportEventLog/GetReportEventLogs');\n\n return result.data.result;\n }\n}\n\nexport default new ReportEventLogService();\n","import { reportEventLog } from './../services/reportEventLogs/dto/reportEventLog';\n\nimport { action, observable } from 'mobx';\nimport reportEventLogService from '../services/reportEventLogs/reportEventLogService';\n\nclass ReportEventLogStore {\n @observable reportEventLog!: reportEventLog[];\n\n @action\n async getReportEventLogs() {\n let result = await reportEventLogService.getReportEventLogs();\n\n this.reportEventLog = result;\n }\n\n @action\n addReport(report: reportEventLog) {\n this.reportEventLog.splice(0, 0, report);\n }\n}\n\nexport default ReportEventLogStore;\n","import { ChangeLanguagaInput } from './dto/changeLanguageInput';\nimport { CreateOrUpdateUserInput } from './dto/createOrUpdateUserInput';\nimport { EntityDto } from '../../services/dto/entityDto';\nimport { GetAllUserOutput } from './dto/getAllUserOutput';\nimport { PagedResultDto } from '../../services/dto/pagedResultDto';\nimport { PagedUserResultRequestDto } from \"./dto/PagedUserResultRequestDto\";\nimport { UpdateUserInput } from './dto/updateUserInput';\nimport http from '../httpService';\n\nclass UserService {\n public async create(createUserInput: CreateOrUpdateUserInput) {\n let result = await http.post('api/services/app/User/Create', createUserInput);\n return result.data.result;\n }\n\n public async update(updateUserInput: UpdateUserInput) {\n let result = await http.put('api/services/app/User/Update', updateUserInput);\n return result.data.result;\n }\n\n public async delete(entityDto: EntityDto) {\n let result = await http.delete('api/services/app/User/Delete', { params: entityDto });\n return result.data;\n }\n\n public async getRoles() {\n let result = await http.get('api/services/app/User/GetRoles');\n return result.data.result.items;\n }\n\n public async changeLanguage(changeLanguageInput: ChangeLanguagaInput) {\n let result = await http.post('api/services/app/User/ChangeLanguage', changeLanguageInput);\n return result.data;\n }\n\n public async get(entityDto: EntityDto): Promise {\n let result = await http.get('api/services/app/User/Get', { params: entityDto });\n return result.data.result;\n }\n\n public async getAll(pagedFilterAndSortedRequest: PagedUserResultRequestDto): Promise> {\n let result = await http.get('api/services/app/User/GetAll', { params: pagedFilterAndSortedRequest });\n return result.data.result;\n }\n}\n\nexport default new UserService();\n","import { action, observable } from 'mobx';\n\nimport { CreateOrUpdateUserInput } from '../services/user/dto/createOrUpdateUserInput';\nimport { EntityDto } from '../services/dto/entityDto';\nimport { GetRoles } from '../services/user/dto/getRolesOuput';\nimport { GetUserOutput } from '../services/user/dto/getUserOutput';\nimport { PagedResultDto } from '../services/dto/pagedResultDto';\nimport { PagedUserResultRequestDto } from '../services/user/dto/PagedUserResultRequestDto';\nimport { UpdateUserInput } from '../services/user/dto/updateUserInput';\nimport userService from '../services/user/userService';\n\nclass UserStore {\n @observable users!: PagedResultDto;\n @observable editUser!: CreateOrUpdateUserInput;\n @observable roles: GetRoles[] = [];\n\n @action\n async create(createUserInput: CreateOrUpdateUserInput) {\n let result = await userService.create(createUserInput);\n this.users.items.push(result);\n }\n\n @action\n async update(updateUserInput: UpdateUserInput) {\n let result = await userService.update(updateUserInput);\n this.users.items = this.users.items.map((x: GetUserOutput) => {\n if (x.id === updateUserInput.id) x = result;\n return x;\n });\n }\n\n @action\n async delete(entityDto: EntityDto) {\n await userService.delete(entityDto);\n this.users.items = this.users.items.filter((x: GetUserOutput) => x.id !== entityDto.id);\n }\n\n @action\n async getRoles() {\n let result = await userService.getRoles();\n this.roles = result;\n }\n\n @action\n async get(entityDto: EntityDto) {\n let result = await userService.get(entityDto);\n this.editUser = result;\n }\n\n @action\n async createUser() {\n this.editUser = {\n userName: '',\n name: '',\n surname: '',\n emailAddress: '',\n isActive: false,\n roleNames: [],\n //password: '',\n permissions: [],\n userTradingAccounts: [],\n id: 0,\n };\n this.roles = [];\n }\n\n @action\n async getAll(pagedFilterAndSortedRequest: PagedUserResultRequestDto) {\n let result = await userService.getAll(pagedFilterAndSortedRequest);\n this.users = result;\n }\n\n async changeLanguage(languageName: string) {\n await userService.changeLanguage({ languageName: languageName });\n }\n}\n\nexport default UserStore;\n","import Loadable from 'react-loadable';\nimport Loading from './../Loading/index';\n\nconst LoadableComponent = (component: any) =>\n Loadable({\n loader: component,\n loading: Loading,\n });\n\nexport default LoadableComponent;\n","import * as React from 'react';\n\nimport LoadableComponent from './../Loadable/index';\nimport { UserOutlined, ClockCircleOutlined } from '@ant-design/icons';\nimport { ROUTES } from '../../constants/routes';\n\nimport dashIcon from '../../images/icons/dashIcon.svg';\nimport compPerfomanceIcon from '../../images/icons/compPerfomanceIcon.svg';\nimport marketNewsIcon from '../../images/icons/marketNewsIcon.svg';\nimport AppConsts from '../../lib/appconst';\n\nexport const userRouter: any = [\n {\n path: ROUTES.userBase,\n name: 'user',\n title: 'User',\n component: LoadableComponent(() => import('../../components/Layout/UserLayout')),\n isLayout: true,\n showInMenu: false,\n },\n {\n path: ROUTES.userLogin,\n name: 'login',\n title: 'LogIn',\n exact: true,\n component: LoadableComponent(() => import('../../scenes/Login')),\n showInMenu: false,\n },\n {\n path: ROUTES.userCreateAccount,\n name: 'createAccount',\n title: 'Create Account',\n exact: true,\n component: LoadableComponent(() => import('../../scenes/CreateNewAccount')),\n showInMenu: false,\n },\n {\n path: ROUTES.userForgotPassword,\n name: 'forgotPassword',\n title: 'Forgot Password',\n exact: true,\n component: LoadableComponent(() => import('../../scenes/ForgotPassword')),\n showInMenu: false,\n },\n {\n path: ROUTES.userResetPassword,\n name: 'resetPassword',\n title: 'Reset Password',\n exact: true,\n component: LoadableComponent(() => import('../../scenes/ResetPassword')),\n showInMenu: false,\n },\n];\n\nexport const appRouters: any = [\n {\n path: ROUTES.appBase,\n name: 'home',\n permission: '',\n title: 'Home',\n component: LoadableComponent(() => import('../../components/Layout/AppLayout')),\n isLayout: true,\n showInMenu: false,\n },\n {\n path: ROUTES.dashboard,\n name: 'dashboard',\n permission: '',\n title: 'Dashboard',\n exact: true,\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Dashboard')),\n },\n {\n path: ROUTES.realtimeTrading,\n name: 'trading',\n permission: '',\n exact: true,\n title: 'Realtime Trading',\n icon: ClockCircleOutlined,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Trading')),\n },\n\n {\n path: '',\n name: 'marketData',\n permission: '',\n title: 'Market Data',\n showInMenu: true,\n itemGroup: true,\n itemGroupItems: [\n {\n name: 'companyPerformance',\n permission: '',\n subMenu: true,\n title: 'Performance',\n iconCustom: ,\n showInMenu: true,\n subMenuItems: [\n {\n path: ROUTES.allPriceLists,\n name: 'pricelist',\n permission: '',\n title: 'All Price List',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Reports/AllPriceLists')),\n },\n {\n path: ROUTES.companyPriceLists,\n name: 'companyPriceList',\n permission: '',\n exact: true,\n title: 'Company Price List',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Reports/CompanyPriceLists')),\n },\n {\n path: ROUTES.gainersLossers,\n name: 'GainersLossers',\n permission: '',\n exact: true,\n title: 'Gainer&sLossers',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Reports/GainersLossers')),\n },\n ],\n },\n {\n path: ROUTES.marketNews,\n name: 'marketNews',\n permission: '',\n exact: true,\n title: 'Market News',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/MarketDataNews')),\n },\n ],\n },\n\n {\n path: '',\n name: 'clientPortal',\n permission: '',\n title: 'Client Portal',\n showInMenu: true,\n itemGroup: true,\n roles: [AppConsts.APP_ROLES.CUSTOMER],\n itemGroupItems: [\n {\n name: 'account',\n permission: '',\n subMenu: true,\n title: 'Account',\n iconCustom: ,\n showInMenu: true,\n subMenuItems: [\n {\n path: ROUTES.accountStatement,\n name: 'accountStatement',\n permission: '',\n title: 'AccountStatement',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Reports/AccountStatement')),\n },\n {\n path: ROUTES.accountInflow,\n name: 'accountInflow',\n permission: '',\n exact: true,\n title: 'Account Inflow',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Reports/AccountInflow')),\n },\n {\n path: ROUTES.accountOutflow,\n name: 'accountOutflow',\n permission: '',\n exact: true,\n title: 'Account Outflow',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Reports/AccountOutflow')),\n },\n ],\n },\n {\n name: 'portfolio',\n permission: '',\n subMenu: true,\n title: 'Portfolio',\n iconCustom: ,\n showInMenu: true,\n subMenuItems: [\n {\n path: ROUTES.portfolioHolding,\n name: 'portfolioHolding',\n permission: '',\n title: 'Portfolio Holding',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Reports/PortfolioHolding')),\n },\n {\n path: ROUTES.portfolioMovement,\n name: 'portfolioMovement',\n permission: '',\n exact: true,\n title: 'Portfolio Movement',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Reports/PortfolioMovement')),\n },\n {\n path: ROUTES.portfolioValuation,\n name: 'portfolioValuation',\n permission: '',\n exact: true,\n title: 'Portfolio Valuation',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Reports/PortfolioValuation')),\n },\n ],\n },\n {\n name: 'contractNote',\n permission: '',\n subMenu: true,\n title: 'Contract Note',\n iconCustom: ,\n showInMenu: true,\n subMenuItems: [\n {\n path: ROUTES.purchaseContractNote,\n name: 'purchaseContractNote',\n permission: '',\n title: 'Purchase Contract Note',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Reports/PurchaseContractNote')),\n },\n {\n path: ROUTES.saleContractNote,\n name: 'saleContractNote',\n permission: '',\n exact: true,\n title: 'Sale Contract Note',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Reports/SaleContractNote')),\n },\n ],\n },\n ],\n },\n\n {\n path: '',\n name: 'administration',\n permission: 'VIEW_ADMINSETTING',\n title: 'Administration',\n showInMenu: true,\n itemGroup: true,\n itemGroupItems: [\n {\n name: 'reports',\n permission: '',\n title: 'Reports',\n subMenu: true,\n icon: ClockCircleOutlined,\n showInMenu: true,\n subMenuItems: [\n {\n path: ROUTES.auditTrail,\n name: 'auditTrail',\n permission: 'VIEW_AUDIT_TRAIL',\n exact: true,\n title: 'Audit Trail',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Reports/AuditTrails')),\n },\n {\n path: ROUTES.adminReportStockOrders,\n name: 'ordersRpt',\n permission: 'VIEW_ALL_ORDERS',\n exact: true,\n title: 'Orders',\n iconCustom: ,\n showInMenu: true,\n component: LoadableComponent(\n () => import('../../scenes/Reports/AdminReportStockOrders')\n ),\n },\n ],\n },\n {\n path: ROUTES.adminUsermanagment,\n permission: 'Pages.Users',\n title: 'Users',\n name: 'user',\n icon: UserOutlined,\n showInMenu: true,\n component: LoadableComponent(() => import('../../scenes/Users')),\n },\n // {\n // path: '/roles',\n // permission: 'Pages.Roles',\n // title: 'Roles',\n // name: 'role',\n // icon: UserOutlined,\n // showInMenu: true,\n // component: LoadableComponent(() => import('../../scenes/Roles')),\n // },\n // {\n // path: '/tenants',\n // permission: 'Pages.Tenants',\n // title: 'Tenants',\n // name: 'tenant',\n // icon: AppstoreOutlined,\n // showInMenu: true,\n // component: LoadableComponent(() => import('../../scenes/Tenants')),\n // },\n ],\n },\n\n // {\n // path: '/about',\n // permission: '',\n // title: 'About',\n // name: 'about',\n // icon: InfoCircleOutlined,\n // showInMenu: true,\n // component: LoadableComponent(() => import('../../scenes/About')),\n // },\n\n {\n path: ROUTES.logOut,\n name: 'logout',\n showInMenu: false,\n permission: '',\n title: 'logout',\n component: LoadableComponent(() => import('../../scenes/Logout')),\n },\n\n {\n path: '/exception?:type',\n permission: '',\n title: 'exception',\n name: 'exception',\n showInMenu: false,\n component: LoadableComponent(() => import('../../scenes/Exception')),\n },\n];\n\nexport const routers = [...userRouter, ...appRouters];\n","export const ROUTES = {\n userBase: '/user',\n userLogin: '/user/login',\n userCreateAccount: '/user/create-account',\n userForgotPassword: '/user/forgot-password',\n userResetPassword: '/user/reset-password/:eid?',\n landingPage: '/home',\n\n\n appBase: '/app',\n dashboard: '/app/dashboard',\n realtimeTrading: '/app/trading',\n\n marketNews: '/app/marketData/marketNews',\n allPriceLists: '/app/marketData/all-pricelists',\n companyPriceLists: '/app/marketData/company-pricelists',\n gainersLossers: '/app/marketData/gainers-lossers',\n\n auditTrail: '/app/admin/reports/audit-trail',\n adminReportStockOrders: '/app/admin/reports/stock-orders',\n\n accountStatement: '/app/client-portal/account-statement',\n accountInflow: '/app/client-portal/account-inflow',\n accountOutflow: '/app/client-portal/account-outflow',\n portfolioHolding: '/app/client-portal/portfolio-holding',\n portfolioMovement: '/app/client-portal/portfolio-movement',\n portfolioValuation: '/app/client-portal/portfolio-valuation',\n purchaseContractNote: '/app/client-portal/purchase-contract-note',\n saleContractNote: '/app/client-portal/sale-contract-note',\n\n adminUsermanagment: '/app/admin/user-management',\n logOut: \"/app/logout\",\n exceptionPage: '/exception?type=401',\n};\n","export default class Stores {\n static AuthenticationStore: string = 'authenticationStore';\n static RoleStore: string = 'roleStore';\n static TenantStore: string = 'tenantStore';\n static UserStore: string = 'userStore';\n static SessionStore: string = 'sessionStore';\n static AccountStore: string = 'accountStore';\n static MarketDataStore: string = 'marketDataStore';\n static MarketOrderStore: string = 'marketOrderStore';\n static MarketTradeStore: string = 'marketTradeStore';\n static ReportEventLogStore: string = 'reportEventLogStore';\n static MarketNewsStore: string = 'marketNewsStore';\n static StockOrderDrawerStore: string = 'wtockOrderDrawerStore';\n}\n","import * as React from 'react';\n\nimport { Redirect, Route } from 'react-router-dom';\nimport { ROUTES } from '../../constants/routes';\nimport { useStores } from '../../hooks/use-stores';\n\nimport { isGranted } from '../../lib/abpUtility';\n\ndeclare var abp: any;\n\nconst ProtectedRoute = ({\n path,\n component: Component,\n permission,\n roles,\n render,\n ...rest\n}: any) => {\n const {\n sessionStore: {\n currentLogin: { user },\n },\n } = useStores();\n\n return (\n {\n if (!abp.session.userId)\n return (\n \n );\n\n console.log(roles);\n\n if (\n (permission && !isGranted(permission)) ||\n (roles && user?.roles?.findIndex((x) => roles.includes(x.toUpperCase())) <= -1)\n ) {\n return (\n \n );\n }\n\n return Component ? : render(props);\n }}\n />\n );\n};\n\nexport default ProtectedRoute;\n","module.exports = __webpack_public_path__ + \"static/media/dashIcon.c3fdec7c.svg\";","import * as React from 'react';\n\nimport AuthenticationStore from '../../stores/authenticationStore';\nimport Stores from '../../stores/storeIdentifier';\nimport { inject } from 'mobx-react';\n\nexport interface ILogoutProps {\n authenticationStore?: AuthenticationStore;\n}\n\n@inject(Stores.AuthenticationStore)\nclass Logout extends React.Component {\n componentDidMount() {\n this.props.authenticationStore!.logout();\n window.location.href = '/';\n }\n\n render() {\n return null;\n }\n}\n\nexport default Logout;\n","import jquery from 'jquery';\nimport React from 'react';\nimport createReactClass from 'create-react-class';\nimport ReactDOM from 'react-dom';\n\n(window as any).React = React;\n(window as any).createReactClass = createReactClass;\n(window as any).ReactDOM = ReactDOM;\n(window as any).$ = (window as any).jQuery = jquery;\n","import * as React from 'react';\n\nimport { Route, Switch, Redirect } from 'react-router-dom';\n\nimport ProtectedRoute from './ProtectedRoute';\nimport utils from '../../utils/utils';\nimport { ROUTES } from '../../constants/routes';\nimport Logout from '../../scenes/Logout';\n\nconst Router = () => {\n const UserLayout = utils.getRoute(ROUTES.userBase).component;\n const AppLayout = utils.getRoute(ROUTES.appBase).component;\n\n return (\n \n } />\n }\n />\n } />\n \n \n );\n};\n\nexport default Router;\n","import AppConsts from \"./appconst\";\nimport Util from \"../utils/utils\";\nimport { marketStat } from \"./../services/marketData/dto/marketStat\";\nimport { reportEventLog } from \"./../services/reportEventLogs/dto/reportEventLog\";\nimport { marketTrade } from \"./../services/marketTrade/dto/marketTrade\";\nimport { marketOrder } from \"./../services/marketOrder/dto/marketOrder\";\nimport { news } from \"../services/marketNews/dto/news\";\nimport { stockOrder } from \"../services/stockOrder/dto/stockOrder\";\nimport storageService from \"../services/storageService/storageService\";\n\ndeclare var abp: any;\n\nclass SignalRAspNetCoreHelper {\n initSignalR() {\n var encryptedAuthToken = abp.utils.getCookieValue(\n AppConsts.authorization.encrptedAuthTokenName\n );\n\n abp.signalr = {\n autoConnect: true,\n connect: undefined,\n hubs: \"\",\n qs:\n AppConsts.authorization.encrptedAuthTokenName +\n \"=\" +\n encodeURIComponent(encryptedAuthToken),\n remoteServiceBaseUrl: storageService.retrieve(\"remoteServiceBaseUrl\"),\n url: \"signalr-tradebookhub\",\n };\n\n Util.loadScript(\n storageService.retrieve(\"appBaseUrl\") + \"/dist/abp.signalr-client.js\"\n );\n\n abp.event.on(\"abp.signalr.connected\", function () {\n const { AppEvents } = AppConsts;\n\n // Register for connect event\n\n //Market Stat\n abp.signalr.hubs.common.on(\n AppEvents.addMarketStatistics,\n (marketStat: marketStat) => {\n abp.event.trigger(AppEvents.addMarketStatistics, marketStat);\n }\n );\n abp.signalr.hubs.common.on(\n AppEvents.updateMarketStatsSession,\n (data: any) => {\n abp.event.trigger(AppEvents.updateMarketStatsSession, data);\n }\n );\n\n //Market Order\n abp.signalr.hubs.common.on(\n AppEvents.addOrderBook,\n (orderbook: marketOrder) => {\n abp.event.trigger(AppEvents.addOrderBook, orderbook);\n }\n );\n // abp.signalr.hubs.common.on(\n // AppEvents.addAllOrderBook,\n // (orderbooks: marketOrder[], side: string) => {\n // abp.event.trigger(AppEvents.addAllOrderBook, orderbooks, side);\n // }\n // );\n abp.signalr.hubs.common.on(AppEvents.deleteOrderBook, (order: any) => {\n console.log(\"delete\", order);\n abp.event.trigger(AppEvents.deleteOrderBook, order.mdEntryID);\n });\n abp.signalr.hubs.common.on(\n AppEvents.updateOrderBook,\n (orderbook: marketOrder) => {\n abp.event.trigger(AppEvents.updateOrderBook, orderbook);\n }\n );\n abp.signalr.hubs.common.on(\n AppEvents.clearAllOrderBook,\n (security: string) => {\n abp.event.trigger(AppEvents.clearAllOrderBook, security);\n }\n );\n\n //Market Trades\n abp.signalr.hubs.common.on(\n AppEvents.onMarketTrade,\n (marketTrade: marketTrade) => {\n // console.log('market-trade', marketTrade);\n abp.event.trigger(AppEvents.onMarketTrade, marketTrade);\n }\n );\n\n //Execution Report\n abp.signalr.hubs.common.on(\n AppEvents.onExecutionReport,\n (reportEventLog: reportEventLog) => {\n abp.event.trigger(AppEvents.onExecutionReport, reportEventLog);\n }\n );\n\n //News\n abp.signalr.hubs.common.on(AppEvents.onNews, (news: news) => {\n abp.event.trigger(AppEvents.onNews, news);\n });\n\n //NSE Connection\n abp.signalr.hubs.common.on(\n AppEvents.onNseConnection,\n (connected: boolean) => {\n abp.event.trigger(AppEvents.onNseConnection, connected);\n }\n );\n\n //STOCK ORDER\n abp.signalr.hubs.common.on(\n AppEvents.addStockOrder,\n (stockOrder: stockOrder) => {\n abp.event.trigger(AppEvents.addStockOrder, stockOrder);\n }\n );\n abp.signalr.hubs.common.on(\n AppEvents.updateStockOrder,\n (stockOrder: stockOrder) => {\n abp.event.trigger(AppEvents.updateStockOrder, stockOrder);\n }\n );\n abp.signalr.hubs.common.on(\n AppEvents.replaceStockOrder,\n (stockOrder: stockOrder) => {\n abp.event.trigger(AppEvents.replaceStockOrder, stockOrder);\n }\n );\n });\n }\n}\nexport default new SignalRAspNetCoreHelper();\n","import './App.css';\n\nimport React, { useEffect, useState } from 'react';\n\nimport Router from './components/Router';\n\nimport SignalRAspNetCoreHelper from './lib/signalRAspNetCoreHelper';\nimport { useStores } from './hooks/use-stores';\n\nimport 'react-base-table/styles.css';\n\nimport { ModalProvider } from './contexts';\nimport Loading from './components/Loading';\n\nconst App = () => {\n const { sessionStore, marketDataStore, authenticationStore } = useStores();\n const [loading, setLoading] = useState(false);\n useEffect(() => {\n (async () => {\n setLoading(true);\n await sessionStore!.getCurrentLoginInformations();\n if (\n !!sessionStore!.currentLogin.user &&\n sessionStore!.currentLogin.application.features['SignalR.AspNetCore']\n ) {\n SignalRAspNetCoreHelper.initSignalR();\n }\n\n if (authenticationStore.isAuthenticated) {\n await marketDataStore.getSecurityLists().catch((err) => {\n console.log(err);\n });\n }\n setLoading(false);\n })();\n }, []);\n\n if (loading) return ;\n\n return (\n
\n \n \n \n
\n );\n};\n\nexport default App;\n","import http from \"./httpService\";\nimport axios from \"axios\";\n\nimport storageService from \"./storageService/storageService\";\nclass AbpUserConfigurationService {\n public async load() {\n const baseURI = \"/\";\n let url = `${baseURI}Home/Configuration`;\n\n const result = await axios.get(url);\n\n if (result) {\n const { appBaseUrl, remoteServiceBaseUrl } = result.data;\n storageService.store(\"appBaseUrl\", appBaseUrl);\n storageService.store(\"remoteServiceBaseUrl\", remoteServiceBaseUrl);\n http.defaults.baseURL = remoteServiceBaseUrl;\n }\n }\n public async getAll() {\n const result = await http.get(\"/AbpUserConfiguration/GetAll\");\n return result;\n }\n}\n\nexport default new AbpUserConfigurationService();\n","// tslint:disable:no-console\n// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the 'N+1' visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n process.env.PUBLIC_URL!,\n window.location.toString()\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://goo.gl/SC7cgQ'\n );\n });\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker) {\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a 'New content is\n // available; please refresh.' message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // 'Content is cached for offline use.' message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n }\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type')!.indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import \"./globals\";\n\nimport \"./index.css\";\n\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport moment from \"moment\";\n\nimport App from \"./App\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport { Provider } from \"mobx-react\";\nimport Utils from \"./utils/utils\";\nimport abpUserConfigurationService from \"./services/abpUserConfigurationService\";\nimport initializeStores from \"./stores/storeInitializer\";\nimport registerServiceWorker from \"./registerServiceWorker\";\nimport { stores, StoresProvider } from \"./contexts\";\n\ndeclare var abp: any;\n\nUtils.setLocalization();\n\nabpUserConfigurationService.load().then(() => {\n abpUserConfigurationService.getAll().then((data) => {\n Utils.extend(true, abp, data.data.result);\n abp.clock.provider = Utils.getCurrentClockProvider(\n data.data.result.clock.provider\n );\n\n moment.locale(abp.localization.currentLanguage.name);\n\n if (abp.clock.provider.supportsMultipleTimezone) {\n //TODO\n //moment.tz.setDefault(abp.timing.timeZoneInfo.iana.timeZoneId);\n }\n\n const storesInjected = initializeStores();\n\n ReactDOM.render(\n \n \n \n \n \n \n ,\n document.getElementById(\"root\") as HTMLElement\n );\n\n registerServiceWorker();\n });\n});\n","import RoleStore from './roleStore';\nimport TenantStore from './tenantStore';\nimport UserStore from './userStore';\nimport SessionStore from './sessionStore';\nimport AuthenticationStore from './authenticationStore';\nimport AccountStore from './accountStore';\nimport MarketDataStore from './marketDataStore';\nimport MarketOrderStore from './marketOrderStore';\nimport MarketTradeStore from './marketTradeStore';\nimport ReportEventLogStore from './reportEventLogStore';\nimport MarketNewsStore from './marketNewsStore';\n\nexport default function initializeStores() {\n return {\n authenticationStore: new AuthenticationStore(),\n roleStore: new RoleStore(),\n tenantStore: new TenantStore(),\n userStore: new UserStore(),\n sessionStore: new SessionStore(),\n accountStore: new AccountStore(),\n marketDataStore: new MarketDataStore(),\n marketOrderStore: new MarketOrderStore(),\n marketTradeStore: new MarketTradeStore(),\n reportEventLogStore: new ReportEventLogStore(),\n marketNewsStore: new MarketNewsStore(),\n };\n}\n","module.exports = __webpack_public_path__ + \"static/media/marketNewsIcon.d52e136c.svg\";","const AppConsts = {\n userManagement: {\n defaultAdminUserName: \"admin\",\n },\n localization: {\n defaultLocalizationSourceName: \"Tradebook\",\n },\n authorization: {\n encrptedAuthTokenName: \"enc_auth_token\",\n },\n // appBaseUrl: , // process.env.REACT_APP_APP_BASE_URL,\n // remoteServiceBaseUrl: \"\", // process.env.REACT_APP_REMOTE_SERVICE_BASE_URL,\n AppEvents: {\n addOrderBook: \"addOrderBook\",\n addAllOrderBook: \"addAllOrderBook\",\n deleteOrderBook: \"deleteOrderBook\",\n updateOrderBook: \"updateOrderBook\",\n clearAllOrderBook: \"clearAllOrderBook\",\n onNews: \"onNews\",\n onNseConnection: \"onNseConnection\",\n onNotifyUserError: \"onNotifyUserError\",\n updateMarketStatsSession: \"updateMarketStatsSession\",\n onMarketTrade: \"onMarketTrade\",\n addMarketStatistics: \"addMarketStatistics\",\n onExecutionReport: \"onExecutionReport\",\n addStockOrder: \"addStockOrder\",\n updateStockOrder: \"updateStockOrder\",\n replaceStockOrder: \"replaceStockOrder\",\n received: \"received\",\n onOrderTransaction: \"onOrderTransaction\",\n },\n\n APPNAME: \"Tradebook\",\n\n APP_ROLES: {\n ADMIN: \"ADMIN\",\n BROKER: \"BROKER\",\n CUSTOMER: \"CUSTOMER\",\n },\n\n PERMISSION: {\n VIEW_USERID_MARKET_WATCH: \"VIEW_USERID_MARKET_WATCH\",\n TRADE_ALL_ACCOUNTS: \"TRADE_ALL_ACCOUNTS\",\n VIEW_ADMINSETTING: \"VIEW_ADMINSETTING\",\n VIEW_ALL_ORDERS: \"VIEW_ALL_ORDERS\",\n BUY: \"BUY\",\n SELL: \"SELL\",\n },\n};\n\nexport default AppConsts;\n","import moment from 'moment';\nimport * as abpTypings from '../lib/abp';\nimport { L } from '../lib/abpUtility';\nimport { routers } from '../components/Router/router.config';\n\ndeclare var abp: any;\n\nclass Utils {\n loadScript(url: string) {\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url;\n document.body.appendChild(script);\n }\n\n extend(...args: any[]) {\n let options,\n name,\n src,\n srcType,\n copy,\n copyIsArray,\n clone,\n target = args[0] || {},\n i = 1,\n length = args.length,\n deep = false;\n if (typeof target === 'boolean') {\n deep = target;\n target = args[i] || {};\n i++;\n }\n if (typeof target !== 'object' && typeof target !== 'function') {\n target = {};\n }\n if (i === length) {\n target = this;\n i--;\n }\n for (; i < length; i++) {\n if ((options = args[i]) !== null) {\n for (name in options) {\n src = target[name];\n copy = options[name];\n if (target === copy) {\n continue;\n }\n srcType = Array.isArray(src) ? 'array' : typeof src;\n if (deep && copy && ((copyIsArray = Array.isArray(copy)) || typeof copy === 'object')) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && srcType === 'array' ? src : [];\n } else {\n clone = src && srcType === 'object' ? src : {};\n }\n target[name] = this.extend(deep, clone, copy);\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n return target;\n }\n\n getPageTitle = (pathname: string) => {\n const route = routers.filter((route) => route.path === pathname);\n const localizedAppName = L('AppName');\n if (!route || route.length === 0) {\n return localizedAppName;\n }\n\n return L(route[0].title) + ' | ' + localizedAppName;\n };\n\n getRoute = (path: string): any => {\n return routers.filter((route) => route.path === path)[0];\n };\n\n setLocalization() {\n if (!abp.utils.getCookieValue('Abp.Localization.CultureName')) {\n let language = navigator.language;\n abp.utils.setCookieValue(\n 'Abp.Localization.CultureName',\n language,\n new Date(new Date().getTime() + 5 * 365 * 86400000),\n abp.appPath\n );\n }\n }\n\n getCurrentClockProvider(currentProviderName: string): abpTypings.timing.IClockProvider {\n if (currentProviderName === 'unspecifiedClockProvider') {\n return abp.timing.unspecifiedClockProvider;\n }\n\n if (currentProviderName === 'utcClockProvider') {\n return abp.timing.utcClockProvider;\n }\n\n return abp.timing.localClockProvider;\n }\n numberPrecisionWithCommas(number: any) {\n if (!number || !number.value) return;\n\n return number.value\n .toFixed(2)\n .toString()\n .replace(/\\B(? any>(callback: T, waitFor: number) => {\n let timeout: ReturnType;\n return (...args: Parameters): ReturnType => {\n let result: any;\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n result = callback(...args);\n }, waitFor);\n return result;\n };\n };\n\n getRandomColor = (stringInput: string) => {\n let stringUniqueHash = [...stringInput].reduce((acc, char) => {\n return char.charCodeAt(0) + ((acc << 5) - acc);\n }, 0);\n return `hsl(${stringUniqueHash % 360}, 95%, 35%)`;\n };\n}\n\nexport default new Utils();\n","module.exports = __webpack_public_path__ + \"static/media/compPerfomanceIcon.a0ebe99e.svg\";","import AppConsts from './appconst';\n\ndeclare var abp: any;\n\nexport function L(key: string, sourceName?: string): string {\n let localizationSourceName = AppConsts.localization.defaultLocalizationSourceName;\n return abp.localization.localize(key, sourceName ? sourceName : localizationSourceName);\n}\n\nexport function isGranted(permissionName: string): boolean {\n return abp.auth.isGranted(permissionName);\n}\n","import http from '../httpService';\nimport { TransactionSummaryOutputDto } from '../stockOrder/dto/TransactionSummaryOutputDto';\nimport { CustomerOutputDto } from './dto/customerOutputDto';\nimport { PortfolioHoldingOutputDto } from './dto/PortfolioHoldingOutputDto';\n\nclass BackOfficeService {\n public async findCustomer(query: string): Promise {\n let result = await http.get('api/services/app/BackOffice/GetCustomers', {\n params: { query: query },\n });\n\n return result.data.result;\n }\n\n public async getAccountBalance(cscsAccount: string): Promise {\n let result = await http.get('api/services/app/Order/GetDashAccountBalance', {\n params: { cscsAccount: cscsAccount },\n });\n\n return result.data.result;\n }\n\n public async getDashAccountPortfolioHolding(\n cscsAccount: string\n ): Promise {\n let result = await http.get('api/services/app/BackOffice/GetDashAccountPortfolioHolding', {\n params: { cscsAcct: cscsAccount },\n });\n\n return result.data.result;\n }\n\n public async getDashAccountPortfolioValuation(cscsAccount: string): Promise {\n let result = await http.get('api/services/app/BackOffice/GetDashAccountPortfolioValuation', {\n params: { cscsAcct: cscsAccount },\n });\n\n return result.data.result;\n }\n}\n\nexport default new BackOfficeService();\n","import { action, observable } from 'mobx';\n\nimport backOfficeService from '../services/backOffice/backOfficeService';\nimport { CustomerOutputDto } from '../services/backOffice/dto/customerOutputDto';\nimport { PortfolioHoldingOutputDto } from '../services/backOffice/dto/PortfolioHoldingOutputDto';\nimport { PortfolioValuationOutputDto } from '../services/backOffice/dto/PortfolioValuationOutputDto';\nimport { TransactionSummaryOutputDto } from '../services/stockOrder/dto/TransactionSummaryOutputDto';\n\nclass BackOfficeStore {\n @observable customers!: CustomerOutputDto[];\n\n @action\n public findCustomer = async (query: string): Promise => {\n this.customers = await backOfficeService.findCustomer(query);\n\n return this.customers;\n };\n\n @action\n public getAccountBalance = async (cscsAcct: string): Promise => {\n return await backOfficeService.getAccountBalance(cscsAcct);\n };\n\n @action\n public getDashAccountPortfolioHolding = async (\n cscsAcct: string\n ): Promise => {\n return await backOfficeService.getDashAccountPortfolioHolding(cscsAcct);\n };\n @action\n public getDashAccountPortfolioValuation = async (\n cscsAcct: string\n ): Promise => {\n let data = await backOfficeService.getDashAccountPortfolioValuation(cscsAcct);\n\n data = data.map((item: any, index: any) => ({ id: index, ...item }));\n\n return data;\n };\n}\n\nexport default BackOfficeStore;\n","import { stockOrder } from './dto/stockOrder';\nimport http from '../httpService';\nimport { PagedResultDto } from '../dto/pagedResultDto';\nimport { TransactionSummaryOutputDto } from './dto/TransactionSummaryOutputDto';\n\nclass StockOrderService {\n public async getStockOrders(): Promise> {\n let result = await http.get('/api/services/app/Order/getStockOrders');\n\n return result.data.result;\n }\n\n public async getOrderTransactionSummary(payload: any): Promise {\n let result = await http.get('/api/services/app/order/getOrderTransactionSummary', {\n params: payload,\n });\n\n return result.data.result;\n }\n\n public async sendNewOrder(stockOrder: stockOrder) {\n let result = await http.post('/api/services/app/order/SendNewOrder', stockOrder);\n\n return result.data.result;\n }\n\n public async sendReplaceOrder(stockOrder: stockOrder) {\n let result = await http.post('/api/services/app/order/SendOrderReplaceRequest', stockOrder);\n\n return result.data.result;\n }\n\n public async sendCancelOrderRequest(stockOrder: stockOrder) {\n let result = await http.post('/api/services/app/order/sendCancelOrderRequest', stockOrder);\n\n return result.data.result;\n }\n}\n\nexport default new StockOrderService();\n","import { stockOrder } from './../services/stockOrder/dto/stockOrder';\nimport { action, observable } from 'mobx';\nimport stockOrderService from '../services/stockOrder/stockOrderService';\n\nclass StockOrderStore {\n @observable stockOrders!: stockOrder[];\n\n @action\n async getStockOrders() {\n let result = await stockOrderService.getStockOrders();\n\n this.stockOrders = result.items;\n }\n\n @action\n addStockOrder(stockOrder: stockOrder) {\n const index = this.stockOrders.findIndex((x) => x.id === stockOrder.id);\n\n if (index === -1) {\n this.stockOrders.unshift(stockOrder);\n } else {\n this.stockOrders[index] = stockOrder;\n }\n }\n\n @action\n updateStockOrder(stockOrder: stockOrder) {\n const index = this.stockOrders.findIndex((x) => x.id === stockOrder.id);\n\n if (index === -1) {\n this.stockOrders.unshift(stockOrder);\n } else {\n this.stockOrders[index] = stockOrder;\n }\n }\n\n @action\n replaceStockOrder(stockOrder: stockOrder) {\n const index = this.stockOrders.findIndex((x) => x.id === stockOrder.id);\n\n if (index === -1) {\n this.stockOrders.unshift(stockOrder);\n } else {\n this.stockOrders[index] = stockOrder;\n }\n }\n\n @action\n async getOrderTransactionSummary(payload: any) {\n const result = stockOrderService.getOrderTransactionSummary(payload);\n\n return result;\n }\n\n @action\n async sendNewOrder(stockOrder: stockOrder) {\n const result = stockOrderService.sendNewOrder(stockOrder);\n\n return result;\n }\n\n @action\n async sendReplaceOrder(stockOrder: stockOrder) {\n const result = stockOrderService.sendReplaceOrder(stockOrder);\n\n return result;\n }\n\n @action\n async sendCancelOrderRequest(stockOrder: stockOrder) {\n const result = stockOrderService.sendCancelOrderRequest(stockOrder);\n\n return result;\n }\n}\n\nexport default StockOrderStore;\n","import React from 'react';\nimport AccountStore from '../stores/accountStore';\nimport AuthenticationStore from '../stores/authenticationStore';\nimport BackOfficeStore from '../stores/backOfficeStore';\nimport MarketDataStore from '../stores/marketDataStore';\nimport MarketNewsStore from '../stores/marketNewsStore';\nimport MarketOrderStore from '../stores/marketOrderStore';\nimport MarketTradeStore from '../stores/marketTradeStore';\nimport ReportEventLogStore from '../stores/reportEventLogStore';\nimport RoleStore from '../stores/roleStore';\nimport SessionStore from '../stores/sessionStore';\nimport StockOrderStore from '../stores/stockOrderStore';\nimport TenantStore from '../stores/tenantStore';\nimport UserStore from '../stores/userStore';\n\nexport const stores = Object.freeze({\n sessionStore: new SessionStore(),\n marketDataStore: new MarketDataStore(),\n accountStore: new AccountStore(),\n authenticationStore: new AuthenticationStore(),\n marketNewsStore: new MarketNewsStore(),\n marketOrderStore: new MarketOrderStore(),\n marketTradeStore: new MarketTradeStore(),\n reportEventLogStore: new ReportEventLogStore(),\n roleStore: new RoleStore(),\n tenantStore: new TenantStore(),\n userStore: new UserStore(),\n stockOrderStore: new StockOrderStore(),\n backOfficeStore: new BackOfficeStore(),\n});\n\nexport const storesContext = React.createContext(stores);\n\nexport const StoresProvider = storesContext.Provider;\n","import React from 'react';\n\nexport const modalContext = React.createContext('light');\n\nexport const ModalProvider = modalContext.Provider;\n","export * from './stores-context';\nexport * from './modal-context';\n","export class StorageService {\n private storage: any;\n\n constructor() {\n this.storage = sessionStorage; // localStorage;\n }\n\n public retrieve(key: string): any {\n let item = this.storage.getItem(key);\n\n if (item && item !== \"undefined\") {\n return JSON.parse(this.storage.getItem(key));\n }\n\n return;\n }\n\n public store(key: string, value: any) {\n this.storage.setItem(key, JSON.stringify(value));\n }\n}\n\nexport default new StorageService();\n","import { L } from \"../lib/abpUtility\";\nimport { notification } from \"antd\";\nimport axios from \"axios\";\n\nconst qs = require(\"qs\");\n\ndeclare var abp: any;\n\nconst http = axios.create({\n // baseURL: storageService.retrieve(\"remoteServiceBaseUrl\"),\n timeout: 60000,\n paramsSerializer: function (params) {\n return qs.stringify(params, {\n encode: true,\n });\n },\n});\n\nhttp.interceptors.request.use(\n function (config) {\n if (!!abp.auth.getToken()) {\n config.headers.common[\"Authorization\"] = \"Bearer \" + abp.auth.getToken();\n }\n\n config.headers.common[\".AspNetCore.Culture\"] = abp.utils.getCookieValue(\n \"Abp.Localization.CultureName\"\n );\n config.headers.common[\"Abp.TenantId\"] =\n abp.multiTenancy.getTenantIdCookie();\n\n return config;\n },\n function (error) {\n return Promise.reject(error);\n }\n);\n\nhttp.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n if (\n !!error.response &&\n !!error.response.data.error &&\n !!error.response.data.error.message &&\n error.response.data.error.details\n ) {\n notification[\"error\"]({\n key: \"error\",\n message: error.response.data.error.message,\n description: error.response.data.error.details,\n className: \"app-notification-error\",\n duration: 3.5,\n });\n } else if (\n !!error.response &&\n !!error.response.data.error &&\n !!error.response.data.error.message\n ) {\n notification[\"error\"]({\n key: \"error\",\n message: \"An error occured\",\n description: error.response.data.error.message,\n className: \"app-notification-error\",\n duration: 3.5,\n });\n } else if (!error.response) {\n notification[\"error\"]({\n key: \"error\",\n message: \"\",\n description: L(\"UnknownError\"),\n className: \"app-notification-error\",\n duration: 3.5,\n });\n }\n\n setTimeout(() => {}, 1000);\n\n return Promise.reject(error);\n }\n);\n\nexport default http;\n","import React from 'react';\nimport { storesContext } from '../contexts';\n\nexport const useStores = () => React.useContext(storesContext);\n","import { securityListDto } from './dto/securityList';\nimport { PagedResultDto } from './../dto/pagedResultDto';\nimport http from '../httpService';\nimport { marketStat } from './dto/marketStat';\nimport { marketTrade } from '../marketTrade/dto/marketTrade';\n\nclass MarketDataService {\n public async getMarketStat(): Promise> {\n let result = await http.get('api/services/app/MarketData/GetMarketStats');\n\n return result.data.result;\n }\n\n public async getSecurityLists(): Promise> {\n let result = await http.get(`/api/services/app/MarketData/getSecurityLists`);\n\n return result.data.result;\n }\n\n public async getPricelimitRange(security: string): Promise {\n let result = await http.get(\n `/api/services/app/MarketData/getPricelimitRange/?security=${security}`\n );\n\n return result.data.result;\n }\n\n public async getTopStatistics(asc?: boolean): Promise {\n let result = await http.get(`api/services/app/MarketData/GetTopStatistics`, {\n params: { asc },\n });\n\n return result.data.result;\n }\n\n public async getTopTrades(): Promise {\n let result = await http.get(`api/services/app/MarketData/GetTopTrades`);\n\n return result.data.result;\n }\n\n public async getPriceTrend(security: string): Promise {\n let result = await http.get(`api/services/app/MarketData/GetPriceTrend`, {\n params: {\n security,\n },\n });\n\n return result.data.result;\n }\n}\n\nexport default new MarketDataService();\n","import { securityListDto } from './../services/marketData/dto/securityList';\nimport cleanDeep from 'clean-deep';\nimport { action, observable } from 'mobx';\nimport { PagedResultDto } from '../services/dto/pagedResultDto';\nimport { marketStat } from '../services/marketData/dto/marketStat';\nimport marketDataService from '../services/marketData/marketDataService';\n\nclass MarketDataStore {\n @observable marketStats!: PagedResultDto;\n @observable priceLimitRange!: string;\n @observable securityLists!: PagedResultDto;\n\n @action\n async getMarketStats(): Promise> {\n let result = await marketDataService.getMarketStat();\n\n this.marketStats = result;\n\n return result;\n }\n\n @action\n async getSecurityLists(): Promise> {\n let result = await marketDataService.getSecurityLists();\n\n this.securityLists = result;\n\n return result;\n }\n\n @action\n addMarketStatistics(marketStat: any): PagedResultDto {\n if (this.marketStats) {\n let index = this.marketStats.items.findIndex(\n (obj: any) => obj.securityID === marketStat.securityID\n );\n\n if (index !== -1) {\n const marketStatClean = cleanDeep(marketStat);\n\n let updateRow = { ...this.marketStats.items[index], ...marketStatClean };\n\n this.marketStats.items[index] = updateRow;\n }\n }\n\n return this.marketStats;\n }\n\n @action //TODO updateMarketStatsSession\n async updateMarketStatsSession(data: any) {}\n\n @action\n async getPricelimitRange(security: string) {\n let result = await marketDataService.getPricelimitRange(security);\n\n this.priceLimitRange = result;\n }\n}\n\nexport default MarketDataStore;\n","import * as React from 'react';\nimport { Spin } from 'antd';\n\nconst Loading = () => (\n
\n \n
\n);\n\nexport default Loading;\n","class RoleModel {\n name!: string;\n displayName!: string;\n description?: any;\n id!: number;\n}\n\nexport default RoleModel;\n","import RoleModel from './roleModel';\nimport PermissionModel from './permissionModel';\n\nclass RoleEditModel {\n role: RoleModel = new RoleModel();\n permissions: PermissionModel[] = [];\n grantedPermissionNames: string[] = [];\n}\n\nexport default RoleEditModel;\n","import { CreateRoleInput } from './dto/createRoleInput';\nimport { CreateRoleOutput } from './dto/createRoleOutput';\nimport { EntityDto } from '../dto/entityDto';\nimport { GetAllRoleOutput } from './dto/getAllRoleOutput';\nimport { GetRoleAsyncInput } from './dto/getRolesAsyncInput';\nimport GetRoleAsyncOutput from './dto/getRoleAsyncOutput';\nimport { GetRoleForEditOutput } from './dto/getRoleForEditOutput';\nimport { PagedResultDto } from '../dto/pagedResultDto';\nimport { PagedRoleResultRequestDto } from './dto/PagedRoleResultRequestDto';\nimport { UpdateRoleInput } from './dto/updateRoleInput';\nimport { UpdateRoleOutput } from './dto/updateRoleOutput';\nimport http from '../httpService';\n\nclass RoleService {\n public async create(createRoleInput: CreateRoleInput): Promise> {\n let result = await http.post('api/services/app/Role/Create', createRoleInput);\n return result.data.result;\n }\n\n public async getRolesAsync(getRoleAsyncInput: GetRoleAsyncInput): Promise {\n let result = await http.get('api/services/app/Role/GetRolesAsync', { params: getRoleAsyncInput });\n return result.data.result;\n }\n\n public async update(updateRoleInput: UpdateRoleInput): Promise {\n let result = await http.put('api/services/app/Role/Update', updateRoleInput);\n return result.data.result as UpdateRoleOutput;\n }\n\n public async delete(entityDto: EntityDto) {\n let result = await http.delete('api/services/app/Role/Delete', { params: entityDto });\n return result.data;\n }\n\n public async getAllPermissions() {\n let result = await http.get('api/services/app/Role/GetAllPermissions');\n return result.data.result.items;\n }\n\n public async getRoleForEdit(entityDto: EntityDto): Promise {\n let result = await http.get('api/services/app/Role/GetRoleForEdit', { params: entityDto });\n return result.data.result;\n }\n\n public async get(entityDto: EntityDto) {\n let result = await http.get('api/services/app/Role/Get', { params: entityDto });\n return result.data;\n }\n\n public async getAll(pagedFilterAndSortedRequest: PagedRoleResultRequestDto): Promise> {\n let result = await http.get('api/services/app/Role/GetAll', { params: pagedFilterAndSortedRequest });\n return result.data.result;\n }\n}\n\nexport default new RoleService();\n","import { action, observable } from 'mobx';\n\nimport { CreateRoleInput } from '../services/role/dto/createRoleInput';\nimport { EntityDto } from '../services/dto/entityDto';\nimport { GetAllPermissionsOutput } from '../services/role/dto/getAllPermissionsOutput';\nimport { GetAllRoleOutput } from '../services/role/dto/getAllRoleOutput';\nimport { GetRoleAsyncInput } from '../services/role/dto/getRolesAsyncInput';\nimport { PagedResultDto } from '../services/dto/pagedResultDto';\nimport { PagedRoleResultRequestDto } from '../services/role/dto/PagedRoleResultRequestDto';\nimport RoleEditModel from '../models/Roles/roleEditModel';\nimport { UpdateRoleInput } from '../services/role/dto/updateRoleInput';\nimport roleService from '../services/role/roleService';\n\nclass RoleStore {\n @observable roles!: PagedResultDto;\n @observable roleEdit: RoleEditModel = new RoleEditModel();\n @observable allPermissions: GetAllPermissionsOutput[] = [];\n\n @action\n async create(createRoleInput: CreateRoleInput) {\n await roleService.create(createRoleInput);\n }\n\n @action\n async createRole() {\n this.roleEdit = {\n grantedPermissionNames: [],\n role: {\n name: '',\n displayName: '',\n description: '',\n id: 0,\n },\n permissions: [{ name: '', displayName: '', description: '' }],\n };\n }\n\n @action\n async getRolesAsync(getRoleAsyncInput: GetRoleAsyncInput) {\n await roleService.getRolesAsync(getRoleAsyncInput);\n }\n\n @action\n async update(updateRoleInput: UpdateRoleInput) {\n await roleService.update(updateRoleInput);\n this.roles.items\n .filter((x: GetAllRoleOutput) => x.id === updateRoleInput.id)\n .map((x: GetAllRoleOutput) => {\n return (x = updateRoleInput);\n });\n }\n\n @action\n async delete(entityDto: EntityDto) {\n await roleService.delete(entityDto);\n this.roles.items = this.roles.items.filter((x: GetAllRoleOutput) => x.id !== entityDto.id);\n }\n\n @action\n async getAllPermissions() {\n var result = await roleService.getAllPermissions();\n this.allPermissions = result;\n }\n\n @action\n async getRoleForEdit(entityDto: EntityDto) {\n let result = await roleService.getRoleForEdit(entityDto);\n this.roleEdit.grantedPermissionNames = result.grantedPermissionNames;\n this.roleEdit.permissions = result.permissions;\n this.roleEdit.role = result.role;\n }\n\n @action\n async get(entityDto: EntityDto) {\n var result = await roleService.get(entityDto);\n this.roles = result.data.result;\n }\n\n @action\n async getAll(pagedFilterAndSortedRequest: PagedRoleResultRequestDto) {\n let result = await roleService.getAll(pagedFilterAndSortedRequest);\n this.roles = result;\n }\n}\n\nexport default RoleStore;\n","import TenantAvailabilityState from './tenantAvailabilityState';\n\nexport default class IsTenantAvaibleOutput {\n state!: TenantAvailabilityState;\n tenantId!: number;\n}\n","import { IsTenantAvaibleInput } from './dto/isTenantAvailableInput';\nimport { RegisterInput } from './dto/registerInput';\nimport IsTenantAvaibleOutput from './dto/isTenantAvailableOutput';\nimport { RegisterOutput } from './dto/registerOutput';\nimport http from '../httpService';\nimport { RegistrationEmailVerificationInput } from './dto/registrationEmailVerificationInput';\nimport { PasswordResetInput } from './dto/passwordResetInput';\nimport { ChangePasswordInput } from './dto/changePasswordInput';\n\nclass AccountService {\n public async isTenantAvailable(\n isTenantAvaibleInput: IsTenantAvaibleInput\n ): Promise {\n let result = await http.post(\n 'api/services/app/Account/IsTenantAvailable',\n isTenantAvaibleInput\n );\n return result.data.result;\n }\n\n public async register(registerInput: RegisterInput): Promise {\n let result = await http.post('api/services/app/Account/Register', registerInput);\n return result.data.result;\n }\n public async resendVerificationToken(accessToken: string): Promise {\n let result = await http.get('api/services/app/Account/GetResendVerificationCode', {\n params: { accessToken },\n });\n return result.data.result;\n }\n\n public async verifyAccount(\n verificationInput: RegistrationEmailVerificationInput\n ): Promise {\n let result = await http.post('api/services/app/Account/VerifyAccount', verificationInput);\n return result.data.result;\n }\n\n public async resetPassword(payload: PasswordResetInput): Promise {\n let result = await http.post('api/services/app/Account/PasswordReset', payload);\n return result.data.result;\n }\n\n public async changePassword(payload: ChangePasswordInput): Promise {\n let result = await http.post('api/services/app/Account/ChangePassword', payload);\n return result.data.result;\n }\n\n public async customerRegister(payload: any): Promise {\n let result = await http.post('api/services/app/Customer/CustomerRegister', payload);\n return result.data.result;\n }\n}\n\nexport default new AccountService();\n","import { action, observable } from 'mobx';\n\nimport IsTenantAvaibleOutput from '../services/account/dto/isTenantAvailableOutput';\nimport accountService from '../services/account/accountService';\nimport { RegisterInput } from '../services/account/dto/registerInput';\nimport { RegisterOutput } from '../services/account/dto/registerOutput';\nimport { RegistrationEmailVerificationInput } from '../services/account/dto/registrationEmailVerificationInput';\nimport { PasswordResetInput } from '../services/account/dto/passwordResetInput';\nimport { ChangePasswordInput } from '../services/account/dto/changePasswordInput';\n\nclass AccountStore {\n @observable tenant: IsTenantAvaibleOutput = new IsTenantAvaibleOutput();\n @observable registrationOutput!: RegisterOutput;\n\n @action\n public isTenantAvailable = async (tenancyName: string) => {\n this.tenant = await accountService.isTenantAvailable({ tenancyName: tenancyName });\n };\n\n @action\n public register = async (payload: RegisterInput) => {\n this.registrationOutput = await accountService.register(payload);\n\n return this.registrationOutput;\n };\n\n @action\n public resendVerificationToken = async (payload: string) => {\n const result = await accountService.resendVerificationToken(payload);\n\n return result;\n };\n\n @action\n public verifyAccount = async (payload: RegistrationEmailVerificationInput) => {\n const result = await accountService.verifyAccount(payload);\n\n return result;\n };\n\n @action\n public passwordReset = async (payload: PasswordResetInput) => {\n const result = await accountService.resetPassword(payload);\n\n return result;\n };\n\n @action\n public changePassword = async (payload: ChangePasswordInput) => {\n const result = await accountService.changePassword(payload);\n\n return result;\n };\n\n @action\n public customerRegister = async (payload: FormData) => {\n payload.set('accessToken', this.registrationOutput?.accessToken);\n const result = await accountService.customerRegister(payload);\n\n return result;\n };\n\n @action\n public setRegisterationOut = async (payload: RegisterOutput) => {\n this.registrationOutput = payload;\n };\n}\n\nexport default AccountStore;\n","import { observable } from 'mobx';\n\nclass LoginModel {\n tenancyName!: string;\n userNameOrEmailAddress!: string;\n password!: string;\n @observable rememberMe!: boolean;\n @observable showModal!: boolean;\n\n toggleRememberMe = () => {\n this.rememberMe = !this.rememberMe;\n };\n\n toggleShowModal = () => {\n this.showModal = !this.showModal;\n };\n}\n\nexport default LoginModel;\n","import { AuthenticationModel } from './dto/authenticationModel';\nimport { AuthenticationResultModel } from './dto/authenticationResultModel';\nimport http from '../httpService';\n\nclass TokenAuthService {\n public async authenticate(authenticationInput: AuthenticationModel): Promise {\n let result = await http.post('api/TokenAuth/Authenticate', authenticationInput);\n return result.data.result;\n }\n}\n\nexport default new TokenAuthService();\n","import { action, observable } from 'mobx';\n\nimport AppConsts from './../lib/appconst';\nimport LoginModel from '../models/Login/loginModel';\nimport tokenAuthService from '../services/tokenAuth/tokenAuthService';\nimport { AuthenticationResultModel } from '../services/tokenAuth/dto/authenticationResultModel';\n\ndeclare var abp: any;\n\nclass AuthenticationStore {\n @observable loginModel: LoginModel = new LoginModel();\n\n get isAuthenticated(): boolean {\n if (!abp.session.userId) return false;\n\n return true;\n }\n\n @action\n public async login(model: LoginModel): Promise {\n let result = await tokenAuthService.authenticate({\n userNameOrEmailAddress: model.userNameOrEmailAddress,\n password: model.password,\n rememberClient: model.rememberMe,\n });\n\n if (result.registrationIncomplete) {\n return result;\n }\n\n var tokenExpireDate = model.rememberMe\n ? new Date(new Date().getTime() + 1000 * result.expireInSeconds)\n : undefined;\n abp.auth.setToken(result.accessToken, tokenExpireDate);\n abp.utils.setCookieValue(\n AppConsts.authorization.encrptedAuthTokenName,\n result.encryptedAccessToken,\n tokenExpireDate,\n abp.appPath\n );\n\n return result;\n }\n\n @action\n logout() {\n localStorage.clear();\n sessionStorage.clear();\n abp.auth.clearToken();\n }\n}\nexport default AuthenticationStore;\n","import ApplicationInfoDto from './applicationInfoDto';\nimport TenantLoginInfoDto from './tenantLoginInfoDto';\nimport UserLoginInfoDto from './userLoginInfoDto';\n\nexport class GetCurrentLoginInformations {\n application!: ApplicationInfoDto;\n user!: UserLoginInfoDto;\n tenant!: TenantLoginInfoDto;\n}\n","import { GetCurrentLoginInformations } from './dto/getCurrentLoginInformations';\nimport http from '../httpService';\n\ndeclare var abp: any;\n\nclass SessionService {\n public async getCurrentLoginInformations(): Promise {\n let result = await http.get('api/services/app/Session/GetCurrentLoginInformations', {\n headers: {\n 'Abp.TenantId': abp.multiTenancy.getTenantIdCookie(),\n },\n });\n\n return result.data.result;\n }\n}\n\nexport default new SessionService();\n","import { action, observable } from 'mobx';\n\nimport { GetCurrentLoginInformations } from '../services/session/dto/getCurrentLoginInformations';\nimport sessionService from '../services/session/sessionService';\n\nclass SessionStore {\n @observable currentLogin: GetCurrentLoginInformations = new GetCurrentLoginInformations();\n\n @action\n async getCurrentLoginInformations() {\n let result = await sessionService.getCurrentLoginInformations();\n this.currentLogin = result;\n }\n}\n\nexport default SessionStore;\n","class TenantModel {\n tenancyName!: string;\n name!: string;\n isActive!: boolean;\n id!: number;\n}\n\nexport default TenantModel;\n","import CreateTenantInput from './dto/createTenantInput';\nimport CreateTenantOutput from './dto/createTenantOutput';\nimport { EntityDto } from '../../services/dto/entityDto';\nimport { GetAllTenantOutput } from './dto/getAllTenantOutput';\nimport GetTenantOutput from './dto/getTenantOutput';\nimport { PagedResultDto } from '../../services/dto/pagedResultDto';\nimport {PagedTenantResultRequestDto} from './dto/PagedTenantResultRequestDto';\nimport UpdateTenantInput from './dto/updateTenantInput';\nimport UpdateTenantOutput from './dto/updateTenantOutput';\nimport http from '../httpService';\n\nclass TenantService {\n public async create(createTenantInput: CreateTenantInput): Promise {\n let result = await http.post('api/services/app/Tenant/Create', createTenantInput);\n return result.data.result;\n }\n\n public async delete(entityDto: EntityDto) {\n let result = await http.delete('api/services/app/Tenant/Delete', { params: entityDto });\n return result.data;\n }\n\n public async get(entityDto: EntityDto): Promise {\n let result = await http.get('api/services/app/Tenant/Get', { params: entityDto });\n return result.data.result;\n }\n\n public async getAll(pagedFilterAndSortedRequest: PagedTenantResultRequestDto): Promise> {\n let result = await http.get('api/services/app/Tenant/GetAll', { params: pagedFilterAndSortedRequest });\n return result.data.result;\n }\n\n public async update(updateTenantInput: UpdateTenantInput): Promise {\n let result = await http.put('api/services/app/Tenant/Update', updateTenantInput);\n return result.data.result;\n }\n}\n\nexport default new TenantService();\n","import { action, observable } from 'mobx';\n\nimport CreateTenantInput from '../services/tenant/dto/createTenantInput';\nimport { EntityDto } from '../services/dto/entityDto';\nimport { GetAllTenantOutput } from '../services/tenant/dto/getAllTenantOutput';\nimport { PagedResultDto } from '../services/dto/pagedResultDto';\nimport { PagedTenantResultRequestDto } from '../services/tenant/dto/PagedTenantResultRequestDto';\nimport TenantModel from '../models/Tenants/TenantModel';\nimport UpdateTenantInput from '../services/tenant/dto/updateTenantInput';\nimport tenantService from '../services/tenant/tenantService';\n\nclass TenantStore {\n @observable tenants!: PagedResultDto;\n @observable tenantModel: TenantModel = new TenantModel();\n\n @action\n async create(createTenantInput: CreateTenantInput) {\n await tenantService.create(createTenantInput);\n }\n\n @action\n async createTenant() {\n this.tenantModel = {\n id: 0,\n isActive: true,\n name: '',\n tenancyName: '',\n };\n }\n\n @action\n async update(updateTenantInput: UpdateTenantInput) {\n let result = await tenantService.update(updateTenantInput);\n\n this.tenants.items = this.tenants.items.map((x: GetAllTenantOutput) => {\n if (x.id === updateTenantInput.id) x = result;\n return x;\n });\n }\n\n @action\n async delete(entityDto: EntityDto) {\n await tenantService.delete(entityDto);\n this.tenants.items = this.tenants.items.filter((x: GetAllTenantOutput) => x.id !== entityDto.id);\n }\n\n @action\n async get(entityDto: EntityDto) {\n let result = await tenantService.get(entityDto);\n this.tenantModel = result;\n }\n\n @action\n async getAll(pagedFilterAndSortedRequest: PagedTenantResultRequestDto) {\n let result = await tenantService.getAll(pagedFilterAndSortedRequest);\n this.tenants = result;\n }\n}\n\nexport default TenantStore;\n"],"sourceRoot":""}