{ "version": 3, "sources": ["../../packages/streams/tv.ts", "../../packages/modules-pc/market-select/components", "../../packages/modules-pc/market-select", "../../packages/widgets-pc"], "sourcesContent": ["import {BehaviorSubject, Subject, combineLatest, switchMap} from 'rxjs';\nimport {debounceTime, filter} from 'rxjs/operators';\nimport {PriceType} from '@px/enum/perpetual';\nimport {STORAGE_KEY_CONTRACT, tradingViewStorage} from '@px/storage/trading-view';\nimport {contractBiz$, updateCustomize} from '@px/streams-contract/contract-biz';\nimport {isLogin$} from './auth';\n\nconst BIZ_KEY = 'tvSetting';\n\nexport const tvIsFullScreen$ = new BehaviorSubject(false);\nexport const isDrag$ = new BehaviorSubject(false);\nexport const tvSetting$ = new BehaviorSubject(initTvSetting());\nexport const customizeUpdate$ = new Subject();\nexport const priceType$ = new BehaviorSubject(tradingViewStorage.readPriceType(STORAGE_KEY_CONTRACT) || PriceType.Last);\n\n// contract customize version\nconst version$ = new BehaviorSubject(1);\n\nfunction initTvSetting() {\n return {\n favoriteIntervals: ['1', '5', '15', '30', '60', '180', '240', '360', '720', '1D', '1W'],\n quickPlaceMarketOrder: true,\n quickPlaceLimitOrder: true,\n activeOrderLine: true,\n conditionalOrderLine: true,\n takeProfitStopLossLine: true,\n liquidationLine: false,\n positionLine: true,\n closePositionConfirm: true,\n reversePositionConfirm: true,\n labelPosition: 'Right',\n orderHistory: true,\n };\n}\n\ncontractBiz$.subscribe((items) => {\n const item = items.find((item) => item.bizKey === BIZ_KEY);\n if (item) {\n tvSetting$.next({...initTvSetting(), ...JSON.parse(item.bizVal)});\n version$.next(item.version);\n }\n});\n\ncombineLatest([isLogin$, tvSetting$, customizeUpdate$])\n .pipe(\n debounceTime(1000),\n filter(([isLogin]) => isLogin),\n switchMap(([_, settings]) => {\n const curVersion = version$.getValue();\n return updateCustomize({bizKey: BIZ_KEY, curVersion, settings});\n })\n )\n .subscribe((version: number) => version$.next(version));\n", "\n\n\n\n