{"version":3,"sources":["webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./src/services/socket.ts","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./src/views/FreebieDetector/Log.vue?2dc1","webpack:///./src/views/FreebieDetector/Log.vue","webpack:///./src/views/FreebieDetector/Log.vue?a820","webpack:///./src/views/FreebieDetector/Log.vue?ea4d","webpack:///./src/components/NumberRowEditor.vue?d786","webpack:///./src/components/NumberRowEditor.vue","webpack:///./src/components/NumberRowEditor.vue?3125","webpack:///./src/components/NumberRowEditor.vue?3863","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./src/services/settingService.ts","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./src/services/freebieService.ts","webpack:///./src/components/NumberRowSelector.vue?25c5","webpack:///./src/components/NumberRowSelector.vue","webpack:///./src/components/NumberRowSelector.vue?94e6","webpack:///./src/components/NumberRowSelector.vue?066c","webpack:///./src/views/FreebieDetector/Log.vue?bb5f"],"names":["global","DOMIterables","forEach","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","prototype","error","$forEach","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","module","exports","callbackfn","this","arguments","length","undefined","$","target","proto","forced","ClientSocket","dataSource","DataSource","TryTimes","Messages","OnMessage","OnOpen","OnError","isConnecting","timeoutInterval","autoConnect","context","state","user","jwt","ws","location","protocol","url","uid","window","host","startsWith","WebSocket","Socket","readyState","getWsUrl","onopen","sendMessages","onerror","err","reconnect","onmessage","msg","message","JSON","parse","data","Action","sendDirectMsg","i","onclose","e","clearInterval","setTimeout","init","action","content","send","stringify","MsgId","Content","shift","console","log","callback","push","removeArrayItem","source","close","server","local","Server","Local","GetSocketServer","localStorage","getItem","InitAll","addMessageCallBack","SendAll","sendContext","RemoveAll","removeMessageCallBack","$filter","filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","render","_vm","_h","$createElement","_c","_self","directives","name","rawName","value","expression","staticClass","_v","attrs","on","appendIfUpdatedChanged","model","$$v","appendIfUpdated","_s","OptionRes","Percentile","$event","showEditing","MinPremiumPercent","MinPremiumValue","rangeOnlyChanged","rangeOnly","_e","SymbolOpts","_l","item","index","key","Range","Low","High","Gmt","opt","class","State","Time","SymbolName","CallPut","Strike","Expiration","substr","style","OptionPrice","StockPrice","Otm","Target","toFixed","EditDialog","required","$t","saveUserSetting","Editing","$set","staticRenderFns","isLoading","Name","Value","ValueType","stopAutoConnect","msgCallBack","page","getOptions","getSettingsAsync","toString","settingService","addOrUpdateUserSettingAsync","res","Error","$alert","readUserSettingsByNamesAsync","Result","freebieService","p","Options","q","sort","a","b","utility","freezeArrayItems","right","strike","stockPrice","Math","floor","sub","LastTime","findOpt","find","Uid","newSub","Object","assign","updateRowValue","findLogIndex","splice","pop","getOtm","opts","components","NumberRowEditor","NumberRowSelector","component","ref","formValue","disabled","nativeOn","preventDefault","submit","rules","handleInput","_n","inputValue","evt","$emit","v","Promise","resolve","reject","$refs","textForm","validate","valid","type","Number","default","$find","addToUnscopables","FIND","SKIPS_HOLES","Array","readSysSettingByNamesAsync","names","tryPostResult","addOrUpdateSysSettingAsync","settings","tryPostBooleanResult","testPop3","testSmtp","DESCRIPTORS","isForced","redefine","has","classof","inheritIfRequired","toPrimitive","fails","create","getOwnPropertyNames","f","getOwnPropertyDescriptor","defineProperty","trim","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","argument","first","third","radix","maxCode","digits","code","it","charCodeAt","NaN","slice","parseInt","NumberWrapper","dummy","valueOf","call","keys","split","j","constructor","updateRange","getOtmRanges","SymbolId","DetectedOnly","getDetectedFreebies","getDownloadHistoryAsync","downloadLog","symbol","start","end","tryDownload","encodeURIComponent","handleChange"],"mappings":"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","file":"js/chunk-0b5f60bc.js","sourcesContent":["var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","import store from '../store'\r\nimport utility from '@/common/utility'\r\n\r\nexport interface SocketMsg {\r\n MsgId: number;\r\n Action: string;\r\n Content?: any;\r\n}\r\n\r\nexport class ClientSocket {\r\n Socket: WebSocket\r\n DataSource = 'Server'\r\n TryTimes = 0\r\n Messages: Array = []\r\n OnMessage: Array<(msg: SocketMsg) => void> = []\r\n OnOpen: () => void = null\r\n OnError: (err: Event) => void = null\r\n isConnecting = false\r\n timeoutInterval = 0\r\n autoConnect = true\r\n context: object = null\r\n\r\n constructor (dataSource: string) {\r\n this.DataSource = dataSource\r\n }\r\n\r\n private getWsUrl () {\r\n if (store.state.user == null) {\r\n return null\r\n }\r\n const jwt = store.state.user.jwt\r\n const ws = location.protocol === 'https:' ? 'wss' : 'ws'\r\n let url: string = null\r\n if (this.DataSource === 'Local') {\r\n url = `ws://localhost:12479/ws?jwt=${jwt}&uid=${store.state.user.uid}`\r\n } else {\r\n url = `${ws}://${window.location.host}/api/ws?jwt=${jwt}&uid=${store.state.user.uid}`\r\n if (window.location.host.startsWith('localhost') || window.location.host.startsWith('192.168')) {\r\n url = `${ws}://localhost:5000/api/ws?jwt=${jwt}&uid=${store.state.user.uid}`\r\n }\r\n }\r\n return url\r\n }\r\n\r\n public init () {\r\n this.autoConnect = true\r\n if (typeof (WebSocket) !== 'undefined') {\r\n if (this.Socket && this.Socket.readyState < 2) {\r\n return\r\n }\r\n const url = this.getWsUrl()\r\n if (!url) {\r\n return\r\n }\r\n try {\r\n // console.log('Connecting to: ' + url)\r\n this.Socket = new WebSocket(url)\r\n // 监听socket连接\r\n this.Socket.onopen = () => {\r\n // the connection maybe connecting,but not connected here.\r\n this.sendMessages()\r\n if (this.OnOpen) {\r\n this.OnOpen()\r\n }\r\n }\r\n // 监听socket错误信息\r\n this.Socket.onerror = err => {\r\n // the connection maybe connecting,but not connected here.\r\n if (this.OnError) {\r\n this.OnError(err)\r\n }\r\n this.reconnect()\r\n }\r\n // 监听socket消息\r\n this.Socket.onmessage = msg => {\r\n const message = JSON.parse(msg.data) as SocketMsg\r\n if (message.Action === 'resAcc') this.sendDirectMsg('sendContext', this.context)\r\n if (this.OnMessage.length > 0) {\r\n for (let i = 0; i < this.OnMessage.length; i++) {\r\n this.OnMessage[i](message)\r\n }\r\n }\r\n }\r\n // on Close\r\n this.Socket.onclose = () => {\r\n this.reconnect()\r\n }\r\n } catch (e) {\r\n // console.log(e)\r\n }\r\n }\r\n }\r\n\r\n public sendContext (context: object) {\r\n this.context = context\r\n // console.log('sending', this.DataSource, context)\r\n this.sendDirectMsg('sendContext', context)\r\n }\r\n\r\n private reconnect () {\r\n if (!this.autoConnect) return\r\n if (this.isConnecting) {\r\n return\r\n }\r\n if (this.timeoutInterval) {\r\n clearInterval(this.timeoutInterval)\r\n }\r\n this.isConnecting = true\r\n this.timeoutInterval = setTimeout(() => {\r\n this.init()\r\n this.isConnecting = false\r\n }, 4000)\r\n }\r\n\r\n stopAutoConnect () {\r\n this.autoConnect = false\r\n }\r\n\r\n public sendDirectMsg (action: string, content: any) {\r\n if (this.Socket != null && this.Socket.readyState === 1) {\r\n try {\r\n // console.log('sendDirectMsg', this.DataSource, content)\r\n this.Socket.send(JSON.stringify({ MsgId: 0, Action: action, Content: content }))\r\n } catch (e) {\r\n }\r\n }\r\n }\r\n\r\n private sendMessages () {\r\n if (this.TryTimes > 3) {\r\n this.TryTimes = 0\r\n return\r\n }\r\n if (this.Socket != null && this.Socket.readyState === 1) {\r\n this.sendDirectMsg('sendContext', this.context)\r\n while (this.Messages.length > 0) {\r\n const msg = this.Messages.shift()\r\n console.log('sent delay message', this.DataSource, msg)\r\n try {\r\n this.Socket.send(JSON.stringify(msg))\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n }\r\n this.TryTimes = 0\r\n } else {\r\n this.TryTimes++\r\n setTimeout(() => {\r\n this.sendMessages()\r\n }, 200)\r\n }\r\n }\r\n\r\n public addMessageCallBack (callback: (msg: SocketMsg) => void) {\r\n this.OnMessage.push(callback)\r\n }\r\n\r\n public removeMessageCallBack (callback: (msg: SocketMsg) => void) {\r\n utility.removeArrayItem(this.OnMessage, callback)\r\n }\r\n\r\n public sendMsg (msg: SocketMsg) {\r\n if (this.Socket == null || this.Socket.readyState !== 1) {\r\n if (msg.Action !== 'sendContext') { this.Messages.push(msg) }\r\n return\r\n }\r\n console.log('send msg', this.DataSource, msg)\r\n try {\r\n this.Socket.send(JSON.stringify(msg))\r\n } catch (e) {\r\n }\r\n }\r\n\r\n changeSource (source: string) {\r\n if (this.DataSource !== source) {\r\n this.DataSource = source\r\n this.close()\r\n }\r\n }\r\n\r\n close () {\r\n this.autoConnect = false\r\n if (this.Socket) {\r\n this.Socket.close()\r\n this.Socket = null\r\n }\r\n }\r\n}\r\n\r\nconst server = new ClientSocket('Server')\r\nconst local = new ClientSocket('Local')\r\n\r\nexport default {\r\n Server: server,\r\n Local: local,\r\n GetSocketServer (): ClientSocket {\r\n const dataSource = localStorage.getItem('StockDataSource')\r\n if (dataSource === 'Local') return local\r\n return server\r\n },\r\n InitAll (callback: (msg: SocketMsg) => void) {\r\n server.init()\r\n server.addMessageCallBack(callback)\r\n local.init()\r\n local.addMessageCallBack(callback)\r\n },\r\n SendAll (context: Record) {\r\n if (localStorage.getItem('StockDataSource') === 'Local') {\r\n server.sendContext(null)\r\n local.sendContext(context)\r\n } else {\r\n server.sendContext(context)\r\n local.sendContext(null)\r\n }\r\n },\r\n RemoveAll (callback: (msg: SocketMsg) => void) {\r\n server.removeMessageCallBack(callback)\r\n local.removeMessageCallBack(callback)\r\n }\r\n}\r\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","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.isLoading),expression:\"isLoading\"}],staticClass:\"m-auto\"},[_c('div',{staticClass:\"text-left\"},[_c('h2',[_vm._v(\"Freebie Detector\")]),(_vm.OptionRes)?_c('div',{staticClass:\"font-weight-bold pb-3\"},[_c('div',{staticClass:\"text-right mr-5 pb-2\"},[_c('el-radio',{attrs:{\"label\":false},on:{\"change\":_vm.appendIfUpdatedChanged},model:{value:(_vm.appendIfUpdated),callback:function ($$v) {_vm.appendIfUpdated=$$v},expression:\"appendIfUpdated\"}},[_vm._v(\"Monitor\")]),_c('el-radio',{attrs:{\"label\":true},on:{\"change\":_vm.appendIfUpdatedChanged},model:{value:(_vm.appendIfUpdated),callback:function ($$v) {_vm.appendIfUpdated=$$v},expression:\"appendIfUpdated\"}},[_vm._v(\"Log\")])],1),_c('span',[_vm._v(\"Premium percentile requirement : \"+_vm._s(_vm.OptionRes.Percentile)+\" \"),_c('i',{staticClass:\"el-icon-setting ml-1 pointer text-primary\",on:{\"click\":function($event){return _vm.showEditing('PremiumPercentile')}}})]),_c('span',{staticClass:\"ml-3\"},[_vm._v(\"Minimum Premium (%) : \"+_vm._s(_vm.OptionRes.MinPremiumPercent)),_c('i',{staticClass:\"el-icon-setting ml-1 pointer text-primary\",on:{\"click\":function($event){return _vm.showEditing('MinimumPremiumPercent')}}})]),_c('span',{staticClass:\"ml-3\"},[_vm._v(\"Minimum Premium ($) : \"+_vm._s(_vm.OptionRes.MinPremiumValue)),_c('i',{staticClass:\"el-icon-setting ml-1 pointer text-primary\",on:{\"click\":function($event){return _vm.showEditing('MinimumPremium')}}})]),_c('label',[_c('el-checkbox',{staticClass:\"text-white font-weight-bold ml-5\",on:{\"change\":_vm.rangeOnlyChanged},model:{value:(_vm.rangeOnly),callback:function ($$v) {_vm.rangeOnly=$$v},expression:\"rangeOnly\"}}),_vm._v(\" Show range only\")],1)]):_vm._e(),(_vm.OptionRes && _vm.OptionRes.SymbolOpts)?_c('div',_vm._l((_vm.OptionRes.SymbolOpts),function(item,index){return _c('table',{key:index,staticClass:\"table f-14\"},[(item.Range)?[_c('caption',{staticClass:\"font-weight-bold text-left bg-primary p-2 text-white\"},[_vm._v(\"Otm Range : Low = \"+_vm._s(item.Range.Low)+\" High = \"+_vm._s(item.Range.High)+\" \")]),_c('thead',{staticClass:\"thead-light\"},[_c('tr',[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Time(\"+_vm._s(item.Gmt)+\")\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Stock\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Type\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Strike\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Expiration\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Option Price\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Stock Price\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"% OTM\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Target\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Premium %\")]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(\"Freebie Found?\")])])]),(item.Options)?_c('tbody',_vm._l((item.Options),function(opt,index){return _c('tr',{key:index},[_c('td',{class:opt.State},[_vm._v(_vm._s(opt.Time))]),_c('td',[_vm._v(_vm._s(item.SymbolName))]),_c('td',[_vm._v(_vm._s(opt.CallPut))]),_c('td',[_vm._v(_vm._s(opt.Strike))]),_c('td',[_vm._v(_vm._s(opt.Expiration.substr(0,10)))]),_c('td',{style:('color:' + (opt.OptionPrice < _vm.OptionRes.MinPremiumValue ? 'red' : 'darkgreen'))},[_vm._v(\" \"+_vm._s(opt.OptionPrice)+\" \")]),_c('td',[_vm._v(_vm._s(opt.StockPrice))]),_c('td',[_vm._v(_vm._s(opt.Otm)+\"%\")]),_c('td',{style:('color:' + (opt.OptionPrice < opt.Target ? 'red' : 'darkgreen'))},[_vm._v(_vm._s(opt.Target))]),_c('td',[(opt.OptionPrice && opt.StockPrice)?_c('div',{style:('color:' + (((opt.OptionPrice/opt.StockPrice)*100) < _vm.OptionRes.MinPremiumPercent ? 'red' : 'darkgreen'))},[_vm._v(\" \"+_vm._s(((opt.OptionPrice/opt.StockPrice)*100).toFixed(2))+\"% \")]):_vm._e()]),_c('td',[(opt.OptionPrice && opt.StockPrice && opt.Target && opt.OptionPrice > opt.Target && (opt.OptionPrice > _vm.OptionRes.MinPremiumValue || (opt.OptionPrice/opt.StockPrice)*100 > _vm.OptionRes.MinPremiumPercent))?_c('div',[_vm._v(\" YES \")]):_c('div',[_vm._v(\"NO\")])])])}),0):_vm._e()]:_vm._e()],2)}),0):_vm._e()]),(_vm.EditDialog)?_c('el-dialog',{staticClass:\"text-center m-auto\",attrs:{\"visible\":_vm.EditDialog,\"append-to-body\":\"\",\"show-close\":true,\"close-on-click-modal\":false,\"lock-scroll\":false,\"width\":\"500px\"},on:{\"update:visible\":function($event){_vm.EditDialog=$event}}},[_c('NumberRowEditor',{attrs:{\"rules\":[{required: true, message: this.$t('val.required')}]},on:{\"change\":_vm.saveUserSetting},model:{value:(_vm.Editing.Value),callback:function ($$v) {_vm.$set(_vm.Editing, \"Value\", $$v)},expression:\"Editing.Value\"}})],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\r\nimport { Vue, Component } from 'vue-property-decorator'\r\nimport ws, { SocketMsg } from '@/services/socket'\r\nimport freebieService, { FreebieOpt, FreebieOptionRes } from '@/services/freebieService'\r\nimport { OptionMsgContent, PortfolioGroup } from '@/services/data'\r\nimport utility from '@/common/utility'\r\nimport settingService, { SettingValueModel } from '@/services/settingService'\r\nimport NumberRowEditor from '@/components/NumberRowEditor.vue'\r\nimport NumberRowSelector from '@/components/NumberRowSelector.vue'\r\n\r\n@Component({\r\n components: {\r\n NumberRowEditor,\r\n NumberRowSelector\r\n }\r\n})\r\nexport default class FreebieDetector extends Vue {\r\n OptionRes: FreebieOptionRes = null\r\n rangeOnly = true\r\n appendIfUpdated = false\r\n isLoading = false\r\n EditDialog = false\r\n Editing: SettingValueModel = {\r\n Name: null,\r\n Value: null,\r\n ValueType: 'Number'\r\n }\r\n\r\n async mounted () {\r\n ws.Server.init()\r\n ws.Local.stopAutoConnect()\r\n ws.Server.addMessageCallBack(this.msgCallBack)\r\n ws.Server.sendContext({ page: 'optlog' })\r\n await this.getOptions()\r\n }\r\n\r\n async showEditing (name: string) {\r\n this.Editing.Value = null\r\n this.Editing.Name = name\r\n this.EditDialog = true\r\n this.Editing.Value = await this.getSettingsAsync(name)\r\n }\r\n\r\n async saveUserSetting () {\r\n this.Editing.Value = this.Editing.Value.toString()\r\n const res = await settingService.addOrUpdateUserSettingAsync([this.Editing])\r\n if (res.Error) {\r\n await this.$alert(res.Error)\r\n } else {\r\n this.EditDialog = false\r\n await this.getOptions()\r\n }\r\n }\r\n\r\n async getSettingsAsync (name: string) {\r\n const res = await settingService.readUserSettingsByNamesAsync([name])\r\n for (const item of res.Result) {\r\n if (item.Name === name) {\r\n return item.Value\r\n }\r\n }\r\n }\r\n\r\n async rangeOnlyChanged () {\r\n await this.getOptions()\r\n }\r\n\r\n async appendIfUpdatedChanged () {\r\n await this.getOptions()\r\n }\r\n\r\n async getOptions () {\r\n this.isLoading = true\r\n const res = await freebieService.getOptions()\r\n if (res.Result) {\r\n if (this.rangeOnly) {\r\n res.Result.SymbolOpts.forEach(p => {\r\n if (p.Range) {\r\n p.Options = p.Options.filter(q => q.Otm >= p.Range.Low && q.Otm <= p.Range.High)\r\n }\r\n })\r\n }\r\n if (this.appendIfUpdated) {\r\n const sort = (a: FreebieOpt, b: FreebieOpt): number => {\r\n if (a.Time > b.Time) return -1\r\n if (a.Time < b.Time) return 1\r\n return 0\r\n }\r\n for (const item of res.Result.SymbolOpts) {\r\n item.Options.sort(sort)\r\n utility.freezeArrayItems(item.Options)\r\n }\r\n }\r\n this.OptionRes = res.Result\r\n }\r\n this.isLoading = false\r\n }\r\n\r\n destroyed (): void {\r\n ws.Server.removeMessageCallBack(this.msgCallBack)\r\n }\r\n\r\n getOtm (right: string, strike: number, stockPrice: number) {\r\n return right === 'C'\r\n ? Math.floor(((strike / stockPrice) - 1) * 100)\r\n : Math.floor((1 - (strike / stockPrice)) * 100)\r\n }\r\n\r\n private updateRowValue (sub: FreebieOpt, content: OptionMsgContent) {\r\n sub.OptionPrice = Math.floor(content.Value * 10000) / 10000.0\r\n sub.Time = content.LastTime\r\n sub.StockPrice = content.StockPrice\r\n sub.Otm = content.Otm\r\n sub.Target = content.Target\r\n }\r\n\r\n private async msgCallBack (msg: SocketMsg) {\r\n if (this.isLoading) {\r\n return\r\n }\r\n if (msg.Action === 'resQueue' && msg.Content === 'changed') {\r\n if (!this.appendIfUpdated) {\r\n await this.getOptions()\r\n return\r\n }\r\n }\r\n if (msg.Action === 'resFreebie') {\r\n const appendIfUpdated = this.appendIfUpdated\r\n if (!this.OptionRes || !this.OptionRes.SymbolOpts) {\r\n return\r\n }\r\n for (const item of this.OptionRes.SymbolOpts) {\r\n const findOpt = item.Options.find(p => p.Uid === msg.MsgId)\r\n if (findOpt != null) {\r\n const content = msg.Content as OptionMsgContent\r\n if (appendIfUpdated) { // Log mode\r\n const newSub = Object.assign({}, findOpt)\r\n this.updateRowValue(newSub, content)\r\n const index = this.findLogIndex(item.Options, newSub)\r\n if (index === -1) {\r\n item.Options.push(newSub)\r\n } else {\r\n item.Options.splice(index, 0, newSub)\r\n }\r\n if (item.Options.length > 500) {\r\n item.Options.pop()\r\n }\r\n } else { // Monitor mode\r\n this.updateRowValue(findOpt, content)\r\n }\r\n for (const sub of item.Options) {\r\n if (findOpt !== sub && !appendIfUpdated) {\r\n sub.Time = content.LastTime\r\n sub.StockPrice = content.StockPrice\r\n sub.Otm = this.getOtm(sub.CallPut, sub.Strike, sub.StockPrice)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private findLogIndex (opts: FreebieOpt[], newSub: FreebieOpt): number {\r\n if (opts.length > 0 && newSub.Time >= opts[0].Time) return 0\r\n for (let i = 0; i < opts.length; i++) {\r\n if (i + 1 < opts.length) {\r\n if (newSub.Time <= opts[i].Time && newSub.Time >= opts[i + 1].Time) {\r\n return i + 1\r\n }\r\n }\r\n }\r\n return -1\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!./Log.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!./Log.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Log.vue?vue&type=template&id=8502584e&scoped=true&\"\nimport script from \"./Log.vue?vue&type=script&lang=ts&\"\nexport * from \"./Log.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Log.vue?vue&type=style&index=0&id=8502584e&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 \"8502584e\",\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.formValue,\"disabled\":_vm.disabled},nativeOn:{\"submit\":function($event){$event.preventDefault();return _vm.submit()}}},[_c('el-form-item',{attrs:{\"rules\":_vm.disabled ? null : _vm.rules,\"prop\":\"inputValue\"}},[_c('div',{staticClass:\"d-flex pt-3 input-group\"},[_c('el-input',{staticClass:\"form-input\",attrs:{\"type\":\"number\",\"autocomplete\":\"off\"},on:{\"input\":_vm.handleInput},model:{value:(_vm.formValue.inputValue),callback:function ($$v) {_vm.$set(_vm.formValue, \"inputValue\", _vm._n($$v))},expression:\"formValue.inputValue\"}}),(_vm.showButton)?_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(_vm._s(_vm.$t('button.save')))]):_vm._e()],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop, Model, Emit, Watch } from 'vue-property-decorator'\r\nimport { MessageText } from '@/services/data'\r\nimport { ElForm } from 'element-ui/types/form'\r\n\r\n@Component\r\nexport default class NumberRowEditor extends Vue {\r\n $refs: {\r\n textForm: ElForm;\r\n }\r\n\r\n mounted () {\r\n this.formValue.inputValue = this.value\r\n }\r\n\r\n formValue: { inputValue: number } = { inputValue: 0 }\r\n message: MessageText = null\r\n @Model('input', { type: Number }) value: number\r\n // do not put default value to prop value\r\n @Prop() rules: any\r\n @Prop({ default: () => true }) showButton: boolean\r\n @Prop({ default: () => false }) disabled: boolean\r\n\r\n // @Emit('input')\r\n handleInput (evt: string) {\r\n if (evt === '') {\r\n this.formValue.inputValue = null\r\n }\r\n this.$emit('input', this.formValue.inputValue)\r\n }\r\n\r\n @Watch('value')\r\n onValueChanged (v: number) {\r\n this.formValue.inputValue = v\r\n }\r\n\r\n @Watch('formValue.inputValue')\r\n onInputValueChanged (v: number) {\r\n this.$emit('input', v)\r\n }\r\n\r\n public validate (): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.$refs.textForm.validate((valid: boolean) => {\r\n resolve(valid)\r\n })\r\n })\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 this.$refs.textForm.validate((valid: boolean) => {\r\n if (valid) {\r\n this.$emit('change')\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!./NumberRowEditor.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!./NumberRowEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NumberRowEditor.vue?vue&type=template&id=2b5d626c&\"\nimport script from \"./NumberRowEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./NumberRowEditor.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","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND);\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","import serviceBase from '@/services/serviceBase'\r\nimport { ApiBooleanResult, ApiResult } from '@/services/data'\r\n\r\nexport interface Pop3OrSmtpModel {\r\n Server: string;\r\n Port: number;\r\n Ssl: boolean;\r\n}\r\n\r\nexport interface EmailModel {\r\n Reg: string;\r\n RegPwd: string;\r\n Statement: string;\r\n StatementPwd: string;\r\n TradeConfirm: string;\r\n TradeConfirmPwd: string;\r\n}\r\n\r\nexport interface SettingValueModel {\r\n Name: string;\r\n Value: string;\r\n ValueType: string;\r\n}\r\n\r\nexport default {\r\n async readSysSettingByNamesAsync (names: Array): Promise> {\r\n return await serviceBase.tryPostResult('/Setting/readSysSettingByNames', names)\r\n },\r\n async addOrUpdateSysSettingAsync (settings: SettingValueModel[]): Promise {\r\n return await serviceBase.tryPostBooleanResult('/Setting/addOrUpdateSysSetting', settings)\r\n },\r\n async readUserSettingsByNamesAsync (names: Array): Promise> {\r\n return await serviceBase.tryPostResult('/Setting/readUserSettingsByNames', names)\r\n },\r\n async addOrUpdateUserSettingAsync (settings: SettingValueModel[]): Promise {\r\n return await serviceBase.tryPostBooleanResult('/Setting/addOrUpdateUserSetting', settings)\r\n },\r\n async testPop3 (data: Pop3OrSmtpModel): Promise {\r\n return await serviceBase.tryPostBooleanResult('/Setting/testPop', data)\r\n },\r\n async testSmtp (data: Pop3OrSmtpModel): Promise {\r\n return await serviceBase.tryPostBooleanResult('/Setting/testSmtp', data)\r\n }\r\n}\r\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","import { ApiBooleanResult, ApiResult, ContractSymbol, OtmRange, StockPrice } from '@/services/data'\r\nimport ServiceBase from '@/services/serviceBase'\r\n\r\nexport interface FreebieOpt extends Record {\r\n Uid: number;\r\n OptionId: number;\r\n Time: string;\r\n CallPut: string;\r\n Expiration: string;\r\n Strike: number;\r\n Otm: number;\r\n OptionPrice: number;\r\n StockPrice: number;\r\n Target: number;\r\n State: string;\r\n}\r\n\r\nexport interface FreebieOptionRes {\r\n Percentile: number;\r\n MinPremiumValue: number;\r\n MinPremiumPercent: number;\r\n SymbolOpts: FreebieItem[];\r\n}\r\n\r\nexport interface FreebieItem {\r\n SymbolId: number;\r\n SymbolName: string;\r\n Range: OtmRange;\r\n Gmt: string;\r\n Options: FreebieOpt[];\r\n}\r\n\r\nexport interface StockFreebie {\r\n Gmt?: string;\r\n StockPrice: StockPrice;\r\n FreebieRange: OtmRange;\r\n DownloadRange: OtmRange;\r\n CallOptions: FreebieOpt[];\r\n PutOptions: FreebieOpt[];\r\n}\r\n\r\nexport interface HistoryDataItem{\r\n DataPoints: number;\r\n FirstUpdate: string;\r\n LastUpdate: string;\r\n Range: OtmRange[];\r\n Symbol: ContractSymbol;\r\n IsDownloading: boolean;\r\n ExpirationCount: number;\r\n}\r\n\r\nexport default {\r\n async updateRange (Range: OtmRange): Promise {\r\n return await ServiceBase.tryPostBooleanResult('/freebie/updateRange', Range)\r\n },\r\n async getOtmRanges (SymbolId?: number): Promise> {\r\n return await ServiceBase.tryPostResult('/freebie/getOtmRanges', { SymbolId })\r\n },\r\n async getOptions (DetectedOnly = false): Promise> {\r\n return await ServiceBase.tryPostResult('/freebie/getOptions', { DetectedOnly })\r\n },\r\n async getDetectedFreebies (): Promise> {\r\n return await ServiceBase.tryPostResult('/freebie/getDetectedFreebies')\r\n },\r\n async getDownloadHistoryAsync (): Promise> {\r\n return await ServiceBase.tryPostResult('/freebie/getDownHistory')\r\n },\r\n async downloadLog (symbol: string, start: string, end: string) {\r\n return await ServiceBase.tryDownload(`/freebie/downloadLogs/${symbol}?start=${encodeURIComponent(start)}&end=${encodeURIComponent(end)}`)\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:\"textForm\",attrs:{\"model\":_vm.formValue},nativeOn:{\"submit\":function($event){$event.preventDefault();return _vm.submit()}}},[_c('el-form-item',{attrs:{\"rules\":_vm.rules,\"prop\":\"inputValue\"}},[_c('div',{staticClass:\"d-flex pt-3 input-group\"},[_c('el-select',{staticClass:\"form-input\",attrs:{\"autocomplete\":\"off\",\"placeholder\":\"Select\"},on:{\"change\":_vm.handleChange},model:{value:(_vm.formValue.inputValue),callback:function ($$v) {_vm.$set(_vm.formValue, \"inputValue\", _vm._n($$v))},expression:\"formValue.inputValue\"}},_vm._l((_vm.items),function(item){return _c('el-option',{key:item,attrs:{\"label\":item,\"value\":item}})}),1),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(_vm._s(_vm.$t('button.save')))])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop, Model, Emit, Watch } from 'vue-property-decorator'\r\nimport { MessageText } from '@/services/data'\r\nimport { ElForm } from 'element-ui/types/form'\r\n\r\n@Component\r\nexport default class NumberRowSelector extends Vue {\r\n $refs: {\r\n textForm: ElForm;\r\n }\r\n\r\n mounted () {\r\n this.formValue.inputValue = this.value\r\n }\r\n\r\n formValue: { inputValue: number } = { inputValue: 0 }\r\n message: MessageText = null\r\n @Model('input', { type: Number }) value: number\r\n // do not put default value to prop value\r\n @Prop() rules: any\r\n @Prop() items: Array | number\r\n\r\n // @Emit('input')\r\n handleChange () {\r\n this.$emit('input', this.formValue.inputValue)\r\n }\r\n\r\n @Watch('value')\r\n onValueChanged (v: number) {\r\n this.formValue.inputValue = v\r\n }\r\n\r\n @Watch('formValue.inputValue')\r\n onInputValueChanged (v: number) {\r\n this.$emit('input', 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 this.$refs.textForm.validate((valid: boolean) => {\r\n if (valid) {\r\n this.$emit('change')\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!./NumberRowSelector.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!./NumberRowSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NumberRowSelector.vue?vue&type=template&id=b3e48cfa&\"\nimport script from \"./NumberRowSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./NumberRowSelector.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","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!./Log.vue?vue&type=style&index=0&id=8502584e&scoped=true&lang=css&\""],"sourceRoot":""}