{"version":3,"sources":["webpack:///./src/services/transService.ts","webpack:///./src/assets/futu.png","webpack:///./src/assets/Target.svg","webpack:///./src/assets/ibkr.png","webpack:///./src/components/ShareWatchList.vue?1e65","webpack:///./src/services/checkListService.ts","webpack:///./src/services/memberService.ts","webpack:///./src/components/TransactionForm.vue?b392","webpack:///./src/components/TransactionForm.vue","webpack:///./src/components/TransactionForm.vue?6b53","webpack:///./src/components/TransactionForm.vue?cae1","webpack:///./src/components/TextRowEditor.vue?cc4a","webpack:///src/components/TextRowEditor.vue","webpack:///./src/components/TextRowEditor.vue?c1ae","webpack:///./src/components/TextRowEditor.vue","webpack:///./src/views/Home/Watchlist.vue?b315","webpack:///./src/views/Home/Watchlist.vue?0be1","webpack:///./src/components/WatchSymbols.vue?6b00","webpack:///./src/components/SymbolSearch.vue?e10a","webpack:///./src/components/SymbolSearch.vue","webpack:///./src/components/SymbolSearch.vue?5660","webpack:///./src/components/SymbolSearch.vue?6a9f","webpack:///./src/components/RangeForm.vue?80cf","webpack:///./src/components/RangeForm.vue","webpack:///./src/components/RangeForm.vue?9f0b","webpack:///./src/components/RangeForm.vue?b616","webpack:///./src/components/WatchSymbols.vue","webpack:///./src/components/WatchSymbols.vue?d6a9","webpack:///./src/components/WatchSymbols.vue?4749","webpack:///./src/components/WatchOptions.vue?d30e","webpack:///./src/components/OptionSearch.vue?7b6a","webpack:///./src/components/OptionSearch.vue","webpack:///./src/components/OptionSearch.vue?866c","webpack:///./src/components/OptionSearch.vue?0bc2","webpack:///./src/components/WatchOptions.vue","webpack:///./src/components/WatchOptions.vue?3324","webpack:///./src/components/WatchOptions.vue?c822","webpack:///./src/components/WatchBonds.vue?0d38","webpack:///./src/components/WatchBonds.vue","webpack:///./src/components/WatchBonds.vue?7f1e","webpack:///./src/components/WatchBonds.vue?2e06","webpack:///./src/components/ShareWatchList.vue?e2ba","webpack:///./src/components/ShareWatchList.vue","webpack:///./src/components/ShareWatchList.vue?77d9","webpack:///./src/components/ShareWatchList.vue?39a4","webpack:///./src/components/WatchCryptos.vue?57c0","webpack:///./src/components/CryptoSearch.vue?8996","webpack:///./src/components/CryptoSearch.vue","webpack:///./src/components/CryptoSearch.vue?a1d4","webpack:///./src/components/CryptoSearch.vue?1753","webpack:///./src/components/WatchCryptos.vue","webpack:///./src/components/WatchCryptos.vue?0817","webpack:///./src/components/WatchCryptos.vue?e907","webpack:///./src/views/Home/Watchlist.vue","webpack:///./src/views/Home/Watchlist.vue?e8be","webpack:///./src/views/Home/Watchlist.vue?09c6","webpack:///./src/assets/Target-green.svg"],"names":["getTransactions","SymbolId","tryPostResult","res","addOrUpdateTransaction","model","tryPostBooleanResult","removeSymbolTran","SymbolTransId","module","exports","setTargetAsync","ot","getOptCheckList","getCurrentAsync","updateAsync","data","registerAsync","addOrUpdateAsync","getTradeExecutionEmailsAsync","updateTradeExecutionEmailsAsync","getAllAsync","Name","sendTestMsgAsync","type","deleteAsync","loginId","render","_vm","this","_h","$createElement","_c","_self","ref","attrs","rules","staticClass","_v","value","callback","$$v","$set","_n","expression","_l","index","key","on","$event","submit","_s","$t","staticRenderFns","Quantity","CostPerShare","TransDate","Commission","Type","requiredNumberRule","Date","requiredRule","price","v","console","log","$refs","modelForm","validate","valid","$emit","component","nativeOn","preventDefault","buttonText","mounted","message","isLoading","watch","handler","val","props","Object","Array","default","String","Number","methods","checkValidation","textForm","fun","directives","name","rawName","dragEnd","WatchList","group","WatchName","WatchListId","class","currentGroupId","setActiveTab","IsSystem","_e","deleteTab","duplicateTab","IsReadOnly","FromUserId","showShareUser","showReNameDialog","currentPopup","slot","newWatchDialog","LastUpdated","dataSource","staticStyle","showColumnDialog","Keys","Symbols","filter","p","Symbol","SecType","delSymbol","addSymbol","transChanged","stkDragged","OptKeys","Options","delOption","addOption","CryptoKeys","Cryptos","delCrypto","addCrypto","BondKeys","userSearchDialog","sharedToUser","unSharedToUser","required","trigger","addTab","newGroupName","renameWatchDialog","rename","colSettingDialog","currentKeys","currentDefaultKeys","saveColumnKeys","sort","sortItems","direction","Items","item","CompanyName","Price","Last","Status","$num","LastClosed","getLast","Close","getClose","Volume","$fix","AvgVolume","getChange","getPreAfterChange","getChangeRate","getPreAfterChangeRate","Currency","ExRate","Portfolio","Position","showAddTranForm","AverageCost","style","MarketValue","Math","floor","toLocaleString","DailyPL","NextEarnDate","showEditTarget","setAlertPrice","IsDownload","IsDownloading","openRangeEditor","IsRead","delItem","length","showSymbolSearch","currentSymbol","symbolId","alertPriceSettingDialog","alertAdded","showTargetDialog","targetSaved","editingTarget","showTransDialog","addTransaction","showRangeDialog","currentSymbolRange","Low","High","Run","saveDownloadRange","title","indexOf","_k","keyCode","search","input","loading","Description","PrimaryExch","msgId","symbols","trim","doSearch","symbol","symbolService","searchSymbolsAsync","symbolType","Error","$alert","Result","$confirm","confirm","Bond","SymbolUId","low","high","run","getByKey","utility","num","undefined","maximumFractionDigits","minimumFractionDigits","end","toFixed","a","b","left","right","i","Rank","tid","parseInt","$route","query","targetSymbolId","find","transService","Alert","count","targetValue","checkListService","Target","freebieService","getOtmRanges","ranges","range","RangeType","updateRange","components","draggable","SymbolSearch","SetSymbolAlert","NumberRowEditor","TransactionForm","SymbolName","RangeForm","Option","OptionId","Strike","Expiration","substr","Right","Multiplier","isExpReady","option","isRightReady","filterByRight","isStrikeReady","Code","expirationList","Set","strikeList","isSearching","multiplier","searchInput","searchOptionsAsync","clear","Expirations","map","splitDate","Strikes","size","OptionSearch","IssuerId","Detail","CouponRate","Bid","DailyBid","BidYtm","DailyBidYtm","MaturityDate","CouponDate","CouponFrequency","watchlistName","shared","shareState","Member","UserId","SimpleName","LoginId","shareToMember","currentUser","changeShareStatus","unShareToMember","members","member","userId","memberService","watchListService","getSharedUsersAsync","sharedUsers","changeShareStatusAsync","$message","q","CryptoId","CryptoSearch","InitAll","msgCallBack","wId","id","getWatchListNamesAsync","namesRes","copyArray","getDefaultKeys","push","e","isNaN","loadWatchData","settingService","readUserSettingsByNamesAsync","dsRes","Value","runningInterval","setInterval","getDownloadStatusAsync","updateRankAsync","current","findCurrent","keys","concat","isDownloading","findIndex","getWatchListAsync","items","SendAll","page","options","cryptos","watchListId","getWatchListsAsync","forEach","Open","JSON","parse","to","from","next","RemoveAll","clearInterval","msg","Action","w","sp","MsgId","content","Content","LastTime","OptionUId","$router","addWatchListAsync","added","deleteWatchListAsync","removeArrayItem","duplicateWatchListAsync","newList","shareWatchListAsync","unShareWatchListAsync","saveKeysAsync","renameWatchListAsync","addSymbolToWatchListAsync","newItem","opt","addOptionToWatchListAsync","updateSymbolRankAsync","deleteSymbolFromWatchListAsync","deleteOptionFromWatchListAsync","addCryptoToWatchListAsync","deleteCryptoFromWatchListAsync","WatchCryptos","WatchBonds","ShareWatchList","TextRowEditor","WatchSymbols","WatchOptions","ColumnSelector","Draggable"],"mappings":"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","file":"js/chunk-25244e83.js","sourcesContent":["import ServiceBase from '@/services/serviceBase'\r\nimport { TransactionItem } from '@/services/data'\r\n\r\nexport default {\r\n async getTransactions (SymbolId: number) {\r\n const res = await ServiceBase.tryPostResult('/trans/getTransactions', { SymbolId })\r\n return res\r\n },\r\n async addOrUpdateTransaction (model: TransactionItem) {\r\n return await ServiceBase.tryPostBooleanResult('/trans/addOrUpdateTransaction', model)\r\n },\r\n async removeSymbolTran (SymbolTransId: number) {\r\n return await ServiceBase.tryPostBooleanResult('/trans/removeSymbolTran', { SymbolTransId })\r\n }\r\n}\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADUAAAA1CAIAAABuhDQnAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOiSURBVGhD7ZlLTBNBGMcHRIWtiRoTL0ZPoBcT9aDRGx68yMHIQx4CbQ0xJEaRhEjiIyqJMRhFbyQGNNHoBTlIOCqY+KK7XYFSsbxFxQeVqimVR4H6p90UmN0tdNgNa9Ivv5B0OzP76+zM900pCQQCVY3ftp7u5CytXKHdGIiQSbvRNzA8TiBnKv7MWdq4QkHWbiUxFXVtO9VGNp9sDcrRbxsAgbM6CGfGYzXWzM2HUK+NRsxvebD7JRbYVx8X4nN5kr0s4nL4pAJ68DBR+0GLHLOR9BaMu6noXXKJY9c55+5zTvxlYE+5c0epIyFPSJLdKEQUfviUJNMGrQOXOq/WDz3r+IP86R2bnvTPTE4x4p+a8Y5NWav74zJt1O1CLMnPZLavyhUgd/h6F7RQcrSNhy9/knRWP8jhgW6wirVNw9J4WkdNk5tkMPkF5fgtxa1876g0mA7B7peQy2+0iuKATxpJn2D0m92qmbbHr0ekYXQLRj/0OXqrRxpDz6htjt5vbb6wJk8Q+nRcduG4/8KNhEoJhFD1I1m2gxUuaYCIMTo+7RoaezfgY6D9o+9Ntze1wrUqm6cEQqj7pbfcbPwmKajE99+TZQ8+pZS0rzPbE/ODFEQHcj6KJHI+Z6YFQij7oScS8muXVxJRCsfg35Qz7eTIW5LDr8kXsB7YwKei7j4fZT8URJyrhzwTkossRrx+1E21RaMhyn6YcNzeNzEt6cjiSt0QZo7qpQfKfjj24EiC+i3pLIxx/8zOso44lRWtLap+OPyo+fX9GF9vFbGuqV56wOLX+tGHfYelTfXSAxY/lGNscDU/9EVVlIP2JlnjRWHxQ15V88PG33fhfdbtXhTGMBlVPWmV3etPiInRT7mWfvHZ/N7z7yf8yr0qG75iFqkui6KlH2p81p1eqZEsGuy/UDMjfBVSRFO/zEjnnboWT8wvGDG/OTT2QyqRGsminjfA/kCekxrJYnb+MlbUD1dQlyuffq23eWAT5onN8+jVyP6LnQk4hy7ssiha+qF84SJmEc+RJviPEXybprosipZ+YfAQaWRtlogufhoS81se/63fnnKnil6gffAv1vtK+iEXbD/rUNELiP0+nEMZDpsMKPthelbnCZbq/tpmd03THPea3XefD6dWfGDItGwo+4WYzbQZclrw9BkyLRuR/IxAzG95wE+kLhkKYqSfzeWI5NA1l6moy6A/AZ9wkkH3RHJpJ2dx0O+tMCJndV6u+/IPsjhsIFbM9twAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/Target.svg\";","module.exports = \"data:image/png;base64,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\"","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!./ShareWatchList.vue?vue&type=style&index=0&id=908db9a4&scoped=true&lang=css&\"","import { ApiBooleanResult, ApiResult, OtmRange } from '@/services/data'\r\nimport ServiceBase from '@/services/serviceBase'\r\n\r\nexport interface OptionTarget {\r\n SymbolId: number;\r\n Target: number;\r\n}\r\n\r\nexport interface OptionDownload {\r\n SymbolId: number;\r\n Download: boolean;\r\n}\r\n\r\nexport interface StockOptionCheckItem {\r\n SymbolName: string;\r\n SymbolId: number;\r\n StockPosition: number;\r\n SoldCall: number;\r\n BuyCall: number;\r\n SoldPut: number;\r\n BuyPut: number;\r\n UserTarget: number;\r\n}\r\n\r\nexport default {\r\n async setTargetAsync (ot: OptionTarget): Promise {\r\n return await ServiceBase.tryPostBooleanResult('/checkList/setTarget', ot)\r\n },\r\n async getOptCheckList (): Promise> {\r\n return await ServiceBase.tryPostResult('/checkList/getOptCheckList')\r\n }\r\n}\r\n","import serviceBase from '@/services/serviceBase'\r\nimport { ApiBooleanResult, ApiResult } from '@/services/data'\r\n\r\nexport interface MemberUpdateModel {\r\n [index: string]: any;\r\n\r\n RoleId?: number;\r\n Name?: string;\r\n Mobile?: string;\r\n ChromeToken?: string;\r\n SimpleName?: string;\r\n}\r\n\r\nexport interface MemberModel {\r\n UserId: number;\r\n Name: string;\r\n LoginId: string;\r\n RoleId: number;\r\n RoleName?: string;\r\n SimpleName: string;\r\n}\r\n\r\nexport interface NewMemberModel extends MemberModel {\r\n Password: string;\r\n}\r\n\r\nexport interface TradeExecutionEmailModel {\r\n Email: string;\r\n}\r\n\r\nexport default {\r\n async getCurrentAsync (): Promise> {\r\n return await serviceBase.tryPostResult('/Member/getCurrent')\r\n },\r\n async updateAsync (data: MemberUpdateModel): Promise {\r\n return await serviceBase.tryPostBooleanResult('/Member/update', data)\r\n },\r\n async registerAsync (data: NewMemberModel) {\r\n return await serviceBase.tryPostBooleanResult('/Member/register', data)\r\n },\r\n async addOrUpdateAsync (data: NewMemberModel) {\r\n return await serviceBase.tryPostBooleanResult('/Member/addOrUpdate', data)\r\n },\r\n async getTradeExecutionEmailsAsync (): Promise> {\r\n return await serviceBase.tryPostResult('/Member/getTradeExecutionEmails')\r\n },\r\n async updateTradeExecutionEmailsAsync (data: TradeExecutionEmailModel[]): Promise {\r\n return await serviceBase.tryPostBooleanResult('/Member/updateTradeExecutionEmails', data)\r\n },\r\n async getAllAsync (Name?: string): Promise> {\r\n return await serviceBase.tryPostResult('/Member/getAll', {\r\n Name: Name || null\r\n })\r\n },\r\n async sendTestMsgAsync (type?: number): Promise {\r\n return await serviceBase.tryPostBooleanResult('/Member/sendTestMsg?type=' + type)\r\n },\r\n async deleteAsync (loginId: string) {\r\n return await serviceBase.tryPostBooleanResult('/Member/delete', { loginId })\r\n }\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-form',{ref:\"modelForm\",attrs:{\"model\":_vm.model,\"status-icon\":\"\",\"rules\":_vm.rules,\"label-width\":\"20px\"}},[_c('div',{staticClass:\"d-flex\"},[_c('el-form-item',{staticClass:\"w-50\",attrs:{\"prop\":\"Quantity\",\"label-width\":\"20px\"}},[_c('div',{staticClass:\"text-left font-weight-bold color-888\"},[_vm._v(\"Number of shares\")]),_c('el-select',{staticClass:\"w-100\",attrs:{\"type\":\"number\",\"autocomplete\":\"off\",\"placeholder\":\"Select\"},model:{value:(_vm.model.Quantity),callback:function ($$v) {_vm.$set(_vm.model, \"Quantity\", _vm._n($$v))},expression:\"model.Quantity\"}},_vm._l((10),function(index){return _c('el-option',{key:index,attrs:{\"label\":index*100,\"value\":index*100}})}),1)],1),_c('el-form-item',{staticClass:\"w-50\",attrs:{\"prop\":\"CostPerShare\",\"label-width\":\"20px\"}},[_c('div',{staticClass:\"text-left font-weight-bold color-888\"},[_vm._v(\"Cost Per Share\")]),_c('el-input',{attrs:{\"type\":\"number\",\"autocomplete\":\"off\"},model:{value:(_vm.model.CostPerShare),callback:function ($$v) {_vm.$set(_vm.model, \"CostPerShare\", _vm._n($$v))},expression:\"model.CostPerShare\"}})],1)],1),_c('div',{staticClass:\"d-flex\"},[_c('el-form-item',{staticClass:\"w-50\",attrs:{\"prop\":\"TransDate\",\"label-width\":\"20px\"}},[_c('div',{staticClass:\"text-left font-weight-bold color-888\"},[_vm._v(\"Date\")]),_c('el-date-picker',{staticClass:\"w-100\",model:{value:(_vm.model.TransDate),callback:function ($$v) {_vm.$set(_vm.model, \"TransDate\", $$v)},expression:\"model.TransDate\"}})],1),_c('el-form-item',{staticClass:\"w-50\",attrs:{\"prop\":\"Commission\",\"label-width\":\"20px\"}},[_c('div',{staticClass:\"text-left font-weight-bold color-888\"},[_vm._v(\"Commission\")]),_c('el-input',{attrs:{\"type\":\"number\"},model:{value:(_vm.model.Commission),callback:function ($$v) {_vm.$set(_vm.model, \"Commission\", _vm._n($$v))},expression:\"model.Commission\"}})],1)],1),_c('el-form-item',{staticClass:\"w-100 text-left\",attrs:{\"prop\":\"Type\",\"label-width\":\"20px\"}},[_c('span',{staticClass:\"mr-5 font-weight-bold color-888\"},[_vm._v(\"Transaction type\")]),_c('el-radio',{attrs:{\"label\":\"Buy\"},model:{value:(_vm.model.Type),callback:function ($$v) {_vm.$set(_vm.model, \"Type\", $$v)},expression:\"model.Type\"}},[_vm._v(\"Buy\")]),_c('el-radio',{attrs:{\"label\":\"Sell\"},model:{value:(_vm.model.Type),callback:function ($$v) {_vm.$set(_vm.model, \"Type\", $$v)},expression:\"model.Type\"}},[_vm._v(\"Sell\")])],1),_c('el-button',{staticClass:\"w-100 font-weight-bold\",attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(_vm._s(_vm.$t('save')))])],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\r\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\r\nimport { ElForm } from 'element-ui/types/form'\r\nimport validation from '@/common/element-val'\r\nimport { TransactionItem } from '@/services/data'\r\n\r\n@Component\r\nexport default class RssFeedForm extends Vue {\r\n $refs: {\r\n modelForm: ElForm;\r\n }\r\n\r\n @Prop() price: number\r\n model: TransactionItem = {\r\n SymbolId: null,\r\n Quantity: null,\r\n CostPerShare: null,\r\n TransDate: null,\r\n Commission: null,\r\n Type: 'Buy'\r\n }\r\n\r\n rules = {\r\n Quantity: validation.requiredNumberRule(),\r\n CostPerShare: validation.requiredNumberRule(),\r\n Date: validation.requiredRule()\r\n }\r\n\r\n mounted () {\r\n this.model.CostPerShare = this.price\r\n }\r\n\r\n @Watch('price')\r\n onPriceChanged (v: number) {\r\n this.model.CostPerShare = v\r\n }\r\n\r\n // if use @Emit,do not use this.$emit again, @Emit will return the function value to parent\r\n submit () {\r\n console.log(this.model)\r\n this.$refs.modelForm.validate((valid: boolean) => {\r\n if (valid) {\r\n this.$emit('submit', this.model)\r\n }\r\n })\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!./TransactionForm.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!./TransactionForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TransactionForm.vue?vue&type=template&id=3da1a660&\"\nimport script from \"./TransactionForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./TransactionForm.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-form',{ref:\"textForm\",attrs:{\"model\":_vm.model},nativeOn:{\"submit\":function($event){$event.preventDefault();return _vm.submit()}}},[_c('el-form-item',{attrs:{\"prop\":\"value\",\"rules\":_vm.rules}},[_c('div',{staticClass:\"d-flex pt-3 input-group\"},[_c('el-input',{staticClass:\"form-input\",attrs:{\"type\":\"text\",\"autocomplete\":\"off\"},model:{value:(_vm.model.value),callback:function ($$v) {_vm.$set(_vm.model, \"value\", $$v)},expression:\"model.value\"}}),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(_vm._s(_vm.buttonText || _vm.$t('button.save')))])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextRowEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextRowEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextRowEditor.vue?vue&type=template&id=7aade3f1&\"\nimport script from \"./TextRowEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./TextRowEditor.vue?vue&type=script&lang=js&\"\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","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!./Watchlist.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',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"m-auto pt-2\"},[_c('div',{staticClass:\"d-flex align-items-end\"},[_c('draggable',{staticClass:\"d-flex align-items-end ml-2 tab-hdr-item\",attrs:{\"element\":\"div\"},on:{\"update\":_vm.dragEnd},model:{value:(_vm.WatchList),callback:function ($$v) {_vm.WatchList=$$v},expression:\"WatchList\"}},_vm._l((_vm.WatchList),function(group){return _c('div',{key:group.WatchName.WatchListId,staticClass:\"tab-item\",class:{ 'is-active' : _vm.currentGroupId === group.WatchName.WatchListId }},[_c('span',{staticClass:\"mr-2 pointer\",on:{\"click\":function($event){return _vm.setActiveTab(group.WatchName.WatchListId)}}},[_vm._v(_vm._s(group.WatchName.Name))]),_c('el-popover',{attrs:{\"placement\":\"bottom\",\"width\":\"100\",\"trigger\":\"click\"}},[(!group.WatchName.IsSystem)?_c('div',{staticClass:\"pointer mt-1 mb-1\",on:{\"click\":function($event){return _vm.deleteTab()}}},[_vm._v(\"Delete\")]):_vm._e(),_c('div',{staticClass:\"pointer mt-1 mb-1\",on:{\"click\":function($event){return _vm.duplicateTab()}}},[_vm._v(\"Duplicate\")]),(!group.WatchName.IsReadOnly && !group.WatchName.FromUserId)?_c('div',{staticClass:\"pointer mt-1 mb-1\",on:{\"click\":function($event){return _vm.showShareUser()}}},[_vm._v(\" Share \")]):_vm._e(),(!group.WatchName.IsSystem && !group.WatchName.IsReadOnly && !group.WatchName.FromUserId)?_c('div',{staticClass:\"pointer mt-1 mb-1\",on:{\"click\":function($event){return _vm.showReNameDialog()}}},[_vm._v(\" Rename \")]):_vm._e(),_c('i',{staticClass:\"el-icon-caret-bottom\",attrs:{\"slot\":\"reference\"},on:{\"click\":function($event){_vm.currentPopup = group.WatchName}},slot:\"reference\"})])],1)}),0),_c('div',{staticClass:\"tab-item\"},[_c('i',{staticClass:\"el-icon-plus font-weight-bold pointer\",on:{\"click\":function($event){_vm.newWatchDialog = true}}})])],1),_vm._l((_vm.WatchList),function(group){return _c('div',{key:group.Name},[(group.WatchName.WatchListId === _vm.currentGroupId)?_c('div',[_c('div',{staticClass:\"p-2 d-flex align-items-center border-top\"},[_c('i',{staticClass:\"square mr-2 bg-primary\"}),_vm._v(\"Stocks \"),_c('div',{staticClass:\"text-right flex-fill\"}),_c('div',{staticClass:\"mr-2\"},[_vm._v(_vm._s(group.LastUpdated))]),(_vm.dataSource=='IBKR')?_c('img',{staticStyle:{\"border-radius\":\"4px\",\"height\":\"28px\"},attrs:{\"src\":require(\"../../assets/ibkr.png\"),\"title\":\"Agent Gateway\"}}):_vm._e(),(_vm.dataSource=='FUTU')?_c('img',{staticStyle:{\"border-radius\":\"4px\",\"height\":\"28px\"},attrs:{\"src\":require(\"../../assets/futu.png\"),\"title\":\"Agent Gateway\"}}):_vm._e(),(_vm.currentGroupId)?_c('i',{staticClass:\"el-icon-setting font-weight-bold pointer m-2 f-20\",on:{\"click\":function($event){return _vm.showColumnDialog(group.WatchName.Keys,'STK')}}}):_vm._e()]),_c('WatchSymbols',{attrs:{\"is-read\":group.WatchName.IsReadOnly,\"is-system\":group.WatchName.IsSystem,\"keys\":group.WatchName.Keys,\"items\":group.Symbols.filter(function (p){ return p.Symbol.SecType == 'STK'; })},on:{\"deleteSymbol\":_vm.delSymbol,\"addSymbol\":_vm.addSymbol,\"transChanged\":_vm.transChanged,\"dragEnd\":_vm.stkDragged}})],1):_vm._e()])}),_vm._l((_vm.WatchList),function(group){return _c('div',{key:group.Name},[(group.WatchName.WatchListId === _vm.currentGroupId && !group.WatchName.IsSystem)?_c('div',[_c('div',{staticClass:\"p-2 d-flex align-items-center border-top\"},[_c('i',{staticClass:\"square mr-2 bg-primary\"}),_vm._v(\"Options \"),_c('div',{staticClass:\"text-right flex-fill\"},[(_vm.currentGroupId)?_c('i',{staticClass:\"el-icon-setting font-weight-bold pointer m-2 f-20\",on:{\"click\":function($event){return _vm.showColumnDialog(group.WatchName.OptKeys, 'OPT')}}}):_vm._e()])]),_c('WatchOptions',{attrs:{\"is-read\":group.WatchName.IsReadOnly,\"is-system\":group.WatchName.IsSystem,\"keys\":group.WatchName.OptKeys,\"items\":group.Options},on:{\"deleteOption\":_vm.delOption,\"addOption\":_vm.addOption}})],1):_vm._e()])}),_vm._l((_vm.WatchList),function(group){return _c('div',{key:group.Name},[(group.WatchName.WatchListId === _vm.currentGroupId && !group.WatchName.IsSystem)?_c('div',[_c('div',{staticClass:\"p-2 d-flex align-items-center border-top\"},[_c('i',{staticClass:\"square mr-2 bg-primary\"}),_vm._v(\"Cryptos \"),_c('div',{staticClass:\"text-right flex-fill\"},[(_vm.currentGroupId)?_c('i',{staticClass:\"el-icon-setting font-weight-bold pointer m-2 f-20\",on:{\"click\":function($event){return _vm.showColumnDialog(group.WatchName.CryptoKeys, 'CRYPTO')}}}):_vm._e()])]),_c('WatchCryptos',{attrs:{\"is-read\":group.WatchName.IsReadOnly,\"is-system\":group.WatchName.IsSystem,\"keys\":group.WatchName.CryptoKeys,\"items\":group.Cryptos},on:{\"deletecrypto\":_vm.delCrypto,\"addcrypto\":_vm.addCrypto}})],1):_vm._e()])}),_vm._l((_vm.WatchList),function(group){return _c('div',{key:group.Name},[(group.WatchName.WatchListId === _vm.currentGroupId && !group.WatchName.IsSystem)?_c('div',[_c('div',{staticClass:\"p-2 d-flex align-items-center border-top\"},[_c('i',{staticClass:\"square mr-2 bg-primary\"}),_vm._v(\"Bonds \"),_c('div',{staticClass:\"text-right flex-fill\"},[(_vm.currentGroupId)?_c('i',{staticClass:\"el-icon-setting font-weight-bold pointer m-2 f-20\",on:{\"click\":function($event){return _vm.showColumnDialog(group.WatchName.BondKeys, 'BOND')}}}):_vm._e()])]),_c('WatchBonds',{attrs:{\"is-read\":group.WatchName.IsReadOnly,\"is-system\":group.WatchName.IsSystem,\"keys\":group.WatchName.BondKeys,\"items\":group.Symbols.filter(function (p){ return p.Symbol.SecType == 'BOND'; })},on:{\"deleteSymbol\":_vm.delSymbol,\"addSymbol\":_vm.addSymbol}})],1):_vm._e()])}),(_vm.userSearchDialog)?_c('el-dialog',{attrs:{\"title\":\"Share\",\"visible\":_vm.userSearchDialog,\"close-on-click-modal\":false,\"lock-scroll\":false,\"append-to-body\":\"\",\"show-close\":true,\"width\":\"600px\"},on:{\"update:visible\":function($event){_vm.userSearchDialog=$event}}},[_c('ShareWatchList',{attrs:{\"watchlist-name\":_vm.currentPopup},on:{\"selected\":_vm.sharedToUser,\"cancelled\":_vm.unSharedToUser}})],1):_vm._e(),_c('el-dialog',{attrs:{\"title\":\"Pleas enter the name:\",\"visible\":_vm.newWatchDialog,\"close-on-click-modal\":false,\"lock-scroll\":false,\"append-to-body\":\"\",\"show-close\":true,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.newWatchDialog=$event}}},[_c('TextRowEditor',{attrs:{\"rules\":{required: true, message: this.$t('val.required'), trigger: 'blur'}},on:{\"change\":function($event){return _vm.addTab()}},model:{value:(_vm.newGroupName),callback:function ($$v) {_vm.newGroupName=$$v},expression:\"newGroupName\"}})],1),_c('el-dialog',{attrs:{\"title\":\"Please enter the new name:\",\"close-on-click-modal\":false,\"lock-scroll\":false,\"visible\":_vm.renameWatchDialog,\"append-to-body\":\"\",\"show-close\":true,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.renameWatchDialog=$event}}},[_c('TextRowEditor',{attrs:{\"rules\":{required: true, message: this.$t('val.required'), trigger: 'blur'}},on:{\"change\":function($event){return _vm.rename()}},model:{value:(_vm.newGroupName),callback:function ($$v) {_vm.newGroupName=$$v},expression:\"newGroupName\"}})],1),(_vm.colSettingDialog)?_c('ColumnSelector',{attrs:{\"visible\":_vm.colSettingDialog,\"target-keys\":_vm.currentKeys,\"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.Items)?_c('table',{staticClass:\"w-100 text-center\"},[_c('thead',[_c('tr',{staticClass:\"f-14 text-uppercase bg-light\"},[_vm._l((_vm.Keys),function(key){return _c('th',{key:key,staticClass:\"border-top p-2\"},[_vm._v(_vm._s(_vm.$t(key))+\" \"),(_vm.sort == null || _vm.sort.key !== key)?_c('i',{staticClass:\"el-icon-d-caret pointer\",on:{\"click\":function($event){return _vm.sortItems(key,'Asc')}}}):(_vm.sort.direction === 'Asc' )?_c('i',{staticClass:\"el-icon-caret-top pointer\",on:{\"click\":function($event){return _vm.sortItems(key,'Desc')}}}):_c('i',{staticClass:\"el-icon-caret-bottom pointer\",on:{\"click\":function($event){return _vm.sortItems(key,'Asc')}}})])}),_c('th',{staticClass:\"border-top border-top p-2\"})],2)]),_c('draggable',{attrs:{\"element\":\"tbody\"},on:{\"update\":_vm.dragEnd},model:{value:(_vm.Items),callback:function ($$v) {_vm.Items=$$v},expression:\"Items\"}},_vm._l((_vm.Items),function(item){return _c('tr',{key:item.Symbol.SymbolId},[_vm._l((_vm.Keys),function(key){return _c('td',{key:key,staticClass:\"border-top p-2\"},[( key==='Symbol' )?_c('div',[_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\"},[_vm._v(_vm._s(item.Symbol.CompanyName))])],1):( key==='Price' && item.Price.Last )?_c('div',[( item.Price.Status === 4 || item.Price.Status === 16 )?_c('div',[_vm._v(\" \"+_vm._s(_vm.$num(item.Price.LastClosed))+\" \"),_c('div',{staticClass:\"f-12 color-666\"},[_vm._v(\" \"+_vm._s(item.Price.Status === 4 ? 'Pre' : '')+\" \"+_vm._s(item.Price.Status === 16 ? 'After' : '')+\" \"+_vm._s(_vm.$num(item.Price.Last))+\" \")])]):_c('div',[_vm._v(\" \"+_vm._s(_vm.$num(item.Price.getLast()))+\" \")])]):( key==='Close' && item.Price.Close )?_c('span',[_vm._v(_vm._s(_vm.$num(item.Price.getClose())))]):( key==='Volume' && item.Price.Volume )?_c('span',[_vm._v(_vm._s(_vm.$fix((item.Price.Volume / 1000000)))+\"M\")]):( key==='AvgVolume' && item.Price.AvgVolume)?_c('span',[_vm._v(_vm._s(_vm.$fix((item.Price.AvgVolume / 1000000)))+\"M\")]):( key==='Change')?_c('div',[_c('span',{class:item.Price.getChange()<0 ? 'downs' : 'ups'},[_vm._v(_vm._s(_vm.$num(item.Price.getChange())))]),_c('div',{staticClass:\"f-11 color-888\"},[_vm._v(_vm._s(_vm.$num(item.Price.getPreAfterChange()))+\" \")])]):( key==='ChangeRate' )?_c('div',[_c('span',{class:item.Price.getChange()<0 ? 'downs' : 'ups'},[_vm._v(_vm._s(_vm.$fix(item.Price.getChangeRate(), '%')))]),_c('div',{staticClass:\"f-11 color-888\"},[_vm._v(_vm._s(_vm.$fix(item.Price.getPreAfterChangeRate(), '%'))+\" \")])]):( key==='LastUpdated' )?_c('span',[_vm._v(_vm._s(item.Price.LastUpdated))]):( key==='Currency' )?_c('span',[_vm._v(_vm._s(item.Symbol.Currency))]):( key==='ExchRate' )?_c('span',[_vm._v(_vm._s(item.ExRate))]):( key==='Position' )?_c('div',[(item.Portfolio && item.Portfolio.Position)?_c('router-link',{staticClass:\"pointer action-color\",attrs:{\"to\":'/home/transactions?symbolId=' + item.Symbol.SymbolId}},[_vm._v(\" \"+_vm._s(item.Portfolio ? item.Portfolio.Position : null)+\" \")]):_c('div',{staticClass:\"pointer action-color\",on:{\"click\":function($event){return _vm.showAddTranForm(item)}}},[_vm._v(\"+ Add\")])],1):( key==='AverageCost' && item.Portfolio )?_c('span',[_vm._v(_vm._s(_vm.$num(item.Portfolio.AverageCost)))]):( key==='MarketValue' && item.Portfolio )?_c('span',{style:('color:' + (item.Portfolio.MarketValue<0 ? 'red' : 'darkgreen'))},[_vm._v(_vm._s(Math.floor(item.Portfolio.MarketValue).toLocaleString('en-US')))]):( key==='DailyPL' && item.Portfolio && item.Portfolio.DailyPL )?_c('span',{style:('color:' + (item.Portfolio.DailyPL<0 ? 'red' : 'darkgreen'))},[_vm._v(_vm._s(Math.floor(item.Portfolio.DailyPL).toLocaleString('en-US')))]):( key==='NextEarnDate')?_c('div',[_vm._v(_vm._s(item.Price.NextEarnDate))]):_vm._e()])}),_c('td',{staticClass:\"border-top p-2\"},[_c('div',{staticStyle:{\"width\":\"170px\"}},[(_vm.IsSystem)?_c('span',[(item.Target )?_c('img',{staticClass:\"pointer\",staticStyle:{\"width\":\"24px\",\"margin-right\":\"5px\"},attrs:{\"src\":require(\"../assets/Target-green.svg\")},on:{\"click\":function($event){return _vm.showEditTarget(item)}}}):_c('img',{staticClass:\"pointer\",staticStyle:{\"width\":\"24px\",\"margin-right\":\"5px\"},attrs:{\"src\":require(\"../assets/Target.svg\")},on:{\"click\":function($event){return _vm.showEditTarget(item)}}})]):_vm._e(),_c('router-link',{attrs:{\"to\":'/home/news?symbolId='+item.Symbol.SymbolId}},[_c('img',{staticStyle:{\"width\":\"24px\",\"margin-right\":\"5px\"},attrs:{\"src\":require(\"../assets/News.svg\")}})]),_c('router-link',{attrs:{\"to\":'/home/chart?symbolId='+item.Symbol.SymbolId}},[_c('img',{staticStyle:{\"width\":\"24px\",\"margin-right\":\"5px\"},attrs:{\"src\":require(\"../assets/Trend.svg\")}})]),(item.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)}}}):_c('img',{staticClass:\"pointer\",staticStyle:{\"width\":\"24px\",\"margin-right\":\"5px\"},attrs:{\"src\":require(\"../assets/bell.svg\")},on:{\"click\":function($event){return _vm.setAlertPrice(item)}}}),(_vm.IsSystem)?_c('span',[(item.IsDownload && item.IsDownloading)?_c('i',{staticClass:\"el-icon el-icon-download f-24 pointer\",staticStyle:{\"color\":\"darkgreen\"},on:{\"click\":function($event){return _vm.openRangeEditor(item)}}}):(item.IsDownload && !item.IsDownloading)?_c('i',{staticClass:\"el-icon el-icon-download f-24 pointer\",staticStyle:{\"color\":\"crimson\"},on:{\"click\":function($event){return _vm.openRangeEditor(item)}}}):_c('i',{staticClass:\"el-icon el-icon-download f-24 pointer\",on:{\"click\":function($event){return _vm.openRangeEditor(item)}}})]):_vm._e(),(_vm.IsRead === false)?_c('i',{staticClass:\"pointer el-icon-delete f-24\",on:{\"click\":function($event){return _vm.delItem(item)}}}):_vm._e()],1)])],2)}),0),(_vm.showSymbolSearch)?_c('tfoot',[_c('tr',[_c('td',{staticClass:\"border-bottom border-top p-2\",attrs:{\"colspan\":_vm.Keys.length+1}},[_c('div',{staticStyle:{\"max-width\":\"600px\"}},[_c('SymbolSearch',{attrs:{\"title\":\"Stock\",\"symbolType\":1},on:{\"selected\":_vm.addSymbol}})],1)])])]):_vm._e()],1):_vm._e(),(_vm.IsRead === false)?_c('button',{staticClass:\"btn-text f-16 m-2 text-success\",on:{\"click\":function($event){_vm.showSymbolSearch=true}}},[_vm._v(\" + Add Stock \")]):_vm._e(),(_vm.alertPriceSettingDialog)?_c('SetSymbolAlert',{attrs:{\"symbol-name\":_vm.currentSymbol.Symbol.Symbol,\"last-price\":_vm.currentSymbol.Price.getLast(),\"change\":_vm.currentSymbol.Price.getChange(),\"change-rate\":_vm.currentSymbol.Price.getChangeRate(),\"type-info\":{ symbolId:_vm.currentSymbol.Symbol.SymbolId, type:'Stock' },\"visible\":_vm.alertPriceSettingDialog},on:{\"update:visible\":function($event){_vm.alertPriceSettingDialog=$event},\"updated\":_vm.alertAdded}}):_vm._e(),(_vm.showTargetDialog)?_c('el-dialog',{staticClass:\"text-center m-auto\",attrs:{\"visible\":_vm.showTargetDialog,\"append-to-body\":\"\",\"show-close\":true,\"close-on-click-modal\":false,\"title\":'Maximum # of Shares for ' + _vm.currentSymbol.Symbol.Symbol,\"width\":\"400px\"},on:{\"update:visible\":function($event){_vm.showTargetDialog=$event}}},[_c('NumberRowEditor',{attrs:{\"rules\":[{required: true, message: this.$t('val.required')}]},on:{\"change\":_vm.targetSaved},model:{value:(_vm.editingTarget),callback:function ($$v) {_vm.editingTarget=$$v},expression:\"editingTarget\"}})],1):_vm._e(),(_vm.showTransDialog)?_c('el-dialog',{staticClass:\"text-center m-auto\",attrs:{\"visible\":_vm.showTransDialog,\"append-to-body\":\"\",\"show-close\":true,\"close-on-click-modal\":false,\"title\":'Add Transaction : ' + _vm.currentSymbol.Symbol.Symbol,\"width\":\"600px\"},on:{\"update:visible\":function($event){_vm.showTransDialog=$event}}},[_c('TransactionForm',{attrs:{\"price\":_vm.currentSymbol.Price.Last},on:{\"submit\":_vm.addTransaction}})],1):_vm._e(),(_vm.showRangeDialog)?_c('el-dialog',{staticClass:\"text-center m-auto\",attrs:{\"visible\":_vm.showRangeDialog,\"append-to-body\":\"\",\"show-close\":true,\"close-on-click-modal\":false,\"title\":'Set Download Range : ' + _vm.currentSymbol.Symbol.Symbol,\"width\":\"600px\"},on:{\"update:visible\":function($event){_vm.showRangeDialog=$event}}},[_c('RangeForm',{attrs:{\"low\":_vm.currentSymbolRange.Low,\"high\":_vm.currentSymbolRange.High,\"run\":_vm.currentSymbolRange.Run},on:{\"submit\":_vm.saveDownloadRange}})],1):_vm._e()],1)}\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',[_c('div',{staticClass:\"d-flex align-items-center mb-3\"},[_c('el-input',{staticClass:\"wd-150\",attrs:{\"placeholder\":_vm.title,\"clearable\":\"\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search()}},model:{value:(_vm.input),callback:function ($$v) {_vm.input=$$v},expression:\"input\"}}),_c('el-button',{staticClass:\"ml-2\",attrs:{\"plain\":\"\",\"circle\":\"\",\"icon\":\"el-icon-search\",\"loading\":_vm.loading},on:{\"click\":_vm.search}})],1),_vm._l((_vm.symbols),function(item,index){return _c('div',{key:index,staticClass:\"m-2 pointer text-left\",on:{\"click\":function($event){return _vm.addSymbol(item)}}},[(item.SecType=='BOND')?_c('div',[_vm._v(_vm._s(item.Description)+\", \"+_vm._s(item.Symbol))]):_c('div',[_vm._v(_vm._s(item.Symbol)+\" \"+_vm._s(item.Currency)+\" \"+_vm._s(item.PrimaryExch))])])})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Emit, Prop } from 'vue-property-decorator'\r\nimport { ContractSymbol, SymbolType } from '@/services/data'\r\nimport symbolService from '@/services/symbolService'\r\n\r\n@Component\r\nexport default class SymbolSearch extends Vue {\r\n name = 'SymbolSearch'\r\n input: string = null\r\n msgId: number = null\r\n loading = false\r\n symbols: ContractSymbol[] = []\r\n @Prop() title: string\r\n @Prop() symbolType: SymbolType\r\n\r\n async autoSearch () {\r\n if (this.input.trim().length >= 3) {\r\n await this.doSearch()\r\n }\r\n }\r\n\r\n async search () {\r\n if (this.input.trim().length >= 1) {\r\n await this.doSearch()\r\n }\r\n }\r\n\r\n @Emit() addSymbol (symbol: ContractSymbol) {\r\n this.symbols = []\r\n this.input = null\r\n this.$emit('selected', symbol)\r\n }\r\n\r\n async doSearch () {\r\n this.symbols = []\r\n this.loading = true\r\n const res = await symbolService.searchSymbolsAsync(this.input, this.symbolType)\r\n this.loading = false\r\n if (res.Error) {\r\n await this.$alert(res.Error)\r\n return\r\n }\r\n if (res.Result && res.Result.length === 0) {\r\n const confirm = await this.$confirm('Could not find the relevant securities, do you want to add it directly?')\r\n if (confirm === 'confirm') {\r\n let type = 'STK'\r\n if (this.symbolType === SymbolType.Bond) {\r\n type = 'BOND'\r\n }\r\n this.addSymbol({ Symbol: this.input, Currency: '', PrimaryExch: '', SecType: type, SymbolUId: 0, SymbolId: 0, CompanyName: '' })\r\n }\r\n }\r\n this.symbols = res.Result\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!./SymbolSearch.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!./SymbolSearch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SymbolSearch.vue?vue&type=template&id=1fd39ad2&\"\nimport script from \"./SymbolSearch.vue?vue&type=script&lang=ts&\"\nexport * from \"./SymbolSearch.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-form',{ref:\"modelForm\",attrs:{\"model\":_vm.model,\"status-icon\":\"\",\"label-width\":\"20px\"}},[_c('div',{staticClass:\"d-flex\",staticStyle:{\"margin-bottom\":\"22px\"}},[_c('div',{staticClass:\"text-right wd-150\"},[_vm._v(\"Capture Data :\")]),_c('el-switch',{staticClass:\"ml-3\",model:{value:(_vm.model.Run),callback:function ($$v) {_vm.$set(_vm.model, \"Run\", $$v)},expression:\"model.Run\"}})],1),_c('div',{staticClass:\"d-flex align-items-center\"},[_c('div',{staticClass:\"text-right wd-150\",staticStyle:{\"margin-bottom\":\"22px\"}},[_vm._v(\"Capture Range : \")]),_c('el-form-item',{attrs:{\"prop\":\"Low\",\"rules\":_vm.model.Run ? _vm.rules.Low : null}},[_c('el-input',{staticStyle:{\"width\":\"80px\"},attrs:{\"type\":\"number\",\"autocomplete\":\"off\"},model:{value:(_vm.model.Low),callback:function ($$v) {_vm.$set(_vm.model, \"Low\", _vm._n($$v))},expression:\"model.Low\"}})],1),_c('div',{staticClass:\"f-30 ml-2 mr-2\",staticStyle:{\"margin-bottom\":\"22px\"}},[_vm._v(\"~\")]),_c('el-form-item',{attrs:{\"prop\":\"High\",\"rules\":_vm.model.Run ? _vm.rules.High : null}},[_c('el-input',{staticStyle:{\"width\":\"80px\"},attrs:{\"type\":\"number\",\"autocomplete\":\"off\"},model:{value:(_vm.model.High),callback:function ($$v) {_vm.$set(_vm.model, \"High\", _vm._n($$v))},expression:\"model.High\"}})],1),_c('div',{staticStyle:{\"margin-bottom\":\"22px\"}},[_vm._v(\"%\")])],1),_c('el-button',{staticClass:\"font-weight-bold mt-3\",staticStyle:{\"margin-bottom\":\"22px\"},attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(_vm._s(_vm.$t('save')))])],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\r\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\r\nimport { ElForm } from 'element-ui/types/form'\r\nimport validation from '@/common/element-val'\r\n\r\n@Component\r\nexport default class RangeForm extends Vue {\r\n $refs: {\r\n modelForm: ElForm;\r\n }\r\n\r\n @Prop() low: number\r\n @Prop() run: boolean\r\n @Prop() high: number\r\n model: { Low: number; High: number; Run: boolean } = { Low: null, High: null, Run: false }\r\n\r\n rules = {\r\n Low: validation.requiredNumberRule(),\r\n High: validation.requiredNumberRule()\r\n }\r\n\r\n mounted () {\r\n this.model.Low = this.low\r\n this.model.High = this.high\r\n this.model.Run = this.run\r\n }\r\n\r\n @Watch('low')\r\n onLowChanged (v: number) {\r\n this.model.Low = v\r\n }\r\n\r\n @Watch('high')\r\n onHighChanged (v: number) {\r\n this.model.High = v\r\n }\r\n\r\n @Watch('run')\r\n onRunChanged (v: boolean) {\r\n this.model.Run = v\r\n }\r\n\r\n submit () {\r\n this.$refs.modelForm.validate((valid: boolean) => {\r\n if (valid) {\r\n this.$emit('submit', this.model)\r\n }\r\n })\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!./RangeForm.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!./RangeForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RangeForm.vue?vue&type=template&id=65c69378&\"\nimport script from \"./RangeForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./RangeForm.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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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, Emit, Watch } from 'vue-property-decorator'\r\nimport { ContractSymbol, WatchSymbol, Sort, TransactionItem, OtmRange } from '@/services/data'\r\nimport draggable from 'vuedraggable'\r\nimport utility from '@/common/utility'\r\nimport SymbolSearch from '@/components/SymbolSearch.vue'\r\nimport SetSymbolAlert from '@/components/SetAlertPrice.vue'\r\nimport NumberRowEditor from '@/components/NumberRowEditor.vue'\r\nimport checkListService from '@/services/checkListService'\r\nimport freebieService from '@/services/freebieService'\r\nimport TransactionForm from '@/components/TransactionForm.vue'\r\nimport SymbolName from '@/components/SymbolName.vue'\r\nimport transService from '@/services/transService'\r\nimport RangeForm from '@/components/RangeForm.vue'\r\n\r\n@Component({\r\n components: {\r\n draggable,\r\n SymbolSearch,\r\n SetSymbolAlert,\r\n NumberRowEditor,\r\n TransactionForm,\r\n SymbolName,\r\n RangeForm\r\n }\r\n})\r\nexport default class WatchSymbols extends Vue {\r\n name = 'WatchSymbols'\r\n @Prop() Items: WatchSymbol[]\r\n @Prop() Keys: string[]\r\n @Prop() IsRead: boolean\r\n @Prop() IsSystem: boolean\r\n @Prop() draggable: boolean\r\n showSymbolSearch = false\r\n alertPriceSettingDialog = false\r\n sort: Sort = { key: null, direction: null }\r\n currentSymbol: WatchSymbol\r\n showTargetDialog = false\r\n showTransDialog = false\r\n editingTarget: number\r\n showRangeDialog = false\r\n currentSymbolRange: OtmRange = { Low: null, High: null, SymbolId: null }\r\n\r\n $num (num: number): string {\r\n if (num != null && num !== undefined) {\r\n return num.toLocaleString('en-US', { maximumFractionDigits: 2, minimumFractionDigits: 2 })\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 sortItems (key: string, direction: string) {\r\n this.sort = { key, direction }\r\n const sort = (a: WatchSymbol, b: WatchSymbol): 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.Items.sort(sort)\r\n }\r\n }\r\n\r\n getByKey = utility.getByKey\r\n\r\n @Emit('dragEnd')\r\n async dragEnd () {\r\n for (let i = 0; i < this.Items.length; i++) {\r\n this.Items[i].Rank = i + 1\r\n }\r\n }\r\n\r\n @Emit('addSymbol')\r\n async addSymbol (item: ContractSymbol) {\r\n this.showSymbolSearch = false\r\n return item\r\n }\r\n\r\n @Emit('deleteSymbol')\r\n delItem (item: WatchSymbol) {\r\n return item\r\n }\r\n\r\n @Watch('Items')\r\n onItemsChanged (v: any) {\r\n if (this.IsSystem) {\r\n const tid = parseInt(this.$route.query.targetSymbolId as string)\r\n const find = this.Items.find(p => p.Symbol.SymbolId === tid)\r\n if (find) {\r\n this.showEditTarget(find)\r\n }\r\n }\r\n }\r\n\r\n @Emit('transChanged')\r\n async addTransaction (item: TransactionItem) {\r\n item.SymbolId = this.currentSymbol.Symbol.SymbolId\r\n const res = await transService.addOrUpdateTransaction(item)\r\n if (res.Error) {\r\n await this.$alert(res.Error)\r\n } else {\r\n this.showTransDialog = false\r\n }\r\n }\r\n\r\n alertAdded (res: { symbolId: number; count: number }) {\r\n this.currentSymbol.Alert = res.count > 0\r\n }\r\n\r\n async targetSaved () {\r\n const targetValue = this.editingTarget\r\n const res = await checkListService.setTargetAsync({\r\n SymbolId: this.currentSymbol.Symbol.SymbolId,\r\n Target: targetValue\r\n })\r\n if (res.Error) {\r\n await this.$alert(res.Error)\r\n } else {\r\n const find = this.Items.find(p => p.Symbol.SymbolId === this.currentSymbol.Symbol.SymbolId)\r\n if (find) {\r\n find.Target = targetValue\r\n }\r\n this.showTargetDialog = false\r\n }\r\n }\r\n\r\n showEditTarget (item: WatchSymbol) {\r\n const find = this.Items.find(p => p.Symbol.SymbolId === item.Symbol.SymbolId)\r\n if (find) {\r\n this.editingTarget = find.Target\r\n }\r\n this.currentSymbol = item\r\n this.showTargetDialog = true\r\n }\r\n\r\n async openRangeEditor (item: WatchSymbol) {\r\n this.currentSymbol = item\r\n const ranges = await freebieService.getOtmRanges(item.Symbol.SymbolId)\r\n if (ranges.Result && ranges.Result.length > 0) {\r\n const range = ranges.Result.find(p => p.RangeType === 'Download')\r\n this.currentSymbolRange = { SymbolId: item.Symbol.SymbolId, Low: range?.Low, High: range?.High, Run: range?.Run }\r\n } else {\r\n this.currentSymbolRange = { Low: null, High: null, SymbolId: item.Symbol.SymbolId, Run: false }\r\n }\r\n this.showRangeDialog = true\r\n }\r\n\r\n async saveDownloadRange (model: { Low: number; High: number;Run: boolean }) {\r\n const res = await freebieService.updateRange({\r\n SymbolId: this.currentSymbol.Symbol.SymbolId,\r\n Low: model.Low,\r\n High: model.High,\r\n Run: model.Run,\r\n RangeType: 'Download'\r\n })\r\n if (res.Error) {\r\n await this.$alert(res.Error)\r\n } else {\r\n this.showRangeDialog = false\r\n if (this.currentSymbol != null) {\r\n this.currentSymbol.IsDownload = model.Run\r\n }\r\n }\r\n }\r\n\r\n showAddTranForm (item: WatchSymbol) {\r\n this.currentSymbol = item\r\n this.showTransDialog = true\r\n }\r\n\r\n async setAlertPrice (item: WatchSymbol) {\r\n if (item) {\r\n this.currentSymbol = item\r\n this.alertPriceSettingDialog = true\r\n }\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!./WatchSymbols.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!./WatchSymbols.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WatchSymbols.vue?vue&type=template&id=4b898ffe&\"\nimport script from \"./WatchSymbols.vue?vue&type=script&lang=ts&\"\nexport * from \"./WatchSymbols.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.Items)?_c('table',{staticClass:\"w-100 text-center\"},[_c('thead',[_c('tr',{staticClass:\"f-14 text-uppercase bg-light\"},[_vm._l((_vm.Keys),function(key){return _c('th',{key:key,staticClass:\"border-top p-2\"},[_vm._v(_vm._s(_vm.$t(key))+\" \"),(_vm.sort == null || _vm.sort.key !== key)?_c('i',{staticClass:\"el-icon-d-caret pointer\",on:{\"click\":function($event){return _vm.sortItems(key,'Asc')}}}):(_vm.sort.direction === 'Asc' )?_c('i',{staticClass:\"el-icon-caret-top pointer\",on:{\"click\":function($event){return _vm.sortItems(key,'Desc')}}}):_c('i',{staticClass:\"el-icon-caret-bottom pointer\",on:{\"click\":function($event){return _vm.sortItems(key,'Asc')}}})])}),_c('th',{staticClass:\"border-top border-top p-2\"})],2)]),_c('draggable',{attrs:{\"element\":\"tbody\"},on:{\"update\":_vm.dragEnd},model:{value:(_vm.Items),callback:function ($$v) {_vm.Items=$$v},expression:\"Items\"}},_vm._l((_vm.Items),function(item){return _c('tr',{key:item.Option.OptionId},[_vm._l((_vm.Keys),function(key){return _c('td',{key:key,staticClass:\"border-top p-2\"},[( key==='Symbol' )?_c('div',[_c('SymbolName',{attrs:{\"Symbol\":item.Option,\"symbol-class\":\"symbol-com\"}}),_c('div',{staticClass:\"f-11 color-888 company-name\"},[_vm._v(_vm._s(item.Option.CompanyName))])],1):( key==='Strike' )?_c('span',[_vm._v(_vm._s(item.Option.Strike))]):( key==='ExpirationDate' )?_c('span',[_vm._v(_vm._s(item.Option.Expiration.substr(0,10)))]):( key==='Right' )?_c('span',[_vm._v(_vm._s(item.Option.Right))]):( key==='Multiplier' )?_c('span',[_vm._v(_vm._s(item.Option.Multiplier))]):( key==='Currency' )?_c('span',[_vm._v(_vm._s(item.Option.Currency))]):( key==='Price' )?_c('span',[_vm._v(_vm._s(_vm.$fix(item.Price.Last)))]):( key==='LastUpdated' )?_c('span',[_vm._v(_vm._s(item.Price.LastUpdated))]):_vm._e()])}),_c('td',{staticClass:\"border-top p-2\"},[_c('div',{staticStyle:{\"width\":\"150px\"}},[_c('router-link',{attrs:{\"to\":'/home/news?symbolId='+item.Option.SymbolId}},[_c('img',{staticStyle:{\"width\":\"24px\",\"margin-right\":\"5px\"},attrs:{\"src\":require(\"../assets/News.svg\")}})]),_c('router-link',{attrs:{\"to\":'/home/chart?symbolId='+item.Option.SymbolId}},[_c('img',{staticStyle:{\"width\":\"24px\",\"margin-right\":\"5px\"},attrs:{\"src\":require(\"../assets/Trend.svg\")}})]),(_vm.IsRead === false)?_c('i',{staticClass:\"pointer el-icon-delete f-24\",on:{\"click\":function($event){return _vm.delItem(item)}}}):_vm._e()],1)])],2)}),0),(_vm.showSymbolSearch)?_c('tfoot',[_c('tr',[_c('td',{staticClass:\"border-bottom border-top p-2\",attrs:{\"colspan\":_vm.Keys.length+1}},[_c('OptionSearch',{on:{\"add-option\":_vm.addOption}})],1)])]):_vm._e()],1):_vm._e(),(_vm.IsRead === false)?_c('button',{staticClass:\"btn-text f-16 m-2 text-success\",on:{\"click\":function($event){_vm.showSymbolSearch=true}}},[_vm._v(\" + Add Option \")]):_vm._e()])}\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',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.isSearching),expression:\"isSearching\"}]},[_c('div',{staticClass:\"d-flex align-items-center mb-3\"},[_c('span',{staticClass:\"mr-1\"},[_vm._v(\"Symbol:\")]),_c('el-input',{staticClass:\"wd-150\",attrs:{\"placeholder\":\"Symbol name\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.search()}},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search()}},model:{value:(_vm.input),callback:function ($$v) {_vm.input=$$v},expression:\"input\"}}),_c('span',{staticClass:\"ml-2 mr-1\"},[_vm._v(\"Expiration:\")]),_c('el-select',{staticClass:\"wd-150\",attrs:{\"type\":\"number\",\"autocomplete\":\"off\",\"disabled\":!_vm.isExpReady,\"placeholder\":\"Select\"},model:{value:(_vm.option.Expiration),callback:function ($$v) {_vm.$set(_vm.option, \"Expiration\", $$v)},expression:\"option.Expiration\"}},_vm._l((_vm.expirationList),function(item){return _c('el-option',{key:item,attrs:{\"label\":item,\"value\":item}})}),1),_c('span',{staticClass:\"ml-2 mr-1\"},[_vm._v(\"Type:\")]),_c('el-radio',{attrs:{\"label\":\"C\",\"disabled\":!_vm.isRightReady},on:{\"change\":function($event){return _vm.filterByRight('C')}},model:{value:(_vm.option.Right),callback:function ($$v) {_vm.$set(_vm.option, \"Right\", $$v)},expression:\"option.Right\"}},[_vm._v(\"Call\")]),_c('el-radio',{attrs:{\"label\":\"P\",\"disabled\":!_vm.isRightReady},on:{\"change\":function($event){return _vm.filterByRight('P')}},model:{value:(_vm.option.Right),callback:function ($$v) {_vm.$set(_vm.option, \"Right\", $$v)},expression:\"option.Right\"}},[_vm._v(\"Put\")]),_c('span',{staticClass:\"ml-2 mr-1\"},[_vm._v(\"Strike:\")]),_c('el-select',{staticClass:\"wd-150\",attrs:{\"type\":\"number\",\"autocomplete\":\"off\",\"disabled\":!_vm.isStrikeReady,\"placeholder\":\"Select\"},model:{value:(_vm.option.Strike),callback:function ($$v) {_vm.$set(_vm.option, \"Strike\", _vm._n($$v))},expression:\"option.Strike\"}},_vm._l((_vm.strikeList),function(item){return _c('el-option',{key:item,attrs:{\"label\":item,\"value\":item}})}),1),_c('i',{staticClass:\"pointer el-icon-circle-plus f-30 ml-2\",attrs:{\"disabled\":!_vm.isStrikeReady},on:{\"click\":_vm.addOption}})],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\r\nimport { Component, Vue, Emit } from 'vue-property-decorator'\r\nimport { ContractSymbol, Option } from '@/services/data'\r\nimport symbolService from '@/services/symbolService'\r\nimport utility from '@/common/utility'\r\n\r\n@Component\r\nexport default class OptionSearch extends Vue {\r\n name = 'OptionSearch'\r\n input = ''\r\n option: Option = { Expiration: '', Right: '', Strike: null, Multiplier: null, Code: null }\r\n symbol: ContractSymbol\r\n expirationList: Set = new Set()\r\n strikeList: Set= new Set()\r\n multiplier: number;\r\n isSearching = false\r\n\r\n async search () {\r\n if (this.input.trim().length >= 1) {\r\n await this.doSearch()\r\n }\r\n }\r\n\r\n @Emit() addOption () {\r\n if (this.multiplier) {\r\n this.option.Multiplier = this.multiplier\r\n return { symbol: this.symbol, option: this.option }\r\n }\r\n return null\r\n }\r\n\r\n async doSearch () {\r\n if (this.isSearching) return\r\n const searchInput = this.input\r\n this.isSearching = true\r\n const res = await symbolService.searchOptionsAsync(searchInput, this.option.Expiration)\r\n this.isSearching = false\r\n if (res.Error) {\r\n await this.$alert(res.Error)\r\n this.clear()\r\n return\r\n }\r\n if (!res.Result) {\r\n await this.$alert('No security definition')\r\n this.clear()\r\n return\r\n }\r\n this.symbol = res.Result.Symbol\r\n this.expirationList = new Set(res.Result.Expirations.map(p => utility.splitDate(p)))\r\n this.multiplier = res.Result.Multiplier\r\n this.strikeList = new Set(res.Result.Strikes)\r\n }\r\n\r\n get isExpReady () {\r\n return this.input && this.expirationList.size > 0\r\n }\r\n\r\n get isRightReady () {\r\n return this.isExpReady && this.option.Expiration\r\n }\r\n\r\n get isStrikeReady () {\r\n return this.isRightReady && this.option.Right\r\n }\r\n\r\n clear () {\r\n this.expirationList.clear()\r\n this.strikeList.clear()\r\n this.symbol = null\r\n this.option.Expiration = null\r\n this.option.Right = null\r\n this.multiplier = null\r\n this.input = ''\r\n }\r\n\r\n async filterByRight (right: string) {\r\n this.option.Strike = null\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!./OptionSearch.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!./OptionSearch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OptionSearch.vue?vue&type=template&id=3ff94c51&\"\nimport script from \"./OptionSearch.vue?vue&type=script&lang=ts&\"\nexport * from \"./OptionSearch.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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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, Emit } from 'vue-property-decorator'\r\nimport { Sort, Option, WatchOption } from '@/services/data'\r\nimport draggable from 'vuedraggable'\r\nimport utility from '@/common/utility'\r\nimport OptionSearch from '@/components/OptionSearch.vue'\r\nimport NumberRowEditor from '@/components/NumberRowEditor.vue'\r\nimport SymbolName from '@/components/SymbolName.vue'\r\n\r\n@Component({\r\n components: {\r\n draggable,\r\n OptionSearch,\r\n NumberRowEditor,\r\n SymbolName\r\n }\r\n})\r\nexport default class WatchOptions extends Vue {\r\n name = 'WatchOptions'\r\n @Prop() Items: WatchOption[]\r\n @Prop() Keys: string[]\r\n @Prop() IsRead: boolean\r\n @Prop() IsSystem: boolean\r\n @Prop() draggable: boolean\r\n showSymbolSearch = false\r\n sort: Sort = { key: null, direction: null }\r\n currentOption: WatchOption\r\n\r\n $num (num: number): string {\r\n if (num != null && num !== undefined) {\r\n return num.toLocaleString('en-US', { maximumFractionDigits: 2, minimumFractionDigits: 2 })\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 sortItems (key: string, direction: string) {\r\n this.sort = { key, direction }\r\n const sort = (a: WatchOption, b: WatchOption): 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.Items.sort(sort)\r\n }\r\n }\r\n\r\n getByKey = utility.getByKey\r\n\r\n @Emit('dragEnd')\r\n async dragEnd () {\r\n for (let i = 0; i < this.Items.length; i++) {\r\n // this.Items[i].Rank = i + 1\r\n }\r\n }\r\n\r\n @Emit('addOption')\r\n async addOption (item: Option) {\r\n if (item == null) return\r\n this.showSymbolSearch = false\r\n return item\r\n }\r\n\r\n @Emit('deleteOption')\r\n delItem (item: WatchOption) {\r\n return item\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!./WatchOptions.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!./WatchOptions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WatchOptions.vue?vue&type=template&id=0ed9e4f8&\"\nimport script from \"./WatchOptions.vue?vue&type=script&lang=ts&\"\nexport * from \"./WatchOptions.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.Items)?_c('table',{staticClass:\"w-100 text-center\"},[_c('thead',[_c('tr',{staticClass:\"f-14 text-uppercase bg-light\"},[_vm._l((_vm.Keys),function(key){return _c('th',{key:key,staticClass:\"border-top p-2\"},[_vm._v(_vm._s(_vm.$t(key))+\" \"),(_vm.sort == null || _vm.sort.key !== key)?_c('i',{staticClass:\"el-icon-d-caret pointer\",on:{\"click\":function($event){return _vm.sortItems(key,'Asc')}}}):(_vm.sort.direction === 'Asc' )?_c('i',{staticClass:\"el-icon-caret-top pointer\",on:{\"click\":function($event){return _vm.sortItems(key,'Desc')}}}):_c('i',{staticClass:\"el-icon-caret-bottom pointer\",on:{\"click\":function($event){return _vm.sortItems(key,'Asc')}}})])}),_c('th',{staticClass:\"border-top border-top p-2\"})],2)]),_c('draggable',{attrs:{\"element\":\"tbody\"},on:{\"update\":_vm.dragEnd},model:{value:(_vm.Items),callback:function ($$v) {_vm.Items=$$v},expression:\"Items\"}},_vm._l((_vm.Items),function(item){return _c('tr',{key:item.Symbol.SymbolId},[_vm._l((_vm.Keys),function(key){return _c('td',{key:key,staticClass:\"border-top p-2\"},[( key==='ISIN' )?_c('div',[_c('div',{staticClass:\"symbol-com\"},[_vm._v(_vm._s(item.Symbol.Symbol))]),_c('div',{staticClass:\"f-11 color-888 company-name text-uppercase\"},[_vm._v(_vm._s(item.Symbol.IssuerId))])]):( key==='Coupon' && item.Symbol.Detail )?_c('div',[_vm._v(\" \"+_vm._s(item.Symbol.Detail.CouponRate)+\"% \")]):( key==='LastTradePrice')?_c('div',[_vm._v(\" \"+_vm._s(item.Price.Bid || item.Price.DailyBid)+\" \")]):( key==='YTM')?_c('div',[_vm._v(\" \"+_vm._s(item.Price.BidYtm || item.Price.DailyBidYtm)+\"% \")]):( key==='MaturityDate' && item.Symbol.Detail )?_c('div',[_vm._v(\" \"+_vm._s(item.Symbol.Detail.MaturityDate.substr(0,10))+\" \")]):( key==='CouponDate' && item.Symbol.Detail )?_c('div',[_vm._v(\" \"+_vm._s(item.Symbol.Detail.CouponDate.substr(0,10))+\" \")]):( key==='Frequency' && item.Symbol.Detail )?_c('div',[_vm._v(\" \"+_vm._s(item.Symbol.Detail.CouponFrequency)+\" \")]):( key==='Currency' )?_c('span',[_vm._v(_vm._s(item.Symbol.Currency))]):( key==='ExchRate' )?_c('span',[_vm._v(_vm._s(item.ExRate))]):_vm._e()])}),_c('td',{staticClass:\"border-top p-2\"},[_c('div',{staticStyle:{\"width\":\"170px\"}},[_c('router-link',{attrs:{\"to\":'/home/news?symbolId='+item.Symbol.SymbolId}},[_c('img',{staticStyle:{\"width\":\"24px\",\"margin-right\":\"5px\"},attrs:{\"src\":require(\"../assets/News.svg\")}})]),_c('router-link',{attrs:{\"to\":'/home/chart?symbolId='+item.Symbol.SymbolId}},[_c('img',{staticStyle:{\"width\":\"24px\",\"margin-right\":\"5px\"},attrs:{\"src\":require(\"../assets/Trend.svg\")}})]),(item.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)}}}):_c('img',{staticClass:\"pointer\",staticStyle:{\"width\":\"24px\",\"margin-right\":\"5px\"},attrs:{\"src\":require(\"../assets/bell.svg\")},on:{\"click\":function($event){return _vm.setAlertPrice(item)}}}),(_vm.IsRead === false)?_c('i',{staticClass:\"pointer el-icon-delete f-24\",on:{\"click\":function($event){return _vm.delItem(item)}}}):_vm._e()],1)])],2)}),0),(_vm.showSymbolSearch)?_c('tfoot',[_c('tr',[_c('td',{staticClass:\"border-bottom border-top p-2\",attrs:{\"colspan\":_vm.Keys.length+1}},[_c('div',{staticStyle:{\"max-width\":\"600px\"}},[_c('SymbolSearch',{attrs:{\"title\":\"Bond\",\"symbolType\":4},on:{\"selected\":_vm.addSymbol}})],1)])])]):_vm._e()],1):_vm._e(),(_vm.IsRead === false)?_c('button',{staticClass:\"btn-text f-16 m-2 text-success\",on:{\"click\":function($event){_vm.showSymbolSearch=true}}},[_vm._v(\" + Add Bond \")]):_vm._e(),(_vm.alertPriceSettingDialog)?_c('SetSymbolAlert',{attrs:{\"symbol-name\":_vm.currentSymbol.Symbol.Symbol,\"last-price\":_vm.currentSymbol.Price.getLast() || _vm.currentSymbol.Price.Bid,\"change\":_vm.currentSymbol.Price.getChange(),\"change-rate\":_vm.currentSymbol.Price.getChangeRate(),\"type-info\":{ symbolId:_vm.currentSymbol.Symbol.SymbolId, type:'Bond' },\"visible\":_vm.alertPriceSettingDialog},on:{\"update:visible\":function($event){_vm.alertPriceSettingDialog=$event},\"updated\":_vm.alertAdded}}):_vm._e(),(_vm.showTargetDialog)?_c('el-dialog',{staticClass:\"text-center m-auto\",attrs:{\"visible\":_vm.showTargetDialog,\"append-to-body\":\"\",\"show-close\":true,\"close-on-click-modal\":false,\"title\":'Maximum # of Shares for ' + _vm.currentSymbol.Symbol.Symbol,\"width\":\"400px\"},on:{\"update:visible\":function($event){_vm.showTargetDialog=$event}}},[_c('NumberRowEditor',{attrs:{\"rules\":[{required: true, message: this.$t('val.required')}]},on:{\"change\":_vm.targetSaved},model:{value:(_vm.editingTarget),callback:function ($$v) {_vm.editingTarget=$$v},expression:\"editingTarget\"}})],1):_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\r\nimport { Component, Vue, Prop, Emit, Watch } from 'vue-property-decorator'\r\nimport { ContractSymbol, WatchSymbol, Sort } from '@/services/data'\r\nimport draggable from 'vuedraggable'\r\nimport utility from '@/common/utility'\r\nimport SymbolSearch from '@/components/SymbolSearch.vue'\r\nimport SetSymbolAlert from '@/components/SetAlertPrice.vue'\r\nimport NumberRowEditor from '@/components/NumberRowEditor.vue'\r\nimport checkListService from '@/services/checkListService'\r\nimport TransactionForm from '@/components/TransactionForm.vue'\r\nimport SymbolName from '@/components/SymbolName.vue'\r\n\r\n@Component({\r\n components: {\r\n draggable,\r\n SymbolSearch,\r\n SetSymbolAlert,\r\n NumberRowEditor,\r\n TransactionForm,\r\n SymbolName\r\n }\r\n})\r\nexport default class WatchSymbols extends Vue {\r\n name = 'WatchBonds'\r\n @Prop() Items: WatchSymbol[]\r\n @Prop() Keys: string[]\r\n @Prop() IsRead: boolean\r\n @Prop() IsSystem: boolean\r\n @Prop() draggable: boolean\r\n showSymbolSearch = false\r\n alertPriceSettingDialog = false\r\n sort: Sort = { key: null, direction: null }\r\n currentSymbol: WatchSymbol\r\n showTargetDialog = false\r\n editingTarget: number\r\n\r\n $num (num: number): string {\r\n if (num != null && num !== undefined) {\r\n return num.toLocaleString('en-US', { maximumFractionDigits: 2, minimumFractionDigits: 2 })\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 sortItems (key: string, direction: string) {\r\n this.sort = { key, direction }\r\n const sort = (a: WatchSymbol, b: WatchSymbol): 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.Items.sort(sort)\r\n }\r\n }\r\n\r\n getByKey = utility.getByKey\r\n\r\n @Emit('dragEnd')\r\n async dragEnd () {\r\n for (let i = 0; i < this.Items.length; i++) {\r\n this.Items[i].Rank = i + 1\r\n }\r\n }\r\n\r\n @Emit('addSymbol')\r\n async addSymbol (item: ContractSymbol) {\r\n this.showSymbolSearch = false\r\n return item\r\n }\r\n\r\n @Emit('deleteSymbol')\r\n delItem (item: WatchSymbol) {\r\n return item\r\n }\r\n\r\n @Watch('Items')\r\n onItemsChanged (v: any) {\r\n if (this.IsSystem) {\r\n const tid = parseInt(this.$route.query.targetSymbolId as string)\r\n const find = this.Items.find(p => p.Symbol.SymbolId === tid)\r\n if (find) {\r\n this.showEditTarget(find)\r\n }\r\n }\r\n }\r\n\r\n alertAdded (res: { symbolId: number; count: number }) {\r\n this.currentSymbol.Alert = res.count > 0\r\n }\r\n\r\n async targetSaved () {\r\n const targetValue = this.editingTarget\r\n const res = await checkListService.setTargetAsync({\r\n SymbolId: this.currentSymbol.Symbol.SymbolId,\r\n Target: targetValue\r\n })\r\n if (res.Error) {\r\n await this.$alert(res.Error)\r\n } else {\r\n const find = this.Items.find(p => p.Symbol.SymbolId === this.currentSymbol.Symbol.SymbolId)\r\n if (find) {\r\n find.Target = targetValue\r\n }\r\n this.showTargetDialog = false\r\n }\r\n }\r\n\r\n async setAlertPrice (item: WatchSymbol) {\r\n if (item) {\r\n this.currentSymbol = item\r\n this.alertPriceSettingDialog = true\r\n }\r\n }\r\n\r\n showEditTarget (item: WatchSymbol) {\r\n const find = this.Items.find(p => p.Symbol.SymbolId === item.Symbol.SymbolId)\r\n if (find) {\r\n this.editingTarget = find.Target\r\n }\r\n this.currentSymbol = item\r\n this.showTargetDialog = true\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!./WatchBonds.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!./WatchBonds.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WatchBonds.vue?vue&type=template&id=382e6980&\"\nimport script from \"./WatchBonds.vue?vue&type=script&lang=ts&\"\nexport * from \"./WatchBonds.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"d-flex mb-3 align-items-center\"},[_c('i',{staticClass:\"el-icon-share f-30 font-weight-bold\"}),_c('div',{staticClass:\"font-weight-bold ml-2\"},[_c('div',{staticClass:\"color-black\"},[_vm._v(_vm._s(_vm.watchlistName.Name))]),_c('div',{staticClass:\"f-12 color-999\"},[_vm._v(_vm._s(_vm.shared.length)+\" member\"),(_vm.shared.length>1)?_c('span',[_vm._v(\"s\")]):_vm._e()])])]),_c('div',{staticClass:\"d-flex align-items-center pt-2 pb-2 border-top border-bottom\"},[_c('div',{staticStyle:{\"width\":\"40px\"}},[_vm._v(\"To:\")]),_c('el-input',{staticClass:\"input-search\",attrs:{\"placeholder\":\"Type name to search\",\"clearable\":\"\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.search()}},model:{value:(_vm.input),callback:function ($$v) {_vm.input=$$v},expression:\"input\"}}),_c('el-select',{staticClass:\"form-input no-border-input\",attrs:{\"placeholder\":\"Select\"},model:{value:(_vm.shareState),callback:function ($$v) {_vm.shareState=$$v},expression:\"shareState\"}},[_c('el-option',{attrs:{\"label\":\"Can Edit\",\"value\":\"editable\"}}),_c('el-option',{attrs:{\"label\":\"Read-only\",\"value\":\"readonly\"}})],1),_c('i',{staticClass:\"pointer el-icon-search f-30 ml-2\",on:{\"click\":function($event){return _vm.search()}}})],1),_c('div',{staticClass:\"member-list\",attrs:{\"not-shared\":\"\"}},_vm._l((_vm.members),function(item){return _c('div',{key:item.Member.UserId,staticClass:\"member-item m-2 d-flex align-items-center pt-2 pb-2\"},[_c('div',{staticClass:\"member-name text-center font-weight-bold f-20\"},[_vm._v(\" \"+_vm._s(item.Member.SimpleName)+\" \")]),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" \"+_vm._s(item.Member.Name)+\" \"),_c('div',{staticClass:\"color-888 f-12 pt-1 pb-1\"},[_vm._v(_vm._s(item.LoginId))])]),_c('div',{staticClass:\"flex-fill pl-2 pr-2 text-right\"},[_c('span',{staticClass:\"pointer action-color\",on:{\"click\":function($event){return _vm.shareToMember(item.Member)}}},[_vm._v(\"Share\")])])])}),0),_c('div',{staticClass:\"member-list border-top\",attrs:{\"shared\":\"\"}},[_c('div',{staticClass:\"member-item m-2 d-flex align-items-center pt-2 pb-2\"},[_c('div',{staticClass:\"member-name text-center pointer font-weight-bold f-20\"},[_vm._v(\" \"+_vm._s(_vm.currentUser.SimpleName)+\" \")]),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" \"+_vm._s(_vm.currentUser.Name)+\" \"),_c('div',{staticClass:\"color-888 f-12 pt-1 pb-1\"},[_vm._v(_vm._s(_vm.currentUser.LoginId))])]),_c('div',{staticClass:\"flex-fill ml-2 text-right\"},[_vm._v(\" Owner \")])]),_vm._l((_vm.shared),function(item){return _c('div',{key:item.UserId,staticClass:\"member-item m-2 d-flex align-items-center pt-2 pb-2\"},[_c('div',{staticClass:\"member-name text-center font-weight-bold f-20\"},[_vm._v(\" \"+_vm._s(item.SimpleName)+\" \")]),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" \"+_vm._s(item.Name)+\" \"),_c('div',{staticClass:\"color-888 f-12 pt-1 pb-1\"},[_vm._v(_vm._s(item.LoginId))])]),_c('div',{staticClass:\"flex-fill text-right\"},[_c('el-select',{staticClass:\"form-input no-border-input\",staticStyle:{\"width\":\"120px\"},attrs:{\"placeholder\":\"Select\"},on:{\"change\":function($event){return _vm.changeShareStatus(item)}},model:{value:(item.IsReadOnly),callback:function ($$v) {_vm.$set(item, \"IsReadOnly\", $$v)},expression:\"item.IsReadOnly\"}},[_c('el-option',{attrs:{\"label\":\"Can Edit\",\"value\":false}}),_c('el-option',{attrs:{\"label\":\"Read-only\",\"value\":true}})],1)],1),_c('div',{staticClass:\"pl-2 pr-2\"},[_c('span',{staticClass:\"pointer action-color\",on:{\"click\":function($event){return _vm.unShareToMember(item.UserId)}}},[_vm._v(\"UnShare\")])])])})],2)])}\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\r\nimport { Component, Vue, Emit, Prop } from 'vue-property-decorator'\r\nimport memberService, { MemberModel, MemberUpdateModel } from '@/services/memberService'\r\nimport watchListService, { SharedStatus } from '@/services/watchListService'\r\nimport { WatchListName } from '@/services/data'\r\n\r\ninterface MemberShared {\r\n Member: MemberModel;\r\n Status: SharedStatus;\r\n}\r\n\r\n@Component\r\nexport default class ShareWatchList extends Vue {\r\n name = 'ShareWatchList.vue'\r\n input: string = null\r\n shareState = 'readonly'\r\n currentUser: MemberUpdateModel = null\r\n members: MemberShared[] = []\r\n shared: SharedStatus[] = []\r\n @Prop() watchlistName: WatchListName\r\n\r\n @Emit('selected') shareToMember (member: MemberModel) {\r\n this.members = []\r\n this.input = null\r\n const res = [member, this.shareState === 'readonly']\r\n return res\r\n }\r\n\r\n @Emit('cancelled') unShareToMember (userId: number) {\r\n this.members = []\r\n this.input = null\r\n const res = userId\r\n return res\r\n }\r\n\r\n async mounted () {\r\n this.currentUser = (await memberService.getCurrentAsync()).Result\r\n const sharedUsers = await watchListService.getSharedUsersAsync(this.watchlistName.WatchListId)\r\n if (sharedUsers.Error) {\r\n await this.$alert(sharedUsers.Error)\r\n } else {\r\n this.shared = sharedUsers.Result\r\n }\r\n }\r\n\r\n async changeShareStatus (item: SharedStatus) {\r\n const res = await watchListService.changeShareStatusAsync(this.watchlistName.WatchListId, item.UserId, item.IsReadOnly)\r\n if (res.Error) {\r\n await this.$alert(res.Error)\r\n } else {\r\n this.$message({ message: 'Share status changed', type: 'success' })\r\n }\r\n }\r\n\r\n async search () {\r\n const res = await memberService.getAllAsync(this.input)\r\n if (res.Error) {\r\n await this.$alert(res.Error)\r\n } else {\r\n this.members = res.Result.filter(p => p.LoginId !== this.currentUser.LoginId).map(p => {\r\n return {\r\n Member: p,\r\n Status: this.shared.find(q => q.UserId === p.UserId)\r\n }\r\n }).filter(q => q.Status == null)\r\n }\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!./ShareWatchList.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!./ShareWatchList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ShareWatchList.vue?vue&type=template&id=908db9a4&scoped=true&\"\nimport script from \"./ShareWatchList.vue?vue&type=script&lang=ts&\"\nexport * from \"./ShareWatchList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ShareWatchList.vue?vue&type=style&index=0&id=908db9a4&scoped=true&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 \"908db9a4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.Items)?_c('table',{staticClass:\"w-100 text-center\"},[_c('thead',[_c('tr',{staticClass:\"f-14 text-uppercase bg-light\"},[_vm._l((_vm.Keys),function(key){return _c('th',{key:key,staticClass:\"border-top p-2\"},[_vm._v(_vm._s(_vm.$t(key))+\" \"),(_vm.sort == null || _vm.sort.key !== key)?_c('i',{staticClass:\"el-icon-d-caret pointer\",on:{\"click\":function($event){return _vm.sortItems(key,'Asc')}}}):(_vm.sort.direction === 'Asc' )?_c('i',{staticClass:\"el-icon-caret-top pointer\",on:{\"click\":function($event){return _vm.sortItems(key,'Desc')}}}):_c('i',{staticClass:\"el-icon-caret-bottom pointer\",on:{\"click\":function($event){return _vm.sortItems(key,'Asc')}}})])}),_c('th',{staticClass:\"border-top border-top p-2\"})],2)]),_c('draggable',{attrs:{\"element\":\"tbody\"},on:{\"update\":_vm.dragEnd},model:{value:(_vm.Items),callback:function ($$v) {_vm.Items=$$v},expression:\"Items\"}},_vm._l((_vm.Items),function(item){return _c('tr',{key:item.Symbol.CryptoId},[_vm._l((_vm.Keys),function(key){return _c('td',{key:key,staticClass:\"border-top p-2\"},[( key==='Symbol' )?_c('div',[_c('div',{staticClass:\"symbol-com\"},[_vm._v(_vm._s(item.Symbol.Code))])]):( key==='Currency' )?_c('span',[_vm._v(_vm._s(item.Symbol.Currency))]):( key==='Price' )?_c('span',[_vm._v(_vm._s(_vm.$fix(item.Price.Last)))]):( key==='LastUpdated' )?_c('span',[_vm._v(_vm._s(item.Price.LastUpdated))]):_vm._e()])}),_c('td',{staticClass:\"border-top p-2\"},[_c('div',{staticStyle:{\"width\":\"150px\"}},[(_vm.IsRead === false)?_c('i',{staticClass:\"pointer el-icon-delete f-24\",on:{\"click\":function($event){return _vm.delItem(item)}}}):_vm._e()])])],2)}),0),(_vm.showSymbolSearch)?_c('tfoot',[_c('tr',[_c('td',{staticClass:\"border-bottom border-top p-2\",attrs:{\"colspan\":_vm.Keys.length+1}},[_c('CryptoSearch',{on:{\"addcrypto\":_vm.addCrypto}})],1)])]):_vm._e()],1):_vm._e(),(_vm.IsRead === false)?_c('button',{staticClass:\"btn-text f-16 m-2 text-success\",on:{\"click\":function($event){_vm.showSymbolSearch=true}}},[_vm._v(\" + Add Crypto \")]):_vm._e()])}\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',[_c('div',{staticClass:\"d-flex align-items-center mb-3\"},[_c('el-input',{staticClass:\"wd-150\",attrs:{\"placeholder\":\"Name\",\"clearable\":\"\"},model:{value:(_vm.input),callback:function ($$v) {_vm.input=$$v},expression:\"input\"}}),_c('i',{staticClass:\"pointer el-icon-circle-plus f-30 ml-2\",on:{\"click\":_vm.addSymbol}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Emit } from 'vue-property-decorator'\r\nimport { ContractSymbol, CryptoSymbol } from '@/services/data'\r\n\r\n@Component\r\nexport default class CryptoSearch extends Vue {\r\n name = 'CryptoSearch'\r\n input: string = null\r\n\r\n @Emit() addSymbol () {\r\n this.$emit('addcrypto', { Code: this.input } as CryptoSymbol)\r\n this.input = null\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!./CryptoSearch.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!./CryptoSearch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CryptoSearch.vue?vue&type=template&id=0ebd8160&\"\nimport script from \"./CryptoSearch.vue?vue&type=script&lang=ts&\"\nexport * from \"./CryptoSearch.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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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, Emit } from 'vue-property-decorator'\r\nimport { Sort, Option, WatchOption, WatchSymbol, CryptoSymbol, WatchCrypto } from '@/services/data'\r\nimport draggable from 'vuedraggable'\r\nimport utility from '@/common/utility'\r\nimport NumberRowEditor from '@/components/NumberRowEditor.vue'\r\nimport SymbolName from '@/components/SymbolName.vue'\r\nimport CryptoSearch from '@/components/CryptoSearch.vue'\r\n\r\n@Component({\r\n components: {\r\n CryptoSearch,\r\n draggable,\r\n NumberRowEditor,\r\n SymbolName\r\n }\r\n})\r\nexport default class WatchCryptos extends Vue {\r\n name = 'WatchCryptos'\r\n @Prop() Items: WatchCrypto[]\r\n @Prop() Keys: string[]\r\n @Prop() IsRead: boolean\r\n @Prop() IsSystem: boolean\r\n @Prop() draggable: boolean\r\n showSymbolSearch = false\r\n sort: Sort = { key: null, direction: null }\r\n currentCrypto: WatchCrypto\r\n\r\n $num (num: number): string {\r\n if (num != null && num !== undefined) {\r\n return num.toLocaleString('en-US', { maximumFractionDigits: 2, minimumFractionDigits: 2 })\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 sortItems (key: string, direction: string) {\r\n this.sort = { key, direction }\r\n const sort = (a: WatchCrypto, b: WatchCrypto): 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.Items.sort(sort)\r\n }\r\n }\r\n\r\n getByKey = utility.getByKey\r\n\r\n @Emit('dragEnd')\r\n async dragEnd () {\r\n for (let i = 0; i < this.Items.length; i++) {\r\n // this.Items[i].Rank = i + 1\r\n }\r\n }\r\n\r\n @Emit('addcrypto')\r\n async addCrypto (item: CryptoSymbol) {\r\n if (item == null) return\r\n this.showSymbolSearch = false\r\n return item\r\n }\r\n\r\n @Emit('deletecrypto')\r\n delItem (item: WatchCrypto) {\r\n return item\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!./WatchCryptos.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!./WatchCryptos.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WatchCryptos.vue?vue&type=template&id=eef51718&\"\nimport script from \"./WatchCryptos.vue?vue&type=script&lang=ts&\"\nexport * from \"./WatchCryptos.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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 {\r\n ContractSymbol,\r\n PriceMsgContent,\r\n WatchSymbol,\r\n WatchGroup,\r\n WatchListName,\r\n PriceCls,\r\n OptionRow,\r\n Option, WatchOption, OptionMsgContent, CryptoSymbol, WatchCrypto\r\n} from '@/services/data'\r\nimport { setPriceValues } from '@/services/func'\r\nimport TextRowEditor from '@/components/TextRowEditor.vue'\r\nimport ColumnSelector from '@/components/ColumnsSelector.vue'\r\nimport utility from '@/common/utility'\r\nimport WatchSymbols from '@/components/WatchSymbols.vue'\r\nimport WatchOptions from '@/components/WatchOptions.vue'\r\nimport WatchBonds from '@/components/WatchBonds.vue'\r\nimport WatchListService from '@/services/watchListService'\r\nimport ws, { SocketMsg } from '@/services/socket'\r\nimport { Route } from 'vue-router'\r\nimport ShareWatchList from '@/components/ShareWatchList.vue'\r\nimport Draggable from 'vuedraggable'\r\nimport settingService from '@/services/settingService'\r\nimport WatchCryptos from '@/components/WatchCryptos.vue'\r\n\r\n@Component({\r\n components: {\r\n WatchCryptos,\r\n WatchBonds,\r\n ShareWatchList,\r\n TextRowEditor,\r\n WatchSymbols,\r\n WatchOptions,\r\n ColumnSelector,\r\n Draggable\r\n }\r\n})\r\nexport default class Watchlist extends Vue {\r\n WatchList: WatchGroup[] = []\r\n currentGroupId: number = null\r\n currentKeys: string[] = []\r\n currentDefaultKeys: string[] = []\r\n currentPopup: WatchListName = null\r\n newGroupName: string = null\r\n newWatchDialog = false\r\n renameWatchDialog = false\r\n userSearchDialog = false\r\n colSettingDialog = false\r\n loading = false\r\n runningInterval: number\r\n dataSource: string = null\r\n\r\n async mounted () {\r\n ws.InitAll(this.msgCallBack)\r\n let wId = parseInt(this.$route.query.id as string)\r\n const namesRes = await WatchListService.getWatchListNamesAsync()\r\n for (const name of namesRes.Result) {\r\n if (name.Keys == null || name.Keys.length === 0) {\r\n name.Keys = utility.copyArray(this.getDefaultKeys('STK'))\r\n }\r\n if (name.OptKeys == null || name.OptKeys.length === 0) {\r\n name.OptKeys = utility.copyArray(this.getDefaultKeys('OPT'))\r\n }\r\n if (name.CryptoKeys == null || name.CryptoKeys.length === 0) {\r\n name.CryptoKeys = utility.copyArray(this.getDefaultKeys('CRYPTO'))\r\n }\r\n if (name.BondKeys == null || name.BondKeys.length === 0) {\r\n name.BondKeys = utility.copyArray(this.getDefaultKeys('BOND'))\r\n }\r\n this.WatchList.push({ WatchName: name, Symbols: [], Options: [], Cryptos: [] })\r\n }\r\n if (isNaN(wId) && this.WatchList.length > 0) {\r\n wId = this.WatchList[0].WatchName.WatchListId\r\n }\r\n this.currentGroupId = wId\r\n await this.loadWatchData()\r\n const dsRes = (await settingService.readUserSettingsByNamesAsync(['StockDataSource'])).Result\r\n if (dsRes.length > 0) this.dataSource = dsRes[0].Value\r\n this.runningInterval = setInterval(async () => {\r\n await this.getDownloadStatusAsync()\r\n }, 5000)\r\n }\r\n\r\n async dragEnd () {\r\n for (let i = 0; i < this.WatchList.length; i++) {\r\n this.WatchList[i].Rank = i + 1\r\n }\r\n await WatchListService.updateRankAsync(this.WatchList.map(p => {\r\n return { WatchListId: p.WatchName.WatchListId, Rank: p.Rank }\r\n }))\r\n }\r\n\r\n getDefaultKeys (type: string) {\r\n const current = this.findCurrent()\r\n if (type === 'OPT') {\r\n return ['Symbol', 'Strike', 'ExpirationDate', 'Right', 'Multiplier', 'NextEarnDate', 'Price', 'Currency', 'ExchRate', 'LastUpdated']\r\n } else if (type === 'STK') {\r\n const keys = ['Symbol', 'Close', 'Price', 'Volume', 'AvgVolume', 'Change', 'ChangeRate', 'NextEarnDate', 'LastUpdated', 'ExchRate', 'Currency']\r\n if (current && current.WatchName.IsSystem) {\r\n return keys.concat('MarketValue', 'DailyPL', 'AverageCost', 'Position')\r\n } else {\r\n return keys\r\n }\r\n } else if (type === 'BOND') {\r\n return ['ISIN', 'Coupon', 'MaturityDate', 'LastTradePrice', 'YTM', 'CouponDate', 'Frequency', 'Currency']\r\n } else {\r\n return ['Symbol', 'Price', 'Currency', 'ExchRate', 'LastUpdated']\r\n }\r\n }\r\n\r\n findCurrent () {\r\n return this.WatchList.find(p => p.WatchName.WatchListId === this.currentGroupId)\r\n }\r\n\r\n async transChanged () {\r\n await this.loadWatchData()\r\n }\r\n\r\n async getDownloadStatusAsync () {\r\n if (this.currentGroupId) {\r\n const find = this.findCurrent()\r\n if (!find.WatchName.IsSystem) return\r\n const res = await WatchListService.getDownloadStatusAsync(find.Symbols.map(p => p.Symbol.SymbolId))\r\n if (res.Result) {\r\n for (const item of find.Symbols) {\r\n const isDownloading = res.Result.findIndex(p => p.SymbolId === item.Symbol.SymbolId && p.IsDownloading) >= 0\r\n if (item != null) {\r\n item.IsDownloading = isDownloading\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n async loadWatchData () {\r\n if (this.currentGroupId) {\r\n const items = await this.getWatchListAsync(this.currentGroupId)\r\n if (items.length > 0) {\r\n const find = this.findCurrent()\r\n if (find) {\r\n find.Symbols = items[0].Symbols\r\n find.Options = items[0].Options\r\n find.Cryptos = items[0].Cryptos\r\n ws.SendAll({\r\n page: 'watchlist',\r\n symbols: find.Symbols.map(p => p.Symbol.SymbolId),\r\n options: find.Options.map(p => p.Option.OptionId),\r\n cryptos: find.Cryptos.map(p => p.Symbol.CryptoId)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n async getWatchListAsync (watchListId: number) {\r\n this.loading = true\r\n const res = await WatchListService.getWatchListsAsync(watchListId)\r\n for (const group of res.Result) {\r\n group.Symbols.forEach(p => {\r\n if (p.Price == null) {\r\n p.Price = new PriceCls({ Open: null, Close: null, Last: null, Bid: null })\r\n p.Symbol.Detail = p.Symbol.Detail ? JSON.parse(p.Symbol.Detail as string) : {}\r\n }\r\n })\r\n group.Options.forEach(p => {\r\n if (p.Price == null) {\r\n p.Price = new PriceCls({ Open: null, Close: null, Last: null, Bid: null })\r\n }\r\n })\r\n }\r\n this.loading = false\r\n return res.Result\r\n }\r\n\r\n async beforeRouteUpdate (to: Route, from: Route, next: () => void) {\r\n const wId = parseInt(to.query.id as string)\r\n if (!isNaN(wId) && wId > 0) {\r\n this.currentGroupId = wId\r\n await this.loadWatchData()\r\n }\r\n next()\r\n }\r\n\r\n destroyed (): void {\r\n ws.RemoveAll(this.msgCallBack)\r\n if (this.runningInterval) clearInterval(this.runningInterval)\r\n }\r\n\r\n async msgCallBack (msg: SocketMsg) {\r\n if (msg.Action === 'resStk') {\r\n for (const w of this.WatchList) {\r\n for (const sp of w.Symbols) {\r\n if (sp.Price == null) {\r\n sp.Price = new PriceCls({ Open: null, Close: null, Last: null })\r\n }\r\n if (sp.Symbol.SymbolUId === msg.MsgId) {\r\n const content = msg.Content as PriceMsgContent\r\n w.LastUpdated = content.LastTime\r\n sp.Price.Status = content.Status\r\n setPriceValues(content, sp.Price)\r\n if (sp.Portfolio) {\r\n sp.Portfolio.DailyPL = ((sp.Price.Last - sp.Price.Close) * sp.Portfolio.Position)\r\n }\r\n }\r\n }\r\n }\r\n } else if (msg.Action === 'resOpt') {\r\n for (const w of this.WatchList) {\r\n for (const sp of w.Options) {\r\n if (sp.Option.OptionUId === msg.MsgId) {\r\n const content = msg.Content as OptionMsgContent\r\n w.LastUpdated = content.LastTime\r\n if (content.Name === 'OptPrice') {\r\n sp.Price.Last = content.Value\r\n sp.Price.LastUpdated = content.LastTime\r\n } else if (content.Name === 'Open') {\r\n sp.Price.Open = content.Value\r\n } else if (content.Name === 'Close') {\r\n sp.Price.Close = content.Value\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setActiveTab (id: number) {\r\n this.$router.push('/home/watchlist?id=' + id)\r\n }\r\n\r\n async addTab () {\r\n const res = await WatchListService.addWatchListAsync(this.newGroupName)\r\n if (res.Result) {\r\n const added = await this.getWatchListAsync(res.Result.WatchListId)\r\n for (const item of added) {\r\n if (item.WatchName.Keys == null || item.WatchName.Keys.length === 0) {\r\n item.WatchName.Keys = utility.copyArray(this.getDefaultKeys('STK'))\r\n }\r\n if (item.WatchName.OptKeys == null || item.WatchName.OptKeys.length === 0) {\r\n item.WatchName.OptKeys = utility.copyArray(this.getDefaultKeys('OPT'))\r\n }\r\n if (item.WatchName.CryptoKeys == null || item.WatchName.CryptoKeys.length === 0) {\r\n item.WatchName.CryptoKeys = utility.copyArray(this.getDefaultKeys('CRYPTO'))\r\n }\r\n if (item.WatchName.BondKeys == null || item.WatchName.BondKeys.length === 0) {\r\n item.WatchName.BondKeys = utility.copyArray(this.getDefaultKeys('BOND'))\r\n }\r\n this.WatchList.push(item)\r\n }\r\n this.newWatchDialog = false\r\n this.newGroupName = null\r\n } else {\r\n await this.$alert(res.Error)\r\n }\r\n }\r\n\r\n async deleteTab () {\r\n const find = this.currentPopup\r\n if (find) {\r\n if (confirm('Are you sure you want to delete this item?')) {\r\n const res = await WatchListService.deleteWatchListAsync(find.WatchListId)\r\n if (res.Result) {\r\n const delItem = this.WatchList.find(p => p.WatchName.WatchListId === find.WatchListId)\r\n if (delItem) {\r\n utility.removeArrayItem(this.WatchList, delItem)\r\n const current = this.findCurrent()\r\n ws.SendAll({\r\n page: 'watchlist',\r\n symbols: current ? current.Symbols.map(p => p.Symbol.SymbolId) : [],\r\n options: current ? current.Options.map(p => p.Option.OptionId) : [],\r\n cryptos: current ? current.Cryptos.map(p => p.Symbol.CryptoId) : []\r\n })\r\n }\r\n } else {\r\n await this.$alert(res.Error)\r\n }\r\n }\r\n }\r\n }\r\n\r\n async duplicateTab () {\r\n const find = this.currentPopup\r\n if (find) {\r\n const res = await WatchListService.duplicateWatchListAsync(find.WatchListId)\r\n if (res.Result) {\r\n const newList = await this.getWatchListAsync(res.Result.WatchListId)\r\n for (const item of newList) {\r\n if (item.WatchName.Keys == null || item.WatchName.Keys.length === 0) {\r\n item.WatchName.Keys = utility.copyArray(this.getDefaultKeys('STK'))\r\n }\r\n if (item.WatchName.OptKeys == null || item.WatchName.OptKeys.length === 0) {\r\n item.WatchName.OptKeys = utility.copyArray(this.getDefaultKeys('OPT'))\r\n }\r\n this.WatchList.push(item)\r\n }\r\n } else {\r\n await this.$alert(res.Error)\r\n }\r\n }\r\n }\r\n\r\n showShareUser () {\r\n this.userSearchDialog = true\r\n }\r\n\r\n async sharedToUser (data: any[]) {\r\n const find = this.currentPopup\r\n if (find) {\r\n const res = await WatchListService.shareWatchListAsync(find.WatchListId, data[0].UserId, data[1])\r\n if (res.Result) {\r\n this.userSearchDialog = false\r\n this.$message({ message: 'Watchlist shared to user', type: 'success' })\r\n } else {\r\n await this.$alert(res.Error)\r\n }\r\n }\r\n }\r\n\r\n async unSharedToUser (userId: number) {\r\n const find = this.currentPopup\r\n if (find) {\r\n const res = await WatchListService.unShareWatchListAsync(find.WatchListId, userId)\r\n if (res.Result) {\r\n this.userSearchDialog = false\r\n } else {\r\n await this.$alert(res.Error)\r\n }\r\n }\r\n }\r\n\r\n showReNameDialog () {\r\n const find = this.currentPopup\r\n if (find) {\r\n this.newGroupName = find.Name\r\n }\r\n this.renameWatchDialog = true\r\n }\r\n\r\n showColumnDialog (keys: string[], type: string) {\r\n const find = this.findCurrent()\r\n if (find) {\r\n this.colSettingDialog = true\r\n this.currentKeys = keys\r\n this.currentDefaultKeys = this.getDefaultKeys(type)\r\n }\r\n }\r\n\r\n async saveColumnKeys (keys: string[]) {\r\n if (keys.length === 0) return\r\n const find = this.findCurrent()\r\n if (find) {\r\n await WatchListService.saveKeysAsync(find.WatchName.WatchListId, keys)\r\n find.WatchName.Keys = keys\r\n }\r\n }\r\n\r\n async rename () {\r\n const find = this.currentPopup\r\n if (find) {\r\n const res = await WatchListService.renameWatchListAsync(find.WatchListId, this.newGroupName)\r\n if (res.Result) {\r\n find.Name = this.newGroupName\r\n this.renameWatchDialog = false\r\n this.newGroupName = null\r\n } else {\r\n await this.$alert(res.Error)\r\n }\r\n }\r\n }\r\n\r\n async addSymbol (item: ContractSymbol) {\r\n const find = this.findCurrent()\r\n if (find) {\r\n const res = await WatchListService.addSymbolToWatchListAsync(find.WatchName.WatchListId, item)\r\n if (res.Result) {\r\n item.SymbolId = res.Result.Symbol.SymbolId\r\n console.log(res.Result)\r\n const newItem: WatchSymbol = {\r\n WatchListId: find.WatchName.WatchListId,\r\n Symbol: res.Result.Symbol,\r\n NextEarnDate: null,\r\n Alert: false,\r\n Price: new PriceCls(res.Result.Price || { Open: null, Close: null, Last: null }),\r\n ExRate: null\r\n }\r\n find.Symbols.push(newItem)\r\n ws.SendAll({\r\n page: 'watchlist',\r\n symbols: find.Symbols.map(p => p.Symbol.SymbolId),\r\n options: find.Options.map(p => p.Option.OptionId),\r\n cryptos: find.Cryptos.map(p => p.Symbol.CryptoId)\r\n })\r\n } else {\r\n await this.$alert(res.Error)\r\n }\r\n }\r\n }\r\n\r\n async addOption (opt: { symbol: ContractSymbol; option: Option }) {\r\n if (!opt || !opt.option.Expiration || !opt.option.Strike) return\r\n const find = this.findCurrent()\r\n if (find) {\r\n const res = await WatchListService.addOptionToWatchListAsync(find.WatchName.WatchListId, opt.symbol, opt.option)\r\n if (res.Result) {\r\n find.Options.push(res.Result)\r\n ws.SendAll({\r\n page: 'watchlist',\r\n symbols: find.Symbols.map(p => p.Symbol.SymbolId),\r\n options: find.Options.map(p => p.Option.OptionId),\r\n cryptos: find.Cryptos.map(p => p.Symbol.CryptoId)\r\n })\r\n } else {\r\n await this.$alert(res.Error)\r\n }\r\n }\r\n }\r\n\r\n async stkDragged () {\r\n const find = this.findCurrent()\r\n await WatchListService.updateSymbolRankAsync(find.WatchName.WatchListId, find.Symbols.map(p => {\r\n return { SymbolId: p.Symbol.SymbolId, Rank: p.Rank }\r\n }))\r\n }\r\n\r\n async delSymbol (item: WatchSymbol) {\r\n if (confirm('Are you sure you want to delete this item?')) {\r\n const find = this.findCurrent()\r\n if (find) {\r\n const res = await WatchListService.deleteSymbolFromWatchListAsync(find.WatchName.WatchListId, item.Symbol.SymbolId)\r\n if (res.Result) {\r\n utility.removeArrayItem(find.Symbols, item)\r\n ws.SendAll({\r\n page: 'watchlist',\r\n symbols: find.Symbols.map(p => p.Symbol.SymbolId),\r\n options: find.Options.map(p => p.Option.OptionId),\r\n cryptos: find.Cryptos.map(p => p.Symbol.CryptoId)\r\n })\r\n } else {\r\n await this.$alert(res.Error)\r\n }\r\n }\r\n }\r\n }\r\n\r\n async delOption (item: WatchOption) {\r\n if (confirm('Are you sure you want to delete this item?')) {\r\n const find = this.findCurrent()\r\n if (find) {\r\n const res = await WatchListService.deleteOptionFromWatchListAsync(find.WatchName.WatchListId, item.Option.OptionId)\r\n if (res.Result) {\r\n utility.removeArrayItem(find.Options, item)\r\n ws.SendAll({\r\n page: 'watchlist',\r\n symbols: find.Symbols.map(p => p.Symbol.SymbolId),\r\n options: find.Options.map(p => p.Option.OptionId),\r\n cryptos: find.Cryptos.map(p => p.Symbol.CryptoId)\r\n })\r\n } else {\r\n await this.$alert(res.Error)\r\n }\r\n }\r\n }\r\n }\r\n\r\n async addCrypto (item: CryptoSymbol) {\r\n if (!item) return\r\n const find = this.findCurrent()\r\n if (find) {\r\n const res = await WatchListService.addCryptoToWatchListAsync(find.WatchName.WatchListId, item)\r\n if (res.Result) {\r\n find.Cryptos.push(res.Result)\r\n ws.SendAll({\r\n page: 'watchlist',\r\n symbols: find.Symbols.map(p => p.Symbol.SymbolId),\r\n options: find.Options.map(p => p.Option.OptionId),\r\n cryptos: find.Cryptos.map(p => p.Symbol.CryptoId)\r\n })\r\n } else {\r\n await this.$alert(res.Error)\r\n }\r\n }\r\n }\r\n\r\n async delCrypto (item: WatchCrypto) {\r\n if (confirm('Are you sure you want to delete this item?')) {\r\n const find = this.findCurrent()\r\n if (find) {\r\n const res = await WatchListService.deleteCryptoFromWatchListAsync(find.WatchName.WatchListId, item.Symbol.CryptoId)\r\n if (res.Result) {\r\n utility.removeArrayItem(find.Cryptos, item)\r\n ws.SendAll({\r\n page: 'watchlist',\r\n symbols: find.Symbols.map(p => p.Symbol.SymbolId),\r\n options: find.Options.map(p => p.Option.OptionId),\r\n cryptos: find.Cryptos.map(p => p.Symbol.CryptoId)\r\n })\r\n } else {\r\n await this.$alert(res.Error)\r\n }\r\n }\r\n }\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!./Watchlist.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!./Watchlist.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Watchlist.vue?vue&type=template&id=0dcecfc4&\"\nimport script from \"./Watchlist.vue?vue&type=script&lang=ts&\"\nexport * from \"./Watchlist.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Watchlist.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","module.exports = __webpack_public_path__ + \"img/Target-green.svg\";"],"sourceRoot":""}