{"version":3,"sources":["webpack:///./src/components/PortfolioList.vue?050e","webpack:///./src/views/Home/Portfolio.vue?cc06","webpack:///./src/components/PortfolioList.vue?583c","webpack:///./src/components/PortfolioList.vue","webpack:///./src/components/PortfolioList.vue?4272","webpack:///./src/components/PortfolioList.vue?fa42","webpack:///./src/services/portfolioService.ts","webpack:///./src/views/Home/Portfolio.vue","webpack:///./src/views/Home/Portfolio.vue?0e1f","webpack:///./src/views/Home/Portfolio.vue?796f"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","on","$event","showAgentDownloading","_v","_s","errorMsg","_e","agent","Connected","PortfolioGatewayConnected","SameAcc","$t","_l","group","key","SecType","account","showColumnDialog","tradingParams","colSettingDialog","currentGroupKeys","currentDefaultKeys","saveColumnKeys","staticRenderFns","staticStyle","GroupData","item","Symbol","SymbolId","ComboType","Items","length","class","IsExpanded","subItem","index","ConId","CompanyName","Sort","sort","direction","sItem","OptionData","Right","StockPrice","$fix","Volume","AvgVolume","MarketPrice","Status","$num","LastClosed","Last","getLast","style","Position","DailyPL","Math","floor","MarketValue","UnrealizedPL","Change","getPreAfterChange","ChangeRate","getPreAfterChangeRate","Return","Currency","ExRate","Strike","toLocaleString","StrikeProx","Exposure","Multiplier","AverageCost","ExpirationDate","NextEarnDate","totalValue","totalDailyPL","totalExposure","totalReturn","setAlertPrice","currentStock","Price","getChange","getChangeRate","symbolId","type","alertPriceSettingDialog","alertAdded","name","getByKey","utility","num","digits","undefined","maximumFractionDigits","minimumFractionDigits","end","toFixed","a","b","v","left","right","symbol","Open","Close","res","forEach","q","p","Alert","count","sum","valid","avg","pl","abs","components","SetSymbolAlert","SymbolName","component","getPortfoliosGroups","tryPostResult","secGroupedRes","convertGroupRes","Result","result","groupRes","Object","freeze","i","groups","loadingData","isAgentPortfolioRead","readFromAgent","Local","init","Server","settingService","readUserSettingsByNamesAsync","tp","tpv","parseInt","Value","isNaN","loadPortfolios","addMessageCallBack","agentMsgCallBack","serverMsgCallBack","portfolioService","Error","sendDirectMsg","uid","store","state","user","toString","showData","data","secGroup","calcRowValues","e","AccountName","Keys","getKeysAsync","SendAll","page","symbols","getAllSymbolIds","options","getAllOptionIds","removeMessageCallBack","newGroup","newItem","getDefaultKeys","currentSecType","keys","addOrUpdateUserSettingAsync","Name","JSON","stringify","ValueType","findGroup","find","msg","Action","Content","$alert","content","OptionUId","MsgId","updateStkRow","stk","portfolioGroup","SymbolUId","portfolioRow","arr","push","x","OptionId","parse","defArr","indexOf","splice","Promise","resolve","accNo","PortfolioList","ColumnSelector"],"mappings":"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","file":"js/chunk-975f093e.js","sourcesContent":["export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PortfolioList.vue?vue&type=style&index=0&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"m-auto\"},[_c('div',{staticClass:\"text-right p-2 f-14\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){_vm.showAgentDownloading = true}}},[_vm._v(\"Download trading agent\")])]),(_vm.errorMsg)?_c('h4',{staticClass:\"text-danger f-20\"},[_vm._v(_vm._s(_vm.errorMsg))]):_vm._e(),(_vm.readFromAgent)?_c('div',{staticClass:\"text-danger f-20\"},[(!_vm.agent.Connected)?_c('h4',[_vm._v(_vm._s(_vm.$t('AGENT_NOT_CONNECTED')))]):(!_vm.agent.PortfolioGatewayConnected)?_c('h4',[_vm._v(_vm._s(_vm.$t('AGENT_GATEWAY_NOT_CONNECTED')))]):(!_vm.agent.SameAcc)?_c('h4',[_vm._v(\"Agent account is different with the current account.\")]):_vm._e()]):_vm._e(),(_vm.showAgentDownloading)?_c('el-dialog',{staticClass:\"text-center m-auto\",attrs:{\"visible\":_vm.showAgentDownloading,\"append-to-body\":\"\",\"show-close\":true,\"close-on-click-modal\":false,\"title\":\"Download Trading Agent\",\"width\":\"600px\"},on:{\"update:visible\":function($event){_vm.showAgentDownloading=$event}}},[_c('a',{staticClass:\"f-18\",attrs:{\"href\":\"https://agalica.com/tsagent/TradingAgent-portable-1.0.0.51.zip\",\"target\":\"_blank\"}},[_vm._v(\"Portable Version 1.0.0.51\")]),_c('div',{staticClass:\"p-2\"}),_c('a',{staticClass:\"f-18\",attrs:{\"href\":\"https://agalica.com/tsagent/TradingAgent-1.0.0.51.msi\",\"target\":\"_blank\"}},[_vm._v(\"Installer 1.0.0.51\")])]):_vm._e(),_vm._l((_vm.groups),function(group){return _c('div',{key:group.SecType},[_c('div',{staticClass:\"p-2 d-flex align-items-center\"},[_c('i',{staticClass:\"square mr-2 bg-primary\"}),_vm._v(_vm._s(_vm.$t(group.SecType))+\"(\"+_vm._s(_vm.account)+\") \"),_c('div',{staticClass:\"text-right flex-fill\"},[_c('i',{staticClass:\"el-icon-setting font-weight-bold pointer m-2 f-20\",on:{\"click\":function($event){return _vm.showColumnDialog(group)}}})])]),_c('PortfolioList',{attrs:{\"group-data\":group,\"trading-params\":_vm.tradingParams}})],1)}),(_vm.colSettingDialog)?_c('ColumnSelector',{attrs:{\"visible\":_vm.colSettingDialog,\"target-keys\":_vm.currentGroupKeys,\"source-keys\":_vm.currentDefaultKeys},on:{\"update:visible\":function($event){_vm.colSettingDialog=$event},\"keysChanged\":_vm.saveColumnKeys}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.GroupData)?_c('div',{staticClass:\"d-flex text-center mb-3\"},[_c('div',{staticStyle:{\"width\":\"160px\",\"flex-shrink\":\"0\"}},[_c('div',{staticClass:\"col-header border-right\",staticStyle:{\"margin-bottom\":\"1px\"}},[_vm._v(\"Symbol\")]),_vm._l((_vm.GroupData.Items),function(item){return _c('div',{key:item.Symbol.SymbolId,staticClass:\"position-relative\"},[(item.ComboType > 0 && item.Items.length > 1 && _vm.GroupData.SecType === 'OPT' )?_c('div',[_c('div',{staticClass:\"expander\",class:item.IsExpanded ? 'expanded' : 'collapsed',on:{\"click\":function($event){item.IsExpanded = !item.IsExpanded}}}),(item.IsExpanded)?_c('div',{staticClass:\"expander-line\"}):_vm._e(),(item.IsExpanded)?_c('div',{staticClass:\"expander-bot\"}):_vm._e()]):_vm._e(),_vm._l((item.Items),function(subItem,index){return _c('div',{key:subItem.ConId},[( item.IsExpanded || (!item.IsExpanded && index === 0) )?_c('div',{staticClass:\"row-h item-center border-right w-100\"},[_c('div',{staticClass:\"w-100\"},[_c('router-link',{attrs:{\"to\":'/home/options?symbolId=' + item.Symbol.SymbolId}},[_c('SymbolName',{attrs:{\"Symbol\":item.Symbol,\"symbol-class\":\"symbol-com\"}})],1),_c('div',{staticClass:\"f-11 color-888 company-name\",staticStyle:{\"text-indent\":\"16px\"}},[_vm._v(_vm._s(item.Symbol.CompanyName))])],1)]):_vm._e()])})],2)})],2),_c('div',{staticClass:\"flex-fill\",staticStyle:{\"overflow-x\":\"auto\"}},[(_vm.GroupData)?_c('table',{staticClass:\"data-table\"},[_c('thead',[_c('tr',{staticClass:\"f-14 text-uppercase bg-light\"},_vm._l((_vm.GroupData.Keys),function(key){return _c('th',{key:key},[_c('div',{staticClass:\"col-header\"},[_vm._v(\" \"+_vm._s(_vm.$t(key))+\" \"),(_vm.GroupData.Sort == null || _vm.GroupData.Sort.key !== key)?_c('i',{staticClass:\"el-icon-d-caret pointer\",on:{\"click\":function($event){return _vm.sort(key,'Asc')}}}):(_vm.GroupData.Sort.direction === 'Asc' )?_c('i',{staticClass:\"el-icon-caret-top pointer\",on:{\"click\":function($event){return _vm.sort(key,'Desc')}}}):_c('i',{staticClass:\"el-icon-caret-bottom pointer\",on:{\"click\":function($event){return _vm.sort(key,'Asc')}}})])])}),0)]),_vm._l((_vm.GroupData.Items),function(sItem){return _c('tbody',{key:sItem.Symbol.SymbolId},[(sItem.IsExpanded)?_vm._l((sItem.Items),function(item){return _c('tr',{key:item.ConId},_vm._l((_vm.GroupData.Keys),function(key){return _c('td',{key:key,staticClass:\"row-h\"},[( key==='Right')?_c('div',[_vm._v(_vm._s(_vm.$t('Opt.'+item.OptionData.Right)))]):( key==='Volume' && item.StockPrice )?_c('div',[_vm._v(_vm._s(_vm.$fix(item.StockPrice.Volume/1000000))+\"M\")]):( key==='AverageVol' && item.StockPrice )?_c('div',[_vm._v(_vm._s(_vm.$fix(item.StockPrice.AvgVolume/1000000))+\"M\")]):( key==='MarketPrice' && item.MarketPrice )?_c('div',[(item.SecType === 'STK' && item.StockPrice )?_c('div',[( (item.StockPrice.Status & 20) !== 0 )?_c('div',[_vm._v(\" \"+_vm._s(_vm.$num(item.StockPrice.LastClosed))+\" \"),_c('div',{staticClass:\"f-12 color-666\"},[_vm._v(\" \"+_vm._s((item.StockPrice.Status & 4) > 0 ? 'Pre' : '')+\" \"+_vm._s((item.StockPrice.Status & 16) > 0 ? 'After' : '')+\" \"+_vm._s(_vm.$num(item.StockPrice.Last))+\" \")])]):_c('div',[_vm._v(\" \"+_vm._s(_vm.$num(item.StockPrice.getLast()))+\" \")])]):_c('div',[_vm._v(\" \"+_vm._s(_vm.$num(item.MarketPrice))+\" \")])]):( key==='Position' )?_c('div',{style:('color:' + (item.Position<0 ? 'red' : 'darkgreen'))},[_vm._v(_vm._s(_vm.$num(item.Position,0))+\" \")]):( key==='DailyPL' && item.DailyPL )?_c('div',{style:('color:' + (item.DailyPL<0 ? 'red' : 'darkgreen'))},[_vm._v(\" \"+_vm._s(_vm.$num(Math.floor(item.DailyPL),0))+\" \")]):( key==='MarketValue' && item.MarketValue )?_c('div',{style:('color:' + (item.MarketValue<0 ? 'red' : 'darkgreen'))},[_vm._v(\" \"+_vm._s(_vm.$num(Math.floor(item.MarketValue),0))+\" \")]):( key==='Price' && item.StockPrice )?_c('div',[_vm._v(\" \"+_vm._s(_vm.$num(item.StockPrice.getLast(),2))+\" \")]):( key==='UnrealizedPL' && item.UnrealizedPL )?_c('div',{style:('color:' + (item.UnrealizedPL<0 ? 'red' : 'darkgreen'))},[_c('span',[_vm._v(_vm._s(_vm.$num(item.UnrealizedPL,0)))])]):( key==='Change' && item.Change )?_c('div',[_c('span',{class:item.Change<0 ? 'downs' : 'ups'},[_vm._v(_vm._s(_vm.$num(item.Change)))]),(item.SecType === 'STK' && item.StockPrice)?_c('div',{staticClass:\"f-11 color-888\"},[_vm._v(\" \"+_vm._s(_vm.$num(item.StockPrice.getPreAfterChange()))+\" \")]):_vm._e()]):( key==='ChangeRate' && item.ChangeRate )?_c('div',[_c('span',{class:item.ChangeRate<0 ? 'downs' : 'ups'},[_vm._v(_vm._s(_vm.$num(item.ChangeRate))+\"%\")]),(item.SecType === 'STK' && item.StockPrice)?_c('div',{staticClass:\"f-11 color-888\"},[_vm._v(\" \"+_vm._s(_vm.$fix(item.StockPrice.getPreAfterChangeRate(),'%'))+\" \")]):_vm._e()]):( key==='Return' && item.Return )?_c('div',[( _vm.GroupData.SecType === 'STK' )?_c('span',{class:item.Return<0 ? 'downs' : 'ups'},[_vm._v(_vm._s(_vm.$num(item.Return * 100))+\"%\")]):_c('span',{style:(item.Return<0 ? 'color:red;' : 'color:darkgreen;')},[_vm._v(_vm._s(_vm.$num(item.Return * 100))+\"%\")])]):( key==='Currency')?_c('div',[_vm._v(_vm._s(sItem.Symbol.Currency))]):( key==='ExchRate')?_c('div',[_vm._v(_vm._s(_vm.$fix(item.ExRate)))]):( key==='Strike')?_c('div',[_vm._v(_vm._s(item.OptionData.Strike.toLocaleString('en-US')))]):( key==='StrikeProx' && item.StrikeProx )?_c('div',[_c('div',{class:item.StrikeProx + (item.Position > 0 ? '-pos' : '-neg')},[_vm._v(_vm._s(_vm.$t(item.StrikeProx)))])]):( key==='Exposure' )?_c('div',[_vm._v(_vm._s(_vm.$num(item.Exposure,0)))]):( key==='Multiplier' && item.OptionData.Multiplier )?_c('div',[_vm._v(_vm._s(item.OptionData.Multiplier)+\" \")]):( key==='AverageCost' && item.SecType === 'OPT' && item.OptionData.Multiplier )?_c('div',[_vm._v(\" \"+_vm._s(_vm.$num(item.AverageCost/item.OptionData.Multiplier))+\" \")]):( key==='AverageCost')?_c('div',[_vm._v(_vm._s(_vm.$num(item.AverageCost,2)))]):( key==='ExpirationDate')?_c('div',[_vm._v(_vm._s(item.OptionData.ExpirationDate))]):( key==='ComboType')?_c('div',[_c('div',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(_vm.$t( 'ComboType' + item.OptionData.ComboType)))])]):( key==='NextEarnDate')?_c('div',[_vm._v(_vm._s(item.StockPrice.NextEarnDate))]):_vm._e()])}),0)}):[_c('tr',_vm._l((_vm.GroupData.Keys),function(key){return _c('td',{key:key,staticClass:\"row-h\"},[_vm._v(\" ?? \")])}),0)]],2)}),_c('tbody',[( _vm.GroupData.SecType!='CASH' )?_c('tr',{staticClass:\"font-weight-bold\"},_vm._l((_vm.GroupData.Keys),function(key){return _c('td',{key:key,staticClass:\"p-1\"},[( key==='LocalSymbol' )?_c('div',[_vm._v(\"Total\")]):( key==='MarketValue' )?_c('div',[_vm._v(\" \"+_vm._s(_vm.totalValue)+\" \")]):_vm._e(),( key==='DailyPL' )?_c('div',{style:('color:' + (_vm.totalDailyPL<0 ? 'red' : 'darkgreen'))},[_vm._v(\" \"+_vm._s(_vm.$num(_vm.totalDailyPL,0))+\" \")]):_vm._e(),( key==='Exposure' )?_c('div',[_vm._v(\" \"+_vm._s(_vm.totalExposure)+\" \")]):( key==='Return' )?_c('div',{style:('color:' + (_vm.totalReturn<0 ? 'red' : 'darkgreen'))},[_vm._v(\" \"+_vm._s(_vm.$fix(_vm.totalReturn))+\"% \")]):_vm._e()])}),0):_vm._e()])],2):_vm._e()]),_c('div',{staticStyle:{\"width\":\"90px\",\"flex-shrink\":\"0\"}},[_c('div',{staticClass:\"col-header\",staticStyle:{\"margin-bottom\":\"1px\"}}),_vm._l((_vm.GroupData.Items),function(item){return _c('div',{key:item.Symbol.SymbolId},_vm._l((item.Items),function(subItem,index){return _c('div',{key:subItem.ConId},[( item.IsExpanded || (!item.IsExpanded && index === 0) )?_c('div',{staticClass:\"row-h item-center border-left\"},[_c('router-link',{attrs:{\"to\":'/home/news?symbolId='+item.Symbol.SymbolId}},[_c('img',{staticStyle:{\"width\":\"24px\",\"margin-left\":\"5px\"},attrs:{\"src\":require(\"../assets/News.svg\")}})]),_c('router-link',{attrs:{\"to\":'/home/chart?symbolId='+item.Symbol.SymbolId}},[_c('img',{staticStyle:{\"width\":\"24px\",\"margin\":\"0 5px\"},attrs:{\"src\":require(\"../assets/Trend.svg\")}})]),(subItem.SecType === 'STK' )?_c('div',{staticClass:\"d-inline-block\"},[(subItem.Alert)?_c('img',{staticClass:\"pointer\",staticStyle:{\"width\":\"24px\",\"margin-right\":\"5px\"},attrs:{\"src\":require(\"../assets/bell-green.svg\")},on:{\"click\":function($event){return _vm.setAlertPrice(item.Symbol,subItem)}}}):_c('img',{staticClass:\"pointer\",staticStyle:{\"width\":\"24px\"},attrs:{\"src\":require(\"../assets/bell.svg\")},on:{\"click\":function($event){return _vm.setAlertPrice(item.Symbol,subItem)}}})]):_vm._e()],1):_vm._e()])}),0)})],2)]):_vm._e(),(_vm.alertPriceSettingDialog)?_c('SetSymbolAlert',{attrs:{\"symbol-name\":_vm.currentStock.Symbol.Symbol,\"last-price\":_vm.currentStock.Price.getLast(),\"change\":_vm.currentStock.Price.getChange(),\"change-rate\":_vm.currentStock.Price.getChangeRate(),\"type-info\":{ symbolId:_vm.currentStock.Symbol.SymbolId, type:'Stock' },\"visible\":_vm.alertPriceSettingDialog},on:{\"updated\":_vm.alertAdded,\"update:visible\":function($event){_vm.alertPriceSettingDialog=$event}}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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\r\nimport { Component, Vue, Prop } from 'vue-property-decorator'\r\nimport { ContractSymbol, GroupedData, PortfolioGroup, PortfolioMessage, PriceCls, StockPrice } from '@/services/data'\r\nimport utility from '@/common/utility'\r\nimport SetSymbolAlert from '@/components/SetAlertPrice.vue'\r\nimport SymbolName from '@/components/SymbolName.vue'\r\n\r\n@Component({\r\n components: {\r\n SetSymbolAlert,\r\n SymbolName\r\n }\r\n})\r\n\r\nexport default class PortfolioList extends Vue {\r\n name = 'PortfolioList'\r\n @Prop() GroupData: GroupedData\r\n @Prop() TradingParams: number\r\n alertPriceSettingDialog = false\r\n currentStock: StockPrice\r\n\r\n $num (num: number, digits = 2): string {\r\n if (num != null && num !== undefined) {\r\n return num.toLocaleString('en-US', { maximumFractionDigits: digits, minimumFractionDigits: digits })\r\n }\r\n return null\r\n }\r\n\r\n $fix (num: number, end?: string): string {\r\n if (num != null && num !== undefined) {\r\n return num.toFixed(2) + (end || '')\r\n }\r\n return null\r\n }\r\n\r\n sort (key: string, direction: string) {\r\n this.GroupData.Sort = { key, direction }\r\n const sort = (a: PortfolioGroup, b: PortfolioGroup): number => {\r\n const v = direction === 'Asc' ? 1 : -1\r\n const left = this.getByKey(a, key)\r\n const right = this.getByKey(b, key)\r\n if (left === right) return 0\r\n return left > right ? v : v * -1\r\n }\r\n if (sort) {\r\n this.GroupData.Items.sort(sort)\r\n }\r\n }\r\n\r\n setAlertPrice (symbol: ContractSymbol, item: PortfolioMessage) {\r\n this.currentStock = {\r\n Symbol: symbol,\r\n Price: new PriceCls({ Open: null, Close: item.StockPrice.Close, Last: item.MarketPrice })\r\n }\r\n this.alertPriceSettingDialog = true\r\n }\r\n\r\n alertAdded (res: {symbolId: number;count: number}) {\r\n this.GroupData.Items.forEach(q => {\r\n q.Items.forEach(p => {\r\n if (p.SecType === 'STK' && q.Symbol.SymbolId === res.symbolId) {\r\n p.Alert = res.count > 0\r\n }\r\n })\r\n })\r\n }\r\n\r\n get totalValue () {\r\n let sum = 0\r\n let valid = true\r\n this.GroupData.Items.forEach(q => {\r\n q.Items.forEach(p => {\r\n if (p.ExRate) {\r\n sum += Math.floor(p.MarketValue / p.ExRate)\r\n } else {\r\n valid = false\r\n }\r\n })\r\n })\r\n if (!valid) return 'EXCH.RATE'\r\n return sum.toFixed(0)\r\n }\r\n\r\n get totalDailyPL () {\r\n let sum = 0\r\n let valid = true\r\n this.GroupData.Items.forEach(q => {\r\n q.Items.forEach(p => {\r\n if (p.MarketValue && p.ExRate) {\r\n sum += Math.floor(p.DailyPL / p.ExRate)\r\n } else {\r\n valid = false\r\n }\r\n })\r\n })\r\n if (!valid) return 'EXCH.RATE'\r\n return sum\r\n }\r\n\r\n get totalExposure () {\r\n let sum = 0\r\n this.GroupData.Items.forEach(q => {\r\n q.Items.forEach(p => {\r\n if (p.MarketValue && p.ExRate) {\r\n sum += Math.floor(p.Exposure / p.ExRate)\r\n }\r\n })\r\n })\r\n return sum.toFixed(0)\r\n }\r\n\r\n get totalReturn () {\r\n let avg = 0\r\n let pl = 0\r\n let valid = true\r\n this.GroupData.Items.forEach(q => {\r\n q.Items.forEach(p => {\r\n if (!p.ExRate) {\r\n valid = false\r\n }\r\n if (p.AverageCost && p.UnrealizedPL && p.ExRate) {\r\n avg += p.AverageCost / p.ExRate * Math.abs(p.Position)\r\n pl += p.UnrealizedPL / p.ExRate\r\n }\r\n })\r\n })\r\n if (!valid || pl === 0 || avg === 0) {\r\n return null\r\n }\r\n return ((pl / avg) * 100)\r\n }\r\n\r\n getByKey = function (group: PortfolioGroup, key: string) {\r\n const item = group.Items[0]\r\n if (key === 'Price') {\r\n return item.StockPrice.getLast()\r\n } else if (key === 'Strike') {\r\n return item.OptionData.Strike\r\n } else if (key === 'ExpirationDate') {\r\n return item.OptionData.ExpirationDate\r\n } else if (key === 'Right') {\r\n return item.OptionData.Right\r\n } else if (key === 'Multiplier') {\r\n return item.OptionData.Multiplier\r\n } else if (key === 'Currency') {\r\n return group.Symbol.Currency\r\n } else if (key === 'ExchRate') {\r\n return item.ExRate\r\n } else if (key === 'NextEarnDate') {\r\n return item.StockPrice.NextEarnDate\r\n }\r\n return utility.getByKey(item, key)\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PortfolioList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PortfolioList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PortfolioList.vue?vue&type=template&id=0123901d&\"\nimport script from \"./PortfolioList.vue?vue&type=script&lang=ts&\"\nexport * from \"./PortfolioList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PortfolioList.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import {\r\n ApiResult,\r\n ContractSymbol, GroupedData,\r\n PortfolioGroup,\r\n PortfolioGroupCls,\r\n PortfolioMessage,\r\n PriceCls\r\n} from '@/services/data'\r\nimport ServiceBase from '@/services/serviceBase'\r\n\r\nexport default {\r\n async getPortfoliosGroups (): Promise[]>> {\r\n const secGroupedRes = await ServiceBase.tryPostResult[]>('/Portfolio/getPortfoliosGroups', {})\r\n this.convertGroupRes(secGroupedRes.Result)\r\n return secGroupedRes\r\n },\r\n convertGroupRes (result: GroupedData[]) {\r\n if (result) {\r\n for (const groupRes of result) {\r\n for (const group of groupRes.Items) {\r\n if (group.Symbol) {\r\n Object.freeze(group.Symbol)\r\n }\r\n group.Items.forEach(q => {\r\n q.StockPrice = new PriceCls(q.StockPrice)\r\n if (q.OptionData) {\r\n Object.freeze(q.OptionData)\r\n }\r\n })\r\n }\r\n for (let i = 0; i < groupRes.Items.length; i++) {\r\n groupRes.Items[i] = new PortfolioGroupCls(groupRes.Items[i])\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n}\r\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\r\nimport { Component, Vue } from 'vue-property-decorator'\r\nimport ws, { SocketMsg } from '../../services/socket'\r\nimport settingService from '@/services/settingService'\r\nimport { GroupedData, PriceMsgContent, PortfolioGroup, OptionMsgContent } from '@/services/data'\r\nimport PortfolioList from '@/components/PortfolioList.vue'\r\nimport portfolioService from '@/services/portfolioService'\r\nimport store from '@/store'\r\nimport ColumnSelector from '@/components/ColumnsSelector.vue'\r\nimport { calcStrikePro, setPriceValues } from '@/services/func'\r\n\r\n@Component({\r\n components: {\r\n PortfolioList,\r\n ColumnSelector\r\n }\r\n})\r\nexport default class Portfolio extends Vue {\r\n groups: GroupedData[] = []\r\n currentGroupKeys: string[] = []\r\n currentDefaultKeys: string[] = []\r\n currentSecType: string\r\n colSettingDialog = false\r\n tradingParams = 0\r\n account = ''\r\n showAgentDownloading = false\r\n errorMsg = ''\r\n loadingData = false\r\n isAgentPortfolioRead = false\r\n readFromAgent = false\r\n\r\n async mounted () {\r\n ws.Local.init()\r\n ws.Server.init()\r\n const tp = await settingService.readUserSettingsByNamesAsync(['StrikeProxPercent'])\r\n if (tp.Result && tp.Result.length > 0) {\r\n const tpv = parseInt(tp.Result[0].Value)\r\n if (!isNaN(tpv)) {\r\n this.tradingParams = tpv\r\n }\r\n }\r\n await this.loadPortfolios()\r\n ws.Local.addMessageCallBack(this.agentMsgCallBack)\r\n ws.Server.addMessageCallBack(this.serverMsgCallBack)\r\n }\r\n\r\n async loadPortfolios () {\r\n this.loadingData = true\r\n this.errorMsg = null\r\n const res = await portfolioService.getPortfoliosGroups()\r\n if (res.Error) {\r\n if (res.Error === 'READ_FROM_AGENT') { // server response indicate to load data from agent\r\n ws.Local.sendDirectMsg('reqPortfolios', { uid: store.state.user.uid })\r\n this.readFromAgent = true\r\n } else {\r\n this.errorMsg = (this.$t(res.Error)).toString()\r\n }\r\n this.loadingData = false\r\n return []\r\n }\r\n this.readFromAgent = false\r\n await this.showData(res.Result)\r\n return res.Result\r\n }\r\n\r\n async showData (data: GroupedData[]) {\r\n for (const secGroup of data) {\r\n for (const group of secGroup.Items) {\r\n await this.calcRowValues(group)\r\n for (const subItem of group.Items) {\r\n calcStrikePro(subItem, this.tradingParams)\r\n }\r\n }\r\n }\r\n this.groups = data\r\n if (data && data.length > 0) this.account = data[0].Items[0].Items[0].AccountName\r\n for (const item of this.groups) {\r\n if (item.Keys == null || item.Keys.length === 0) {\r\n item.Keys = await this.getKeysAsync(item.SecType)\r\n }\r\n }\r\n ws.SendAll({ page: 'portfolio', symbols: this.getAllSymbolIds(data), options: this.getAllOptionIds(data) })\r\n this.loadingData = false\r\n }\r\n\r\n get userAccNo () {\r\n return store.state.user.accNo\r\n }\r\n\r\n get agent () {\r\n return store.state.agent\r\n }\r\n\r\n destroyed (): void {\r\n ws.Local.removeMessageCallBack(this.agentMsgCallBack)\r\n ws.Server.removeMessageCallBack(this.serverMsgCallBack)\r\n }\r\n\r\n async calcRowValues (newGroup: PortfolioGroup) {\r\n for (const newItem of newGroup.Items) {\r\n if (newItem.Position !== 0) {\r\n newItem.Return = newItem.UnrealizedPL / Math.abs(newItem.AverageCost * newItem.Position)\r\n if (newItem.SecType === 'STK') {\r\n if (newItem.StockPrice) {\r\n newItem.Change = newItem.StockPrice.getChange()\r\n newItem.ChangeRate = newItem.StockPrice.getChangeRate()\r\n if (newItem.Change != null) {\r\n newItem.DailyPL = newItem.Change * newItem.Position\r\n }\r\n }\r\n }\r\n } else {\r\n newItem.UnrealizedPL = 0\r\n newItem.Return = 0\r\n }\r\n }\r\n }\r\n\r\n showColumnDialog (group: GroupedData) {\r\n this.colSettingDialog = true\r\n this.currentDefaultKeys = this.getDefaultKeys(group.SecType)\r\n this.currentGroupKeys = group.Keys\r\n this.currentSecType = group.SecType\r\n }\r\n\r\n async saveColumnKeys (keys: string[]) {\r\n if (keys.length === 0) return\r\n await settingService.addOrUpdateUserSettingAsync([{\r\n Name: this.currentSecType + 'Columns',\r\n Value: JSON.stringify(keys),\r\n ValueType: 'Json'\r\n }])\r\n const findGroup = this.groups.find(p => p.SecType === this.currentSecType)\r\n if (findGroup) {\r\n findGroup.Keys = keys\r\n }\r\n }\r\n\r\n async serverMsgCallBack (msg: SocketMsg) {\r\n if (msg.Action === 'resPortfolioUpdated') { // Server ibkr gateway portfolios changed\r\n await this.loadPortfolios()\r\n } else if (msg.Action === 'resPortfolios') { // response portfolio data from server which is sent from agent\r\n if (msg.Content.Error) {\r\n await this.$alert(msg.Content.Error)\r\n return\r\n }\r\n this.isAgentPortfolioRead = true\r\n await this.showData(portfolioService.convertGroupRes(msg.Content))\r\n this.errorMsg = ''\r\n } else if (msg.Action === 'resOpt') {\r\n for (const secGroup of this.groups) {\r\n if (secGroup.SecType === 'OPT') {\r\n const content = msg.Content as OptionMsgContent\r\n for (const group of secGroup.Items) {\r\n for (const subItem of group.Items) {\r\n if (subItem.OptionData?.OptionUId === msg.MsgId) {\r\n if (content.Name === 'OptPrice') {\r\n subItem.MarketPrice = content.Value\r\n subItem.MarketValue = subItem.Position * subItem.OptionData.Multiplier * content.Value\r\n subItem.UnrealizedPL = (content.Value * subItem.OptionData.Multiplier - subItem.AverageCost) * subItem.Position\r\n }\r\n continue\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else if (msg.Action === 'resStk') {\r\n const content = msg.Content as PriceMsgContent\r\n this.updateStkRow(msg.MsgId, content)\r\n }\r\n }\r\n\r\n updateStkRow (uid: number, content: PriceMsgContent) {\r\n if (content.Value != null) {\r\n const stk = this.groups.find(p => p.SecType === 'STK')\r\n if (stk) {\r\n const portfolioGroup = stk.Items.find(p => p.Symbol.SymbolUId === uid)\r\n if (portfolioGroup) {\r\n for (const portfolioRow of portfolioGroup.Items) {\r\n if (portfolioRow.StockPrice) {\r\n setPriceValues(content, portfolioRow.StockPrice)\r\n calcStrikePro(portfolioRow, this.tradingParams)\r\n if (content.Name === 'Last') {\r\n // console.log(`${portfolioRow.Symbol.Symbol} new price is: ${content.Value}`)\r\n portfolioRow.MarketValue = portfolioRow.Position * content.Value\r\n portfolioRow.UnrealizedPL = (content.Value - portfolioRow.AverageCost) * portfolioRow.Position\r\n }\r\n portfolioRow.Change = portfolioRow.StockPrice.getChange()\r\n portfolioRow.ChangeRate = portfolioRow.StockPrice.getChangeRate()\r\n if (portfolioRow.Change != null) {\r\n portfolioRow.DailyPL = portfolioRow.Change * portfolioRow.Position\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n agentMsgCallBack (msg: SocketMsg) {\r\n if (msg.Action === 'resPortfolioUpdated') { // trading agent gateway portfolios changed\r\n ws.Local.sendDirectMsg('reqPortfolios', { uid: store.state.user.uid })\r\n } else if (msg.Action === 'resAgentStatus') {\r\n if (!this.loadingData) {\r\n if (!this.isAgentPortfolioRead) {\r\n ws.Local.sendDirectMsg('reqPortfolios', { uid: store.state.user.uid })\r\n }\r\n }\r\n } else if (msg.Action === 'resStk') {\r\n const content = msg.Content as PriceMsgContent\r\n this.updateStkRow(msg.MsgId, content)\r\n }\r\n }\r\n\r\n getAllSymbolIds (data: GroupedData[]) {\r\n const arr: number[] = []\r\n data.forEach(p => p.Items.forEach(q => {\r\n arr.push(q.Symbol.SymbolId)\r\n }))\r\n return arr\r\n }\r\n\r\n getAllOptionIds (data: GroupedData[]) {\r\n const arr: number[] = []\r\n data.forEach(p => p.Items.forEach(q => {\r\n q.Items.forEach(x => {\r\n if (x.OptionData != null) {\r\n arr.push(x.OptionData.OptionId)\r\n }\r\n })\r\n }))\r\n return arr\r\n }\r\n\r\n getDefaultKeys (type: string) {\r\n if (type === 'OPT') {\r\n return ['Strike', 'ExpirationDate', 'Right', 'Multiplier', 'AverageCost', 'NextEarnDate', 'ComboType', 'StrikeProx', 'Exposure', 'Position', 'MarketPrice', 'MarketValue', 'Price', 'UnrealizedPL', 'Return', 'Currency', 'ExchRate']\r\n } else if (type === 'STK') {\r\n return ['Change', 'ChangeRate', 'Position', 'AverageCost', 'Volume', 'AverageVol', 'NextEarnDate', 'MarketPrice', 'DailyPL', 'MarketValue', 'UnrealizedPL', 'Return', 'Currency', 'ExchRate']\r\n } else if (type === 'BOND') {\r\n return ['ISIN', 'Position', 'MarketValue', 'Coupon', 'MaturityDate', 'LastTradePrice', 'YTM', 'CouponDate', 'Frequency', 'Currency']\r\n } else {\r\n return ['Position', 'MarketPrice', 'MarketValue', 'Change', 'Return']\r\n }\r\n }\r\n\r\n async getKeysAsync (name: string): Promise {\r\n try {\r\n const res = await settingService.readUserSettingsByNamesAsync([name + 'Columns'])\r\n if (res.Result != null && res.Result.length > 0) {\r\n const arr = JSON.parse(res.Result[0].Value) as string[]\r\n const defArr = this.getDefaultKeys(name)\r\n arr.forEach((item, index) => {\r\n if (defArr.indexOf(item) < 0) {\r\n arr.splice(index, 1)\r\n index--\r\n }\r\n })\r\n return arr\r\n }\r\n } catch (e) {\r\n }\r\n return Promise.resolve(this.getDefaultKeys(name))\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Portfolio.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Portfolio.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Portfolio.vue?vue&type=template&id=3de11072&\"\nimport script from \"./Portfolio.vue?vue&type=script&lang=ts&\"\nexport * from \"./Portfolio.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}