diff --git a/.env.development b/.env.development index 0df74e11..a5376386 100644 --- a/.env.development +++ b/.env.development @@ -1 +1 @@ -NEXT_PUBLIC_ENV=prod \ No newline at end of file +NEXT_PUBLIC_ENV=staging \ No newline at end of file diff --git a/README.md b/README.md index ec136caa..dd55770e 100644 --- a/README.md +++ b/README.md @@ -16,3 +16,5 @@ yarn dev .env: can run on live and test mode. .env.local: run on test mode. + +# Deploy into Vercel \ No newline at end of file diff --git a/_data.json b/_data.json new file mode 100644 index 00000000..a684e343 --- /dev/null +++ b/_data.json @@ -0,0 +1,2735 @@ +{ + "data": { + "lendingPools": [ + { + "key": "bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "baseTokenPerIbToken": "1.233812014423526327", + "lendingApr": "23.9999545743885367", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-wbnb", + "sourceName": "BNB Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibBNB", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "7397891.367805670231216147", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0xd7D069493685A581d27824Fc46EdA46B7EfC0063", + "symbol": "ibBNB" + } + } + ], + "protocolApr": "0", + "totalApr": "23.9999545743885367", + "totalApy": "27.124857", + "totalSupply": "27339.296895941923205542", + "totalToken": "27317.184566595243048777", + "totalFloating": "857.62093459290100713", + "totalBorrowed": "26481.675961349022198412", + "tvl": "10773975.79024290084291179", + "floatingTvl": "338248.151597895747203933", + "borrowingInterestPercent": "30.5891405562788595", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "ibToken": { + "address": "0xd7D069493685A581d27824Fc46EdA46B7EfC0063", + "symbol": "ibBNB" + } + }, + { + "key": "busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "baseTokenPerIbToken": "0.0", + "lendingApr": "32.399999998707888", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-busd", + "sourceName": "BUSD Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibBUSD", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "0.0", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0x7C9e73d4C71dae564d41F78d56439bB4ba87592f", + "symbol": "ibBUSD" + } + } + ], + "protocolApr": "0", + "totalApr": "32.399999998707888", + "totalApy": "38.264731", + "totalSupply": "8302898.780974642181632752", + "totalToken": "0.0", + "totalFloating": "0.0", + "totalBorrowed": "8302898.780974642181632752", + "tvl": "0.0", + "floatingTvl": "0.0", + "borrowingInterestPercent": "0.0", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "ibToken": { + "address": "0x7C9e73d4C71dae564d41F78d56439bB4ba87592f", + "symbol": "ibBUSD" + } + }, + { + "key": "eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "baseTokenPerIbToken": "0.0", + "lendingApr": "0.0", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-eth", + "sourceName": "ETH Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibETH", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "0.0", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0xbfF4a34A4644a113E8200D7F1D79b3555f723AfE", + "symbol": "ibETH" + } + } + ], + "protocolApr": "0", + "totalApr": "0.0", + "totalApy": "0.0", + "totalSupply": "0.0", + "totalToken": "0.0", + "totalFloating": "0.0", + "totalBorrowed": "0.0", + "tvl": "0.0", + "floatingTvl": "0.0", + "borrowingInterestPercent": "0.0", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "ibToken": { + "address": "0xbfF4a34A4644a113E8200D7F1D79b3555f723AfE", + "symbol": "ibETH" + } + }, + { + "key": "alpaca", + "sourceName": "ALPACA Vault", + "symbol": "ALPACA", + "baseTokenPerIbToken": "1.023501570692215271", + "lendingApr": "0.0", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-alpaca", + "sourceName": "ALPACA Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "723542.55078928451301442", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "scix", + "sourceName": "SCIX", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "SCIX", + "stakingContract": "Scientix StakingPools", + "tvl": "5542.56842246610593203", + "rewardToken": { + "address": "0x2cfc48cdfea0678137854f010b5390c5144c0aa5", + "symbol": "SCIX" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "latte", + "sourceName": "LATTE", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "LATTE", + "stakingContract": "LatteSwap MasterBarista", + "tvl": "1038.323677573393080361", + "rewardToken": { + "address": "0xa269A9942086f5F87930499dC8317ccC9dF2b6CB", + "symbol": "LATTE" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "xms", + "sourceName": "MarsEcosystem", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "XMS", + "stakingContract": "MarsEcosystem LiquidityMiningMaster", + "tvl": "2454.634344826626616092", + "rewardToken": { + "address": "0x7859B01BbF675d67Da8cD128a50D155cd881B576", + "symbol": "XMS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "eternal", + "sourceName": "ETERNAL", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "ETERNAL", + "stakingContract": "Alpaca GrazingRange", + "tvl": "318.970982877939879406", + "rewardToken": { + "address": "0xD44FD09d74cd13838F137B590497595d6b3FEeA4", + "symbol": "ETERNAL" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "plut", + "sourceName": "PLUT", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "PLUT", + "stakingContract": "Alpaca GrazingRange", + "tvl": "438.757561657666803573", + "rewardToken": { + "address": "0x2984f825bfe72e55e1725d5c020258e81ff97450", + "symbol": "PLUT" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "sps", + "sourceName": "SPS", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "SPS", + "stakingContract": "Alpaca GrazingRange", + "tvl": "41103.110095201345986208", + "rewardToken": { + "address": "0x1633b7157e7638C4d6593436111Bf125Ee74703F", + "symbol": "SPS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "caps", + "sourceName": "CAPS", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "CAPS", + "stakingContract": "Alpaca GrazingRange", + "tvl": "6449.602422849510155178", + "rewardToken": { + "address": "0xffba7529ac181c2ee1844548e6d7061c9a597df4", + "symbol": "CAPS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "tenfi", + "sourceName": "TENFI", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "TENFI", + "stakingContract": "Alpaca GrazingRange", + "tvl": "186.686023733413262188", + "rewardToken": { + "address": "0xd15c444f1199ae72795eba15e8c1db44e47abf62", + "symbol": "TENFI" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "dep", + "sourceName": "DEP", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "DEP", + "stakingContract": "Alpaca GrazingRange", + "tvl": "3225.498087148131672541", + "rewardToken": { + "address": "0xcaf5191fc480f43e4df80106c7695eca56e48b18", + "symbol": "DEP" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "wnow", + "sourceName": "WNOW", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "WNOW", + "stakingContract": "Alpaca GrazingRange", + "tvl": "84.91031848456910336", + "rewardToken": { + "address": "0x56aa0237244c67b9a854b4efe8479cca0b105289", + "symbol": "WNOW" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "leon", + "sourceName": "LEON", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "LEON", + "stakingContract": "Alpaca GrazingRange", + "tvl": "3175.043714960165713671", + "rewardToken": { + "address": "0x27e873bee690c8e161813de3566e9e18a64b0381", + "symbol": "LEON" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "arv", + "sourceName": "ARV", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "ARV", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1087.21584291010360979", + "rewardToken": { + "address": "0x6679eb24f59dfe111864aec72b443d1da666b360", + "symbol": "ARV" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "xwin", + "sourceName": "XWIN", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "XWIN", + "stakingContract": "Alpaca GrazingRange", + "tvl": "268.293495671513142763", + "rewardToken": { + "address": "0xd88ca08d8eec1e9e09562213ae83a7853ebb5d28", + "symbol": "XWIN" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "skill", + "sourceName": "SKILL", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "SKILL", + "stakingContract": "Alpaca GrazingRange", + "tvl": "993.731690536448520942", + "rewardToken": { + "address": "0x154a9f9cbd3449ad22fdae23044319d6ef2a1fab", + "symbol": "SKILL" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "sheesha", + "sourceName": "SHEESHA", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "SHEESHA", + "stakingContract": "Alpaca GrazingRange", + "tvl": "169.497890539689833911", + "rewardToken": { + "address": "0x232FB065D9d24c34708eeDbF03724f2e95ABE768", + "symbol": "SHEESHA" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "nfty", + "sourceName": "NFTY", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "NFTY", + "stakingContract": "Alpaca GrazingRange", + "tvl": "2773.890335150678547476", + "rewardToken": { + "address": "0x5774b2fc3e91af89f89141eacf76545e74265982", + "symbol": "NFTY" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "bmon", + "sourceName": "BMON", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "BMON", + "stakingContract": "Alpaca GrazingRange", + "tvl": "664.849010807686088734", + "rewardToken": { + "address": "0x08ba0619b1e7a582e0bce5bbe9843322c954c340", + "symbol": "BMON" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "moni", + "sourceName": "MONI", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "MONI", + "stakingContract": "Alpaca GrazingRange", + "tvl": "925.553569299127711816", + "rewardToken": { + "address": "0x9573c88aE3e37508f87649f87c4dd5373C9F31e0", + "symbol": "MONI" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "polar", + "sourceName": "POLAR", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "POLAR", + "stakingContract": "Alpaca GrazingRange", + "tvl": "40.764977000540420838", + "rewardToken": { + "address": "0xC64c9B30C981fc2eE4e13d0CA3f08258e725fd24", + "symbol": "POLAR" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "lucky", + "sourceName": "LUCKY", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "LUCKY", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1577.432957045012529182", + "rewardToken": { + "address": "0xc3D912863152E1Afc935AD0D42d469e7C6B05B77", + "symbol": "LUCKY" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "pots", + "sourceName": "POTS", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "POTS", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1374.52719458603637364", + "rewardToken": { + "address": "0x3fcca8648651e5b974dd6d3e50f61567779772a8", + "symbol": "POTS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "pear", + "sourceName": "PEAR", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "PEAR", + "stakingContract": "Alpaca GrazingRange", + "tvl": "78.824093509005573692", + "rewardToken": { + "address": "0xdf7c18ed59ea738070e665ac3f5c258dcc2fbad8", + "symbol": "PEAR" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "qbt", + "sourceName": "QBT", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "QBT", + "stakingContract": "Alpaca GrazingRange", + "tvl": "148.217860580693487211", + "rewardToken": { + "address": "0x17b7163cf1dbd286e262ddc68b553d899b93f526", + "symbol": "QBT" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "dvi", + "sourceName": "DVI", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "DVI", + "stakingContract": "Alpaca GrazingRange", + "tvl": "114.371179925127770676", + "rewardToken": { + "address": "0x758fb037a375f17c7e195cc634d77da4f554255b", + "symbol": "DVI" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "naos", + "sourceName": "NAOS", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "NAOS", + "stakingContract": "Alpaca GrazingRange", + "tvl": "453.59814811279449229", + "rewardToken": { + "address": "0x758d08864fb6cce3062667225ca10b8f00496cc2", + "symbol": "NAOS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "bmxx", + "sourceName": "bMXX", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "bMXX", + "stakingContract": "Alpaca GrazingRange", + "tvl": "20099.155116479365357796", + "rewardToken": { + "address": "0x4131b87F74415190425ccD873048C708F8005823", + "symbol": "bMXX" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "belt", + "sourceName": "BELT", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "BELT", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1889.260390626369405411", + "rewardToken": { + "address": "0xE0e514c71282b6f4e823703a39374Cf58dc3eA4f", + "symbol": "BELT" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "bor", + "sourceName": "BOR", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "BOR", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1734.888838180870900264", + "rewardToken": { + "address": "0x92D7756c60dcfD4c689290E8A9F4d263b3b32241", + "symbol": "BOR" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "bry", + "sourceName": "BRY", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "BRY", + "stakingContract": "Alpaca GrazingRange", + "tvl": "240.351690170163429842", + "rewardToken": { + "address": "0xf859Bf77cBe8699013d6Dbc7C2b926Aaf307F830", + "symbol": "BRY" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "cws", + "sourceName": "pCWS", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "pCWS", + "stakingContract": "Alpaca GrazingRange", + "tvl": "169.928255120092837409", + "rewardToken": { + "address": "0xbcf39F0EDDa668C58371E519AF37CA705f2bFcbd", + "symbol": "pCWS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "swingby", + "sourceName": "SWINGBY", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "SWINGBY", + "stakingContract": "Alpaca GrazingRange", + "tvl": "306.761953530936529428", + "rewardToken": { + "address": "0x71de20e0c4616e7fcbfdd3f875d568492cbe4739", + "symbol": "SWINGBY" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "dodo", + "sourceName": "DODO", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "DODO", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1146.168704886238849434", + "rewardToken": { + "address": "0x67ee3cb086f8a16f34bee3ca72fad36f7db929e2", + "symbol": "DODO" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "oddz", + "sourceName": "ODDZ", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "ODDZ", + "stakingContract": "Alpaca GrazingRange", + "tvl": "501.970841956738895099", + "rewardToken": { + "address": "0xcd40f2670cf58720b694968698a5514e924f742d", + "symbol": "ODDZ" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "form", + "sourceName": "FORM", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "FORM", + "stakingContract": "Alpaca GrazingRange", + "tvl": "26666.306239378910814627", + "rewardToken": { + "address": "0x25A528af62e56512A19ce8c3cAB427807c28CC19", + "symbol": "FORM" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "orbs", + "sourceName": "ORBS", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "ORBS", + "stakingContract": "Alpaca GrazingRange", + "tvl": "3920.29210501479586617", + "rewardToken": { + "address": "0xebd49b26169e1b52c04cfd19fcf289405df55f80", + "symbol": "ORBS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "wex", + "sourceName": "WEX", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "WEX", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1412.775569591508875067", + "rewardToken": { + "address": "0xa9c41A46a6B3531d28d5c32F6633dd2fF05dFB90", + "symbol": "WEX" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "pmon", + "sourceName": "PMON", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "PMON", + "stakingContract": "Alpaca GrazingRange", + "tvl": "829.262542596337901114", + "rewardToken": { + "address": "0x1796ae0b0fa4862485106a0de9b654efe301d0b2", + "symbol": "PMON" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "pha", + "sourceName": "PHA", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "PHA", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1273.253759112470720977", + "rewardToken": { + "address": "0x0112e557d400474717056c4e6d40edd846f38351", + "symbol": "PHA" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "alm", + "sourceName": "ALM", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "ALM", + "stakingContract": "Alpaca GrazingRange", + "tvl": "20.433407441062217236", + "rewardToken": { + "address": "0x7c38870e93a1f959cb6c533eb10bbc3e438aac11", + "symbol": "ALM" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "kala", + "sourceName": "KALA", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "KALA", + "stakingContract": "Alpaca GrazingRange", + "tvl": "13.222452014636982563", + "rewardToken": { + "address": "0x32299c93960bb583a43c2220dc89152391a610c5", + "symbol": "KALA" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + } + ], + "protocolApr": "0", + "totalApr": "0.0", + "totalApy": "0.0", + "totalSupply": "5805830.154161486815143638", + "totalToken": "5805830.154161486815143638", + "totalFloating": "5805830.154161486815143638", + "totalBorrowed": "0.0", + "tvl": "1156659.59046485314004644", + "floatingTvl": "1156659.59046485314004644", + "borrowingInterestPercent": "0.0", + "baseToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "ibToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "baseTokenPerIbToken": "1.13993991635637744", + "lendingApr": "3.7420481160226525", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-usdt", + "sourceName": "USDT Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibUSDT", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "2024287.998076191895436691", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0x158Da805682BdC8ee32d52833aD41E74bb951E59", + "symbol": "ibUSDT" + } + } + ], + "protocolApr": "0", + "totalApr": "3.7420481160226525", + "totalApy": "3.812944", + "totalSupply": "8183176.594378125657029483", + "totalToken": "8181513.265574423357841273", + "totalFloating": "3457583.91435695154147766", + "totalBorrowed": "4725592.680021174115551823", + "tvl": "8175610.450756149348391959", + "floatingTvl": "3455089.329687515193694334", + "borrowingInterestPercent": "7.99999999999997", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "ibToken": { + "address": "0x158Da805682BdC8ee32d52833aD41E74bb951E59", + "symbol": "ibUSDT" + } + }, + { + "key": "btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "baseTokenPerIbToken": "0.0", + "lendingApr": "0.0", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-btcb", + "sourceName": "BTCB Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibBTCB", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "0.0", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0x08FC9Ba2cAc74742177e0afC3dC8Aed6961c24e7", + "symbol": "ibBTCB" + } + } + ], + "protocolApr": "0", + "totalApr": "0.0", + "totalApy": "0.0", + "totalSupply": "0.0", + "totalToken": "0.0", + "totalFloating": "0.0", + "totalBorrowed": "0.0", + "tvl": "0.0", + "floatingTvl": "0.0", + "borrowingInterestPercent": "0.0", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "ibToken": { + "address": "0x08FC9Ba2cAc74742177e0afC3dC8Aed6961c24e7", + "symbol": "ibBTCB" + } + }, + { + "key": "tusd", + "sourceName": "TUSD Vault", + "symbol": "TUSD", + "baseTokenPerIbToken": "1.029277729657246811", + "lendingApr": "0.0", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-tusd", + "sourceName": "TUSD Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibTUSD", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "793.816268841739444981", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0x3282d2a151ca00BfE7ed17Aa16E42880248CD3Cd", + "symbol": "ibTUSD" + } + } + ], + "protocolApr": "0", + "totalApr": "0.0", + "totalApy": "0.0", + "totalSupply": "1414.257830889835942593", + "totalToken": "1414.257830889835942593", + "totalFloating": "1414.257830889835942593", + "totalBorrowed": "0.0", + "tvl": "1378.071152733388577086", + "floatingTvl": "1378.071152733388577086", + "borrowingInterestPercent": "0.0", + "baseToken": { + "address": "0x14016e85a25aeb13065688cafb43044c2ef86784", + "symbol": "TUSD" + }, + "ibToken": { + "address": "0x3282d2a151ca00BfE7ed17Aa16E42880248CD3Cd", + "symbol": "ibTUSD" + } + }, + { + "key": "usdc", + "sourceName": "USDC Vault", + "symbol": "USDC", + "baseTokenPerIbToken": "1.060033228709378442", + "lendingApr": "0.0", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-usdc", + "sourceName": "Interest Bearing USDC", + "apr": "0.0", + "stakingTokenSymbol": "ibUSDC", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "13154.327993656064647335", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0x800933D685E7Dc753758cEb77C8bd34aBF1E26d7", + "symbol": "ibUSDC" + } + } + ], + "protocolApr": "0", + "totalApr": "0.0", + "totalApy": "0.0", + "totalSupply": "0.0", + "totalToken": "53000.105808596090002776", + "totalFloating": "0.0", + "totalBorrowed": "0.0", + "tvl": "52882.022813112997794163", + "floatingTvl": "0.0", + "borrowingInterestPercent": "0.0", + "baseToken": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "ibToken": { + "address": "0x800933D685E7Dc753758cEb77C8bd34aBF1E26d7", + "symbol": "ibUSDC" + } + }, + { + "key": "cake", + "sourceName": "CAKE Vault", + "symbol": "CAKE", + "baseTokenPerIbToken": "1.153521656723772476", + "lendingApr": "0.6531715109556666", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-cake", + "sourceName": "Interest Bearing CAKE", + "apr": "0.0", + "stakingTokenSymbol": "ibCAKE", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "26005.765388656115415992", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0xfF693450dDa65df7DD6F45B4472655A986b147Eb", + "symbol": "ibCAKE" + } + } + ], + "protocolApr": "0", + "totalApr": "0.6531715109556666", + "totalApy": "0.655309", + "totalSupply": "150798.54832458156376797", + "totalToken": "150794.256627069438789517", + "totalFloating": "123715.455129215568081764", + "totalBorrowed": "27083.093195365995686206", + "tvl": "472801.251636998390562247", + "floatingTvl": "387898.208726829230079746", + "borrowingInterestPercent": "4.4899459405059785", + "baseToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "ibToken": { + "address": "0xfF693450dDa65df7DD6F45B4472655A986b147Eb", + "symbol": "ibCAKE" + } + } + ], + "farmingPools": [ + { + "key": "pcs-busd-alpaca", + "sourceName": "PancakeSwap ALPACA-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "19375.903177908573132515", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "67.0101971279724645", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-alpaca-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "pcs-busd-alpaca", + "sourceName": "ALPACA Vault", + "symbol": "ALPACA", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "67.0101971279724645", + "totalApy": "95.323623", + "dailyTotalApr": "0.1835895811725273", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-busd-alpaca/-/open?leverage=3&configKey=pcs-alpaca-busd", + "type": "LP", + "workingToken": { + "address": "0x7752e1FA9F3a2e860856458517008558DEb989e3", + "symbol": "ALPACA-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + } + }, + "workers": [ + { + "key": "pcs-alpaca-busd", + "sourceName": "PancakeSwap ALPACA-BUSD Worker", + "workerAddress": "0x4BfE9489937d6C0d7cD6911F1102c25c7CBc1B5A", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "pcs-busd-alpaca", + "sourceName": "PancakeSwap BUSD-ALPACA Worker", + "workerAddress": "0xeF1C5D2c20b22Ae50437a2F3bd258Ab1117D1BaD", + "baseToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-cake-bnb", + "sourceName": "PancakeSwap CAKE-BNB", + "tvl": "38887.632524355838278238", + "tvlInMasterChef": "49565937.779748480238554515", + "farmRewardApr": "0.8799865121933379", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "2.98662478602921", + "farmRewardValuePerYear": "479311.612202119392144", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "CAKE Vault", + "borrowingInterests": [ + { + "key": "pcs-cake-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + }, + { + "key": "pcs-bnb-cake", + "sourceName": "CAKE Vault", + "symbol": "CAKE", + "interestPercent": "8.979891881011957", + "interestPercentAt2XLeverage": "4.4899459405059785", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "3.8666112982225479", + "totalApy": "3.942125", + "dailyTotalApr": "0.010593455611568624", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-cake-bnb/-/open?leverage=3&configKey=pcs-cake-bnb", + "type": "LP", + "workingToken": { + "address": "0x0eD7e52944161450477ee417DE9Cd3a859b14fD0", + "symbol": "CAKE-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + } + }, + "workers": [ + { + "key": "pcs-cake-bnb", + "sourceName": "PancakeSwap CAKE-BNB Worker", + "workerAddress": "0x7Af938f0EFDD98Dc513109F6A7E85106D26E16c4", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "30.544027110866864236", + "farmToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "farmTokenAmount": "3839.060536376829906559", + "tvl": "24083.252431833720540417" + }, + { + "key": "pcs-bnb-cake", + "sourceName": "PancakeSwap BNB-CAKE Worker", + "workerAddress": "0x676f1A2D354c6f11C23183E18DDd06B317331453", + "baseToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "baseTokenAmount": "2359.935043640488998428", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "18.775926888839384942", + "tvl": "14804.380092522117737821" + } + ] + }, + { + "key": "pcs-cake-busd", + "sourceName": "PancakeSwap CAKE-BUSD", + "tvl": "0.736941262948770136", + "tvlInMasterChef": "836024.16794494394336235", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "14.8230941513959905", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-cake-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "pcs-busd-cake", + "sourceName": "CAKE Vault", + "symbol": "CAKE", + "interestPercent": "8.979891881011957", + "interestPercentAt2XLeverage": "4.4899459405059785", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "14.8230941513959905", + "totalApy": "15.974581", + "dailyTotalApr": "0.0406112168531397", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-cake-busd/-/open?leverage=3&configKey=pcs-cake-busd", + "type": "LP", + "workingToken": { + "address": "0x804678fa97d91B974ec2af3c843270886528a9E6", + "symbol": "CAKE-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + } + }, + "workers": [ + { + "key": "pcs-cake-busd", + "sourceName": "PancakeSwap CAKE-BUSD Worker", + "workerAddress": "0x844766F737bC9442b9491da1eB7a5cd02b203F06", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "pcs-busd-cake", + "sourceName": "PancakeSwap BUSD-CAKE Worker", + "workerAddress": "0xBEd0673c5795367Afa01BB294DE505B573fa5a29", + "baseToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "baseTokenAmount": "0.117519263685762053", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "0.368470631474385068", + "tvl": "0.736941262948770136" + } + ] + }, + { + "key": "pcs-cake-usdt", + "sourceName": "PancakeSwap CAKE-USDT", + "tvl": "537187.411467987291910862", + "tvlInMasterChef": "1529800.531501901683422422", + "farmRewardApr": "3.5151526120066194", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "42.980178565930557", + "farmRewardValuePerYear": "19697.73748775833176", + "borrowingInterestPercent": "8.979891881011957", + "borrowingInterestSourceName": "CAKE Vault", + "borrowingInterests": [ + { + "key": "pcs-cake-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "15.99999999999994", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "3.0" + }, + { + "key": "pcs-usdt-cake", + "sourceName": "CAKE Vault", + "symbol": "CAKE", + "interestPercent": "8.979891881011957", + "interestPercentAt2XLeverage": "4.4899459405059785", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "37.5154392969252194", + "totalApy": "45.493573", + "dailyTotalApr": "0.102782025471027998", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-cake-usdt/-/open?leverage=3&configKey=pcs-cake-usdt", + "type": "LP", + "workingToken": { + "address": "0xA39Af17CE4a8eb807E076805Da1e2B8EA7D0755b", + "symbol": "CAKE-USDT PCS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + } + }, + "workers": [ + { + "key": "pcs-cake-usdt", + "sourceName": "PancakeSwap CAKE-USDT Worker", + "workerAddress": "0xECb008F4741465F9F169EC11A50Aa8871E423F33", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "202850.539577623277510507", + "farmToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "farmTokenAmount": "64584.901277977505990278", + "tvl": "405277.2638537006818808" + }, + { + "key": "pcs-usdt-cake", + "sourceName": "PancakeSwap USDT-CAKE Worker", + "workerAddress": "0x3Afc9A1B8A42C77aE7d23463c6FED26615827291", + "baseToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "baseTokenAmount": "21021.173949465677793161", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "66024.045772726218421571", + "tvl": "131910.147614286610030062" + } + ] + }, + { + "key": "pcs-stkbnb-bnb", + "sourceName": "PancakeSwap STKBNB-BNB", + "tvl": "0.0", + "tvlInMasterChef": "5728.228376596996280781", + "farmRewardApr": "2.6", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "1.0403678301126725", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-stkbnb-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "30.5891405562788595", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "3.6403678301126725", + "totalApy": "3.707252", + "dailyTotalApr": "0.009973610493459376", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-stkbnb-bnb/-/open?leverage=2&configKey=pcs-stkbnb-bnb", + "type": "LP", + "workingToken": { + "address": "0xaA2527ff1893e0D40d4a454623d362B79E8bb7F1", + "symbol": "STKBNB-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0xc2E9d07F66A89c44062459A47a0D2Dc038E4fb16", + "symbol": "STKBNB" + } + }, + "workers": [ + { + "key": "pcs-stkbnb-bnb", + "sourceName": "PancakeSwap STKBNB-BNB Worker", + "workerAddress": "0xdFcED03B6C764D029b4536e86903e6fA8C47294d", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xc2E9d07F66A89c44062459A47a0D2Dc038E4fb16", + "symbol": "STKBNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + } + ], + "fairLaunchStakingPools": [ + { + "key": "ib-alpaca", + "sourceName": "ALPACA Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibALPACA", + "tvl": "723542.55078928451301442", + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "ib-wbnb", + "sourceName": "BNB Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibBNB", + "tvl": "7397891.367805670231216147", + "stakingToken": { + "address": "0xd7D069493685A581d27824Fc46EdA46B7EfC0063", + "symbol": "ibBNB" + } + }, + { + "key": "ib-busd", + "sourceName": "BUSD Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibBUSD", + "tvl": "0.0", + "stakingToken": { + "address": "0x7C9e73d4C71dae564d41F78d56439bB4ba87592f", + "symbol": "ibBUSD" + } + }, + { + "key": "ib-usdt", + "sourceName": "USDT Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibUSDT", + "tvl": "2024287.998076191895436691", + "stakingToken": { + "address": "0x158Da805682BdC8ee32d52833aD41E74bb951E59", + "symbol": "ibUSDT" + } + }, + { + "key": "ib-tusd", + "sourceName": "TUSD Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibTUSD", + "tvl": "793.816268841739444981", + "stakingToken": { + "address": "0x3282d2a151ca00BfE7ed17Aa16E42880248CD3Cd", + "symbol": "ibTUSD" + } + }, + { + "key": "ib-btcb", + "sourceName": "BTCB Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibBTCB", + "tvl": "0.0", + "stakingToken": { + "address": "0x08FC9Ba2cAc74742177e0afC3dC8Aed6961c24e7", + "symbol": "ibBTCB" + } + }, + { + "key": "ib-eth", + "sourceName": "ETH Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibETH", + "tvl": "0.0", + "stakingToken": { + "address": "0xbfF4a34A4644a113E8200D7F1D79b3555f723AfE", + "symbol": "ibETH" + } + }, + { + "key": "ib-usdc", + "sourceName": "Interest Bearing USDC", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibUSDC", + "tvl": "13154.327993656064647335", + "stakingToken": { + "address": "0x800933D685E7Dc753758cEb77C8bd34aBF1E26d7", + "symbol": "ibUSDC" + } + }, + { + "key": "ib-cake", + "sourceName": "Interest Bearing CAKE", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibCAKE", + "tvl": "26005.765388656115415992", + "stakingToken": { + "address": "0xfF693450dDa65df7DD6F45B4472655A986b147Eb", + "symbol": "ibCAKE" + } + }, + { + "key": "debt-alpaca", + "sourceName": "ALPACA Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtALPACA", + "tvl": "0.0", + "stakingToken": { + "address": "0x11362eA137A799298306123EEa014b7809A9DB40", + "symbol": "debtALPACA" + } + }, + { + "key": "debt-bnb", + "sourceName": "BNB Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtBNB", + "tvl": "10444448.804637284471783982", + "stakingToken": { + "address": "0x6A3487CE84FD83c66B83e598b18412bD1D2A55F9", + "symbol": "debtBNB" + } + }, + { + "key": "debt-busd", + "sourceName": "BUSD Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtBUSD", + "tvl": "0.0", + "stakingToken": { + "address": "0x02dA7035beD00ae645516bDb0c282A7fD4AA7442", + "symbol": "debtBUSD" + } + }, + { + "key": "debt-usdt", + "sourceName": "USDT Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtUSDT", + "tvl": "4722183.249810490744745045", + "stakingToken": { + "address": "0x3B4fBB2b8536AB144048aBaFdd27eaF52f0fa4DC", + "symbol": "debtUSDT" + } + }, + { + "key": "debt-tusd", + "sourceName": "TUSD Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtTUSD", + "tvl": "0.0", + "stakingToken": { + "address": "0xb76ED435B93477511e4604c441550A23d5aeAF84", + "symbol": "debtTUSD" + } + }, + { + "key": "debt-btcb", + "sourceName": "BTCB Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtBTCB", + "tvl": "0.0", + "stakingToken": { + "address": "0x262de19B5fde97eD5bdBa10d630E34Fb9a1b59B2", + "symbol": "debtBTCB" + } + }, + { + "key": "debt-eth", + "sourceName": "ETH Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtETH", + "tvl": "0.0", + "stakingToken": { + "address": "0x92110af24d280E412b3a89691f6B0B9E09258fe6", + "symbol": "debtETH" + } + }, + { + "key": "debt-usdc", + "sourceName": "USDC Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtUSDC", + "tvl": "0.0", + "stakingToken": { + "address": "0x426BdFE8cAB2c4720B36ABBdc3ff08144BC361f3", + "symbol": "debtUSDC" + } + }, + { + "key": "debt-cake", + "sourceName": "CAKE Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtCAKE", + "tvl": "84916.499125284821725087", + "stakingToken": { + "address": "0xD2E855f8c3A69323fd4a46444C97c9813134268D", + "symbol": "debtCAKE" + } + }, + { + "key": "ausd-busd-lp", + "sourceName": "AUSD-BUSD LP token", + "apr": "0.0", + "apy": "0.0", + "symbol": "AUSD-BUSD PCS LP", + "tvl": "1085.208685928481560472", + "stakingToken": { + "address": "0x877264983807D568Cf0B61344cB03012c1F11B17", + "symbol": "AUSD-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xDCEcf0664C33321CECA2effcE701E710A2D28A3F", + "symbol": "AUSD" + } + } + }, + { + "key": "alpaca-wbnb-lp-v2", + "sourceName": "ALPACA-wBNB LP token V2", + "apr": "0.0", + "apy": "0.0", + "symbol": "ALPACA-BNB PCS LP", + "tvl": "47266.597263748447092755", + "stakingToken": { + "address": "0x1099C2E6Ed6ebA95099c205b599B409305783E43", + "symbol": "ALPACA-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + } + } + }, + { + "key": "alpaca-wbnb-lp-v1", + "sourceName": "ALPACA-wBNB LP token V1", + "apr": "0.0", + "apy": "0.0", + "symbol": "ALPACA-BNB PCS LP", + "tvl": "41071.540988255581722026", + "stakingToken": { + "address": "0xF3CE6Aac24980E6B657926dfC79502Ae414d3083", + "symbol": "ALPACA-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + } + } + }, + { + "key": "ausd-3eps-lp", + "sourceName": "AUSD-3EPS LP token", + "apr": "0.0", + "apy": "0.0", + "symbol": "AUSD-3EPS", + "tvl": "10649.888446785198252108", + "stakingToken": { + "address": "0xae70E3f6050d6AB05E03A50c655309C2148615bE", + "symbol": "AUSD-3EPS" + } + }, + { + "key": "s-alpaca", + "sourceName": "Stronk Alpaca", + "apr": "0.0", + "apy": "0.0", + "symbol": "sALPACA", + "tvl": "50539.010943526773084226", + "stakingToken": { + "address": "0x6F695Bd5FFD25149176629f8491A5099426Ce7a7", + "symbol": "sALPACA" + } + } + ], + "ausdPools": [ + { + "key": "ib-busd", + "sourceName": "BUSD", + "lendingApr": "32.399999998707888", + "stakingApr": "0.0", + "stabilityFee": "4.5", + "totalApr": "27.899999998707888", + "totalApy": "32.180734", + "tvl": "0.0" + }, + { + "key": "ib-usdt", + "sourceName": "USDT", + "lendingApr": "3.7420481160226525", + "stakingApr": "0.0", + "stabilityFee": "4.5", + "totalApr": "-0.7579518839773475", + "totalApy": "-0.755087", + "tvl": "41270.972259292882363237" + }, + { + "key": "ib-bnb", + "sourceName": "BNB", + "lendingApr": "23.9999545743885367", + "stakingApr": "0.0", + "stabilityFee": "3.25", + "totalApr": "20.7499545743885367", + "totalApy": "23.059716", + "tvl": "36365.494728330763086306" + } + ], + "grasshousePools": [ + { + "key": "alpaca", + "name": "Alpaca", + "address": "0x6Fee87f744FC612948001b09B2808c87B91dDC3c", + "apr": "0.0", + "apy": "0.0", + "fairlaunchApr": "0.0", + "protocolApr": "0.0", + "automatedVaultApr": "0.0", + "accumRedistribute": "0.0", + "earlyWithdrawApr": "0.0", + "alperpApr": "0.0", + "moneyMarketApr": "0.0", + "lendingVaultApr": "0.0", + "avv3Apr": "0.0" + }, + { + "key": "scientix", + "name": "Scientix", + "address": "0x5876bea7920f4a542D8906470bCbCD56c554DD6E", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "thena", + "name": "Thena", + "address": "0xC7e4D54d287d47449432481a6924f2B167C7802F", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "high-street", + "name": "HighStreet", + "address": "0xF4D66C03766B434814Cb216899ff61ad96F0d109", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "p-stake", + "name": "pSTAKE", + "address": "0x7e9A24ef69747667Ef247714879D1eBC18706550", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "pandora-spirit", + "name": "Pandora Spirit", + "address": "0x95bf836F6225c50cA551DB33256Edc9CEA5D79B3", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "gymnet", + "name": "Gymnet", + "address": "0x1c44E11e102a011C847CFFC184EC204f9ED33002", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "bit-hotel", + "name": "Bit Hotel", + "address": "0xc34dcf8f217Ad3130C1F53B425C8c7b9d8638D05", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "outer-ring", + "name": "Outer Ring", + "address": "0xf73bd04e48f48238449081a0C328151e9674F703", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "tiny-coin", + "name": "Tiny Coin", + "address": "0x35d76C2bAcFbfd5E4769Bbd5d4334848ee35085b", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "bi-swap", + "name": "BiSwap", + "address": "0x99494EbC70930c2924117C84de55f0924F7309da", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "x-world-game", + "name": "XWorldGame", + "address": "0x6eFA5037a0d7bE675D0B937eDEb41554871CdD16", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "deap", + "name": "DEAP", + "address": "0x58BD8fBe2156d3C9ef7B33cFe6D2CFB3F5F0C52A", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "delta-thetha", + "name": "Delta Thetha", + "address": "0xdf4445022725C08D1E66E68387816F365a14A963", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "land-share", + "name": "LandShare", + "address": "0x4C8F9534731eC017A7a4e71F1045f4a8Dd9f4c8A", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "pay-b-swap", + "name": "PayBSwap", + "address": "0x35Cba40D30A0B814a53A09b667405A1a0A3e2AE5", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "thetan-arena", + "name": "Thetan Arena", + "address": "0x3Fd1029D4Db12DfdAa6B92BfeEd6E41e21Fdc4b4", + "apr": "0.0", + "apy": "0.0" + } + ], + "revenueDistributors": [ + { + "key": "ALPACA", + "name": "ALPACA", + "address": "0xabbee41c790556b1c1994abbcee898933dd8c609", + "apr": "6.5015749600982908", + "apy": "6.713249", + "lendingVaultApr": "5.2838828630085432", + "protocolApr": "0.265281889013356", + "alperpApr": "0.2880293774102624", + "moneyMarketApr": "0.0939377767153083", + "avv3Apr": "0.5663134369832677", + "accumRedistribute": "1561.652332909069638312", + "earlyWithdrawApr": "0.0041296169675532" + } + ], + "strategyPools": [ + { + "key": "l8x-usdtbnb-pcs1", + "name": "Long 8x USDT-BNB PCS1", + "strategyType": "Long", + "address": "0xB7da7edcb1C0fE56E0124fCc22b26dB0111135a9", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "23.361832647036132615", + "tvlIncludingDebt": "23.361832647036132615", + "shareTokenPrice": "1.200903355435393251", + "longTokenPrice": "394.63753122", + "shortTokenPrice": "1.00044", + "capacity": "0.0", + "inceptionDate": "2022-06-09T00:00:00.000Z", + "iuToken": { + "address": "0xB7da7edcb1C0fE56E0124fCc22b26dB0111135a9", + "symbol": "L8x-USDTBNB-PCS1" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.029606564831016105", + "shortTokenAmount": "11.672835688990005736", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l8x-usdtbnb-bsw1", + "name": "Long 8x USDT-BNB BSW1", + "strategyType": "Long", + "address": "0x979123f5550f502283997Fe9A4DeD8D45de120E3", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "61.736628595953866199", + "tvlIncludingDebt": "61.736628595953866199", + "shareTokenPrice": "1.140887604884937643", + "longTokenPrice": "394.63753122", + "shortTokenPrice": "1.00044", + "capacity": "0.0", + "inceptionDate": "2023-02-24T00:00:00.000Z", + "iuToken": { + "address": "0x979123f5550f502283997Fe9A4DeD8D45de120E3", + "symbol": "L8x-USDTBNB-BSW1" + }, + "workingToken": { + "address": "0x8840C6252e2e86e545deFb6da98B2a0E26d8C1BA", + "symbol": "BNB-USDT BS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.078215987689959392", + "shortTokenAmount": "30.856087692514612715", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l8x-busdbtcb-pcs1", + "name": "Long 8x BUSD-BTCB PCS1", + "strategyType": "Long", + "address": "0x98a7D8C26D5925d69F6D685E7b723F81325Fa035", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "1.781073898569448944", + "longTokenPrice": "57218.54068315", + "shortTokenPrice": "1.00087562", + "capacity": "5000000.0", + "inceptionDate": "2022-06-09T00:00:00.000Z", + "iuToken": { + "address": "0x98a7D8C26D5925d69F6D685E7b723F81325Fa035", + "symbol": "L8x-BUSDBTCB-PCS1" + }, + "workingToken": { + "address": "0xF45cd219aEF8618A92BAa7aD848364a158a24F33", + "symbol": "BTCB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n8x-bnbusdt-bsw1", + "name": "Market Neutral 8x BNB-USDT BSW1", + "strategyType": "Neutral", + "address": "0x6407bB0B0de04539Cd7bac7cd11f57303e625678", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.955423209374009341", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "5000000.0", + "inceptionDate": "2022-06-09T00:00:00.000Z", + "iuToken": { + "address": "0x6407bB0B0de04539Cd7bac7cd11f57303e625678", + "symbol": "n8x-BNBUSDT-BSW1" + }, + "workingToken": { + "address": "0x8840C6252e2e86e545deFb6da98B2a0E26d8C1BA", + "symbol": "BNB-USDT BS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n8x-bnbusdt-pcs3", + "name": "Market Neutral 8x BNB-USDT PCS3", + "strategyType": "Neutral", + "address": "0x3756b184d647EC3690Ce47ec3C182Db046ef8B2e", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.941168040850273322", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "15000000.0", + "inceptionDate": "2022-06-09T00:00:00.000Z", + "iuToken": { + "address": "0x3756b184d647EC3690Ce47ec3C182Db046ef8B2e", + "symbol": "n8x-BNBUSDT-PCS3" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l3x-busdbtcb-pcs2", + "name": "Long 3x BUSD-BTCB PCS2", + "strategyType": "Long", + "address": "0xA1679223b7585725aFb425a6F59737a05e085C40", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "1.887657180977999312", + "longTokenPrice": "57218.54068315", + "shortTokenPrice": "1.00087562", + "capacity": "5000000.0", + "inceptionDate": "2022-05-24T00:00:00.000Z", + "iuToken": { + "address": "0xA1679223b7585725aFb425a6F59737a05e085C40", + "symbol": "L3x-BUSDBTCB-PCS2" + }, + "workingToken": { + "address": "0xF45cd219aEF8618A92BAa7aD848364a158a24F33", + "symbol": "BTCB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l3x-usdteth-bsw1", + "name": "Long 3x USDT-ETH BSW1", + "strategyType": "Long", + "address": "0xB8d7B5A245f0080814f19dFE58037072315B7d19", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "1.620264074660746068", + "longTokenPrice": "3257.79", + "shortTokenPrice": "1.00044", + "capacity": "5000000.0", + "inceptionDate": "2022-05-12T00:00:00.000Z", + "iuToken": { + "address": "0xB8d7B5A245f0080814f19dFE58037072315B7d19", + "symbol": "L3x-ETHUSDT-BSW1" + }, + "workingToken": { + "address": "0x63b30de1A998e9E64FD58A21F68D323B9BcD8F85", + "symbol": "USDT-ETH BS LP", + "tokenA": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n3x-bnbusdt-pcs2", + "name": "Market Neutral 3x BNB-USDT PCS2", + "strategyType": "Neutral", + "address": "0x96C607E34008630dC8132F517A33Be2772835f9c", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.985785882988493695", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "25000000.0", + "inceptionDate": "2022-04-26T00:00:00.000Z", + "iuToken": { + "address": "0x96C607E34008630dC8132F517A33Be2772835f9c", + "symbol": "n3x-BNBUSDT-PCS2" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n3x-bnbusdt-pcs3", + "name": "Market Neutral 3x BNB-USDT PCS3", + "strategyType": "Neutral", + "address": "0xd1464C0D4424a353C4F243A11C806BdCbd783092", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.990385725040526615", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "10000000.0", + "inceptionDate": "2022-05-10T00:00:00.000Z", + "iuToken": { + "address": "0xd1464C0D4424a353C4F243A11C806BdCbd783092", + "symbol": "n3x-BNBUSDT-PCS3" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n3x-bnbbusd-pcs2", + "name": "Market Neutral 3x BNB-BUSD PCS2", + "strategyType": "Neutral", + "address": "0xD14ED91dcD2E06ED72F536008cCd581DA73adDB5", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.974881692303655331", + "longTokenPrice": "1.00087562", + "shortTokenPrice": "394.63753122", + "capacity": "25000000.0", + "inceptionDate": "2022-04-26T00:00:00.000Z", + "iuToken": { + "address": "0xD14ED91dcD2E06ED72F536008cCd581DA73adDB5", + "symbol": "n3x-BNBBUSD-PCS2" + }, + "workingToken": { + "address": "0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16", + "symbol": "BNB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n3x-ethusdt-bsw1", + "name": "Market Neutral 3x ETH-USDT BSW1", + "strategyType": "Neutral", + "address": "0xf8130b2B4717ABB7F23A0433E634AAc1BB6aBE22", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.965766631284256576", + "longTokenPrice": "1.00044", + "shortTokenPrice": "3257.79", + "capacity": "5000000.0", + "inceptionDate": "2022-05-10T00:00:00.000Z", + "iuToken": { + "address": "0xf8130b2B4717ABB7F23A0433E634AAc1BB6aBE22", + "symbol": "n3x-ETHUSDT-BSW1" + }, + "workingToken": { + "address": "0x63b30de1A998e9E64FD58A21F68D323B9BcD8F85", + "symbol": "USDT-ETH BS LP", + "tokenA": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n8x-busdusdt-pcs1", + "name": "Market Neutral 8x BUSD-USDT PCS1", + "strategyType": "Neutral", + "address": "0xE63d2180A7DE06C5e2aF9AC80122537557B49567", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.977258305171525905", + "longTokenPrice": "1.00044", + "shortTokenPrice": "1.00087562", + "capacity": "0.0", + "inceptionDate": "2023-05-23T00:00:00.000Z", + "iuToken": { + "address": "0xE63d2180A7DE06C5e2aF9AC80122537557B49567", + "symbol": "n8x-BUSDUSDT-PCS1" + }, + "workingToken": { + "address": "0x7EFaEf62fDdCCa950418312c6C91Aef321375A00", + "symbol": "USDT-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l3x-busdbnb-pcs1", + "name": "Long 3x BUSD-BNB PCS1", + "strategyType": "Long", + "address": "0xcC125BBaFF77De472f236255DE6be0a3B4323064", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "1.196291975551781329", + "longTokenPrice": "394.63753122", + "shortTokenPrice": "1.00087562", + "capacity": "0.0", + "inceptionDate": "2022-05-26T00:00:00.000Z", + "iuToken": { + "address": "0xcC125BBaFF77De472f236255DE6be0a3B4323064", + "symbol": "L3x-BUSDBNB-PCS1" + }, + "workingToken": { + "address": "0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16", + "symbol": "BNB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l8x-busdbnb-pcs1", + "name": "Long 8x BUSD-BNB PCS1", + "strategyType": "Long", + "address": "0xE246e23869122E97D8fe2911aB9F28627BBa4e73", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "1.244027570505011047", + "longTokenPrice": "394.63753122", + "shortTokenPrice": "1.00087562", + "capacity": "0.0", + "inceptionDate": "2023-03-09T00:00:00.000Z", + "iuToken": { + "address": "0xE246e23869122E97D8fe2911aB9F28627BBa4e73", + "symbol": "L8x-BUSDBNB-PCS1" + }, + "workingToken": { + "address": "0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16", + "symbol": "BNB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l3x-busdbtcb-pcs1", + "name": "Long 3x BUSD-BTCB PCS1", + "strategyType": "Long", + "address": "0x4eE770919aB741cC84bBE8cD83C21d79785f37E9", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "43.768045286065616305", + "tvlIncludingDebt": "43.768045286065616305", + "shareTokenPrice": "2.043416394881249153", + "longTokenPrice": "57218.54068315", + "shortTokenPrice": "1.00087562", + "capacity": "0.0", + "inceptionDate": "2022-05-12T00:00:00.000Z", + "iuToken": { + "address": "0x4eE770919aB741cC84bBE8cD83C21d79785f37E9", + "symbol": "L3x-BUSDBTCB-PCS1" + }, + "workingToken": { + "address": "0xF45cd219aEF8618A92BAa7aD848364a158a24F33", + "symbol": "BTCB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.000383102403157033", + "shortTokenAmount": "21.828432335505068712", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n3x-bnbusdt-pcs1", + "name": "Market Neutral 3x BNB-USDT PCS1", + "strategyType": "Neutral", + "address": "0xe9Bd0B7333596d0a87DED9EE1a782AA052B711AB", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.973392790806838946", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "0.0", + "inceptionDate": "2022-03-24T00:00:00.000Z", + "iuToken": { + "address": "0xe9Bd0B7333596d0a87DED9EE1a782AA052B711AB", + "symbol": "n3x-BNBUSDT-PCS1" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n3x-bnbbusd-pcs1", + "name": "Market Neutral 3x BNB-BUSD PCS1", + "strategyType": "Neutral", + "address": "0x9fE96180AB2ADfaEBc735336f9213F26Bca99aa1", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.930194370756698067", + "longTokenPrice": "1.00087562", + "shortTokenPrice": "394.63753122", + "capacity": "0.0", + "inceptionDate": "2022-04-07T00:00:00.000Z", + "iuToken": { + "address": "0x9fE96180AB2ADfaEBc735336f9213F26Bca99aa1", + "symbol": "n3x-BNBBUSD-PCS1" + }, + "workingToken": { + "address": "0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16", + "symbol": "BNB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n8x-bnbusdt-pcs1", + "name": "Market Neutral 8x BNB-USDT PCS1", + "strategyType": "Neutral", + "address": "0x8e5CfA7C06F187B56537f7F0CaBfb55611Af6F16", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "21.890643643590451359", + "tvlIncludingDebt": "21.890643643590451359", + "shareTokenPrice": "0.813158823147807219", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "0.0", + "inceptionDate": "2022-03-24T00:00:00.000Z", + "iuToken": { + "address": "0x8e5CfA7C06F187B56537f7F0CaBfb55611Af6F16", + "symbol": "n8x-BNBUSDT-PCS1" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "10.937750057476029241", + "shortTokenAmount": "0.027742119807919062", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n8x-bnbusdt-pcs2", + "name": "Market Neutral 8x BNB-USDT PCS2", + "strategyType": "Neutral", + "address": "0xC57876a95A4f31a0A4FDB0329Fc78e00B092cC94", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.80568016587633979", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "0.0", + "inceptionDate": "2022-03-29T00:00:00.000Z", + "iuToken": { + "address": "0xC57876a95A4f31a0A4FDB0329Fc78e00B092cC94", + "symbol": "n8x-BNBUSDT-PCS2" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + } + ], + "overall": { + "tvl": "55609047.674386982365114576", + "tvlInfo": { + "lpTokenTvl": "24421267.062868195275956518", + "moneyMarketTvl": "13361662.038422648", + "vaultTvl": "5339273.351629826699601539", + "ausd3epsTvl": "10649.888446785198252108", + "alperpTvl": "1323640.837479479646628737", + "strategyVaultTvl": "150.757150172646066478", + "automatedVaultV3Tvl": "3069653.504651018", + "governanceTvl": "7533830.052256914050509155", + "others": "548920.181481942848100041" + }, + "ausdTotalSupply": "408957.823600483564640562", + "ausdTotalCollateralLocked": "77636.466987623645449543", + "grasshouseTotalApr": "6.5015749600982908", + "grasshouseTotalApy": "6.713249" + } + }, + "metadata": { + "dateTime": "2024-02-27T15:20:14.447Z", + "timestamp": 1709047214, + "processTime": 53 + } +} diff --git a/data.json b/data.json new file mode 100644 index 00000000..95356e61 --- /dev/null +++ b/data.json @@ -0,0 +1,9267 @@ +{ + "data": { + "lendingPools": [ + { + "key": "bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "baseTokenPerIbToken": "1.233812014423526327", + "lendingApr": "23.9999545743885367", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-wbnb", + "sourceName": "BNB Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibBNB", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "7397891.367805670231216147", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0xd7D069493685A581d27824Fc46EdA46B7EfC0063", + "symbol": "ibBNB" + } + } + ], + "protocolApr": "0", + "totalApr": "23.9999545743885367", + "totalApy": "27.124857", + "totalSupply": "27339.296895941923205542", + "totalToken": "27317.184566595243048777", + "totalFloating": "857.62093459290100713", + "totalBorrowed": "26481.675961349022198412", + "tvl": "10773975.79024290084291179", + "floatingTvl": "338248.151597895747203933", + "borrowingInterestPercent": "30.5891405562788595", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "ibToken": { + "address": "0xd7D069493685A581d27824Fc46EdA46B7EfC0063", + "symbol": "ibBNB" + } + }, + { + "key": "busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "baseTokenPerIbToken": "0.0", + "lendingApr": "32.399999998707888", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-busd", + "sourceName": "BUSD Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibBUSD", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "0.0", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0x7C9e73d4C71dae564d41F78d56439bB4ba87592f", + "symbol": "ibBUSD" + } + } + ], + "protocolApr": "0", + "totalApr": "32.399999998707888", + "totalApy": "38.264731", + "totalSupply": "8302898.780974642181632752", + "totalToken": "0.0", + "totalFloating": "0.0", + "totalBorrowed": "8302898.780974642181632752", + "tvl": "0.0", + "floatingTvl": "0.0", + "borrowingInterestPercent": "0.0", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "ibToken": { + "address": "0x7C9e73d4C71dae564d41F78d56439bB4ba87592f", + "symbol": "ibBUSD" + } + }, + { + "key": "eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "baseTokenPerIbToken": "0.0", + "lendingApr": "0.0", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-eth", + "sourceName": "ETH Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibETH", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "0.0", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0xbfF4a34A4644a113E8200D7F1D79b3555f723AfE", + "symbol": "ibETH" + } + } + ], + "protocolApr": "0", + "totalApr": "0.0", + "totalApy": "0.0", + "totalSupply": "0.0", + "totalToken": "0.0", + "totalFloating": "0.0", + "totalBorrowed": "0.0", + "tvl": "0.0", + "floatingTvl": "0.0", + "borrowingInterestPercent": "0.0", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "ibToken": { + "address": "0xbfF4a34A4644a113E8200D7F1D79b3555f723AfE", + "symbol": "ibETH" + } + }, + { + "key": "alpaca", + "sourceName": "ALPACA Vault", + "symbol": "ALPACA", + "baseTokenPerIbToken": "1.023501570692215271", + "lendingApr": "0.0", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-alpaca", + "sourceName": "ALPACA Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "723542.55078928451301442", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "scix", + "sourceName": "SCIX", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "SCIX", + "stakingContract": "Scientix StakingPools", + "tvl": "5542.56842246610593203", + "rewardToken": { + "address": "0x2cfc48cdfea0678137854f010b5390c5144c0aa5", + "symbol": "SCIX" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "latte", + "sourceName": "LATTE", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "LATTE", + "stakingContract": "LatteSwap MasterBarista", + "tvl": "1038.323677573393080361", + "rewardToken": { + "address": "0xa269A9942086f5F87930499dC8317ccC9dF2b6CB", + "symbol": "LATTE" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "xms", + "sourceName": "MarsEcosystem", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "XMS", + "stakingContract": "MarsEcosystem LiquidityMiningMaster", + "tvl": "2454.634344826626616092", + "rewardToken": { + "address": "0x7859B01BbF675d67Da8cD128a50D155cd881B576", + "symbol": "XMS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "eternal", + "sourceName": "ETERNAL", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "ETERNAL", + "stakingContract": "Alpaca GrazingRange", + "tvl": "318.970982877939879406", + "rewardToken": { + "address": "0xD44FD09d74cd13838F137B590497595d6b3FEeA4", + "symbol": "ETERNAL" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "plut", + "sourceName": "PLUT", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "PLUT", + "stakingContract": "Alpaca GrazingRange", + "tvl": "438.757561657666803573", + "rewardToken": { + "address": "0x2984f825bfe72e55e1725d5c020258e81ff97450", + "symbol": "PLUT" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "sps", + "sourceName": "SPS", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "SPS", + "stakingContract": "Alpaca GrazingRange", + "tvl": "41103.110095201345986208", + "rewardToken": { + "address": "0x1633b7157e7638C4d6593436111Bf125Ee74703F", + "symbol": "SPS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "caps", + "sourceName": "CAPS", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "CAPS", + "stakingContract": "Alpaca GrazingRange", + "tvl": "6449.602422849510155178", + "rewardToken": { + "address": "0xffba7529ac181c2ee1844548e6d7061c9a597df4", + "symbol": "CAPS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "tenfi", + "sourceName": "TENFI", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "TENFI", + "stakingContract": "Alpaca GrazingRange", + "tvl": "186.686023733413262188", + "rewardToken": { + "address": "0xd15c444f1199ae72795eba15e8c1db44e47abf62", + "symbol": "TENFI" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "dep", + "sourceName": "DEP", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "DEP", + "stakingContract": "Alpaca GrazingRange", + "tvl": "3225.498087148131672541", + "rewardToken": { + "address": "0xcaf5191fc480f43e4df80106c7695eca56e48b18", + "symbol": "DEP" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "wnow", + "sourceName": "WNOW", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "WNOW", + "stakingContract": "Alpaca GrazingRange", + "tvl": "84.91031848456910336", + "rewardToken": { + "address": "0x56aa0237244c67b9a854b4efe8479cca0b105289", + "symbol": "WNOW" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "leon", + "sourceName": "LEON", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "LEON", + "stakingContract": "Alpaca GrazingRange", + "tvl": "3175.043714960165713671", + "rewardToken": { + "address": "0x27e873bee690c8e161813de3566e9e18a64b0381", + "symbol": "LEON" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "arv", + "sourceName": "ARV", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "ARV", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1087.21584291010360979", + "rewardToken": { + "address": "0x6679eb24f59dfe111864aec72b443d1da666b360", + "symbol": "ARV" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "xwin", + "sourceName": "XWIN", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "XWIN", + "stakingContract": "Alpaca GrazingRange", + "tvl": "268.293495671513142763", + "rewardToken": { + "address": "0xd88ca08d8eec1e9e09562213ae83a7853ebb5d28", + "symbol": "XWIN" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "skill", + "sourceName": "SKILL", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "SKILL", + "stakingContract": "Alpaca GrazingRange", + "tvl": "993.731690536448520942", + "rewardToken": { + "address": "0x154a9f9cbd3449ad22fdae23044319d6ef2a1fab", + "symbol": "SKILL" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "sheesha", + "sourceName": "SHEESHA", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "SHEESHA", + "stakingContract": "Alpaca GrazingRange", + "tvl": "169.497890539689833911", + "rewardToken": { + "address": "0x232FB065D9d24c34708eeDbF03724f2e95ABE768", + "symbol": "SHEESHA" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "nfty", + "sourceName": "NFTY", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "NFTY", + "stakingContract": "Alpaca GrazingRange", + "tvl": "2773.890335150678547476", + "rewardToken": { + "address": "0x5774b2fc3e91af89f89141eacf76545e74265982", + "symbol": "NFTY" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "bmon", + "sourceName": "BMON", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "BMON", + "stakingContract": "Alpaca GrazingRange", + "tvl": "664.849010807686088734", + "rewardToken": { + "address": "0x08ba0619b1e7a582e0bce5bbe9843322c954c340", + "symbol": "BMON" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "moni", + "sourceName": "MONI", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "MONI", + "stakingContract": "Alpaca GrazingRange", + "tvl": "925.553569299127711816", + "rewardToken": { + "address": "0x9573c88aE3e37508f87649f87c4dd5373C9F31e0", + "symbol": "MONI" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "polar", + "sourceName": "POLAR", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "POLAR", + "stakingContract": "Alpaca GrazingRange", + "tvl": "40.764977000540420838", + "rewardToken": { + "address": "0xC64c9B30C981fc2eE4e13d0CA3f08258e725fd24", + "symbol": "POLAR" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "lucky", + "sourceName": "LUCKY", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "LUCKY", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1577.432957045012529182", + "rewardToken": { + "address": "0xc3D912863152E1Afc935AD0D42d469e7C6B05B77", + "symbol": "LUCKY" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "pots", + "sourceName": "POTS", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "POTS", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1374.52719458603637364", + "rewardToken": { + "address": "0x3fcca8648651e5b974dd6d3e50f61567779772a8", + "symbol": "POTS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "pear", + "sourceName": "PEAR", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "PEAR", + "stakingContract": "Alpaca GrazingRange", + "tvl": "78.824093509005573692", + "rewardToken": { + "address": "0xdf7c18ed59ea738070e665ac3f5c258dcc2fbad8", + "symbol": "PEAR" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "qbt", + "sourceName": "QBT", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "QBT", + "stakingContract": "Alpaca GrazingRange", + "tvl": "148.217860580693487211", + "rewardToken": { + "address": "0x17b7163cf1dbd286e262ddc68b553d899b93f526", + "symbol": "QBT" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "dvi", + "sourceName": "DVI", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "DVI", + "stakingContract": "Alpaca GrazingRange", + "tvl": "114.371179925127770676", + "rewardToken": { + "address": "0x758fb037a375f17c7e195cc634d77da4f554255b", + "symbol": "DVI" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "naos", + "sourceName": "NAOS", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "NAOS", + "stakingContract": "Alpaca GrazingRange", + "tvl": "453.59814811279449229", + "rewardToken": { + "address": "0x758d08864fb6cce3062667225ca10b8f00496cc2", + "symbol": "NAOS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "bmxx", + "sourceName": "bMXX", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "bMXX", + "stakingContract": "Alpaca GrazingRange", + "tvl": "20099.155116479365357796", + "rewardToken": { + "address": "0x4131b87F74415190425ccD873048C708F8005823", + "symbol": "bMXX" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "belt", + "sourceName": "BELT", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "BELT", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1889.260390626369405411", + "rewardToken": { + "address": "0xE0e514c71282b6f4e823703a39374Cf58dc3eA4f", + "symbol": "BELT" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "bor", + "sourceName": "BOR", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "BOR", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1734.888838180870900264", + "rewardToken": { + "address": "0x92D7756c60dcfD4c689290E8A9F4d263b3b32241", + "symbol": "BOR" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "bry", + "sourceName": "BRY", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "BRY", + "stakingContract": "Alpaca GrazingRange", + "tvl": "240.351690170163429842", + "rewardToken": { + "address": "0xf859Bf77cBe8699013d6Dbc7C2b926Aaf307F830", + "symbol": "BRY" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "cws", + "sourceName": "pCWS", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "pCWS", + "stakingContract": "Alpaca GrazingRange", + "tvl": "169.928255120092837409", + "rewardToken": { + "address": "0xbcf39F0EDDa668C58371E519AF37CA705f2bFcbd", + "symbol": "pCWS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "swingby", + "sourceName": "SWINGBY", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "SWINGBY", + "stakingContract": "Alpaca GrazingRange", + "tvl": "306.761953530936529428", + "rewardToken": { + "address": "0x71de20e0c4616e7fcbfdd3f875d568492cbe4739", + "symbol": "SWINGBY" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "dodo", + "sourceName": "DODO", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "DODO", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1146.168704886238849434", + "rewardToken": { + "address": "0x67ee3cb086f8a16f34bee3ca72fad36f7db929e2", + "symbol": "DODO" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "oddz", + "sourceName": "ODDZ", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "ODDZ", + "stakingContract": "Alpaca GrazingRange", + "tvl": "501.970841956738895099", + "rewardToken": { + "address": "0xcd40f2670cf58720b694968698a5514e924f742d", + "symbol": "ODDZ" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "form", + "sourceName": "FORM", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "FORM", + "stakingContract": "Alpaca GrazingRange", + "tvl": "26666.306239378910814627", + "rewardToken": { + "address": "0x25A528af62e56512A19ce8c3cAB427807c28CC19", + "symbol": "FORM" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "orbs", + "sourceName": "ORBS", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "ORBS", + "stakingContract": "Alpaca GrazingRange", + "tvl": "3920.29210501479586617", + "rewardToken": { + "address": "0xebd49b26169e1b52c04cfd19fcf289405df55f80", + "symbol": "ORBS" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "wex", + "sourceName": "WEX", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "WEX", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1412.775569591508875067", + "rewardToken": { + "address": "0xa9c41A46a6B3531d28d5c32F6633dd2fF05dFB90", + "symbol": "WEX" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "pmon", + "sourceName": "PMON", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "PMON", + "stakingContract": "Alpaca GrazingRange", + "tvl": "829.262542596337901114", + "rewardToken": { + "address": "0x1796ae0b0fa4862485106a0de9b654efe301d0b2", + "symbol": "PMON" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "pha", + "sourceName": "PHA", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "PHA", + "stakingContract": "Alpaca GrazingRange", + "tvl": "1273.253759112470720977", + "rewardToken": { + "address": "0x0112e557d400474717056c4e6d40edd846f38351", + "symbol": "PHA" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "alm", + "sourceName": "ALM", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "ALM", + "stakingContract": "Alpaca GrazingRange", + "tvl": "20.433407441062217236", + "rewardToken": { + "address": "0x7c38870e93a1f959cb6c533eb10bbc3e438aac11", + "symbol": "ALM" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "kala", + "sourceName": "KALA", + "apr": "0.0", + "stakingTokenSymbol": "ibALPACA", + "rewardTokenSymbol": "KALA", + "stakingContract": "Alpaca GrazingRange", + "tvl": "13.222452014636982563", + "rewardToken": { + "address": "0x32299c93960bb583a43c2220dc89152391a610c5", + "symbol": "KALA" + }, + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + } + ], + "protocolApr": "0", + "totalApr": "0.0", + "totalApy": "0.0", + "totalSupply": "5805830.154161486815143638", + "totalToken": "5805830.154161486815143638", + "totalFloating": "5805830.154161486815143638", + "totalBorrowed": "0.0", + "tvl": "1156659.59046485314004644", + "floatingTvl": "1156659.59046485314004644", + "borrowingInterestPercent": "0.0", + "baseToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "ibToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "baseTokenPerIbToken": "1.13993991635637744", + "lendingApr": "3.7420481160226525", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-usdt", + "sourceName": "USDT Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibUSDT", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "2024287.998076191895436691", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0x158Da805682BdC8ee32d52833aD41E74bb951E59", + "symbol": "ibUSDT" + } + } + ], + "protocolApr": "0", + "totalApr": "3.7420481160226525", + "totalApy": "3.812944", + "totalSupply": "8183176.594378125657029483", + "totalToken": "8181513.265574423357841273", + "totalFloating": "3457583.91435695154147766", + "totalBorrowed": "4725592.680021174115551823", + "tvl": "8175610.450756149348391959", + "floatingTvl": "3455089.329687515193694334", + "borrowingInterestPercent": "7.99999999999997", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "ibToken": { + "address": "0x158Da805682BdC8ee32d52833aD41E74bb951E59", + "symbol": "ibUSDT" + } + }, + { + "key": "btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "baseTokenPerIbToken": "0.0", + "lendingApr": "0.0", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-btcb", + "sourceName": "BTCB Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibBTCB", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "0.0", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0x08FC9Ba2cAc74742177e0afC3dC8Aed6961c24e7", + "symbol": "ibBTCB" + } + } + ], + "protocolApr": "0", + "totalApr": "0.0", + "totalApy": "0.0", + "totalSupply": "0.0", + "totalToken": "0.0", + "totalFloating": "0.0", + "totalBorrowed": "0.0", + "tvl": "0.0", + "floatingTvl": "0.0", + "borrowingInterestPercent": "0.0", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "ibToken": { + "address": "0x08FC9Ba2cAc74742177e0afC3dC8Aed6961c24e7", + "symbol": "ibBTCB" + } + }, + { + "key": "tusd", + "sourceName": "TUSD Vault", + "symbol": "TUSD", + "baseTokenPerIbToken": "1.029277729657246811", + "lendingApr": "0.0", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-tusd", + "sourceName": "TUSD Interest Bearing", + "apr": "0.0", + "stakingTokenSymbol": "ibTUSD", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "793.816268841739444981", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0x3282d2a151ca00BfE7ed17Aa16E42880248CD3Cd", + "symbol": "ibTUSD" + } + } + ], + "protocolApr": "0", + "totalApr": "0.0", + "totalApy": "0.0", + "totalSupply": "1414.257830889835942593", + "totalToken": "1414.257830889835942593", + "totalFloating": "1414.257830889835942593", + "totalBorrowed": "0.0", + "tvl": "1378.071152733388577086", + "floatingTvl": "1378.071152733388577086", + "borrowingInterestPercent": "0.0", + "baseToken": { + "address": "0x14016e85a25aeb13065688cafb43044c2ef86784", + "symbol": "TUSD" + }, + "ibToken": { + "address": "0x3282d2a151ca00BfE7ed17Aa16E42880248CD3Cd", + "symbol": "ibTUSD" + } + }, + { + "key": "usdc", + "sourceName": "USDC Vault", + "symbol": "USDC", + "baseTokenPerIbToken": "1.060033228709378442", + "lendingApr": "0.0", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-usdc", + "sourceName": "Interest Bearing USDC", + "apr": "0.0", + "stakingTokenSymbol": "ibUSDC", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "13154.327993656064647335", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0x800933D685E7Dc753758cEb77C8bd34aBF1E26d7", + "symbol": "ibUSDC" + } + } + ], + "protocolApr": "0", + "totalApr": "0.0", + "totalApy": "0.0", + "totalSupply": "0.0", + "totalToken": "53000.105808596090002776", + "totalFloating": "0.0", + "totalBorrowed": "0.0", + "tvl": "52882.022813112997794163", + "floatingTvl": "0.0", + "borrowingInterestPercent": "0.0", + "baseToken": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "ibToken": { + "address": "0x800933D685E7Dc753758cEb77C8bd34aBF1E26d7", + "symbol": "ibUSDC" + } + }, + { + "key": "cake", + "sourceName": "CAKE Vault", + "symbol": "CAKE", + "baseTokenPerIbToken": "1.153521656723772476", + "lendingApr": "0.6531715109556666", + "stakingApr": "0.0", + "stakingAprs": [ + { + "key": "ib-cake", + "sourceName": "Interest Bearing CAKE", + "apr": "0.0", + "stakingTokenSymbol": "ibCAKE", + "rewardTokenSymbol": "ALPACA", + "stakingContract": "Alpaca FairLaunch", + "tvl": "26005.765388656115415992", + "rewardToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "stakingToken": { + "address": "0xfF693450dDa65df7DD6F45B4472655A986b147Eb", + "symbol": "ibCAKE" + } + } + ], + "protocolApr": "0", + "totalApr": "0.6531715109556666", + "totalApy": "0.655309", + "totalSupply": "150798.54832458156376797", + "totalToken": "150794.256627069438789517", + "totalFloating": "123715.455129215568081764", + "totalBorrowed": "27083.093195365995686206", + "tvl": "472801.251636998390562247", + "floatingTvl": "387898.208726829230079746", + "borrowingInterestPercent": "4.4899459405059785", + "baseToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "ibToken": { + "address": "0xfF693450dDa65df7DD6F45B4472655A986b147Eb", + "symbol": "ibCAKE" + } + } + ], + "farmingPools": [ + { + "key": "pcs-busd-alpaca", + "sourceName": "PancakeSwap ALPACA-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "19375.903177908573132515", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "67.0101971279724645", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-alpaca-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "pcs-busd-alpaca", + "sourceName": "ALPACA Vault", + "symbol": "ALPACA", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "67.0101971279724645", + "totalApy": "95.323623", + "dailyTotalApr": "0.1835895811725273", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-busd-alpaca/-/open?leverage=3&configKey=pcs-alpaca-busd", + "type": "LP", + "workingToken": { + "address": "0x7752e1FA9F3a2e860856458517008558DEb989e3", + "symbol": "ALPACA-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + } + }, + "workers": [ + { + "key": "pcs-alpaca-busd", + "sourceName": "PancakeSwap ALPACA-BUSD Worker", + "workerAddress": "0x4BfE9489937d6C0d7cD6911F1102c25c7CBc1B5A", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "pcs-busd-alpaca", + "sourceName": "PancakeSwap BUSD-ALPACA Worker", + "workerAddress": "0xeF1C5D2c20b22Ae50437a2F3bd258Ab1117D1BaD", + "baseToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-cake-bnb", + "sourceName": "PancakeSwap CAKE-BNB", + "tvl": "38887.632524355838278238", + "tvlInMasterChef": "49565937.779748480238554515", + "farmRewardApr": "0.8799865121933379", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "2.98662478602921", + "farmRewardValuePerYear": "479311.612202119392144", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "CAKE Vault", + "borrowingInterests": [ + { + "key": "pcs-cake-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + }, + { + "key": "pcs-bnb-cake", + "sourceName": "CAKE Vault", + "symbol": "CAKE", + "interestPercent": "8.979891881011957", + "interestPercentAt2XLeverage": "4.4899459405059785", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "3.8666112982225479", + "totalApy": "3.942125", + "dailyTotalApr": "0.010593455611568624", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-cake-bnb/-/open?leverage=3&configKey=pcs-cake-bnb", + "type": "LP", + "workingToken": { + "address": "0x0eD7e52944161450477ee417DE9Cd3a859b14fD0", + "symbol": "CAKE-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + } + }, + "workers": [ + { + "key": "pcs-cake-bnb", + "sourceName": "PancakeSwap CAKE-BNB Worker", + "workerAddress": "0x7Af938f0EFDD98Dc513109F6A7E85106D26E16c4", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "30.544027110866864236", + "farmToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "farmTokenAmount": "3839.060536376829906559", + "tvl": "24083.252431833720540417" + }, + { + "key": "pcs-bnb-cake", + "sourceName": "PancakeSwap BNB-CAKE Worker", + "workerAddress": "0x676f1A2D354c6f11C23183E18DDd06B317331453", + "baseToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "baseTokenAmount": "2359.935043640488998428", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "18.775926888839384942", + "tvl": "14804.380092522117737821" + } + ] + }, + { + "key": "pcs-cake-busd", + "sourceName": "PancakeSwap CAKE-BUSD", + "tvl": "0.736941262948770136", + "tvlInMasterChef": "836024.16794494394336235", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "14.8230941513959905", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-cake-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "pcs-busd-cake", + "sourceName": "CAKE Vault", + "symbol": "CAKE", + "interestPercent": "8.979891881011957", + "interestPercentAt2XLeverage": "4.4899459405059785", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "14.8230941513959905", + "totalApy": "15.974581", + "dailyTotalApr": "0.0406112168531397", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-cake-busd/-/open?leverage=3&configKey=pcs-cake-busd", + "type": "LP", + "workingToken": { + "address": "0x804678fa97d91B974ec2af3c843270886528a9E6", + "symbol": "CAKE-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + } + }, + "workers": [ + { + "key": "pcs-cake-busd", + "sourceName": "PancakeSwap CAKE-BUSD Worker", + "workerAddress": "0x844766F737bC9442b9491da1eB7a5cd02b203F06", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "pcs-busd-cake", + "sourceName": "PancakeSwap BUSD-CAKE Worker", + "workerAddress": "0xBEd0673c5795367Afa01BB294DE505B573fa5a29", + "baseToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "baseTokenAmount": "0.117519263685762053", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "0.368470631474385068", + "tvl": "0.736941262948770136" + } + ] + }, + { + "key": "pcs-cake-usdt", + "sourceName": "PancakeSwap CAKE-USDT", + "tvl": "537187.411467987291910862", + "tvlInMasterChef": "1529800.531501901683422422", + "farmRewardApr": "3.5151526120066194", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "42.980178565930557", + "farmRewardValuePerYear": "19697.73748775833176", + "borrowingInterestPercent": "8.979891881011957", + "borrowingInterestSourceName": "CAKE Vault", + "borrowingInterests": [ + { + "key": "pcs-cake-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "15.99999999999994", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "3.0" + }, + { + "key": "pcs-usdt-cake", + "sourceName": "CAKE Vault", + "symbol": "CAKE", + "interestPercent": "8.979891881011957", + "interestPercentAt2XLeverage": "4.4899459405059785", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "37.5154392969252194", + "totalApy": "45.493573", + "dailyTotalApr": "0.102782025471027998", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-cake-usdt/-/open?leverage=3&configKey=pcs-cake-usdt", + "type": "LP", + "workingToken": { + "address": "0xA39Af17CE4a8eb807E076805Da1e2B8EA7D0755b", + "symbol": "CAKE-USDT PCS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + } + }, + "workers": [ + { + "key": "pcs-cake-usdt", + "sourceName": "PancakeSwap CAKE-USDT Worker", + "workerAddress": "0xECb008F4741465F9F169EC11A50Aa8871E423F33", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "202850.539577623277510507", + "farmToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "farmTokenAmount": "64584.901277977505990278", + "tvl": "405277.2638537006818808" + }, + { + "key": "pcs-usdt-cake", + "sourceName": "PancakeSwap USDT-CAKE Worker", + "workerAddress": "0x3Afc9A1B8A42C77aE7d23463c6FED26615827291", + "baseToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "baseTokenAmount": "21021.173949465677793161", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "66024.045772726218421571", + "tvl": "131910.147614286610030062" + } + ] + }, + { + "key": "pcs-cakemaxi", + "sourceName": "PancakeSwap CAKEMaxi", + "tvl": "590.499662996651515367", + "tvlInMasterChef": "363888302.681523913895394012", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "ETH Vault", + "borrowingInterests": [ + { + "key": "pcs-cakemaxi-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.5" + }, + { + "key": "pcs-cakemaxi-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "11.999999999999955", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "2.5" + }, + { + "key": "pcs-cakemaxi-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "45.8837108344182892", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.5" + }, + { + "key": "pcs-cakemaxi-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.5" + }, + { + "key": "pcs-cakemaxi-btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.5" + }, + { + "key": "pcs-cakemaxi-tusd", + "sourceName": "TUSD Vault", + "symbol": "TUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.5" + }, + { + "key": "pcs-cakemaxi-usdc", + "sourceName": "USDC Vault", + "symbol": "USDC", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.5" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-cakemaxi/-/open?leverage=2.5&configKey=pcs-cakemaxi-eth", + "type": "SA", + "workingToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "workers": [ + { + "key": "pcs-cakemaxi-eth", + "sourceName": "PancakeSwap CAKE Single Asset Worker", + "workerAddress": "0x9eD2Ee419b65b6745Be435ba5D28407b9A2F8F5A", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.00", + "farmToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "farmTokenAmount": "0.000000092795806754", + "tvl": "0.000000290952550589" + }, + { + "key": "pcs-cakemaxi-usdt", + "sourceName": "PancakeSwap CAKE Single Asset Worker", + "workerAddress": "0xe8084D7Ded35E2840386f04d609cdb49C7E36d88", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "0.00", + "farmToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "farmTokenAmount": "171.567990044973836264", + "tvl": "537.935344810381204462" + }, + { + "key": "pcs-cakemaxi-bnb", + "sourceName": "PancakeSwap CAKE Single Asset Worker", + "workerAddress": "0xecfB6E8BEceA9A65A5a367497230dF14F64A14C9", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.00", + "farmToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "farmTokenAmount": "16.743941346063752618", + "tvl": "52.499058006790888715" + }, + { + "key": "pcs-cakemaxi-busd", + "sourceName": "PancakeSwap CAKE Single Asset Worker", + "workerAddress": "0x41c1D9544ED9fa6b604ecAf7430b4CfDf883c46F", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.00", + "farmToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "pcs-cakemaxi-btcb", + "sourceName": "PancakeSwap CAKE Single Asset Worker", + "workerAddress": "0x946eb7078B2C4eE18BEa314a48396572eD2581f7", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "baseTokenAmount": "0.00", + "farmToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "farmTokenAmount": "0.000000098768857916", + "tvl": "0.000000309680492413" + }, + { + "key": "pcs-cakemaxi-tusd", + "sourceName": "PancakeSwap CAKE Single Asset Worker", + "workerAddress": "0xC2f8CcAf5530d9148bb07A6947b2f0F317e59e23", + "baseToken": { + "address": "0x14016e85a25aeb13065688cafb43044c2ef86784", + "symbol": "TUSD" + }, + "baseTokenAmount": "0.00", + "farmToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "farmTokenAmount": "0.000000283117179926", + "tvl": "0.000000887687369685" + }, + { + "key": "pcs-cakemaxi-usdc", + "sourceName": "PancakeSwap CAKE Single Asset Worker", + "workerAddress": "0x5342Fbb861C2Aea626F66521C512ac5Fa03B6a58", + "baseToken": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "baseTokenAmount": "0.00", + "farmToken": { + "address": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82", + "symbol": "CAKE" + }, + "farmTokenAmount": "0.020813472442610348", + "tvl": "0.065258691159009503" + } + ] + }, + { + "key": "pcs-stkbnb-bnb", + "sourceName": "PancakeSwap STKBNB-BNB", + "tvl": "0.0", + "tvlInMasterChef": "5728.228376596996280781", + "farmRewardApr": "2.6", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "1.0403678301126725", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-stkbnb-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "30.5891405562788595", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "3.6403678301126725", + "totalApy": "3.707252", + "dailyTotalApr": "0.009973610493459376", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-stkbnb-bnb/-/open?leverage=2&configKey=pcs-stkbnb-bnb", + "type": "LP", + "workingToken": { + "address": "0xaA2527ff1893e0D40d4a454623d362B79E8bb7F1", + "symbol": "STKBNB-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0xc2E9d07F66A89c44062459A47a0D2Dc038E4fb16", + "symbol": "STKBNB" + } + }, + "workers": [ + { + "key": "pcs-stkbnb-bnb", + "sourceName": "PancakeSwap STKBNB-BNB Worker", + "workerAddress": "0xdFcED03B6C764D029b4536e86903e6fA8C47294d", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xc2E9d07F66A89c44062459A47a0D2Dc038E4fb16", + "symbol": "STKBNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-pstake-busd", + "sourceName": "PancakeSwap pSTAKE-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "11.155453726650321775", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "72.563784338343657", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-pstake-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "2.0", + "totalApr": "72.563784338343657", + "totalApy": "106.456076", + "dailyTotalApr": "0.1988048885982018", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-pstake-busd/-/open?leverage=2&configKey=pcs-pstake-busd", + "type": "LP", + "workingToken": { + "address": "0x009C58e79779982eB53a9941F9F4a2269d093566", + "symbol": "pSTAKE-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x4C882ec256823eE773B25b414d36F92ef58a7c0C", + "symbol": "pSTAKE" + } + }, + "workers": [ + { + "key": "pcs-pstake-busd", + "sourceName": "PancakeSwap pSTAKE-BUSD Worker", + "workerAddress": "0x00Ed7534c58DA1114B5538fd80E46234504Dc385", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x4C882ec256823eE773B25b414d36F92ef58a7c0C", + "symbol": "pSTAKE" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-high-busd", + "sourceName": "PancakeSwap HIGH-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "50395.471588130041215223", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "126.617826665672132", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-high-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "2.0", + "totalApr": "126.617826665672132", + "totalApy": "253.950596", + "dailyTotalApr": "0.3468981552484168", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-high-busd/-/open?leverage=2&configKey=pcs-high-busd", + "type": "LP", + "workingToken": { + "address": "0xe98ac95A1dB2fCaaa9c7D4ba7ecfCE4877ca2bEa", + "symbol": "HIGH-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x5f4bde007dc06b867f86ebfe4802e34a1ffeed63", + "symbol": "HIGH" + } + }, + "workers": [ + { + "key": "pcs-high-busd", + "sourceName": "PancakeSwap HIGH-BUSD Worker", + "workerAddress": "0xFAC2898Ab87daa4909200ED7a99c5CBAb3bb9303", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x5f4bde007dc06b867f86ebfe4802e34a1ffeed63", + "symbol": "HIGH" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "bs-usdc-bnb", + "sourceName": "Biswap USDC-BNB", + "tvl": "3782.701892078457817791", + "tvlInMasterChef": "119738.819918657827825065", + "farmRewardApr": "26.8631640313421196", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "7.5944806619723055", + "farmRewardValuePerYear": "11782.284104008206288", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "USDC Vault", + "borrowingInterests": [ + { + "key": "bs-usdc-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + }, + { + "key": "bs-bnb-usdc", + "sourceName": "USDC Vault", + "symbol": "USDC", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "34.4576446933144251", + "totalApy": "41.11626", + "dailyTotalApr": "0.094404506009080616", + "openPositionUrl": "/farm/biswap/pool/bs-usdc-bnb/-/open?leverage=3&configKey=bs-usdc-bnb", + "type": "LP", + "workingToken": { + "address": "0x06Cd679121Ec37B0A2FD673D4976B09d81791856", + "symbol": "USDC-BNB BS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + } + }, + "workers": [ + { + "key": "bs-usdc-bnb", + "sourceName": "Biswap USDC-BNB Worker", + "workerAddress": "0x02DB090d70A20D9f563835B2D5DcF14448A1B116", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "4.796526983386470225", + "farmToken": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "farmTokenAmount": "1895.134531474410927645", + "tvl": "3782.701892078457817791" + }, + { + "key": "bs-bnb-usdc", + "sourceName": "Biswap BNB-USDC Worker", + "workerAddress": "0x6fff1F59Ecdb163b59dfc0005aF2A89ff86A3587", + "baseToken": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "bs-gq-busd", + "sourceName": "Biswap GQ-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "14902.43737794878549103", + "farmRewardApr": "15.7384384176285143", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "3.69731406429558075", + "farmRewardValuePerYear": "1472.785513001019216", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "bs-gq-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "1.75" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.75", + "totalApr": "19.43575248192409505", + "totalApy": "21.446761", + "dailyTotalApr": "0.053248636936778342", + "openPositionUrl": "/farm/biswap/pool/bs-gq-busd/-/open?leverage=1.75&configKey=bs-gq-busd", + "type": "LP", + "workingToken": { + "address": "0xB4c88543Bd95617Fb61F3d031B8E8E19aF33201E", + "symbol": "GQ-BUSD BS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xf700d4c708c2be1463e355f337603183d20e0808", + "symbol": "GQ" + } + }, + "workers": [ + { + "key": "bs-gq-busd", + "sourceName": "Biswap GQ-BUSD Worker", + "workerAddress": "0xa15665BedecbEa17D8c0C21067743Db6fDD343F4", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xf700d4c708c2be1463e355f337603183d20e0808", + "symbol": "GQ" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "bs-btcb-bnb", + "sourceName": "Biswap BNB-BTCB", + "tvl": "0.0", + "tvlInMasterChef": "986216.922711310720763266", + "farmRewardApr": "22.4229314752730733", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "3.543920866822842", + "farmRewardValuePerYear": "81003.203215056414288", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BTCB Vault", + "borrowingInterests": [ + { + "key": "bs-bnb-btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "bs-btcb-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "25.9668523420959153", + "totalApy": "29.638056", + "dailyTotalApr": "0.071142061211221685", + "openPositionUrl": "/farm/biswap/pool/bs-btcb-bnb/-/open?leverage=3&configKey=bs-bnb-btcb", + "type": "LP", + "workingToken": { + "address": "0xC7e9d76ba11099AF3F330ff829c5F442d571e057", + "symbol": "BNB-BTCB BS LP", + "tokenA": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "workers": [ + { + "key": "bs-bnb-btcb", + "sourceName": "Biswap BNB-BTCB Worker", + "workerAddress": "0xE3CADBF72F99eDD1f0eE0d97c0e395C312b5b07E", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "bs-btcb-bnb", + "sourceName": "Biswap BTCB-BNB Worker", + "workerAddress": "0x12aa5b890a125010Ec58337b2aA975e2A1295cDf", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "bs-eth-bnb", + "sourceName": "Biswap BNB-ETH", + "tvl": "11681.41391089631494932", + "tvlInMasterChef": "430623.390911765988617157", + "farmRewardApr": "42.0162267286703465", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "3.615008033086332", + "farmRewardValuePerYear": "66275.348085046159056", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "ETH Vault", + "borrowingInterests": [ + { + "key": "bs-bnb-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "bs-eth-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "45.6312347617566785", + "totalApy": "57.77935", + "dailyTotalApr": "0.125017081539059393", + "openPositionUrl": "/farm/biswap/pool/bs-eth-bnb/-/open?leverage=3&configKey=bs-bnb-eth", + "type": "LP", + "workingToken": { + "address": "0x5bf6941f029424674bb93A43b79fc46bF4A67c21", + "symbol": "BNB-ETH BS LP", + "tokenA": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "workers": [ + { + "key": "bs-bnb-eth", + "sourceName": "Biswap BNB-ETH Worker", + "workerAddress": "0x50657a0395bCC066dcEAc86152208c000D994a46", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "bs-eth-bnb", + "sourceName": "Biswap ETH-BNB Worker", + "workerAddress": "0x11873b84BcAeaec816f41c8DD46ED529D85daD45", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "14.813397151239646998", + "farmToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "farmTokenAmount": "1.797291965821445055", + "tvl": "11681.41391089631494932" + } + ] + }, + { + "key": "pcs-tinc-bnb", + "sourceName": "PancakeSwap TINC-BNB", + "tvl": "2.254602367155757834", + "tvlInMasterChef": "1611.962096261206355446", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.5378054983672465", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-tinc-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "30.5891405562788595", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.5378054983672465", + "totalApy": "0.53925", + "dailyTotalApr": "0.0014734397215541", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-tinc-bnb/-/open?leverage=2&configKey=pcs-tinc-bnb", + "type": "LP", + "workingToken": { + "address": "0x0d5b9A0f4315a4bcE36D1Ea7d6B6d3123167aFAa", + "symbol": "TINC-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x05aD6E30A855BE07AfA57e08a4f30d00810a402e", + "symbol": "TINC" + } + }, + "workers": [ + { + "key": "pcs-tinc-bnb", + "sourceName": "PancakeSwap TINC-BNB Worker", + "workerAddress": "0xf8EE10951021F606cDe1eB700Fe910d90903121e", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.002858346115993533", + "farmToken": { + "address": "0x05aD6E30A855BE07AfA57e08a4f30d00810a402e", + "symbol": "TINC" + }, + "farmTokenAmount": "273.173353565258061846", + "tvl": "2.254602367155757834" + } + ] + }, + { + "key": "bs-usdt-bnb", + "sourceName": "Biswap BNB-USDT", + "tvl": "912495.540037562542852191", + "tvlInMasterChef": "1708435.078770445551269739", + "farmRewardApr": "65.8964019252178026", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "9.4092080206283325", + "farmRewardValuePerYear": "412379.943640287241104", + "borrowingInterestPercent": "15.99999999999994", + "borrowingInterestSourceName": "USDT Vault", + "borrowingInterests": [ + { + "key": "bs-bnb-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "15.99999999999994", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "3.0" + }, + { + "key": "bs-usdt-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "59.3056099458461951", + "totalApy": "80.863934", + "dailyTotalApr": "0.162481123139304644", + "openPositionUrl": "/farm/biswap/pool/bs-usdt-bnb/-/open?leverage=3&configKey=bs-bnb-usdt", + "type": "LP", + "workingToken": { + "address": "0x8840C6252e2e86e545deFb6da98B2a0E26d8C1BA", + "symbol": "BNB-USDT BS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "workers": [ + { + "key": "bs-bnb-usdt", + "sourceName": "Biswap BNB-USDT Worker", + "workerAddress": "0x606959Ec174624627178Be2a6888ED6E5A036D22", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "422550.029916042345253181", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "1071.106883920439179171", + "tvl": "844830.713205876204164245" + }, + { + "key": "bs-usdt-bnb", + "sourceName": "Biswap USDT-BNB Worker", + "workerAddress": "0x1CaB044765F69a8db621a71b05BdD0fb36D0c51c", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "85.787910744483064391", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "33843.199773710615190857", + "tvl": "67664.826831686338687946" + } + ] + }, + { + "key": "bs-eth-usdt", + "sourceName": "Biswap ETH-USDT", + "tvl": "3771635.400280289115780149", + "tvlInMasterChef": "4276646.223788054649642231", + "farmRewardApr": "4.7007681254160962", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "3.707151406657311", + "farmRewardValuePerYear": "73639.275650051286672", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "ETH Vault", + "borrowingInterests": [ + { + "key": "bs-eth-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "15.99999999999994", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "3.0" + }, + { + "key": "bs-usdt-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "8.4079195320734072", + "totalApy": "8.77045", + "dailyTotalApr": "0.023035395978283307", + "openPositionUrl": "/farm/biswap/pool/bs-eth-usdt/-/open?leverage=3&configKey=bs-eth-usdt", + "type": "LP", + "workingToken": { + "address": "0x63b30de1A998e9E64FD58A21F68D323B9BcD8F85", + "symbol": "ETH-USDT BS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + } + }, + "workers": [ + { + "key": "bs-eth-usdt", + "sourceName": "Biswap ETH-USDT Worker", + "workerAddress": "0x3C26EaC5F59A1CbDff9208c72E77aD59e7238506", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "1887568.80816499660946354", + "farmToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "farmTokenAmount": "580.123988381024606256", + "tvl": "3771635.400280289115780149" + }, + { + "key": "bs-usdt-eth", + "sourceName": "Biswap USDT-ETH Worker", + "workerAddress": "0x12A046476bC81DbE23608a81C9A069b8655698F8", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "bs-btcb-usdt", + "sourceName": "Biswap BTCB-USDT", + "tvl": "2919104.46438896289723485", + "tvlInMasterChef": "3093219.237154269995822981", + "farmRewardApr": "6.7591921359565176", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "3.2192695149949065", + "farmRewardValuePerYear": "76584.846676053335616", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BTCB Vault", + "borrowingInterests": [ + { + "key": "bs-btcb-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "15.99999999999994", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "3.0" + }, + { + "key": "bs-usdt-btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "9.9784616509514241", + "totalApy": "10.491784", + "dailyTotalApr": "0.027338251098497052", + "openPositionUrl": "/farm/biswap/pool/bs-btcb-usdt/-/open?leverage=3&configKey=bs-btcb-usdt", + "type": "LP", + "workingToken": { + "address": "0xa987f0b7098585c735cD943ee07544a84e923d1D", + "symbol": "BTCB-USDT BS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + } + }, + "workers": [ + { + "key": "bs-btcb-usdt", + "sourceName": "Biswap BTCB-USDT Worker", + "workerAddress": "0x6F389b78b40FA1C11b0E73B43e0C3f72e31B4e13", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "1461204.092966710973974574", + "farmToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "farmTokenAmount": "25.596298882418561609", + "tvl": "2919104.46438896289723485" + }, + { + "key": "bs-usdt-btcb", + "sourceName": "Biswap USDT-BTCB Worker", + "workerAddress": "0x6A96fE4739640B136a434E255E53fB7d8249b3CF", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "bs-bnb-busd", + "sourceName": "Biswap BNB-BUSD", + "tvl": "41469.592377227326900093", + "tvlInMasterChef": "568866.694494542663556426", + "farmRewardApr": "197.9017680299060525", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "4.8159726150343665", + "farmRewardValuePerYear": "412379.943640287241104", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "bs-bnb-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "bs-busd-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "202.717740644940419", + "totalApy": "655.016021", + "dailyTotalApr": "0.555391070260110736", + "openPositionUrl": "/farm/biswap/pool/bs-bnb-busd/-/open?leverage=3&configKey=bs-bnb-busd", + "type": "LP", + "workingToken": { + "address": "0xaCAac9311b0096E04Dfe96b6D87dec867d3883Dc", + "symbol": "BNB-BUSD BS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "workers": [ + { + "key": "bs-bnb-busd", + "sourceName": "Biswap BNB-BUSD Worker", + "workerAddress": "0xF15416004Bd51Fe99328C27C6DB62953CB078bB2", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "bs-busd-bnb", + "sourceName": "Biswap BUSD-BNB Worker", + "workerAddress": "0x676Fe5f796C1C5F6FC7135CE3d5821a65e134506", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "52.562780340830191185", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "20739.393134101095874463", + "tvl": "41469.592377227326900093" + } + ] + }, + { + "key": "bs-bsw-usdt", + "sourceName": "Biswap BSW-USDT", + "tvl": "11703.980175261501394518", + "tvlInMasterChef": "986212.893558170409919085", + "farmRewardApr": "55.0383293872959335", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "17.454325193356821", + "farmRewardValuePerYear": "198826.04425513848768", + "borrowingInterestPercent": "15.99999999999994", + "borrowingInterestSourceName": "USDT Vault", + "borrowingInterests": [ + { + "key": "bs-bsw-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "15.99999999999994", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "56.4926545806528145", + "totalApy": "75.855037", + "dailyTotalApr": "0.154774396111377573", + "openPositionUrl": "/farm/biswap/pool/bs-bsw-usdt/-/open?leverage=3&configKey=bs-bsw-usdt", + "type": "LP", + "workingToken": { + "address": "0x2b30c317ceDFb554Ec525F85E79538D59970BEb0", + "symbol": "BSW-USDT BS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x965F527D9159dCe6288a2219DB51fc6Eef120dD1", + "symbol": "BSW" + } + }, + "workers": [ + { + "key": "bs-bsw-usdt", + "sourceName": "Biswap BSW-USDT Worker", + "workerAddress": "0x47E6Bc836A82cb5A38545607dAEe7b6A8B334AbA", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "5853.962707682984125816", + "farmToken": { + "address": "0x965F527D9159dCe6288a2219DB51fc6Eef120dD1", + "symbol": "BSW" + }, + "farmTokenAmount": "45946.501022422078121514", + "tvl": "11703.980175261501394518" + } + ] + }, + { + "key": "bs-bsw-bnb", + "sourceName": "Biswap BSW-BNB", + "tvl": "2128.708499201961566729", + "tvlInMasterChef": "2272074.513299310457767521", + "farmRewardApr": "15.3366912192522091", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "4.035615101683454", + "farmRewardValuePerYear": "382924.233380266720128", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "bs-bsw-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "19.3723063209356631", + "totalApy": "21.369773", + "dailyTotalApr": "0.053074811838179898", + "openPositionUrl": "/farm/biswap/pool/bs-bsw-bnb/-/open?leverage=3&configKey=bs-bsw-bnb", + "type": "LP", + "workingToken": { + "address": "0x46492B26639Df0cda9b2769429845cb991591E0A", + "symbol": "BSW-BNB BS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x965F527D9159dCe6288a2219DB51fc6Eef120dD1", + "symbol": "BSW" + } + }, + "workers": [ + { + "key": "bs-bsw-bnb", + "sourceName": "Biswap BSW-BNB Worker", + "workerAddress": "0x3A0062Ca77Bd1926a1DCBfd436701314e483aa81", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "2.698141718765842165", + "farmToken": { + "address": "0x965F527D9159dCe6288a2219DB51fc6Eef120dD1", + "symbol": "BSW" + }, + "farmTokenAmount": "8358.358710260177651506", + "tvl": "2128.708499201961566729" + } + ] + }, + { + "key": "pcs-xwg-usdc", + "sourceName": "PancakeSwap XWG-USDC", + "tvl": "0.0", + "tvlInMasterChef": "2283.418418533432926165", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "42.815239220247699", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "USDC Vault", + "borrowingInterests": [ + { + "key": "pcs-xwg-usdc", + "sourceName": "USDC Vault", + "symbol": "USDC", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "2.0", + "totalApr": "42.815239220247699", + "totalApy": "53.403493", + "dailyTotalApr": "0.1173020252609526", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-xwg-usdc/-/open?leverage=2&configKey=pcs-xwg-usdc", + "type": "LP", + "workingToken": { + "address": "0x936928146a21AfCcd30DfA84824A780572B1630B", + "symbol": "XWG-USDC PCS LP", + "tokenA": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "tokenB": { + "address": "0x6b23c89196deb721e6fd9726e6c76e4810a464bc", + "symbol": "XWG" + } + }, + "workers": [ + { + "key": "pcs-xwg-usdc", + "sourceName": "PancakeSwap XWG-USDC Worker", + "workerAddress": "0x2245634E4c325F3f3Fc2b98cf75352b5D92F4c46", + "baseToken": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x6b23c89196deb721e6fd9726e6c76e4810a464bc", + "symbol": "XWG" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-usdt-bnb", + "sourceName": "PancakeSwap BNB-USDT", + "tvl": "15132835.592912026530173786", + "tvlInMasterChef": "15550570.660815415314446023", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "39.320079314466831", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "15.99999999999994", + "borrowingInterestSourceName": "USDT Vault", + "borrowingInterests": [ + { + "key": "pcs-bnb-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "15.99999999999994", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "3.0" + }, + { + "key": "pcs-usdt-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "23.320079314466891", + "totalApy": "26.254096", + "dailyTotalApr": "0.0638906282588134", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-usdt-bnb/-/open?leverage=3&configKey=pcs-bnb-usdt", + "type": "LP", + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "BNB-USDT PCS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "workers": [ + { + "key": "pcs-bnb-usdt", + "sourceName": "PancakeSwap BNB-USDT Worker", + "workerAddress": "0x81b6534f4F7ba45Ecf98295Cef1450B4a4FC81Cd", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "777975.050269244475720485", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "1973.469705426956495944", + "tvl": "1556009.775752275368424528" + }, + { + "key": "pcs-usdt-bnb", + "sourceName": "PancakeSwap USDT-BNB Worker", + "workerAddress": "0x41867cc58aece8B570FF1A2a8aa6149014D2a94C", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "17220.061742311630009096", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "6787866.056888741997562611", + "tvl": "13576825.817159751161749258" + } + ] + }, + { + "key": "pcs-bnb-busd", + "sourceName": "PancakeSwap BNB-BUSD", + "tvl": "267589.995006563846488225", + "tvlInMasterChef": "2312533.461451751599522931", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "102.9034153091439975", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-bnb-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "pcs-busd-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "102.9034153091439975", + "totalApy": "179.431308", + "dailyTotalApr": "0.2819271652305315", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-bnb-busd/-/open?leverage=3&configKey=pcs-bnb-busd", + "type": "LP", + "workingToken": { + "address": "0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16", + "symbol": "BNB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "workers": [ + { + "key": "pcs-bnb-busd", + "sourceName": "PancakeSwap BNB-BUSD Worker", + "workerAddress": "0x51782E39A0aF33f542443419c223434Bb4A5a695", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "pcs-busd-bnb", + "sourceName": "PancakeSwap BUSD-BNB Worker", + "workerAddress": "0x9B07DEaEc22328EbaE132875245492D56a57F7bf", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "339.245994791817072469", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "133794.997503281923244176", + "tvl": "267589.995006563846488225" + } + ] + }, + { + "key": "ms-btcb-usdt", + "sourceName": "MDEX BTCB-USDT", + "tvl": "0.0", + "tvlInMasterChef": "85569.724605315190978466", + "farmRewardApr": "13.0286145200104704", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "12.4470484540419129", + "farmRewardValuePerYear": "4083.717789253138176", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BTCB Vault", + "borrowingInterests": [ + { + "key": "ms-btcb-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "15.99999999999994", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "3.0" + }, + { + "key": "ms-usdt-btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "25.4756629740523833", + "totalApy": "29.003296", + "dailyTotalApr": "0.069796336915212009", + "openPositionUrl": "/farm/mdex-swap/pool/ms-btcb-usdt/-/open?leverage=3&configKey=ms-btcb-usdt", + "type": "LP", + "workingToken": { + "address": "0xda28Eb7ABa389C1Ea226A420bCE04Cb565Aafb85", + "symbol": "BTCB-USDT MS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + } + }, + "workers": [ + { + "key": "ms-btcb-usdt", + "sourceName": "MDEX BTCB-USDT Worker", + "workerAddress": "0xB995C6ABCDE40576d4458b2BB0718d3cA5D350F7", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ms-usdt-btcb", + "sourceName": "MDEX USDT-BTCB Worker", + "workerAddress": "0xcAaC62533Cb652F512b61A57455DB00DeD405CCC", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ms-eth-usdt", + "sourceName": "MDEX ETH-USDT", + "tvl": "0.0", + "tvlInMasterChef": "143342.942436279668548795", + "farmRewardApr": "7.777536427799324", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "13.191209462864535", + "farmRewardValuePerYear": "4083.717789253138176", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "ETH Vault", + "borrowingInterests": [ + { + "key": "ms-eth-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "15.99999999999994", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "3.0" + }, + { + "key": "ms-usdt-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "20.968745890663859", + "totalApy": "23.321829", + "dailyTotalApr": "0.05744861887853112", + "openPositionUrl": "/farm/mdex-swap/pool/ms-eth-usdt/-/open?leverage=3&configKey=ms-eth-usdt", + "type": "LP", + "workingToken": { + "address": "0x0FB881c078434b1C0E4d0B64d8c64d12078b7Ce2", + "symbol": "ETH-USDT MS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + } + }, + "workers": [ + { + "key": "ms-eth-usdt", + "sourceName": "MDEX ETH-USDT Worker", + "workerAddress": "0x5940760382CaEbf45463Cf8845E610820d3c51d5", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ms-usdt-eth", + "sourceName": "MDEX USDT-ETH Worker", + "workerAddress": "0xC25f74A4C4c5f814ce1B92aF573f18905BecCB54", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-btcb-busd", + "sourceName": "PancakeSwap BTCB-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "520307.672919243456989769", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "19.9282514368578495", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-btcb-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "pcs-busd-btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "19.9282514368578495", + "totalApy": "22.046036", + "dailyTotalApr": "0.0545979491420763", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-btcb-busd/-/open?leverage=3&configKey=pcs-btcb-busd", + "type": "LP", + "workingToken": { + "address": "0xF45cd219aEF8618A92BAa7aD848364a158a24F33", + "symbol": "BTCB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + } + }, + "workers": [ + { + "key": "pcs-btcb-busd", + "sourceName": "PancakeSwap BTCB-BUSD Worker", + "workerAddress": "0x2C4a246e532542DFaE3d575003C7f5c6583BFD8c", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "pcs-busd-btcb", + "sourceName": "PancakeSwap BUSD-BTCB Worker", + "workerAddress": "0x93cf6e8d7e0d03B8d773c893506FC808cD6a4FdF", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-eth-bnb", + "sourceName": "PancakeSwap ETH-BNB", + "tvl": "488592.186349823029815164", + "tvlInMasterChef": "2017129.264237291557293046", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "24.3779149852686795", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "ETH Vault", + "borrowingInterests": [ + { + "key": "pcs-eth-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + }, + { + "key": "pcs-bnb-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "24.3779149852686795", + "totalApy": "27.595865", + "dailyTotalApr": "0.0667888081788183", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-eth-bnb/-/open?leverage=3&configKey=pcs-eth-bnb", + "type": "LP", + "workingToken": { + "address": "0x74E4716E431f45807DCF19f284c7aA99F18a4fbc", + "symbol": "ETH-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + } + }, + "workers": [ + { + "key": "pcs-eth-bnb", + "sourceName": "PancakeSwap ETH-BNB Worker", + "workerAddress": "0x831332f94C4A0092040b28ECe9377AfEfF34B25a", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "619.428773118698794115", + "farmToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "farmTokenAmount": "75.19416899388193238", + "tvl": "488592.186349823029815164" + }, + { + "key": "pcs-bnb-eth", + "sourceName": "PancakeSwap BNB-ETH Worker", + "workerAddress": "0x98b7e1E50f0fb7787475acBBb86Cc2C367bb13A0", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-eth-usdc", + "sourceName": "PancakeSwap ETH-USDC", + "tvl": "0.0", + "tvlInMasterChef": "463610.620457009677963397", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "7.527596474243877", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "USDC Vault", + "borrowingInterests": [ + { + "key": "pcs-eth-usdc", + "sourceName": "USDC Vault", + "symbol": "USDC", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "pcs-usdc-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "7.527596474243877", + "totalApy": "7.817328", + "dailyTotalApr": "0.0206235519842298", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-eth-usdc/-/open?leverage=3&configKey=pcs-eth-usdc", + "type": "LP", + "workingToken": { + "address": "0xEa26B78255Df2bBC31C1eBf60010D78670185bD0", + "symbol": "ETH-USDC PCS LP", + "tokenA": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "tokenB": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + } + }, + "workers": [ + { + "key": "pcs-eth-usdc", + "sourceName": "PancakeSwap ETH-USDC Worker", + "workerAddress": "0xe93f5d253E5F367d3D5D6f5eCd8A409cEB8B510b", + "baseToken": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "pcs-usdc-eth", + "sourceName": "PancakeSwap USDC-ETH Worker", + "workerAddress": "0x58a3AD7f263B75532B58a60Cbf5D78Ee73123C93", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-btcb-bnb", + "sourceName": "PancakeSwap BTCB-BNB", + "tvl": "241.955509882009706283", + "tvlInMasterChef": "1389113.030193504136971583", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "24.2663140243673925", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BTCB Vault", + "borrowingInterests": [ + { + "key": "pcs-btcb-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + }, + { + "key": "pcs-bnb-btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "24.2663140243673925", + "totalApy": "27.453641", + "dailyTotalApr": "0.0664830521215545", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-btcb-bnb/-/open?leverage=3&configKey=pcs-btcb-bnb", + "type": "LP", + "workingToken": { + "address": "0x61EB789d75A95CAa3fF50ed7E47b96c132fEc082", + "symbol": "BTCB-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + } + }, + "workers": [ + { + "key": "pcs-btcb-bnb", + "sourceName": "PancakeSwap BTCB-BNB Worker", + "workerAddress": "0x0aD12Bc160B523E7aBfBe3ABaDceE8F1b6116089", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.306703103731275217", + "farmToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "farmTokenAmount": "0.002123538036129212", + "tvl": "241.955509882009706283" + }, + { + "key": "pcs-bnb-btcb", + "sourceName": "PancakeSwap BNB-BTCB Worker", + "workerAddress": "0x20E5d465dF8520abfEF79b04C4A2c8952b365e82", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-tusd-busd", + "sourceName": "PancakeSwap TUSD-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "116754.600006489483086871", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.71862772062008", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-tusd-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "4.0" + }, + { + "key": "pcs-busd-tusd", + "sourceName": "TUSD Vault", + "symbol": "TUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "4.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "4.0", + "totalApr": "0.71862772062008", + "totalApy": "0.721209", + "dailyTotalApr": "0.001968843070192", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-tusd-busd/-/open?leverage=4&configKey=pcs-tusd-busd", + "type": "LP", + "workingToken": { + "address": "0x2E28b9B74D6d99D4697e913b82B41ef1CAC51c6C", + "symbol": "TUSD-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x14016e85a25aeb13065688cafb43044c2ef86784", + "symbol": "TUSD" + } + }, + "workers": [ + { + "key": "pcs-tusd-busd", + "sourceName": "PancakeSwap TUSD-BUSD Worker", + "workerAddress": "0x0159f44892FFEd7bC9c00AC7Ad3D60DCf331fe53", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x14016e85a25aeb13065688cafb43044c2ef86784", + "symbol": "TUSD" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "pcs-busd-tusd", + "sourceName": "PancakeSwap BUSD-TUSD Worker", + "workerAddress": "0xC979CaB6424Fb6138abf28689ed8EfAba1Ec49AC", + "baseToken": { + "address": "0x14016e85a25aeb13065688cafb43044c2ef86784", + "symbol": "TUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-ust-busd", + "sourceName": "PancakeSwap UST-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "46840.922789957745356826", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "334.04966100197702", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-ust-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "4.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "4.0", + "totalApr": "334.04966100197702", + "totalApy": "2680.742448", + "dailyTotalApr": "0.915204550690348", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-ust-busd/-/open?leverage=4&configKey=pcs-ust-busd", + "type": "LP", + "workingToken": { + "address": "0x05faf555522Fa3F93959F86B41A3808666093210", + "symbol": "UST-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x23396cf899ca06c4472205fc903bdb4de249d6fc", + "symbol": "UST" + } + }, + "workers": [ + { + "key": "pcs-ust-busd", + "sourceName": "PancakeSwap UST-BUSD Worker", + "workerAddress": "0xeBdECF3a21D95453A89440A4E32B9559E47073E7", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x23396cf899ca06c4472205fc903bdb4de249d6fc", + "symbol": "UST" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-sushi-eth", + "sourceName": "PancakeSwap SUSHI-ETH", + "tvl": "0.0", + "tvlInMasterChef": "12759.7313617155706746", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "89.444820170608149", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "ETH Vault", + "borrowingInterests": [ + { + "key": "pcs-sushi-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "89.444820170608149", + "totalApy": "144.33109", + "dailyTotalApr": "0.2450543018372826", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-sushi-eth/-/open?leverage=3&configKey=pcs-sushi-eth", + "type": "LP", + "workingToken": { + "address": "0x16aFc4F2Ad82986bbE2a4525601F8199AB9c832D", + "symbol": "SUSHI-ETH PCS LP", + "tokenA": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "tokenB": { + "address": "0x947950bcc74888a40ffa2593c5798f11fc9124c4", + "symbol": "SUSHI" + } + }, + "workers": [ + { + "key": "pcs-sushi-eth", + "sourceName": "PancakeSwap SUSHI-ETH Worker", + "workerAddress": "0xaA5c95181c02DfB8173813149e52c8C9E4E14124", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x947950bcc74888a40ffa2593c5798f11fc9124c4", + "symbol": "SUSHI" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-uni-bnb", + "sourceName": "PancakeSwap UNI-BNB", + "tvl": "157480.277647509550148307", + "tvlInMasterChef": "326963.506395549350071182", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "5.2116281822187935", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-uni-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "5.2116281822187935", + "totalApy": "5.349432", + "dailyTotalApr": "0.0142784333759419", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-uni-bnb/-/open?leverage=3&configKey=pcs-uni-bnb", + "type": "LP", + "workingToken": { + "address": "0x014608E87AF97a054C9a49f81E1473076D51d9a3", + "symbol": "UNI-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0xbf5140a22578168fd562dccf235e5d43a02ce9b1", + "symbol": "UNI" + } + }, + "workers": [ + { + "key": "pcs-uni-bnb", + "sourceName": "PancakeSwap UNI-BNB Worker", + "workerAddress": "0xA1644132Ca692ba0657637A31CE0F6B99f052C5E", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "199.650788323795343162", + "farmToken": { + "address": "0xbf5140a22578168fd562dccf235e5d43a02ce9b1", + "symbol": "UNI" + }, + "farmTokenAmount": "7366.04721486597890224", + "tvl": "157480.277647509550148307" + } + ] + }, + { + "key": "ms-eth-btcb", + "sourceName": "MDEX ETH-BTCB", + "tvl": "0.0", + "tvlInMasterChef": "341010.482369656418127885", + "farmRewardApr": "0.2736441454722893", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "13.012576867637621325", + "farmRewardValuePerYear": "341.81509906643904", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BTCB Vault", + "borrowingInterests": [ + { + "key": "ms-eth-btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "ms-btcb-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "13.286221013109910625", + "totalApy": "14.206501", + "dailyTotalApr": "0.036400605515369618", + "openPositionUrl": "/farm/mdex-swap/pool/ms-eth-btcb/-/open?leverage=3&configKey=ms-eth-btcb", + "type": "LP", + "workingToken": { + "address": "0x577d005912C49B1679B4c21E334FdB650E92C077", + "symbol": "ETH-BTCB MS LP", + "tokenA": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "tokenB": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + } + }, + "workers": [ + { + "key": "ms-eth-btcb", + "sourceName": "MDEX ETH-BTCB Worker", + "workerAddress": "0x2EF53BB6749D9C635ff1FE7580b36303ecA185a3", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ms-btcb-eth", + "sourceName": "MDEX BTCB-ETH Worker", + "workerAddress": "0x121752a8C3D4aFD5CC0B41c8807dB7887742a608", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-eth-btcb", + "sourceName": "PancakeSwap ETH-BTCB", + "tvl": "0.0", + "tvlInMasterChef": "2840420.646761508138727662", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "3.502579735620318", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BTCB Vault", + "borrowingInterests": [ + { + "key": "pcs-eth-btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "pcs-btcb-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "3.502579735620318", + "totalApy": "3.564469", + "dailyTotalApr": "0.0095961088647132", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-eth-btcb/-/open?leverage=3&configKey=pcs-eth-btcb", + "type": "LP", + "workingToken": { + "address": "0xD171B26E4484402de70e3Ea256bE5A2630d7e88D", + "symbol": "ETH-BTCB PCS LP", + "tokenA": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "tokenB": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + } + }, + "workers": [ + { + "key": "pcs-eth-btcb", + "sourceName": "PancakeSwap ETH-BTCB Worker", + "workerAddress": "0x9140AB358BCF6D6C18E36f560Ce72d6458c9cA0A", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "pcs-btcb-eth", + "sourceName": "PancakeSwap BTCB-ETH Worker", + "workerAddress": "0xEc4709B3C33d78f0c3f0b3Daa779813b93d48505", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-vai-busd", + "sourceName": "PancakeSwap VAI-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "23248.529040756624972323", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "21.217885402061692", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-vai-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "4.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "4.0", + "totalApr": "21.217885402061692", + "totalApy": "23.629278", + "dailyTotalApr": "0.0581311928823608", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-vai-busd/-/open?leverage=4&configKey=pcs-vai-busd", + "type": "LP", + "workingToken": { + "address": "0x133ee93FE93320e1182923E1a640912eDE17C90C", + "symbol": "VAI-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x4bd17003473389a42daf6a0a729f6fdb328bbbd7", + "symbol": "VAI" + } + }, + "workers": [ + { + "key": "pcs-vai-busd", + "sourceName": "PancakeSwap VAI-BUSD Worker", + "workerAddress": "0x693430Fe5F1b0a61b232132d0567295c288eA482", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x4bd17003473389a42daf6a0a729f6fdb328bbbd7", + "symbol": "VAI" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ms-bnb-busd", + "sourceName": "MDEX BNB-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "108824.218119565531222753", + "farmRewardApr": "0.3694869403162173", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "9.51983321612170473", + "farmRewardValuePerYear": "147.286180898545536", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "ms-bnb-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "ms-busd-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "9.88932015643792203", + "totalApy": "10.393361", + "dailyTotalApr": "0.02709402782585732", + "openPositionUrl": "/farm/mdex-swap/pool/ms-bnb-busd/-/open?leverage=3&configKey=ms-bnb-busd", + "type": "LP", + "workingToken": { + "address": "0x340192D37d95fB609874B1db6145ED26d1e47744", + "symbol": "BNB-BUSD MS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "workers": [ + { + "key": "ms-bnb-busd", + "sourceName": "MDEX BNB-BUSD Worker", + "workerAddress": "0xA7837a1198fB33aE2fC9Ee1E1d679242B4785FFC", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ms-busd-bnb", + "sourceName": "MDEX BUSD-BNB Worker", + "workerAddress": "0x94bD7C206ce735213c2e9ECeF424af7eb71a425F", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-dot-bnb", + "sourceName": "PancakeSwap DOT-BNB", + "tvl": "58335.438866241682710294", + "tvlInMasterChef": "419718.80417910136774835", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "13.5573818590794775", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-dot-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "13.5573818590794775", + "totalApy": "14.51649", + "dailyTotalApr": "0.0371435119426835", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-dot-bnb/-/open?leverage=3&configKey=pcs-dot-bnb", + "type": "LP", + "workingToken": { + "address": "0xDd5bAd8f8b360d76d12FdA230F8BAF42fe0022CF", + "symbol": "DOT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x7083609fce4d1d8dc0c979aab8c869ea2c873402", + "symbol": "DOT" + } + }, + "workers": [ + { + "key": "pcs-dot-bnb", + "sourceName": "PancakeSwap DOT-BNB Worker", + "workerAddress": "0x05bDF33f03017eaFdEEccD68406E1281a1deF62d", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "73.956666389227104376", + "farmToken": { + "address": "0x7083609fce4d1d8dc0c979aab8c869ea2c873402", + "symbol": "DOT" + }, + "farmTokenAmount": "3561.100449243382447762", + "tvl": "58335.438866241682710294" + } + ] + }, + { + "key": "pcs-usdt-busd", + "sourceName": "PancakeSwap USDT-BUSD", + "tvl": "14246.197268923385063404", + "tvlInMasterChef": "1850982.275164161919060727", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "45.266476545734121", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-usdt-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "6.0" + }, + { + "key": "pcs-busd-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "39.99999999999985", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "6.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "6.0", + "totalApr": "45.266476545734121", + "totalApy": "57.205598", + "dailyTotalApr": "0.1240177439609154", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-usdt-busd/-/open?leverage=6&configKey=pcs-usdt-busd", + "type": "LP", + "workingToken": { + "address": "0x7EFaEf62fDdCCa950418312c6C91Aef321375A00", + "symbol": "USDT-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "workers": [ + { + "key": "pcs-usdt-busd", + "sourceName": "PancakeSwap USDT-BUSD Worker", + "workerAddress": "0xC5954CA8988988362f60498d5aDEc67BA466492B", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "pcs-busd-usdt", + "sourceName": "PancakeSwap BUSD-USDT Worker", + "workerAddress": "0xE90C44C16705859931099E7565DA5d3c21F67273", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "7125.669191719199631754", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "7123.098634461692532163", + "tvl": "14246.197268923385063404" + } + ] + }, + { + "key": "pcs-thg-bnb", + "sourceName": "PancakeSwap THG-BNB", + "tvl": "3355.6490366322710014", + "tvlInMasterChef": "12665.634626372212272441", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "133.481374060186184", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "30.5891405562788595", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-thg-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "30.5891405562788595", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "2.0", + "totalApr": "102.8922335039073245", + "totalApy": "179.400152", + "dailyTotalApr": "0.2818965301476913", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-thg-bnb/-/open?leverage=2&configKey=pcs-thg-bnb", + "type": "LP", + "workingToken": { + "address": "0x486697ae24469cB1122F537924Aa46E705B142Aa", + "symbol": "THG-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x9fd87aefe02441b123c3c32466cd9db4c578618f", + "symbol": "THG" + } + }, + "workers": [ + { + "key": "pcs-thg-bnb", + "sourceName": "PancakeSwap THG-BNB Worker", + "workerAddress": "0xA71381ff15862d0079c614b1E2B1F18485272880", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "4.254234152426338839", + "farmToken": { + "address": "0x9fd87aefe02441b123c3c32466cd9db4c578618f", + "symbol": "THG" + }, + "farmTokenAmount": "24484.325075437820277436", + "tvl": "3355.6490366322710014" + } + ] + }, + { + "key": "ms-mdx-busd", + "sourceName": "MDEX MDX-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "267916.380332387213424269", + "farmRewardApr": "0.2831714805617849", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "28.17491863194916683", + "farmRewardValuePerYear": "277.89845452555464", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "ms-mdx-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "28.45809011251095173", + "totalApy": "32.905747", + "dailyTotalApr": "0.077967370171262881", + "openPositionUrl": "/farm/mdex-swap/pool/ms-mdx-busd/-/open?leverage=3&configKey=ms-mdx-busd", + "type": "LP", + "workingToken": { + "address": "0x223740a259E461aBeE12D84A9FFF5Da69Ff071dD", + "symbol": "MDX-BUSD MS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x9c65ab58d8d978db963e63f2bfb7121627e3a739", + "symbol": "MDX" + } + }, + "workers": [ + { + "key": "ms-mdx-busd", + "sourceName": "MDEX MDX-BUSD Worker", + "workerAddress": "0x0Ec1B4A034E7a4Dd746F2c5C7DC806293Db7D413", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x9c65ab58d8d978db963e63f2bfb7121627e3a739", + "symbol": "MDX" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-trx-busd", + "sourceName": "PancakeSwap TRX-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "343790.133214843304261235", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "8.2734669933539235", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-trx-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "8.2734669933539235", + "totalApy": "8.624337", + "dailyTotalApr": "0.0226670328585039", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-trx-busd/-/open?leverage=3&configKey=pcs-trx-busd", + "type": "LP", + "workingToken": { + "address": "0xb5D108578Be3750209d1b3A8f45FFee8C5a75146", + "symbol": "TRX-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x85eac5ac2f758618dfa09bdbe0cf174e7d574d5b", + "symbol": "TRX" + } + }, + "workers": [ + { + "key": "pcs-trx-busd", + "sourceName": "PancakeSwap TRX-BUSD Worker", + "workerAddress": "0x9f612544075d3E088Ef004b99eC2c77Fe622DA8e", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x85eac5ac2f758618dfa09bdbe0cf174e7d574d5b", + "symbol": "TRX" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-axs-bnb", + "sourceName": "PancakeSwap AXS-BNB", + "tvl": "1739.320461676831664071", + "tvlInMasterChef": "86614.454862210708156751", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "12.235041775061658", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-axs-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "12.235041775061658", + "totalApy": "13.012689", + "dailyTotalApr": "0.0335206623974292", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-axs-bnb/-/open?leverage=3&configKey=pcs-axs-bnb", + "type": "LP", + "workingToken": { + "address": "0xC2d00De94795e60FB76Bc37d899170996cBdA436", + "symbol": "AXS-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x715D400F88C167884bbCc41C5FeA407ed4D2f8A0", + "symbol": "AXS" + } + }, + "workers": [ + { + "key": "pcs-axs-bnb", + "sourceName": "PancakeSwap AXS-BNB Worker", + "workerAddress": "0x1eaAf599b95d7cab0151B8384d15fe3F68Aa4ee3", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "2.205080575859517805", + "farmToken": { + "address": "0x715D400F88C167884bbCc41C5FeA407ed4D2f8A0", + "symbol": "AXS" + }, + "farmTokenAmount": "100.723981095683078208", + "tvl": "1739.320461676831664071" + } + ] + }, + { + "key": "pcs-link-bnb", + "sourceName": "PancakeSwap LINK-BNB", + "tvl": "11616.551934360666901278", + "tvlInMasterChef": "413014.885929318882469646", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "7.498740525797928", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-link-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "7.498740525797928", + "totalApy": "7.786227", + "dailyTotalApr": "0.0205444945912272", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-link-bnb/-/open?leverage=3&configKey=pcs-link-bnb", + "type": "LP", + "workingToken": { + "address": "0x824eb9faDFb377394430d2744fa7C42916DE3eCe", + "symbol": "LINK-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0xf8a0bf9cf54bb92f17374d9e9a321e6a111a51bd", + "symbol": "LINK" + } + }, + "workers": [ + { + "key": "pcs-link-bnb", + "sourceName": "PancakeSwap LINK-BNB Worker", + "workerAddress": "0xDcd9f075B1Ff638e757226626a3b3606D7795f80", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "14.727264810204596165", + "farmToken": { + "address": "0xf8a0bf9cf54bb92f17374d9e9a321e6a111a51bd", + "symbol": "LINK" + }, + "farmTokenAmount": "304.829419278857866159", + "tvl": "11616.551934360666901278" + } + ] + }, + { + "key": "pcs-usdc-busd", + "sourceName": "PancakeSwap USDC-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "225802.997577059831108187", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "17.290545335067824", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-usdc-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "4.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "4.0", + "totalApr": "17.290545335067824", + "totalApy": "18.870504", + "dailyTotalApr": "0.0473713570823776", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-usdc-busd/-/open?leverage=4&configKey=pcs-usdc-busd", + "type": "LP", + "workingToken": { + "address": "0x2354ef4DF11afacb85a5C7f98B624072ECcddbB1", + "symbol": "USDC-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + } + }, + "workers": [ + { + "key": "pcs-usdc-busd", + "sourceName": "PancakeSwap USDC-BUSD Worker", + "workerAddress": "0xB82B93FcF1818513889c0E1F3628484Ce5017A14", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ms-bnb-usdt", + "sourceName": "MDEX BNB-USDT", + "tvl": "0.0", + "tvlInMasterChef": "11276030.607180279801359982", + "farmRewardApr": "0.0071990685711485", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "4.82370384699748742", + "farmRewardValuePerYear": "892.054039027046688", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "USDT Vault", + "borrowingInterests": [ + { + "key": "ms-bnb-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "15.99999999999994", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "3.0" + }, + { + "key": "ms-usdt-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "4.83090291556863592", + "totalApy": "4.949157", + "dailyTotalApr": "0.013235350453612701", + "openPositionUrl": "/farm/mdex-swap/pool/ms-bnb-usdt/-/open?leverage=3&configKey=ms-bnb-usdt", + "type": "LP", + "workingToken": { + "address": "0x09CB618bf5eF305FadfD2C8fc0C26EeCf8c6D5fd", + "symbol": "BNB-USDT MS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "workers": [ + { + "key": "ms-bnb-usdt", + "sourceName": "MDEX BNB-USDT Worker", + "workerAddress": "0x165102dd6ea72a4fB513fF78f30E835c8f099c25", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ms-usdt-bnb", + "sourceName": "MDEX USDT-BNB Worker", + "workerAddress": "0xbEB7c0BF4cdc19853CC72281DeC5aF697531f6Cd", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-xvs-bnb", + "sourceName": "PancakeSwap XVS-BNB", + "tvl": "2461.751080546701105014", + "tvlInMasterChef": "137884.473778294836667353", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "120.945679511777871", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "61.178281112557719", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-xvs-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "59.767398399220152", + "totalApy": "81.699708", + "dailyTotalApr": "0.1637462969841648", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-xvs-bnb/-/open?leverage=3&configKey=pcs-xvs-bnb", + "type": "LP", + "workingToken": { + "address": "0x7EB5D86FD78f3852a3e0e064f2842d45a3dB6EA2", + "symbol": "XVS-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0xcf6bb5389c92bdda8a3747ddb454cb7a64626c63", + "symbol": "XVS" + } + }, + "workers": [ + { + "key": "pcs-xvs-bnb", + "sourceName": "PancakeSwap XVS-BNB Worker", + "workerAddress": "0xBB77F1625c4C3374ea0BAF42FAC74F7b7Ae9E4c6", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "3.120965693165810156", + "farmToken": { + "address": "0xcf6bb5389c92bdda8a3747ddb454cb7a64626c63", + "symbol": "XVS" + }, + "farmTokenAmount": "99.788632281188233175", + "tvl": "2461.751080546701105014" + } + ] + }, + { + "key": "ms-bnb-btcb", + "sourceName": "MDEX BNB-BTCB", + "tvl": "0.0", + "tvlInMasterChef": "2753.863932240344529216", + "farmRewardApr": "2.7549029273840245", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "2.315777484624647325", + "farmRewardValuePerYear": "27.789845452550208", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BTCB Vault", + "borrowingInterests": [ + { + "key": "ms-bnb-btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "ms-btcb-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "5.070680412008671825", + "totalApy": "5.20107", + "dailyTotalApr": "0.013892275101393621", + "openPositionUrl": "/farm/mdex-swap/pool/ms-bnb-btcb/-/open?leverage=3&configKey=ms-bnb-btcb", + "type": "LP", + "workingToken": { + "address": "0x969f2556F786a576F32AeF6c1D6618f0221Ec70e", + "symbol": "BNB-BTCB MS LP", + "tokenA": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "workers": [ + { + "key": "ms-bnb-btcb", + "sourceName": "MDEX BNB-BTCB Worker", + "workerAddress": "0x4D228564cc6BeA08b7cF1bcD4A7074D4b9293851", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ms-btcb-bnb", + "sourceName": "MDEX BTCB-BNB Worker", + "workerAddress": "0x5EffBF90F915B59cc967060740243037CE9E6a7E", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-ada-bnb", + "sourceName": "PancakeSwap ADA-BNB", + "tvl": "1870.426969013561344362", + "tvlInMasterChef": "484956.570100962964523502", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "15.9163227679187855", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-ada-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "15.9163227679187855", + "totalApy": "17.248864", + "dailyTotalApr": "0.0436063637477227", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-ada-bnb/-/open?leverage=3&configKey=pcs-ada-bnb", + "type": "LP", + "workingToken": { + "address": "0x28415ff2C35b65B9E5c7de82126b4015ab9d031F", + "symbol": "ADA-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x3ee2200efb3400fabb9aacf31297cbdd1d435d47", + "symbol": "ADA" + } + }, + "workers": [ + { + "key": "pcs-ada-bnb", + "sourceName": "PancakeSwap ADA-BNB Worker", + "workerAddress": "0xd62f15cB6FDfF5464047f4f2fb235622c6371aF6", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "2.371295151647519585", + "farmToken": { + "address": "0x3ee2200efb3400fabb9aacf31297cbdd1d435d47", + "symbol": "ADA" + }, + "farmTokenAmount": "1500.787266257779380985", + "tvl": "1870.426969013561344362" + } + ] + }, + { + "key": "pcs-usdc-usdt", + "sourceName": "PancakeSwap USDC-USDT", + "tvl": "21663.573418053606303098", + "tvlInMasterChef": "804803.205810241171757862", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "18.827153033391218", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "USDC Vault", + "borrowingInterests": [ + { + "key": "pcs-usdc-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "23.99999999999991", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "4.0" + }, + { + "key": "pcs-usdt-usdc", + "sourceName": "USDC Vault", + "symbol": "USDC", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "4.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "4.0", + "totalApr": "18.827153033391218", + "totalApy": "20.710266", + "dailyTotalApr": "0.0515812411873732", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-usdc-usdt/-/open?leverage=4&configKey=pcs-usdc-usdt", + "type": "LP", + "workingToken": { + "address": "0xec6557348085aa57c72514d67070dc863c0a5a8c", + "symbol": "USDC-USDT PCS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + } + }, + "workers": [ + { + "key": "pcs-usdc-usdt", + "sourceName": "PancakeSwap USDC-USDT Worker", + "workerAddress": "0x4ADD84e335Ee575Ba22bC4059C844Ed1b756b5c3", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "10850.719647609617669599", + "farmToken": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "farmTokenAmount": "10840.401721018983570031", + "tvl": "21663.573418053606303098" + }, + { + "key": "pcs-usdt-usdc", + "sourceName": "PancakeSwap USDT-USDC Worker", + "workerAddress": "0x8b452051666708A005F6C7170baADc3913b4C349", + "baseToken": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-sps-bnb", + "sourceName": "PancakeSwap SPS-BNB", + "tvl": "4.844138946306606987", + "tvlInMasterChef": "13302.412733900987480349", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "12.85204580794253", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-sps-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "45.8837108344182892", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.5" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "12.85204580794253", + "totalApy": "13.711896", + "dailyTotalApr": "0.035211084405322", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-sps-bnb/-/open?leverage=2.5&configKey=pcs-sps-bnb", + "type": "LP", + "workingToken": { + "address": "0xfdfde3af740a22648b9dd66d05698e5095940850", + "symbol": "SPS-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x1633b7157e7638C4d6593436111Bf125Ee74703F", + "symbol": "SPS" + } + }, + "workers": [ + { + "key": "pcs-sps-bnb", + "sourceName": "PancakeSwap SPS-BNB Worker", + "workerAddress": "0xbBa4c941E577cfe921e3e88D705a46b22F3B1aDf", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.006141316067176797", + "farmToken": { + "address": "0x1633b7157e7638C4d6593436111Bf125Ee74703F", + "symbol": "SPS" + }, + "farmTokenAmount": "91.363296688509296764", + "tvl": "4.844138946306606987" + } + ] + }, + { + "key": "pcs-dai-busd", + "sourceName": "PancakeSwap DAI-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "128321.938283974350363125", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "7.294422106059956", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-dai-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "4.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "4.0", + "totalApr": "7.294422106059956", + "totalApy": "7.56627", + "dailyTotalApr": "0.0199847180987944", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-dai-busd/-/open?leverage=4&configKey=pcs-dai-busd", + "type": "LP", + "workingToken": { + "address": "0x66FDB2eCCfB58cF098eaa419e5EfDe841368e489", + "symbol": "DAI-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3", + "symbol": "DAI" + } + }, + "workers": [ + { + "key": "pcs-dai-busd", + "sourceName": "PancakeSwap DAI-BUSD Worker", + "workerAddress": "0xe632ac75f2d0A97F7b1ef3a8a16d653C4c82b1fb", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3", + "symbol": "DAI" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-dvi-bnb", + "sourceName": "PancakeSwap DVI-BNB", + "tvl": "111.050693777343754492", + "tvlInMasterChef": "2288.526993737754930119", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "120.083306159023131", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "30.5891405562788595", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-dvi-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "30.5891405562788595", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "2.0", + "totalApr": "89.4941656027442715", + "totalApy": "144.451391", + "dailyTotalApr": "0.2451894948020391", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-dvi-bnb/-/open?leverage=2&configKey=pcs-dvi-bnb", + "type": "LP", + "workingToken": { + "address": "0x89EBF9cD99864f6E51bd7a578965922029cAB977", + "symbol": "DVI-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x758fb037a375f17c7e195cc634d77da4f554255b", + "symbol": "DVI" + } + }, + "workers": [ + { + "key": "pcs-dvi-bnb", + "sourceName": "PancakeSwap DVI-BNB Worker", + "workerAddress": "0x5C8035eB6f6E724eE6748D9844b6E9ffec0C5cB5", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.14078816019220868", + "farmToken": { + "address": "0x758fb037a375f17c7e195cc634d77da4f554255b", + "symbol": "DVI" + }, + "farmTokenAmount": "2469.732347156202260223", + "tvl": "111.050693777343754492" + } + ] + }, + { + "key": "pcs-belt-bnb", + "sourceName": "PancakeSwap BELT-BNB", + "tvl": "25.947355648236180829", + "tvlInMasterChef": "2121.505237403253717731", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "3.372589571584562", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-belt-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "22.9418554172091446", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "1.75" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "3.372589571584562", + "totalApy": "3.429945", + "dailyTotalApr": "0.0092399714289988", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-belt-bnb/-/open?leverage=1.75&configKey=pcs-belt-bnb", + "type": "LP", + "workingToken": { + "address": "0xF3Bc6FC080ffCC30d93dF48BFA2aA14b869554bb", + "symbol": "BELT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0xE0e514c71282b6f4e823703a39374Cf58dc3eA4f", + "symbol": "BELT" + } + }, + "workers": [ + { + "key": "pcs-belt-bnb", + "sourceName": "PancakeSwap BELT-BNB Worker", + "workerAddress": "0x9B13982d094b4fCca4aFF741A96834ff66E4d8bd", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.032895611358291011", + "farmToken": { + "address": "0xE0e514c71282b6f4e823703a39374Cf58dc3eA4f", + "symbol": "BELT" + }, + "farmTokenAmount": "143.448414992207342105", + "tvl": "25.947355648236180829" + } + ] + }, + { + "key": "ms-bnb-eth", + "sourceName": "MDEX BNB-ETH", + "tvl": "0.0", + "tvlInMasterChef": "24086.095275203473666044", + "farmRewardApr": "0.2992305866006992", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "5.19491075596058508", + "farmRewardValuePerYear": "26.4003531799248", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "ETH Vault", + "borrowingInterests": [ + { + "key": "ms-bnb-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "ms-eth-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "5.49414134256128428", + "totalApy": "5.647435", + "dailyTotalApr": "0.015052442034414477", + "openPositionUrl": "/farm/mdex-swap/pool/ms-bnb-eth/-/open?leverage=3&configKey=ms-bnb-eth", + "type": "LP", + "workingToken": { + "address": "0x82E8F9e7624fA038DfF4a39960F5197A43fa76aa", + "symbol": "BNB-ETH MS LP", + "tokenA": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "workers": [ + { + "key": "ms-bnb-eth", + "sourceName": "MDEX BNB-ETH Worker", + "workerAddress": "0xC42023C518014e4f843BeE928b27D4E004926584", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ms-eth-bnb", + "sourceName": "MDEX ETH-BNB Worker", + "workerAddress": "0x8a426aABF42AaE9E0f483cBe3C0DCc00b7659AEC", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ms-mdx-bnb", + "sourceName": "MDEX MDX-BNB", + "tvl": "0.0", + "tvlInMasterChef": "83559.241247531938627042", + "farmRewardApr": "0.0771743919761299", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "12.77846120736672879", + "farmRewardValuePerYear": "70.86410590401144", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "ms-mdx-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "12.85563559934285869", + "totalApy": "13.715977", + "dailyTotalApr": "0.035220919450254407", + "openPositionUrl": "/farm/mdex-swap/pool/ms-mdx-bnb/-/open?leverage=3&configKey=ms-mdx-bnb", + "type": "LP", + "workingToken": { + "address": "0xAf9Aa53146C5752BF6068A84B970E9fBB22a87bc", + "symbol": "MDX-BNB MS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x9c65ab58d8d978db963e63f2bfb7121627e3a739", + "symbol": "MDX" + } + }, + "workers": [ + { + "key": "ms-mdx-bnb", + "sourceName": "MDEX MDX-BNB Worker", + "workerAddress": "0x0444201F61E06b35Cab85807c2dc4764703bE745", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x9c65ab58d8d978db963e63f2bfb7121627e3a739", + "symbol": "MDX" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-bor-bnb", + "sourceName": "PancakeSwap BOR-BNB", + "tvl": "0.0", + "tvlInMasterChef": "1068.165075792548490883", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "1.4673527316055165", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-bor-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "22.9418554172091446", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "1.75" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "1.4673527316055165", + "totalApy": "1.478141", + "dailyTotalApr": "0.0040201444701521", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-bor-bnb/-/open?leverage=1.75&configKey=pcs-bor-bnb", + "type": "LP", + "workingToken": { + "address": "0xe094c686aD6cDda57b9564457F541FBF099B948A", + "symbol": "BOR-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x92D7756c60dcfD4c689290E8A9F4d263b3b32241", + "symbol": "BOR" + } + }, + "workers": [ + { + "key": "pcs-bor-bnb", + "sourceName": "PancakeSwap BOR-BNB Worker", + "workerAddress": "0x730bce145a55A07C2D7363db7110466c5c26E472", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x92D7756c60dcfD4c689290E8A9F4d263b3b32241", + "symbol": "BOR" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-beth-eth", + "sourceName": "PancakeSwap BETH-ETH", + "tvl": "0.0", + "tvlInMasterChef": "27014.130563862129118556", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "ETH Vault", + "borrowingInterests": [ + { + "key": "pcs-beth-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "4.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-beth-eth/-/open?leverage=4&configKey=pcs-beth-eth", + "type": "LP", + "workingToken": { + "address": "0x99d865Ed50D2C32c1493896810FA386c1Ce81D91", + "symbol": "BETH-ETH PCS LP", + "tokenA": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "tokenB": { + "address": "0x250632378e573c6be1ac2f97fcdf00515d0aa91b", + "symbol": "BETH" + } + }, + "workers": [ + { + "key": "pcs-beth-eth", + "sourceName": "PancakeSwap BETH-ETH Worker", + "workerAddress": "0xd06d9B0bA226DE48399Ed3b06ceB39eE8F62C0A0", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x250632378e573c6be1ac2f97fcdf00515d0aa91b", + "symbol": "BETH" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-yfi-bnb", + "sourceName": "PancakeSwap YFI-BNB", + "tvl": "0.0", + "tvlInMasterChef": "1579.561826529179681165", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "10.450216060909124", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-yfi-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "10.450216060909124", + "totalApy": "11.014119", + "dailyTotalApr": "0.0286307289339976", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-yfi-bnb/-/open?leverage=3&configKey=pcs-yfi-bnb", + "type": "LP", + "workingToken": { + "address": "0xCE383277847f8217392eeA98C5a8B4a7D27811b0", + "symbol": "YFI-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x88f1a5ae2a3bf98aeaf342d26b30a79438c9142e", + "symbol": "YFI" + } + }, + "workers": [ + { + "key": "pcs-yfi-bnb", + "sourceName": "PancakeSwap YFI-BNB Worker", + "workerAddress": "0x2E7f32e38EA5a5fcb4494d9B626d2d393B176B1E", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x88f1a5ae2a3bf98aeaf342d26b30a79438c9142e", + "symbol": "YFI" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-eternal-bnb", + "sourceName": "PancakeSwap ETERNAL-BNB", + "tvl": "58.989157183326582491", + "tvlInMasterChef": "13617.640217896933470993", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "1.8994433537382045", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-eternal-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "30.5891405562788595", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "1.8994433537382045", + "totalApy": "1.917547", + "dailyTotalApr": "0.0052039543938033", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-eternal-bnb/-/open?leverage=2&configKey=pcs-eternal-bnb", + "type": "LP", + "workingToken": { + "address": "0xbd26e08411483C4BEBba80939FA5a775beE22338", + "symbol": "ETERNAL-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0xD44FD09d74cd13838F137B590497595d6b3FEeA4", + "symbol": "ETERNAL" + } + }, + "workers": [ + { + "key": "pcs-eternal-bnb", + "sourceName": "PancakeSwap ETERNAL-BNB Worker", + "workerAddress": "0x7D306Dd73531C45F9847e547a0E8dEEAFe804939", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.074785439231753071", + "farmToken": { + "address": "0xD44FD09d74cd13838F137B590497595d6b3FEeA4", + "symbol": "ETERNAL" + }, + "farmTokenAmount": "154.447928058005948015", + "tvl": "58.989157183326582491" + } + ] + }, + { + "key": "pcs-bmon-bnb", + "sourceName": "PancakeSwap BMON-BNB", + "tvl": "133.026495735424340238", + "tvlInMasterChef": "15144.858062610563980735", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.2911321387532465", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-bmon-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "30.5891405562788595", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.2911321387532465", + "totalApy": "0.291555", + "dailyTotalApr": "0.0007976222979541", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-bmon-bnb/-/open?leverage=2&configKey=pcs-bmon-bnb", + "type": "LP", + "workingToken": { + "address": "0x3C2b7B578Dd2175A1c3524Aa0D515106282Bf108", + "symbol": "BMON-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x08ba0619b1e7a582e0bce5bbe9843322c954c340", + "symbol": "BMON" + } + }, + "workers": [ + { + "key": "pcs-bmon-bnb", + "sourceName": "PancakeSwap BMON-BNB Worker", + "workerAddress": "0xb800A87d8cC5D8d134635ed321bF7963aa3F5BcF", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.168648704068051786", + "farmToken": { + "address": "0x08ba0619b1e7a582e0bce5bbe9843322c954c340", + "symbol": "BMON" + }, + "farmTokenAmount": "16739.708103617186469246", + "tvl": "133.026495735424340238" + } + ] + }, + { + "key": "pcs-bmon-busd", + "sourceName": "PancakeSwap BMON-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "5692.717360682737374366", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.990886281886375", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-bmon-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "2.0", + "totalApr": "0.990886281886375", + "totalApy": "0.995798", + "dailyTotalApr": "0.002714756936675", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-bmon-busd/-/open?leverage=2&configKey=pcs-bmon-busd", + "type": "LP", + "workingToken": { + "address": "0x00e53C169dA54a7E11172aEEDf8Eb87F060F479e", + "symbol": "BMON-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x08ba0619b1e7a582e0bce5bbe9843322c954c340", + "symbol": "BMON" + } + }, + "workers": [ + { + "key": "pcs-bmon-busd", + "sourceName": "PancakeSwap BMON-BUSD Worker", + "workerAddress": "0xb8e0B422d54aa59552A8aeB2255e1aA8627A5eDA", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x08ba0619b1e7a582e0bce5bbe9843322c954c340", + "symbol": "BMON" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-pots-busd", + "sourceName": "PancakeSwap POTS-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "11267.429943590819455039", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "2.221595320437363", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-pots-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "2.0", + "totalApr": "2.221595320437363", + "totalApy": "2.246387", + "dailyTotalApr": "0.0060865625217462", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-pots-busd/-/open?leverage=2&configKey=pcs-pots-busd", + "type": "LP", + "workingToken": { + "address": "0xF90BAA331Cfd40F094476E752Bf272892170d399", + "symbol": "POTS-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x3fcca8648651e5b974dd6d3e50f61567779772a8", + "symbol": "POTS" + } + }, + "workers": [ + { + "key": "pcs-pots-busd", + "sourceName": "PancakeSwap POTS-BUSD Worker", + "workerAddress": "0x1dBDC3F67e56DaEdFfA6b2b59D2F4a18190BDded", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x3fcca8648651e5b974dd6d3e50f61567779772a8", + "symbol": "POTS" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-qbt-bnb", + "sourceName": "PancakeSwap QBT-BNB", + "tvl": "0.00002029017706174", + "tvlInMasterChef": "3698.230551317063512327", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "28.503269124951078", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-qbt-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "30.5891405562788595", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "28.503269124951078", + "totalApy": "32.965759", + "dailyTotalApr": "0.0780911482875372", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-qbt-bnb/-/open?leverage=2&configKey=pcs-qbt-bnb", + "type": "LP", + "workingToken": { + "address": "0x67EFeF66A55c4562144B9AcfCFbc62F9E4269b3e", + "symbol": "QBT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x17b7163cf1dbd286e262ddc68b553d899b93f526", + "symbol": "QBT" + } + }, + "workers": [ + { + "key": "pcs-qbt-bnb", + "sourceName": "PancakeSwap QBT-BNB Worker", + "workerAddress": "0x03462fB60aA5De5F1A068A597743f66e097B0D9B", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.000000025723537614", + "farmToken": { + "address": "0x17b7163cf1dbd286e262ddc68b553d899b93f526", + "symbol": "QBT" + }, + "farmTokenAmount": "0.037408097860153788", + "tvl": "0.00002029017706174" + } + ] + }, + { + "key": "pcs-naos-bnb", + "sourceName": "PancakeSwap NAOS-BNB", + "tvl": "34.611795453692619527", + "tvlInMasterChef": "1523.514496545689563269", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "8.431818057225389", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-naos-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "30.5891405562788595", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "8.431818057225389", + "totalApy": "8.796442", + "dailyTotalApr": "0.0231008713896586", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-naos-bnb/-/open?leverage=2&configKey=pcs-naos-bnb", + "type": "LP", + "workingToken": { + "address": "0xCAA662aD41a662b81be2AEa5D59EC0697628665F", + "symbol": "NAOS-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x758d08864fb6cce3062667225ca10b8f00496cc2", + "symbol": "NAOS" + } + }, + "workers": [ + { + "key": "pcs-naos-bnb", + "sourceName": "PancakeSwap NAOS-BNB Worker", + "workerAddress": "0x68f131fe93cFc18A6B3eC6312e18c089221a5C34", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.043880239169371116", + "farmToken": { + "address": "0x758d08864fb6cce3062667225ca10b8f00496cc2", + "symbol": "NAOS" + }, + "farmTokenAmount": "939.057438127401226648", + "tvl": "34.611795453692619527" + } + ] + }, + { + "key": "pcs-mbox-bnb", + "sourceName": "PancakeSwap MBOX-BNB", + "tvl": "2.043437662828109045", + "tvlInMasterChef": "16198903.868562722047670085", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "9.9192343305081075", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-mbox-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "45.8837108344182892", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.5" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "9.9192343305081075", + "totalApy": "10.42638", + "dailyTotalApr": "0.0271759844671455", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-mbox-bnb/-/open?leverage=2.5&configKey=pcs-mbox-bnb", + "type": "LP", + "workingToken": { + "address": "0x8FA59693458289914dB0097F5F366d771B7a7C3F", + "symbol": "MBOX-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x3203c9e46ca618c8c1ce5dc67e7e9d75f5da2377", + "symbol": "MBOX" + } + }, + "workers": [ + { + "key": "pcs-mbox-bnb", + "sourceName": "PancakeSwap MBOX-BNB Worker", + "workerAddress": "0x32951e060e6AD6D512fC3Eaa958f3A8F4F82ac6C", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.002590635134561675", + "farmToken": { + "address": "0x3203c9e46ca618c8c1ce5dc67e7e9d75f5da2377", + "symbol": "MBOX" + }, + "farmTokenAmount": "2.771950576134781366", + "tvl": "2.043437662828109045" + } + ] + }, + { + "key": "pcs-pha-busd", + "sourceName": "PancakeSwap PHA-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "9412.131104932541211327", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "81.96987579682830625", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-pha-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.5" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "2.5", + "totalApr": "81.96987579682830625", + "totalApy": "126.773087", + "dailyTotalApr": "0.22457500218309125", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-pha-busd/-/open?leverage=2.5&configKey=pcs-pha-busd", + "type": "LP", + "workingToken": { + "address": "0x4ddd56e2f34338839BB5953515833950eA680aFb", + "symbol": "PHA-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x0112e557d400474717056c4e6d40edd846f38351", + "symbol": "PHA" + } + }, + "workers": [ + { + "key": "pcs-pha-busd", + "sourceName": "PancakeSwap PHA-BUSD Worker", + "workerAddress": "0x1D0EDCA3F151dC9fafb5CE79547D153229985F42", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x0112e557d400474717056c4e6d40edd846f38351", + "symbol": "PHA" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-pmon-busd", + "sourceName": "PancakeSwap PMON-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "3408.163778416360714703", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "61.839116286778691", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-pmon-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "2.0", + "totalApr": "61.839116286778691", + "totalApy": "85.496886", + "dailyTotalApr": "0.1694222364021334", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-pmon-busd/-/open?leverage=2&configKey=pcs-pmon-busd", + "type": "LP", + "workingToken": { + "address": "0xcdb0016d97FD0E7EC2C3B78aA4786Cbd8e19C14C", + "symbol": "PMON-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x1796ae0b0fa4862485106a0de9b654efe301d0b2", + "symbol": "PMON" + } + }, + "workers": [ + { + "key": "pcs-pmon-busd", + "sourceName": "PancakeSwap PMON-BUSD Worker", + "workerAddress": "0xbD861fE2D91A2E82928FE0413fA77BfEB822F373", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x1796ae0b0fa4862485106a0de9b654efe301d0b2", + "symbol": "PMON" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-btt-busd", + "sourceName": "PancakeSwap BTT-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "20672.112192026471678704", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "44.456597165688042", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-btt-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "44.456597165688042", + "totalApy": "55.939114", + "dailyTotalApr": "0.1217988963443508", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-btt-busd/-/open?leverage=3&configKey=pcs-btt-busd", + "type": "LP", + "workingToken": { + "address": "0xdcfbB12DED3FEa12D2A078Bc6324131cD14bF835", + "symbol": "BTT-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x8595f9da7b868b1822194faed312235e43007b49", + "symbol": "BTT" + } + }, + "workers": [ + { + "key": "pcs-btt-busd", + "sourceName": "PancakeSwap BTT-BUSD Worker", + "workerAddress": "0xCfE0fA9Eae5a225A4C33e39d4AefE32667EFf11F", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x8595f9da7b868b1822194faed312235e43007b49", + "symbol": "BTT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-orbs-busd", + "sourceName": "PancakeSwap ORBS-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "5194.526954004370026787", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "6.147957586496608", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-orbs-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "2.0", + "totalApr": "6.147957586496608", + "totalApy": "6.340327", + "dailyTotalApr": "0.0168437194150592", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-orbs-busd/-/open?leverage=2&configKey=pcs-orbs-busd", + "type": "LP", + "workingToken": { + "address": "0xB87b857670A44356f2b70337E0F218713D2378e8", + "symbol": "ORBS-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xebd49b26169e1b52c04cfd19fcf289405df55f80", + "symbol": "ORBS" + } + }, + "workers": [ + { + "key": "pcs-orbs-busd", + "sourceName": "PancakeSwap ORBS-BUSD Worker", + "workerAddress": "0x255F31ae71c2864942CD5d86111FcF2D8A907fDB", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xebd49b26169e1b52c04cfd19fcf289405df55f80", + "symbol": "ORBS" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-form-busd", + "sourceName": "PancakeSwap FORM-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "633.162010513134821607", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "3.62156355144285625", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "pcs-form-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "1.75" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.75", + "totalApr": "3.62156355144285625", + "totalApy": "3.687755", + "dailyTotalApr": "0.00992209192176125", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-form-busd/-/open?leverage=1.75&configKey=pcs-form-busd", + "type": "LP", + "workingToken": { + "address": "0x3E19C18Fe3458A6065D8F0844cB7Eae52C9DAE07", + "symbol": "FORM-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x25A528af62e56512A19ce8c3cAB427807c28CC19", + "symbol": "FORM" + } + }, + "workers": [ + { + "key": "pcs-form-busd", + "sourceName": "PancakeSwap FORM-BUSD Worker", + "workerAddress": "0x56017389d3068CA05aFe3D4E697AFa200f316f0b", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x25A528af62e56512A19ce8c3cAB427807c28CC19", + "symbol": "FORM" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-trx-bnb", + "sourceName": "PancakeSwap TRX-BNB", + "tvl": "0.0", + "tvlInMasterChef": "123897.860832220980207287", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "2.711766697410844", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-trx-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "2.711766697410844", + "totalApy": "2.748766", + "dailyTotalApr": "0.0074294978011256", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-trx-bnb/-/open?leverage=3&configKey=pcs-trx-bnb", + "type": "LP", + "workingToken": { + "address": "0x3cd338c3BB249B6b3C55799F85a589FEbBBFf9Dd", + "symbol": "TRX-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x85eac5ac2f758618dfa09bdbe0cf174e7d574d5b", + "symbol": "TRX" + } + }, + "workers": [ + { + "key": "pcs-trx-bnb", + "sourceName": "PancakeSwap TRX-BNB Worker", + "workerAddress": "0xf80c39D3D5D5Ca4581ec1982cc0c3C88494CBE62", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x85eac5ac2f758618dfa09bdbe0cf174e7d574d5b", + "symbol": "TRX" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-btt-bnb", + "sourceName": "PancakeSwap BTT-BNB", + "tvl": "0.0", + "tvlInMasterChef": "35686.83277201845443034", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "22.824045069360402", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-btt-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "22.824045069360402", + "totalApy": "25.629777", + "dailyTotalApr": "0.0625316303270148", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-btt-bnb/-/open?leverage=3&configKey=pcs-btt-bnb", + "type": "LP", + "workingToken": { + "address": "0x946696344e7d4346b223e1Cf77035a76690d6A73", + "symbol": "BTT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x8595f9da7b868b1822194faed312235e43007b49", + "symbol": "BTT" + } + }, + "workers": [ + { + "key": "pcs-btt-bnb", + "sourceName": "PancakeSwap BTT-BNB Worker", + "workerAddress": "0x807554b56F682e87234fd82712aa31548bA73DB2", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x8595f9da7b868b1822194faed312235e43007b49", + "symbol": "BTT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-oddz-bnb", + "sourceName": "PancakeSwap ODDZ-BNB", + "tvl": "1.120862941419088665", + "tvlInMasterChef": "5462.100312257830669199", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "5.4111902920830445", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-oddz-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "30.5891405562788595", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "5.4111902920830445", + "totalApy": "5.559849", + "dailyTotalApr": "0.0148251788824193", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-oddz-bnb/-/open?leverage=2&configKey=pcs-oddz-bnb", + "type": "LP", + "workingToken": { + "address": "0x3c2c77353E2F6AC1578807b6b2336Bf3a3CbB014", + "symbol": "ODDZ-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0xcd40f2670cf58720b694968698a5514e924f742d", + "symbol": "ODDZ" + } + }, + "workers": [ + { + "key": "pcs-oddz-bnb", + "sourceName": "PancakeSwap ODDZ-BNB Worker", + "workerAddress": "0x315F5fCBE2aB4b2c2B7ae69ADA3D6a7D778fc726", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.001421010765285427", + "farmToken": { + "address": "0xcd40f2670cf58720b694968698a5514e924f742d", + "symbol": "ODDZ" + }, + "farmTokenAmount": "33.82741523546900337", + "tvl": "1.120862941419088665" + } + ] + }, + { + "key": "pcs-dodo-bnb", + "sourceName": "PancakeSwap DODO-BNB", + "tvl": "6232.113971028020651765", + "tvlInMasterChef": "48425.434247949807375981", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "93.346904645003974", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "30.5891405562788595", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-dodo-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "30.5891405562788595", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "2.0", + "totalApr": "62.7577640887251145", + "totalApy": "87.20587", + "dailyTotalApr": "0.1719390796951373", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-dodo-bnb/-/open?leverage=2&configKey=pcs-dodo-bnb", + "type": "LP", + "workingToken": { + "address": "0xA9986Fcbdb23c2E8B11AB40102990a08f8E58f06", + "symbol": "DODO-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x67ee3cb086f8a16f34bee3ca72fad36f7db929e2", + "symbol": "DODO" + } + }, + "workers": [ + { + "key": "pcs-dodo-bnb", + "sourceName": "PancakeSwap DODO-BNB Worker", + "workerAddress": "0xa573FFd839aa1dC94ca6AE7eD75253C2AC7c2eC8", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "7.900966939012505213", + "farmToken": { + "address": "0x67ee3cb086f8a16f34bee3ca72fad36f7db929e2", + "symbol": "DODO" + }, + "farmTokenAmount": "14806.713460626798634797", + "tvl": "6232.113971028020651765" + } + ] + }, + { + "key": "pcs-bmxx-bnb", + "sourceName": "PancakeSwap bMXX-BNB", + "tvl": "39.239516954064447494", + "tvlInMasterChef": "940.998229266918710104", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "3.373630112492993", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-bmxx-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "22.9418554172091446", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "1.75" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "3.373630112492993", + "totalApy": "3.431021", + "dailyTotalApr": "0.0092428222260082", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-bmxx-bnb/-/open?leverage=1.75&configKey=pcs-bmxx-bnb", + "type": "LP", + "workingToken": { + "address": "0xc20A92a1424b29b78DFaF92FD35D4cf8A06419B4", + "symbol": "bMXX-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x4131b87F74415190425ccD873048C708F8005823", + "symbol": "bMXX" + } + }, + "workers": [ + { + "key": "pcs-bmxx-bnb", + "sourceName": "PancakeSwap bMXX-BNB Worker", + "workerAddress": "0xa726E9E5c007253fe7589879136FDf24dA6DA393", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0497471849196209", + "farmToken": { + "address": "0x4131b87F74415190425ccD873048C708F8005823", + "symbol": "bMXX" + }, + "farmTokenAmount": "5853.731957137180467943", + "tvl": "39.239516954064447494" + } + ] + }, + { + "key": "pcs-itam-bnb", + "sourceName": "PancakeSwap ITAM-BNB", + "tvl": "1914.882505093900397925", + "tvlInMasterChef": "83922.13443606976374404", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.108731867881768", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-itam-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "22.9418554172091446", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "1.75" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.108731867881768", + "totalApy": "0.108791", + "dailyTotalApr": "0.0002978955284432", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-itam-bnb/-/open?leverage=1.75&configKey=pcs-itam-bnb", + "type": "LP", + "workingToken": { + "address": "0xd02DA76c813b9cd4516eD50442923E625f90228f", + "symbol": "ITAM-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x04c747b40be4d535fc83d09939fb0f626f32800b", + "symbol": "ITAM" + } + }, + "workers": [ + { + "key": "pcs-itam-bnb", + "sourceName": "PancakeSwap ITAM-BNB Worker", + "workerAddress": "0x4193D35D0cB598d92703ED69701f5d568aCa015c", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "2.427655115932463081", + "farmToken": { + "address": "0x04c747b40be4d535fc83d09939fb0f626f32800b", + "symbol": "ITAM" + }, + "farmTokenAmount": "51419.263873647359071053", + "tvl": "1914.882505093900397925" + } + ] + }, + { + "key": "pcs-swingby-bnb", + "sourceName": "PancakeSwap SWINGBY-BNB", + "tvl": "0.989655125238591211", + "tvlInMasterChef": "5994.017597734231810494", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "8.432974593617464", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-swingby-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "22.9418554172091446", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "1.75" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "8.432974593617464", + "totalApy": "8.7977", + "dailyTotalApr": "0.0231040399825136", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-swingby-bnb/-/open?leverage=1.75&configKey=pcs-swingby-bnb", + "type": "LP", + "workingToken": { + "address": "0x4Fd6D315bEf387fAD2322fbc64368fC443F0886D", + "symbol": "SWINGBY-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x71de20e0c4616e7fcbfdd3f875d568492cbe4739", + "symbol": "SWINGBY" + } + }, + "workers": [ + { + "key": "pcs-swingby-bnb", + "sourceName": "PancakeSwap SWINGBY-BNB Worker", + "workerAddress": "0x72BbCFce18Ec02734E87Ed68b124BC422C84B2a2", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.001254667751887175", + "farmToken": { + "address": "0x71de20e0c4616e7fcbfdd3f875d568492cbe4739", + "symbol": "SWINGBY" + }, + "farmTokenAmount": "937.100374852651912438", + "tvl": "0.989655125238591211" + } + ] + }, + { + "key": "pcs-cws-bnb", + "sourceName": "PancakeSwap pCWS-BNB", + "tvl": "0.0", + "tvlInMasterChef": "998.200184927216908372", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "2.460490565510748", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-cws-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "22.9418554172091446", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "1.75" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "2.460490565510748", + "totalApy": "2.490925", + "dailyTotalApr": "0.0067410700424952", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-cws-bnb/-/open?leverage=1.75&configKey=pcs-cws-bnb", + "type": "LP", + "workingToken": { + "address": "0x6615CE60D71513aA4849269dD63821D324A23F8C", + "symbol": "pCWS-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0xbcf39F0EDDa668C58371E519AF37CA705f2bFcbd", + "symbol": "pCWS" + } + }, + "workers": [ + { + "key": "pcs-cws-bnb", + "sourceName": "PancakeSwap pCWS-BNB Worker", + "workerAddress": "0x867d166301a87c13BB71d0ed82Df3D2ccC5e19c4", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbcf39F0EDDa668C58371E519AF37CA705f2bFcbd", + "symbol": "pCWS" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "pcs-bry-bnb", + "sourceName": "PancakeSwap BRY-BNB", + "tvl": "8.941641338638082327", + "tvlInMasterChef": "10194.4753074353855746", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "3.374061859002524", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "pcs-bry-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "22.9418554172091446", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "1.75" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "3.374061859002524", + "totalApy": "3.431468", + "dailyTotalApr": "0.0092440050931576", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-bry-bnb/-/open?leverage=1.75&configKey=pcs-bry-bnb", + "type": "LP", + "workingToken": { + "address": "0x21dD71aB78EDE3033c976948f769D506E4F489eE", + "symbol": "BRY-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0xf859Bf77cBe8699013d6Dbc7C2b926Aaf307F830", + "symbol": "BRY" + } + }, + "workers": [ + { + "key": "pcs-bry-bnb", + "sourceName": "PancakeSwap BRY-BNB Worker", + "workerAddress": "0x7BE8f8E84e195092DA43bf6c4A4Eb61DC90063bD", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.01133605914871183", + "farmToken": { + "address": "0xf859Bf77cBe8699013d6Dbc7C2b926Aaf307F830", + "symbol": "BRY" + }, + "farmTokenAmount": "150.83854171788074789", + "tvl": "8.941641338638082327" + } + ] + }, + { + "key": "pcs-comp-eth", + "sourceName": "PancakeSwap COMP-ETH", + "tvl": "0.0", + "tvlInMasterChef": "8563.176895870994626503", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "25.715165626436919", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "ETH Vault", + "borrowingInterests": [ + { + "key": "pcs-comp-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "3.0", + "totalApr": "25.715165626436919", + "totalApy": "29.312415", + "dailyTotalApr": "0.0704525085655806", + "openPositionUrl": "/farm/pancake-swap/pool/pcs-comp-eth/-/open?leverage=3&configKey=pcs-comp-eth", + "type": "LP", + "workingToken": { + "address": "0x37908620dEf1491Dd591b5a2d16022A33cDDA415", + "symbol": "COMP-ETH PCS LP", + "tokenA": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "tokenB": { + "address": "0x52ce071bd9b1c4b00a0b92d298c512478cad67e8", + "symbol": "COMP" + } + }, + "workers": [ + { + "key": "pcs-comp-eth", + "sourceName": "PancakeSwap COMP-ETH Worker", + "workerAddress": "0xd6260DB3A84C7BfdAFcD82325397B8E70B39627f", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x52ce071bd9b1c4b00a0b92d298c512478cad67e8", + "symbol": "COMP" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ms-usdc-usdt", + "sourceName": "MDEX USDC-USDT", + "tvl": "0.0", + "tvlInMasterChef": "4261044.593674516829643391", + "farmRewardApr": "0.043443271821977", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.260807137442631845", + "farmRewardValuePerYear": "2034.216687127118832", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "USDT Vault", + "borrowingInterests": [ + { + "key": "ms-usdc-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "23.99999999999991", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "4.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.304250409264608845", + "totalApy": "0.304712", + "dailyTotalApr": "0.000833562765108517", + "openPositionUrl": "/farm/mdex-swap/pool/ms-usdc-usdt/-/open?leverage=4&configKey=ms-usdc-usdt", + "type": "LP", + "workingToken": { + "address": "0x9f4Da89774570E27170873BefD139a79CB1A3da2", + "symbol": "USDC-USDT MS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + } + }, + "workers": [ + { + "key": "ms-usdc-usdt", + "sourceName": "MDEX USDC-USDT Worker", + "workerAddress": "0x5979cE98e993232f93C81fE4a878815983E71Df9", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d", + "symbol": "USDC" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ms-dai-usdt", + "sourceName": "MDEX DAI-USDT", + "tvl": "0.008399312982289018", + "tvlInMasterChef": "36721.305046384976194794", + "farmRewardApr": "0.0516500421142648", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.093786357530664655", + "farmRewardValuePerYear": "20.842384089412656", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "USDT Vault", + "borrowingInterests": [ + { + "key": "ms-dai-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "23.99999999999991", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "4.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.145436399644929455", + "totalApy": "0.145542", + "dailyTotalApr": "0.000398455889438162", + "openPositionUrl": "/farm/mdex-swap/pool/ms-dai-usdt/-/open?leverage=4&configKey=ms-dai-usdt", + "type": "LP", + "workingToken": { + "address": "0x59B76b5D39370ba2Aa7e723c639861266e85BFEc", + "symbol": "DAI-USDT MS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3", + "symbol": "DAI" + } + }, + "workers": [ + { + "key": "ms-dai-usdt", + "sourceName": "MDEX DAI-USDT Worker", + "workerAddress": "0xc836C32048F81a21827ada8bFc3005A420ae546A", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "0.004202099786158497", + "farmToken": { + "address": "0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3", + "symbol": "DAI" + }, + "farmTokenAmount": "0.004207093903632577", + "tvl": "0.008399312982289018" + } + ] + }, + { + "key": "ws-alpaca-bnb", + "sourceName": "WaultSwap ALPACA-BNB", + "tvl": "0.0", + "tvlInMasterChef": "123.051551291186207776", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "ALPACA Vault", + "borrowingInterests": [ + { + "key": "ws-alpaca-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "45.8837108344182892", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.5" + }, + { + "key": "ws-bnb-alpaca", + "sourceName": "ALPACA Vault", + "symbol": "ALPACA", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-alpaca-bnb/-/open?leverage=2.5&configKey=ws-alpaca-bnb", + "type": "LP", + "workingToken": { + "address": "0xC70fE75DAE1d69245F315Cec8BF4aebe41893807", + "symbol": "ALPACA-BNB WS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + } + }, + "workers": [ + { + "key": "ws-alpaca-bnb", + "sourceName": "WaultSwap ALPACA-BNB Worker", + "workerAddress": "0x0C5eD4d8df44f20B052Fc6966991e686D594B9C2", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ws-bnb-alpaca", + "sourceName": "WaultSwap BNB-ALPACA Worker", + "workerAddress": "0xbe6BdE2A40511e2D87984af88f58228b1b8baBeD", + "baseToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-alpaca-usdt", + "sourceName": "WaultSwap ALPACA-USDT", + "tvl": "0.0", + "tvlInMasterChef": "11.930697029649758963", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "ALPACA Vault", + "borrowingInterests": [ + { + "key": "ws-alpaca-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "11.999999999999955", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "2.5" + }, + { + "key": "ws-usdt-alpaca", + "sourceName": "ALPACA Vault", + "symbol": "ALPACA", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-alpaca-usdt/-/open?leverage=2.5&configKey=ws-alpaca-usdt", + "type": "LP", + "workingToken": { + "address": "0xCb1b3C77606c61C9C2eCA86f554f5806343757AD", + "symbol": "ALPACA-USDT WS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + } + }, + "workers": [ + { + "key": "ws-alpaca-usdt", + "sourceName": "WaultSwap ALPACA-USDT Worker", + "workerAddress": "0xCd4B6354B992426283972eb2aC68178e2629e88D", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ws-usdt-alpaca", + "sourceName": "WaultSwap USDT-ALPACA Worker", + "workerAddress": "0x0e0806A43188f383AADAeC3440d6e8E4d71b281c", + "baseToken": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-wusd-busd", + "sourceName": "WaultSwap WUSD-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "1375.645539863817102141", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "ws-wusd-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "4.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-wusd-busd/-/open?leverage=4&configKey=ws-wusd-busd", + "type": "LP", + "workingToken": { + "address": "0x6102D8A7C963F78D46a35a6218B0DB4845d1612F", + "symbol": "WUSD-BUSD WS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x3fF997eAeA488A082fb7Efc8e6B9951990D0c3aB", + "symbol": "WUSD" + } + }, + "workers": [ + { + "key": "ws-wusd-busd", + "sourceName": "WaultSwap WUSD-BUSD Worker", + "workerAddress": "0x0541C542e2039D13238B5AbC6d32A23ae3222B1D", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x3fF997eAeA488A082fb7Efc8e6B9951990D0c3aB", + "symbol": "WUSD" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-tusd-usdt", + "sourceName": "WaultSwap TUSD-USDT", + "tvl": "0.0", + "tvlInMasterChef": "11.085123292153323875", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "TUSD Vault", + "borrowingInterests": [ + { + "key": "ws-tusd-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "23.99999999999991", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "4.0" + }, + { + "key": "ws-usdt-tusd", + "sourceName": "TUSD Vault", + "symbol": "TUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "4.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-tusd-usdt/-/open?leverage=4&configKey=ws-tusd-usdt", + "type": "LP", + "workingToken": { + "address": "0xBE66b44015734D881ACcfBa478d957885612A902", + "symbol": "TUSD-USDT WS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x14016e85a25aeb13065688cafb43044c2ef86784", + "symbol": "TUSD" + } + }, + "workers": [ + { + "key": "ws-tusd-usdt", + "sourceName": "WaultSwap TUSD-USDT Worker", + "workerAddress": "0xF4B424DB20d8664cF559Fa3c095C54F4569A7f57", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x14016e85a25aeb13065688cafb43044c2ef86784", + "symbol": "TUSD" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ws-usdt-tusd", + "sourceName": "WaultSwap USDT-TUSD Worker", + "workerAddress": "0x50441d9c8E08E3Dcce8D517E2257a3882d43fee9", + "baseToken": { + "address": "0x14016e85a25aeb13065688cafb43044c2ef86784", + "symbol": "TUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-matic-usdt", + "sourceName": "WaultSwap MATIC-USDT", + "tvl": "0.0", + "tvlInMasterChef": "1793.148020125424385836", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "USDT Vault", + "borrowingInterests": [ + { + "key": "ws-matic-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "11.999999999999955", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "2.5" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-matic-usdt/-/open?leverage=2.5&configKey=ws-matic-usdt", + "type": "LP", + "workingToken": { + "address": "0x4aeA71115DAB37e79C0005a042d6c3985255f3CB", + "symbol": "MATIC-USDT WS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0xcc42724c6683b7e57334c4e856f4c9965ed682bd", + "symbol": "MATIC" + } + }, + "workers": [ + { + "key": "ws-matic-usdt", + "sourceName": "WaultSwap MATIC-USDT Worker", + "workerAddress": "0x5894AC929E7a63417FA0a473563B2c772Bb62355", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xcc42724c6683b7e57334c4e856f4c9965ed682bd", + "symbol": "MATIC" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-btcb-busd", + "sourceName": "WaultSwap BTCB-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "12264.244656260479243628", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "ws-btcb-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "ws-busd-btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-btcb-busd/-/open?leverage=3&configKey=ws-btcb-busd", + "type": "LP", + "workingToken": { + "address": "0x61Ad21f79D1Bf96206Ad28d97B15D98a55944a2a", + "symbol": "BTCB-BUSD WS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + } + }, + "workers": [ + { + "key": "ws-btcb-busd", + "sourceName": "WaultSwap BTCB-BUSD Worker", + "workerAddress": "0x3483f17668F1863B57CfBa66E9Cf2F9C3b48423F", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ws-busd-btcb", + "sourceName": "WaultSwap BUSD-BTCB Worker", + "workerAddress": "0xB5C425D08719EF87D9Ef23785011fD317c3a00bb", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-eth-usdt", + "sourceName": "WaultSwap ETH-USDT", + "tvl": "0.0", + "tvlInMasterChef": "1158.984375164448429399", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "ETH Vault", + "borrowingInterests": [ + { + "key": "ws-eth-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "15.99999999999994", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "3.0" + }, + { + "key": "ws-usdt-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-eth-usdt/-/open?leverage=3&configKey=ws-eth-usdt", + "type": "LP", + "workingToken": { + "address": "0xF63509631777DAAeC8a29ecd2B16fD15d668571D", + "symbol": "ETH-USDT WS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + } + }, + "workers": [ + { + "key": "ws-eth-usdt", + "sourceName": "WaultSwap ETH-USDT Worker", + "workerAddress": "0x684e33a6da0F6ADfa5AeB6CdBc7f82c112F57dD8", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ws-usdt-eth", + "sourceName": "WaultSwap USDT-ETH Worker", + "workerAddress": "0x74C97946dDe8B503E0278605fCc59d747170e5f7", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-beth-eth", + "sourceName": "WaultSwap BETH-ETH", + "tvl": "0.0", + "tvlInMasterChef": "153.304091927889791021", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "ETH Vault", + "borrowingInterests": [ + { + "key": "ws-beth-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "4.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-beth-eth/-/open?leverage=4&configKey=ws-beth-eth", + "type": "LP", + "workingToken": { + "address": "0x11040f3c467993556B19813d4A18b684598Ba4BD", + "symbol": "BETH-ETH WS LP", + "tokenA": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "tokenB": { + "address": "0x250632378e573c6be1ac2f97fcdf00515d0aa91b", + "symbol": "BETH" + } + }, + "workers": [ + { + "key": "ws-beth-eth", + "sourceName": "WaultSwap BETH-ETH Worker", + "workerAddress": "0x040a65cdDB0B8c75C72936879AA603E0d7425da4", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x250632378e573c6be1ac2f97fcdf00515d0aa91b", + "symbol": "BETH" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-btcb-usdt", + "sourceName": "WaultSwap BTCB-USDT", + "tvl": "0.0", + "tvlInMasterChef": "645.762324343833714692", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BTCB Vault", + "borrowingInterests": [ + { + "key": "ws-btcb-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "15.99999999999994", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "3.0" + }, + { + "key": "ws-usdt-btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-btcb-usdt/-/open?leverage=3&configKey=ws-btcb-usdt", + "type": "LP", + "workingToken": { + "address": "0x3F2e3461fd0E0eaA0fCc9Ec7A40C8B19b27da0b6", + "symbol": "BTCB-USDT WS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + } + }, + "workers": [ + { + "key": "ws-btcb-usdt", + "sourceName": "WaultSwap BTCB-USDT Worker", + "workerAddress": "0x195f4c8754E9809bFE4D5F7a5891810C757CaC7F", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ws-usdt-btcb", + "sourceName": "WaultSwap USDT-BTCB Worker", + "workerAddress": "0x774d122CBF739249580631b8e4233E91ea2ad294", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-waultx-bnb", + "sourceName": "WaultSwap WAULTx-BNB", + "tvl": "0.0", + "tvlInMasterChef": "1936.955563266059993131", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "ws-waultx-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "30.5891405562788595", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-waultx-bnb/-/open?leverage=2&configKey=ws-waultx-bnb", + "type": "LP", + "workingToken": { + "address": "0xA2eBDa2e8975B42068b6162C7dd798C2143caf21", + "symbol": "WAULTx-BNB WS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0xb64e638e60d154b43f660a6bf8fd8a3b249a6a21", + "symbol": "WAULTx" + } + }, + "workers": [ + { + "key": "ws-waultx-bnb", + "sourceName": "WaultSwap WAULTx-BNB Worker", + "workerAddress": "0xFaA8EBDBb5B408F649Bfb714435013c09f0b8013", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xb64e638e60d154b43f660a6bf8fd8a3b249a6a21", + "symbol": "WAULTx" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-wex-usdt", + "sourceName": "WaultSwap WEX-USDT", + "tvl": "0.0", + "tvlInMasterChef": "5062.916412072595719138", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "USDT Vault", + "borrowingInterests": [ + { + "key": "ws-wex-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "11.999999999999955", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "2.5" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-wex-usdt/-/open?leverage=2.5&configKey=ws-wex-usdt", + "type": "LP", + "workingToken": { + "address": "0x50e8D9Aa83eBDe9608074eC1faaDfD2E792D9B81", + "symbol": "WEX-USDT WS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0xa9c41A46a6B3531d28d5c32F6633dd2fF05dFB90", + "symbol": "WEX" + } + }, + "workers": [ + { + "key": "ws-wex-usdt", + "sourceName": "WaultSwap WEX-USDT Worker", + "workerAddress": "0xb01A5F2942b39026eFf8ACb524a45e75a35f6469", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xa9c41A46a6B3531d28d5c32F6633dd2fF05dFB90", + "symbol": "WEX" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-wex-bnb", + "sourceName": "WaultSwap WEX-BNB", + "tvl": "0.0", + "tvlInMasterChef": "14478.673747063735547523", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "WBNB Vault", + "borrowingInterests": [ + { + "key": "ws-wex-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "45.8837108344182892", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "2.5" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-wex-bnb/-/open?leverage=2.5&configKey=ws-wex-bnb", + "type": "LP", + "workingToken": { + "address": "0xb4814f1ca673dBE9a2637C5dd4e94A4a0ED834C6", + "symbol": "WEX-BNB WS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0xa9c41A46a6B3531d28d5c32F6633dd2fF05dFB90", + "symbol": "WEX" + } + }, + "workers": [ + { + "key": "ws-wex-bnb", + "sourceName": "WaultSwap WEX-BNB Worker", + "workerAddress": "0x184962B6C9A55C8c2Ee757ca86b73A6edF87E3ca", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xa9c41A46a6B3531d28d5c32F6633dd2fF05dFB90", + "symbol": "WEX" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-usdt-busd", + "sourceName": "WaultSwap USDT-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "26817.273756372196628429", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "ws-usdt-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "4.0" + }, + { + "key": "ws-busd-usdt", + "sourceName": "USDT Vault", + "symbol": "USDT", + "interestPercent": "23.99999999999991", + "interestPercentAt2XLeverage": "7.99999999999997", + "maxLeverage": "4.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-usdt-busd/-/open?leverage=4&configKey=ws-usdt-busd", + "type": "LP", + "workingToken": { + "address": "0x9Ce20a5169A3CD64A98C2C200aA995A2d8c8830e", + "symbol": "USDT-BUSD WS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "workers": [ + { + "key": "ws-usdt-busd", + "sourceName": "WaultSwap USDT-BUSD Worker", + "workerAddress": "0x6169a983E9DED098A38e09636eA577C9b57a51a7", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ws-busd-usdt", + "sourceName": "WaultSwap BUSD-USDT Worker", + "workerAddress": "0xfa4a3fE54143bfeA4fDDa3b5602766E13647ea66", + "baseToken": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-eth-btcb", + "sourceName": "WaultSwap ETH-BTCB", + "tvl": "0.0", + "tvlInMasterChef": "2021.457230853458636797", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BTCB Vault", + "borrowingInterests": [ + { + "key": "ws-eth-btcb", + "sourceName": "BTCB Vault", + "symbol": "BTCB", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "ws-btcb-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-eth-btcb/-/open?leverage=3&configKey=ws-eth-btcb", + "type": "LP", + "workingToken": { + "address": "0xBb43C776D9dDDaD1395e1543545d05E138ccb4BA", + "symbol": "ETH-BTCB WS LP", + "tokenA": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "tokenB": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + } + }, + "workers": [ + { + "key": "ws-eth-btcb", + "sourceName": "WaultSwap ETH-BTCB Worker", + "workerAddress": "0xB5000cfC1685425709939Cc0588c755363b9deDA", + "baseToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ws-btcb-eth", + "sourceName": "WaultSwap BTCB-ETH Worker", + "workerAddress": "0xB3E13a8774378cdbb4bD95dD5d7a02363a75fA66", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-bnb-busd", + "sourceName": "WaultSwap BNB-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "33063.344838738262663767", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "ws-bnb-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "ws-busd-bnb", + "sourceName": "WBNB Vault", + "symbol": "BNB", + "interestPercent": "61.178281112557719", + "interestPercentAt2XLeverage": "30.5891405562788595", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-bnb-busd/-/open?leverage=3&configKey=ws-bnb-busd", + "type": "LP", + "workingToken": { + "address": "0x4bbed8D9A1B27A4DDd84a3368A850e78c9580404", + "symbol": "BNB-BUSD WS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "workers": [ + { + "key": "ws-bnb-busd", + "sourceName": "WaultSwap BNB-BUSD Worker", + "workerAddress": "0xE0d62391Ceb96487eD0299D1d8a4fFfbb43C1581", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ws-busd-bnb", + "sourceName": "WaultSwap BUSD-BNB Worker", + "workerAddress": "0x813a9AE1C7b9f89d0B14d796D484478934C3A7F4", + "baseToken": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + }, + { + "key": "ws-eth-busd", + "sourceName": "WaultSwap ETH-BUSD", + "tvl": "0.0", + "tvlInMasterChef": "556.933243176501577942", + "farmRewardApr": "0.0", + "alpacaRewardApr": "0.0", + "tradingFeeApr": "0.0", + "farmRewardValuePerYear": "0.0", + "borrowingInterestPercent": "0.0", + "borrowingInterestSourceName": "BUSD Vault", + "borrowingInterests": [ + { + "key": "ws-eth-busd", + "sourceName": "BUSD Vault", + "symbol": "BUSD", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + }, + { + "key": "ws-busd-eth", + "sourceName": "ETH Vault", + "symbol": "ETH", + "interestPercent": "0.0", + "interestPercentAt2XLeverage": "0.0", + "maxLeverage": "3.0" + } + ], + "featureRewardApr": "0.0", + "featureRewardAprAt2x": "0.0", + "leverage": "1.0", + "totalApr": "0.0", + "totalApy": "0.0", + "dailyTotalApr": "0.0", + "openPositionUrl": "/farm/wault-swap/pool/ws-eth-busd/-/open?leverage=3&configKey=ws-eth-busd", + "type": "LP", + "workingToken": { + "address": "0x40a2739d8B2CDDd5EDB8B563BA8e4c3326e23716", + "symbol": "ETH-BUSD WS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + } + }, + "workers": [ + { + "key": "ws-eth-busd", + "sourceName": "WaultSwap ETH-BUSD Worker", + "workerAddress": "0x63dD2d0F6ADe00c5d70Eb670b7a7074Fd878C435", + "baseToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + }, + { + "key": "ws-busd-eth", + "sourceName": "WaultSwap BUSD-ETH Worker", + "workerAddress": "0xE29fd3521Bf9784b3b57523cBBE468DA28D36655", + "baseToken": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "baseTokenAmount": "0.0", + "farmToken": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "farmTokenAmount": "0.0", + "tvl": "0.0" + } + ] + } + ], + "fairLaunchStakingPools": [ + { + "key": "ib-alpaca", + "sourceName": "ALPACA Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibALPACA", + "tvl": "723542.55078928451301442", + "stakingToken": { + "address": "0xf1bE8ecC990cBcb90e166b71E368299f0116d421", + "symbol": "ibALPACA" + } + }, + { + "key": "ib-wbnb", + "sourceName": "BNB Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibBNB", + "tvl": "7397891.367805670231216147", + "stakingToken": { + "address": "0xd7D069493685A581d27824Fc46EdA46B7EfC0063", + "symbol": "ibBNB" + } + }, + { + "key": "ib-busd", + "sourceName": "BUSD Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibBUSD", + "tvl": "0.0", + "stakingToken": { + "address": "0x7C9e73d4C71dae564d41F78d56439bB4ba87592f", + "symbol": "ibBUSD" + } + }, + { + "key": "ib-usdt", + "sourceName": "USDT Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibUSDT", + "tvl": "2024287.998076191895436691", + "stakingToken": { + "address": "0x158Da805682BdC8ee32d52833aD41E74bb951E59", + "symbol": "ibUSDT" + } + }, + { + "key": "ib-tusd", + "sourceName": "TUSD Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibTUSD", + "tvl": "793.816268841739444981", + "stakingToken": { + "address": "0x3282d2a151ca00BfE7ed17Aa16E42880248CD3Cd", + "symbol": "ibTUSD" + } + }, + { + "key": "ib-btcb", + "sourceName": "BTCB Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibBTCB", + "tvl": "0.0", + "stakingToken": { + "address": "0x08FC9Ba2cAc74742177e0afC3dC8Aed6961c24e7", + "symbol": "ibBTCB" + } + }, + { + "key": "ib-eth", + "sourceName": "ETH Interest Bearing", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibETH", + "tvl": "0.0", + "stakingToken": { + "address": "0xbfF4a34A4644a113E8200D7F1D79b3555f723AfE", + "symbol": "ibETH" + } + }, + { + "key": "ib-usdc", + "sourceName": "Interest Bearing USDC", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibUSDC", + "tvl": "13154.327993656064647335", + "stakingToken": { + "address": "0x800933D685E7Dc753758cEb77C8bd34aBF1E26d7", + "symbol": "ibUSDC" + } + }, + { + "key": "ib-cake", + "sourceName": "Interest Bearing CAKE", + "apr": "0.0", + "apy": "0.0", + "symbol": "ibCAKE", + "tvl": "26005.765388656115415992", + "stakingToken": { + "address": "0xfF693450dDa65df7DD6F45B4472655A986b147Eb", + "symbol": "ibCAKE" + } + }, + { + "key": "debt-alpaca", + "sourceName": "ALPACA Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtALPACA", + "tvl": "0.0", + "stakingToken": { + "address": "0x11362eA137A799298306123EEa014b7809A9DB40", + "symbol": "debtALPACA" + } + }, + { + "key": "debt-bnb", + "sourceName": "BNB Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtBNB", + "tvl": "10444448.804637284471783982", + "stakingToken": { + "address": "0x6A3487CE84FD83c66B83e598b18412bD1D2A55F9", + "symbol": "debtBNB" + } + }, + { + "key": "debt-busd", + "sourceName": "BUSD Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtBUSD", + "tvl": "0.0", + "stakingToken": { + "address": "0x02dA7035beD00ae645516bDb0c282A7fD4AA7442", + "symbol": "debtBUSD" + } + }, + { + "key": "debt-usdt", + "sourceName": "USDT Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtUSDT", + "tvl": "4722183.249810490744745045", + "stakingToken": { + "address": "0x3B4fBB2b8536AB144048aBaFdd27eaF52f0fa4DC", + "symbol": "debtUSDT" + } + }, + { + "key": "debt-tusd", + "sourceName": "TUSD Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtTUSD", + "tvl": "0.0", + "stakingToken": { + "address": "0xb76ED435B93477511e4604c441550A23d5aeAF84", + "symbol": "debtTUSD" + } + }, + { + "key": "debt-btcb", + "sourceName": "BTCB Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtBTCB", + "tvl": "0.0", + "stakingToken": { + "address": "0x262de19B5fde97eD5bdBa10d630E34Fb9a1b59B2", + "symbol": "debtBTCB" + } + }, + { + "key": "debt-eth", + "sourceName": "ETH Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtETH", + "tvl": "0.0", + "stakingToken": { + "address": "0x92110af24d280E412b3a89691f6B0B9E09258fe6", + "symbol": "debtETH" + } + }, + { + "key": "debt-usdc", + "sourceName": "USDC Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtUSDC", + "tvl": "0.0", + "stakingToken": { + "address": "0x426BdFE8cAB2c4720B36ABBdc3ff08144BC361f3", + "symbol": "debtUSDC" + } + }, + { + "key": "debt-cake", + "sourceName": "CAKE Debt", + "apr": "0.0", + "apy": "0.0", + "symbol": "debtCAKE", + "tvl": "84916.499125284821725087", + "stakingToken": { + "address": "0xD2E855f8c3A69323fd4a46444C97c9813134268D", + "symbol": "debtCAKE" + } + }, + { + "key": "ausd-busd-lp", + "sourceName": "AUSD-BUSD LP token", + "apr": "0.0", + "apy": "0.0", + "symbol": "AUSD-BUSD PCS LP", + "tvl": "1085.208685928481560472", + "stakingToken": { + "address": "0x877264983807D568Cf0B61344cB03012c1F11B17", + "symbol": "AUSD-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xDCEcf0664C33321CECA2effcE701E710A2D28A3F", + "symbol": "AUSD" + } + } + }, + { + "key": "alpaca-wbnb-lp-v2", + "sourceName": "ALPACA-wBNB LP token V2", + "apr": "0.0", + "apy": "0.0", + "symbol": "ALPACA-BNB PCS LP", + "tvl": "47266.597263748447092755", + "stakingToken": { + "address": "0x1099C2E6Ed6ebA95099c205b599B409305783E43", + "symbol": "ALPACA-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + } + } + }, + { + "key": "alpaca-wbnb-lp-v1", + "sourceName": "ALPACA-wBNB LP token V1", + "apr": "0.0", + "apy": "0.0", + "symbol": "ALPACA-BNB PCS LP", + "tvl": "41071.540988255581722026", + "stakingToken": { + "address": "0xF3CE6Aac24980E6B657926dfC79502Ae414d3083", + "symbol": "ALPACA-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x8F0528cE5eF7B51152A59745bEfDD91D97091d2F", + "symbol": "ALPACA" + } + } + }, + { + "key": "ausd-3eps-lp", + "sourceName": "AUSD-3EPS LP token", + "apr": "0.0", + "apy": "0.0", + "symbol": "AUSD-3EPS", + "tvl": "10649.888446785198252108", + "stakingToken": { + "address": "0xae70E3f6050d6AB05E03A50c655309C2148615bE", + "symbol": "AUSD-3EPS" + } + }, + { + "key": "s-alpaca", + "sourceName": "Stronk Alpaca", + "apr": "0.0", + "apy": "0.0", + "symbol": "sALPACA", + "tvl": "50539.010943526773084226", + "stakingToken": { + "address": "0x6F695Bd5FFD25149176629f8491A5099426Ce7a7", + "symbol": "sALPACA" + } + } + ], + "ausdPools": [ + { + "key": "ib-busd", + "sourceName": "BUSD", + "lendingApr": "32.399999998707888", + "stakingApr": "0.0", + "stabilityFee": "4.5", + "totalApr": "27.899999998707888", + "totalApy": "32.180734", + "tvl": "0.0" + }, + { + "key": "ib-usdt", + "sourceName": "USDT", + "lendingApr": "3.7420481160226525", + "stakingApr": "0.0", + "stabilityFee": "4.5", + "totalApr": "-0.7579518839773475", + "totalApy": "-0.755087", + "tvl": "41270.972259292882363237" + }, + { + "key": "ib-bnb", + "sourceName": "BNB", + "lendingApr": "23.9999545743885367", + "stakingApr": "0.0", + "stabilityFee": "3.25", + "totalApr": "20.7499545743885367", + "totalApy": "23.059716", + "tvl": "36365.494728330763086306" + } + ], + "grasshousePools": [ + { + "key": "alpaca", + "name": "Alpaca", + "address": "0x6Fee87f744FC612948001b09B2808c87B91dDC3c", + "apr": "0.0", + "apy": "0.0", + "fairlaunchApr": "0.0", + "protocolApr": "0.0", + "automatedVaultApr": "0.0", + "accumRedistribute": "0.0", + "earlyWithdrawApr": "0.0", + "alperpApr": "0.0", + "moneyMarketApr": "0.0", + "lendingVaultApr": "0.0", + "avv3Apr": "0.0" + }, + { + "key": "scientix", + "name": "Scientix", + "address": "0x5876bea7920f4a542D8906470bCbCD56c554DD6E", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "thena", + "name": "Thena", + "address": "0xC7e4D54d287d47449432481a6924f2B167C7802F", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "high-street", + "name": "HighStreet", + "address": "0xF4D66C03766B434814Cb216899ff61ad96F0d109", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "p-stake", + "name": "pSTAKE", + "address": "0x7e9A24ef69747667Ef247714879D1eBC18706550", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "pandora-spirit", + "name": "Pandora Spirit", + "address": "0x95bf836F6225c50cA551DB33256Edc9CEA5D79B3", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "gymnet", + "name": "Gymnet", + "address": "0x1c44E11e102a011C847CFFC184EC204f9ED33002", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "bit-hotel", + "name": "Bit Hotel", + "address": "0xc34dcf8f217Ad3130C1F53B425C8c7b9d8638D05", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "outer-ring", + "name": "Outer Ring", + "address": "0xf73bd04e48f48238449081a0C328151e9674F703", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "tiny-coin", + "name": "Tiny Coin", + "address": "0x35d76C2bAcFbfd5E4769Bbd5d4334848ee35085b", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "bi-swap", + "name": "BiSwap", + "address": "0x99494EbC70930c2924117C84de55f0924F7309da", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "x-world-game", + "name": "XWorldGame", + "address": "0x6eFA5037a0d7bE675D0B937eDEb41554871CdD16", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "deap", + "name": "DEAP", + "address": "0x58BD8fBe2156d3C9ef7B33cFe6D2CFB3F5F0C52A", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "delta-thetha", + "name": "Delta Thetha", + "address": "0xdf4445022725C08D1E66E68387816F365a14A963", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "land-share", + "name": "LandShare", + "address": "0x4C8F9534731eC017A7a4e71F1045f4a8Dd9f4c8A", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "pay-b-swap", + "name": "PayBSwap", + "address": "0x35Cba40D30A0B814a53A09b667405A1a0A3e2AE5", + "apr": "0.0", + "apy": "0.0" + }, + { + "key": "thetan-arena", + "name": "Thetan Arena", + "address": "0x3Fd1029D4Db12DfdAa6B92BfeEd6E41e21Fdc4b4", + "apr": "0.0", + "apy": "0.0" + } + ], + "revenueDistributors": [ + { + "key": "ALPACA", + "name": "ALPACA", + "address": "0xabbee41c790556b1c1994abbcee898933dd8c609", + "apr": "6.5015749600982908", + "apy": "6.713249", + "lendingVaultApr": "5.2838828630085432", + "protocolApr": "0.265281889013356", + "alperpApr": "0.2880293774102624", + "moneyMarketApr": "0.0939377767153083", + "avv3Apr": "0.5663134369832677", + "accumRedistribute": "1561.652332909069638312", + "earlyWithdrawApr": "0.0041296169675532" + } + ], + "strategyPools": [ + { + "key": "l8x-usdtbnb-pcs1", + "name": "Long 8x USDT-BNB PCS1", + "strategyType": "Long", + "address": "0xB7da7edcb1C0fE56E0124fCc22b26dB0111135a9", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "23.361832647036132615", + "tvlIncludingDebt": "23.361832647036132615", + "shareTokenPrice": "1.200903355435393251", + "longTokenPrice": "394.63753122", + "shortTokenPrice": "1.00044", + "capacity": "0.0", + "inceptionDate": "2022-06-09T00:00:00.000Z", + "iuToken": { + "address": "0xB7da7edcb1C0fE56E0124fCc22b26dB0111135a9", + "symbol": "L8x-USDTBNB-PCS1" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.029606564831016105", + "shortTokenAmount": "11.672835688990005736", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l8x-usdtbnb-bsw1", + "name": "Long 8x USDT-BNB BSW1", + "strategyType": "Long", + "address": "0x979123f5550f502283997Fe9A4DeD8D45de120E3", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "61.736628595953866199", + "tvlIncludingDebt": "61.736628595953866199", + "shareTokenPrice": "1.140887604884937643", + "longTokenPrice": "394.63753122", + "shortTokenPrice": "1.00044", + "capacity": "0.0", + "inceptionDate": "2023-02-24T00:00:00.000Z", + "iuToken": { + "address": "0x979123f5550f502283997Fe9A4DeD8D45de120E3", + "symbol": "L8x-USDTBNB-BSW1" + }, + "workingToken": { + "address": "0x8840C6252e2e86e545deFb6da98B2a0E26d8C1BA", + "symbol": "BNB-USDT BS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.078215987689959392", + "shortTokenAmount": "30.856087692514612715", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l8x-busdbtcb-pcs1", + "name": "Long 8x BUSD-BTCB PCS1", + "strategyType": "Long", + "address": "0x98a7D8C26D5925d69F6D685E7b723F81325Fa035", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "1.781073898569448944", + "longTokenPrice": "57218.54068315", + "shortTokenPrice": "1.00087562", + "capacity": "5000000.0", + "inceptionDate": "2022-06-09T00:00:00.000Z", + "iuToken": { + "address": "0x98a7D8C26D5925d69F6D685E7b723F81325Fa035", + "symbol": "L8x-BUSDBTCB-PCS1" + }, + "workingToken": { + "address": "0xF45cd219aEF8618A92BAa7aD848364a158a24F33", + "symbol": "BTCB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n8x-bnbusdt-bsw1", + "name": "Market Neutral 8x BNB-USDT BSW1", + "strategyType": "Neutral", + "address": "0x6407bB0B0de04539Cd7bac7cd11f57303e625678", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.955423209374009341", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "5000000.0", + "inceptionDate": "2022-06-09T00:00:00.000Z", + "iuToken": { + "address": "0x6407bB0B0de04539Cd7bac7cd11f57303e625678", + "symbol": "n8x-BNBUSDT-BSW1" + }, + "workingToken": { + "address": "0x8840C6252e2e86e545deFb6da98B2a0E26d8C1BA", + "symbol": "BNB-USDT BS LP", + "tokenA": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n8x-bnbusdt-pcs3", + "name": "Market Neutral 8x BNB-USDT PCS3", + "strategyType": "Neutral", + "address": "0x3756b184d647EC3690Ce47ec3C182Db046ef8B2e", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.941168040850273322", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "15000000.0", + "inceptionDate": "2022-06-09T00:00:00.000Z", + "iuToken": { + "address": "0x3756b184d647EC3690Ce47ec3C182Db046ef8B2e", + "symbol": "n8x-BNBUSDT-PCS3" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l3x-busdbtcb-pcs2", + "name": "Long 3x BUSD-BTCB PCS2", + "strategyType": "Long", + "address": "0xA1679223b7585725aFb425a6F59737a05e085C40", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "1.887657180977999312", + "longTokenPrice": "57218.54068315", + "shortTokenPrice": "1.00087562", + "capacity": "5000000.0", + "inceptionDate": "2022-05-24T00:00:00.000Z", + "iuToken": { + "address": "0xA1679223b7585725aFb425a6F59737a05e085C40", + "symbol": "L3x-BUSDBTCB-PCS2" + }, + "workingToken": { + "address": "0xF45cd219aEF8618A92BAa7aD848364a158a24F33", + "symbol": "BTCB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l3x-usdteth-bsw1", + "name": "Long 3x USDT-ETH BSW1", + "strategyType": "Long", + "address": "0xB8d7B5A245f0080814f19dFE58037072315B7d19", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "1.620264074660746068", + "longTokenPrice": "3257.79", + "shortTokenPrice": "1.00044", + "capacity": "5000000.0", + "inceptionDate": "2022-05-12T00:00:00.000Z", + "iuToken": { + "address": "0xB8d7B5A245f0080814f19dFE58037072315B7d19", + "symbol": "L3x-ETHUSDT-BSW1" + }, + "workingToken": { + "address": "0x63b30de1A998e9E64FD58A21F68D323B9BcD8F85", + "symbol": "USDT-ETH BS LP", + "tokenA": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n3x-bnbusdt-pcs2", + "name": "Market Neutral 3x BNB-USDT PCS2", + "strategyType": "Neutral", + "address": "0x96C607E34008630dC8132F517A33Be2772835f9c", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.985785882988493695", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "25000000.0", + "inceptionDate": "2022-04-26T00:00:00.000Z", + "iuToken": { + "address": "0x96C607E34008630dC8132F517A33Be2772835f9c", + "symbol": "n3x-BNBUSDT-PCS2" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n3x-bnbusdt-pcs3", + "name": "Market Neutral 3x BNB-USDT PCS3", + "strategyType": "Neutral", + "address": "0xd1464C0D4424a353C4F243A11C806BdCbd783092", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.990385725040526615", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "10000000.0", + "inceptionDate": "2022-05-10T00:00:00.000Z", + "iuToken": { + "address": "0xd1464C0D4424a353C4F243A11C806BdCbd783092", + "symbol": "n3x-BNBUSDT-PCS3" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n3x-bnbbusd-pcs2", + "name": "Market Neutral 3x BNB-BUSD PCS2", + "strategyType": "Neutral", + "address": "0xD14ED91dcD2E06ED72F536008cCd581DA73adDB5", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.974881692303655331", + "longTokenPrice": "1.00087562", + "shortTokenPrice": "394.63753122", + "capacity": "25000000.0", + "inceptionDate": "2022-04-26T00:00:00.000Z", + "iuToken": { + "address": "0xD14ED91dcD2E06ED72F536008cCd581DA73adDB5", + "symbol": "n3x-BNBBUSD-PCS2" + }, + "workingToken": { + "address": "0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16", + "symbol": "BNB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n3x-ethusdt-bsw1", + "name": "Market Neutral 3x ETH-USDT BSW1", + "strategyType": "Neutral", + "address": "0xf8130b2B4717ABB7F23A0433E634AAc1BB6aBE22", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.965766631284256576", + "longTokenPrice": "1.00044", + "shortTokenPrice": "3257.79", + "capacity": "5000000.0", + "inceptionDate": "2022-05-10T00:00:00.000Z", + "iuToken": { + "address": "0xf8130b2B4717ABB7F23A0433E634AAc1BB6aBE22", + "symbol": "n3x-ETHUSDT-BSW1" + }, + "workingToken": { + "address": "0x63b30de1A998e9E64FD58A21F68D323B9BcD8F85", + "symbol": "USDT-ETH BS LP", + "tokenA": { + "address": "0x2170ed0880ac9a755fd29b2688956bd959f933f8", + "symbol": "ETH" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n8x-busdusdt-pcs1", + "name": "Market Neutral 8x BUSD-USDT PCS1", + "strategyType": "Neutral", + "address": "0xE63d2180A7DE06C5e2aF9AC80122537557B49567", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.977258305171525905", + "longTokenPrice": "1.00044", + "shortTokenPrice": "1.00087562", + "capacity": "0.0", + "inceptionDate": "2023-05-23T00:00:00.000Z", + "iuToken": { + "address": "0xE63d2180A7DE06C5e2aF9AC80122537557B49567", + "symbol": "n8x-BUSDUSDT-PCS1" + }, + "workingToken": { + "address": "0x7EFaEf62fDdCCa950418312c6C91Aef321375A00", + "symbol": "USDT-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l3x-busdbnb-pcs1", + "name": "Long 3x BUSD-BNB PCS1", + "strategyType": "Long", + "address": "0xcC125BBaFF77De472f236255DE6be0a3B4323064", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "1.196291975551781329", + "longTokenPrice": "394.63753122", + "shortTokenPrice": "1.00087562", + "capacity": "0.0", + "inceptionDate": "2022-05-26T00:00:00.000Z", + "iuToken": { + "address": "0xcC125BBaFF77De472f236255DE6be0a3B4323064", + "symbol": "L3x-BUSDBNB-PCS1" + }, + "workingToken": { + "address": "0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16", + "symbol": "BNB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l8x-busdbnb-pcs1", + "name": "Long 8x BUSD-BNB PCS1", + "strategyType": "Long", + "address": "0xE246e23869122E97D8fe2911aB9F28627BBa4e73", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "1.244027570505011047", + "longTokenPrice": "394.63753122", + "shortTokenPrice": "1.00087562", + "capacity": "0.0", + "inceptionDate": "2023-03-09T00:00:00.000Z", + "iuToken": { + "address": "0xE246e23869122E97D8fe2911aB9F28627BBa4e73", + "symbol": "L8x-BUSDBNB-PCS1" + }, + "workingToken": { + "address": "0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16", + "symbol": "BNB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "l3x-busdbtcb-pcs1", + "name": "Long 3x BUSD-BTCB PCS1", + "strategyType": "Long", + "address": "0x4eE770919aB741cC84bBE8cD83C21d79785f37E9", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "43.768045286065616305", + "tvlIncludingDebt": "43.768045286065616305", + "shareTokenPrice": "2.043416394881249153", + "longTokenPrice": "57218.54068315", + "shortTokenPrice": "1.00087562", + "capacity": "0.0", + "inceptionDate": "2022-05-12T00:00:00.000Z", + "iuToken": { + "address": "0x4eE770919aB741cC84bBE8cD83C21d79785f37E9", + "symbol": "L3x-BUSDBTCB-PCS1" + }, + "workingToken": { + "address": "0xF45cd219aEF8618A92BAa7aD848364a158a24F33", + "symbol": "BTCB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "symbol": "BTCB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.000383102403157033", + "shortTokenAmount": "21.828432335505068712", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n3x-bnbusdt-pcs1", + "name": "Market Neutral 3x BNB-USDT PCS1", + "strategyType": "Neutral", + "address": "0xe9Bd0B7333596d0a87DED9EE1a782AA052B711AB", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.973392790806838946", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "0.0", + "inceptionDate": "2022-03-24T00:00:00.000Z", + "iuToken": { + "address": "0xe9Bd0B7333596d0a87DED9EE1a782AA052B711AB", + "symbol": "n3x-BNBUSDT-PCS1" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n3x-bnbbusd-pcs1", + "name": "Market Neutral 3x BNB-BUSD PCS1", + "strategyType": "Neutral", + "address": "0x9fE96180AB2ADfaEBc735336f9213F26Bca99aa1", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.930194370756698067", + "longTokenPrice": "1.00087562", + "shortTokenPrice": "394.63753122", + "capacity": "0.0", + "inceptionDate": "2022-04-07T00:00:00.000Z", + "iuToken": { + "address": "0x9fE96180AB2ADfaEBc735336f9213F26Bca99aa1", + "symbol": "n3x-BNBBUSD-PCS1" + }, + "workingToken": { + "address": "0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16", + "symbol": "BNB-BUSD PCS LP", + "tokenA": { + "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56", + "symbol": "BUSD" + }, + "tokenB": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n8x-bnbusdt-pcs1", + "name": "Market Neutral 8x BNB-USDT PCS1", + "strategyType": "Neutral", + "address": "0x8e5CfA7C06F187B56537f7F0CaBfb55611Af6F16", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "21.890643643590451359", + "tvlIncludingDebt": "21.890643643590451359", + "shareTokenPrice": "0.813158823147807219", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "0.0", + "inceptionDate": "2022-03-24T00:00:00.000Z", + "iuToken": { + "address": "0x8e5CfA7C06F187B56537f7F0CaBfb55611Af6F16", + "symbol": "n8x-BNBUSDT-PCS1" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "10.937750057476029241", + "shortTokenAmount": "0.027742119807919062", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + }, + { + "key": "n8x-bnbusdt-pcs2", + "name": "Market Neutral 8x BNB-USDT PCS2", + "strategyType": "Neutral", + "address": "0xC57876a95A4f31a0A4FDB0329Fc78e00B092cC94", + "aprTradingFeeExcluded": "0.0", + "apyTradingFeeExcluded": "0.0", + "apr": "0.0", + "apy": "0.0", + "tvl": "0.0", + "tvlIncludingDebt": "0.0", + "shareTokenPrice": "0.80568016587633979", + "longTokenPrice": "1.00044", + "shortTokenPrice": "394.63753122", + "capacity": "0.0", + "inceptionDate": "2022-03-29T00:00:00.000Z", + "iuToken": { + "address": "0xC57876a95A4f31a0A4FDB0329Fc78e00B092cC94", + "symbol": "n8x-BNBUSDT-PCS2" + }, + "workingToken": { + "address": "0x16b9a82891338f9bA80E2D6970FddA79D1eb0daE", + "symbol": "USDT-BNB PCS LP", + "tokenA": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "BNB" + }, + "tokenB": { + "address": "0x55d398326f99059ff775485246999027b3197955", + "symbol": "USDT" + } + }, + "totalPositionInfo": { + "longTokenAmount": "0.0", + "shortTokenAmount": "0.0", + "longTokenDebtAmount": "0.0", + "shortTokenDebtAmount": "0.0" + } + } + ], + "overall": { + "tvl": "55609047.674386982365114576", + "tvlInfo": { + "lpTokenTvl": "24421267.062868195275956518", + "moneyMarketTvl": "13361662.038422648", + "vaultTvl": "5339273.351629826699601539", + "ausd3epsTvl": "10649.888446785198252108", + "alperpTvl": "1323640.837479479646628737", + "strategyVaultTvl": "150.757150172646066478", + "automatedVaultV3Tvl": "3069653.504651018", + "governanceTvl": "7533830.052256914050509155", + "others": "548920.181481942848100041" + }, + "ausdTotalSupply": "408957.823600483564640562", + "ausdTotalCollateralLocked": "77636.466987623645449543", + "grasshouseTotalApr": "6.5015749600982908", + "grasshouseTotalApy": "6.713249" + } + }, + "metadata": { + "dateTime": "2024-02-27T15:20:14.447Z", + "timestamp": 1709047214, + "processTime": 53 + } +} diff --git a/package.json b/package.json index 73eb8a91..d85ecd74 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ }, "dependencies": { "@amcharts/amcharts4": "^4.10.32", + "@ankr.com/ankr.js": "^0.4.0", "@apollo/client": "^3.5.10", "@emotion/cache": "latest", "@emotion/react": "latest", @@ -38,7 +39,7 @@ "@graphql-codegen/typescript-react-apollo": "^3.2.8", "@heroicons/react": "^1.0.6", "@lingui/react": "^3.13.2", - "@monetaria/contract-helpers": "^1.0.6", + "@monetaria/contract-helpers": "^1.0.8", "@monetaria/math-utils": "^1.0.2", "@mui/icons-material": "^5.5.1", "@mui/material": "^5.5.1", @@ -72,6 +73,8 @@ "graphql": "^16.2.0", "graphql-ws": "^5.6.2", "gray-matter": "^4.0.3", + "highcharts": "^11.1.0", + "highcharts-react-official": "^3.2.0", "lowdb": "^3.0.0", "next": "12.1.0", "paraswap-core": "^1.0.2", diff --git a/pages/_app.page.tsx b/pages/_app.page.tsx index 2b6d2a18..77b29160 100644 --- a/pages/_app.page.tsx +++ b/pages/_app.page.tsx @@ -35,7 +35,7 @@ import { Web3ReactProvider } from '@web3-react/core'; import { providers } from 'ethers'; import { WalletModalContextProvider } from 'src/hooks/useWalletModal'; import { PermissionProvider } from 'src/hooks/usePermissions'; -import AaveMetaImage from 'public/aaveMetaLogo.png'; +import MntMetaImage from 'public/monetaria-brand.png'; import { FaucetModal } from 'src/components/transactions/Faucet/FaucetModal'; import { ActionTabsModal } from 'src/components/transactions/ActionTabs/ActionTabsModal'; @@ -70,7 +70,7 @@ export default function MyApp(props: MyAppProps) { description={ 'Monetaria is an Open Source Protocol to create Non-Custodial Liquidity Markets to earn interest on supplying and borrowing assets with a variable or stable interest rate. The protocol is designed for easy integration into your products and services.' } - imageUrl={AaveMetaImage.src} + imageUrl={MntMetaImage.src} /> diff --git a/pages/calc.page.tsx b/pages/calc.page.tsx index 91af79e4..c719b2d8 100644 --- a/pages/calc.page.tsx +++ b/pages/calc.page.tsx @@ -4,39 +4,57 @@ import { MainLayout } from '../src/layouts/MainLayout'; import borderGradient from 'src/layouts/borderGradient'; import { SelectPicker, InputNumber, Button, ButtonToolbar, ButtonGroup } from 'rsuite'; import 'rsuite/dist/rsuite.min.css'; -import { TokenIcon } from 'src/components/primitives/TokenIcon'; -import { textCenterEllipsis } from 'src/helpers/text-center-ellipsis'; import Rocket from '/public/icons/rocket.svg'; import Slider from '@mui/material/Slider'; - -const gaugeTempData = [ - { - label: 'mnt', - value: '0xc6CB9A26DD5DFd155864C93C0eF6Af73D0e600b1', - }, - { - label: 'btc', - value: '0xc6CB9A26DD5DFd155864C93B0eF6Af73D0e600b1', - }, -]; +import { useProtocolDataContext } from 'src/hooks/useProtocolDataContext'; +import { TokenOption } from 'src/components/TokenOption'; +import { useTxBuilderContext } from 'src/hooks/useTxBuilder'; +import { useWeb3Context } from 'src/libs/hooks/useWeb3Context'; export default function Calc() { const { breakpoints } = useTheme(); const xsm = useMediaQuery(breakpoints.up('xsm')); const downToXSM = useMediaQuery(breakpoints.down('xsm')); - const [curGauge, setCurGause] = useState('0xc6CB9A26DD5DFd155864C93C0eF6Af73D0e600b1'); + const [curGauge, setCurGause] = useState(); const [depositValue, setDepositValue] = useState(0); const [liquidityValue, setLiquidityValue] = useState(0); const [mntAmount, setMntAmount] = useState(0); const [veAmount, setVeAmount] = useState(0); const [isVe, setIsVe] = useState(false); const [lockPeriod, setLockPeriod] = useState(26); + const [boost, setBoost] = useState(1.0); + + const { currentAccount } = useWeb3Context(); + const { currentMarketData } = useProtocolDataContext(); + const { gauges } = useTxBuilderContext(); + + const gaugePickerData = []; + for (const key in currentMarketData.addresses.GAUGES) { + gaugePickerData.push({ + label: key, + value: currentMarketData.addresses.GAUGES[key], + }); + } const valuetext = (value: number) => { setLockPeriod(value); return `${value} Week(s)`; }; + const handleCalculate = async () => { + if(!curGauge) return; + let gauge = gauges[curGauge]; + let [, _boost] = await gauge.calcUpdateLiquidityGauge({ + user: currentAccount, + l: depositValue.toString(), + L: liquidityValue.toString(), + veCRV: veAmount.toString(), + totalveCRV: veAmount.toString(), + }) + console.log({_boost}) + setBoost(_boost); + } + return ( setCurGause(value || '')} placeholder="Select a gauge" searchable={false} - renderMenuItem={(label, item) => { - return ( - - - {' '} - {' '} - - - {' '} - - {label.toUpperCase()} ({textCenterEllipsis(item.value, 5, 4)}) - - - - ); - }} - renderValue={(value, item) => { - return ( - - - {' '} - {' '} - - - {' '} - - {item.label.toUpperCase()} ({textCenterEllipsis(value, 5, 4)}) - - - - ); - }} + renderMenuItem={(label, item) => } + renderValue={(value, item) => } + cleanable={false} /> - + - + setDepositValue(Number(value))} + min={0} + /> - + - + setLiquidityValue(Number(value))} + min={0} + /> @@ -229,7 +218,11 @@ export default function Calc() { > My MNT - + setMntAmount(Number(value))} + min={0} + /> - + setVeAmount(Number(value))} + min={0} + /> )} @@ -380,7 +378,7 @@ export default function Calc() { Boost: - 2.50x + {boost.toFixed(2)}x diff --git a/pages/farm.page.tsx b/pages/farm.page.tsx index 1dd5c7b3..6acbb0ce 100644 --- a/pages/farm.page.tsx +++ b/pages/farm.page.tsx @@ -17,7 +17,7 @@ import { TokenIcon } from 'src/components/primitives/TokenIcon'; import { Input, InputGroup, SelectPicker } from 'rsuite'; import SearchIcon from '@rsuite/icons/Search'; import 'rsuite/dist/rsuite.min.css'; -import { RewardTable } from 'src/modules/dashboard/lists/ActivePoolList/RewardTable'; +import { FarmingPoolTable } from 'src/modules/dashboard/lists/ActivePoolList/FarmingPoolTable'; import { RewardMobileList } from 'src/modules/dashboard/lists/ActivePoolList/RewardMobileList'; import { BasicModal } from 'src/components/primitives/BasicModal'; @@ -476,7 +476,7 @@ export default function Farm() { {!downToXSM ? ( - + ) : ( )} diff --git a/pages/gauge_weight_vote.page.tsx b/pages/gauge_weight_vote.page.tsx index 02c3eac9..2dc349e7 100644 --- a/pages/gauge_weight_vote.page.tsx +++ b/pages/gauge_weight_vote.page.tsx @@ -1,120 +1,32 @@ import { Trans } from '@lingui/macro'; import { Box, Paper, Typography, useMediaQuery, useTheme, Button } from '@mui/material'; -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import { usePermissions } from 'src/hooks/usePermissions'; import { ConnectWalletPaper } from '../src/components/ConnectWalletPaper'; import { ContentContainer } from '../src/components/ContentContainer'; import { MainLayout } from '../src/layouts/MainLayout'; import { useWeb3Context } from '../src/libs/hooks/useWeb3Context'; import borderGradient from 'src/layouts/borderGradient'; - import { SelectPicker, InputNumber } from 'rsuite'; import 'rsuite/dist/rsuite.min.css'; -import { TokenIcon } from 'src/components/primitives/TokenIcon'; -import { textCenterEllipsis } from 'src/helpers/text-center-ellipsis'; -import Slider from '@mui/material/Slider'; - -import ApyEffectList from 'src/modules/dashboard/lists/ApyEffectList/ApyEffectList'; +import ApyEffectList from 'src/modules/gauge-weight-vote/ApyEffectList/ApyEffectList'; import VoterList from 'src/modules/dashboard/lists/Voters/VoterList'; -import dynamic from 'next/dynamic'; import { useProtocolDataContext } from 'src/hooks/useProtocolDataContext'; import { ItemDataType } from 'src/helpers/rsuite-types'; import { GuageWeightVoteActions } from 'src/components/transactions/GaugeWeightVote/GuageWeightVoteActions'; import { ChangeNetworkWarning } from 'src/components/transactions/Warnings/ChangeNetworkWarning'; import { getNetworkConfig } from 'src/utils/marketsAndNetworksConfig'; - -const PieChart = dynamic(() => import('src/components/piecharts/piechart'), { ssr: false }); - -const gaugeTempData = [ - { - label: 'mnt', - value: '0xc6CB9A26DD5DFd155864C93C0eF6Af73D0e600b1', - }, - { - label: 'btc', - value: '0xc6CB9A26DD5DFd155864C93B0eF6Af73D0e600b1', - }, -]; - -const marks = [ - { - value: 1, - label: 'Standard', - }, - { - value: 2, - label: 'Fast', - }, - { - value: 3, - label: 'Instant', - }, -]; - -const proportion_data = [ - { name: 'Moonbeam', address: '', percentage: 1 }, - { name: 'Aurora', address: '', percentage: 1 }, - { name: 'Moonriver', address: '', percentage: 1 }, - { name: 'Emerald', address: '', percentage: 1 }, - { name: 'Polygon', address: '', percentage: 6 }, - { name: 'Optimism', address: '', percentage: 20 }, - { name: 'Arbitrm', address: '', percentage: 15 }, - { name: 'OKC', address: '', percentage: 15 }, - { name: 'BNB', address: '', percentage: 15 }, - { name: 'Ethereum', address: '', percentage: 25 }, -]; - -const gauge_effect_data = [ - { name: 'Dola', address: '0x34ed...', percentage: 10 }, - { name: 'Fraxbp', address: '0x34ed...', percentage: 10 }, - { name: 'Fraxbp', address: '0x34ed...', percentage: 10 }, - { name: 'Fraxbp', address: '0x34ed...', percentage: 10 }, - { name: 'Fraxbp', address: '0x34ed...', percentage: 10 }, - { name: 'Fraxbp', address: '0x34ed...', percentage: 10 }, - { name: 'Fraxbp', address: '0x34ed...', percentage: 10 }, - { name: 'Fraxbp', address: '0x34ed...', percentage: 10 }, - { name: 'Fraxbp', address: '0x34ed...', percentage: 10 }, - { name: 'Fraxbp', address: '0x34ed...', percentage: 10 }, -]; - -interface TokenOptionProps { - item: ItemDataType; +import { TokenOption } from 'src/components/TokenOption'; +import { useModalContext } from 'src/hooks/useModal'; +import { GasEstimationError } from 'src/components/transactions/FlowCommons/GasEstimationError'; +import * as Highcharts from 'highcharts'; +import HighchartsReact from 'highcharts-react-official'; +import HighchartsExporting from 'highcharts/modules/exporting' +import WeightVotingHistory from 'src/modules/gauge-weight-vote/WeightVotingHistory/WeightVotingHistory'; +if (typeof Highcharts === 'object') { + HighchartsExporting(Highcharts) } -const TokenOption = ({ item }: TokenOptionProps) => { - const _item = item as ItemDataType; - const _label = _item.label as string; - const _value = _item.value as string; - return ( - - - {' '} - {' '} - - - {' '} - - {_label.toUpperCase()} ({textCenterEllipsis(_value, 5, 4)}) - - - - ); -}; - export default function GaugeWeightVoting() { const { currentAccount, loading: web3Loading, chainId: connectedChainId } = useWeb3Context(); const { isPermissionsLoading } = usePermissions(); @@ -124,20 +36,71 @@ export default function GaugeWeightVoting() { const [curGauge, setCurGause] = useState(); const [curGaugeForHistory, setCurGauseForHistory] = useState(); const [voteWeight, setVoteWeight] = useState(0); - const [slow, setSlow] = useState(0); + const [totalWeight, setTotalWeight] = useState(0); + const [gaugePickerData, setGaugePickerData] = useState[]>([]); + const [pieOptions, setPieOptions] = useState({ + chart: { + height: 300 + }, + title: { + text: 'Proposed future gauge weights', + align: 'left' + }, + tooltip: { + pointFormat: '{series.name}: {point.percentage:.1f}%' + }, + accessibility: { + point: { + valueSuffix: '%' + } + }, + plotOptions: { + pie: { + size:'100%', + allowPointSelect: true, + cursor: 'pointer', + dataLabels: { + enabled: true, + format: '{point.name}: {point.percentage:.1f} %' + } + } + }, + series: [{ + type: 'pie', + name: 'Gauges', + data: [], + }] + }); const { currentMarketData, currentChainId: marketChainId } = useProtocolDataContext(); - - const gaugePickerData = []; - for (const key in currentMarketData.addresses.GAUGES) { - gaugePickerData.push({ - label: key, - value: currentMarketData.addresses.GAUGES[key], - }); - } + const { txError } = useModalContext(); const isWrongNetwork = connectedChainId !== marketChainId; + useEffect(()=>{ + let _gaugePickerData = []; + let _pieData = []; + for (const key in currentMarketData.addresses.GAUGES) { + _gaugePickerData.push({ + label: key, + value: currentMarketData.addresses.GAUGES[key], + }); + _pieData.push({ + name: key, + y: 0.0001, + }); + } + setGaugePickerData(_gaugePickerData); + setPieOptions({ + ...pieOptions, + series: [{ + type: 'pie', + name: 'Gauges', + data: _pieData + }] + }); + }, []); + return ( <> @@ -150,7 +113,7 @@ export default function GaugeWeightVoting() { flexWrap: 'wrap', }} > - + - - - - WPC Distribution - - - - - {' '} - - Total WPC Distribution Speed - - - - {' '} - - - 280 - {' '} - - WPC/Block - - - - - - - - - - Community Part Distribution Speed - - - - - - 1,318,372.44 - {' '} - - WPC/Day - - - - - - - - Community Part Ratio - - - - - {' '} - - 71.94% - {' '} - - - - - - - - - Proportion for All Different Chains - - - - - - Data update rules: Ethereum updates every 28 days, other chains update every - 7 days, the lastest update 2022-12-12 + + Vote for Gauge Weight - - - - - - + {isWrongNetwork && ( + + )} @@ -337,15 +164,6 @@ export default function GaugeWeightVoting() { > Select a gauge - {isWrongNetwork && ( - // - - // - )} - - - {/* */} + {txError ? + + + + : + + } + @@ -429,16 +240,15 @@ export default function GaugeWeightVoting() { sx={{ bgcolor: 'background.header', padding: '24px', - mt: { xs: '8px', md: '12px' }, color: '#F1F1F3', + height: '100%', ...borderGradient, - height: !downToXSM ? '344px' : 'auto', }} > - - Proposed future gauge weight changes taking effect on 29/12/2022 UTC - - + @@ -447,7 +257,6 @@ export default function GaugeWeightVoting() { sx={{ bgcolor: 'background.header', padding: '24px', - mt: { xs: '8px', md: '12px' }, color: '#F1F1F3', ...borderGradient, }} @@ -460,7 +269,18 @@ export default function GaugeWeightVoting() { sx={{ bgcolor: 'background.header', padding: '24px', - mt: { xs: '8px', md: '12px' }, + color: '#F1F1F3', + ...borderGradient, + }} + > + + + + {/* + - 596,512.56 veCRV + 596,512.56 veMNT @@ -519,7 +339,7 @@ export default function GaugeWeightVoting() { {' '} - Total veCRV{' '} + Total veMNT{' '} @@ -543,7 +363,7 @@ export default function GaugeWeightVoting() { {' '} - veCRV supply voted{' '} + veMNT supply voted{' '} @@ -612,7 +432,7 @@ export default function GaugeWeightVoting() { - + */} diff --git a/pages/staking.page.tsx b/pages/staking.page.tsx index c857c945..e297719e 100644 --- a/pages/staking.page.tsx +++ b/pages/staking.page.tsx @@ -18,6 +18,8 @@ import { LockActions } from 'src/components/transactions/Lock/LockActions'; import { ChangeNetworkWarning } from 'src/components/transactions/Warnings/ChangeNetworkWarning'; import { useProtocolDataContext } from 'src/hooks/useProtocolDataContext'; import { getNetworkConfig } from 'src/utils/marketsAndNetworksConfig'; +import { useModalContext } from 'src/hooks/useModal'; +import { GasEstimationError } from 'src/components/transactions/FlowCommons/GasEstimationError'; interface DescriptionData { image: string; @@ -98,11 +100,12 @@ export default function Staking() { const { breakpoints } = useTheme(); const xsm = useMediaQuery(breakpoints.up('xsm')); const downToXSM = useMediaQuery(breakpoints.down('xsm')); + const { txError } = useModalContext(); const isWrongNetwork = connectedChainId !== marketChainId; useEffect(()=>{ - setUnlockTime(Date.now() + lockPeriod * 86400 * 1000); + setUnlockTime(Date.now() + lockPeriod * 7 * 86400 * 1000); }, [lockPeriod]); const handleChange = (event: React.SyntheticEvent, newValue: number) => { @@ -123,8 +126,6 @@ export default function Staking() { return `${value} Week(s)`; }; - const handleCreateLock = async () => {}; - return ( {currentAccount && !isPermissionsLoading ? ( @@ -628,6 +629,9 @@ export default function Staking() { > Create Lock */} + + {txError && } + { + const _item = item as ItemDataType; + const _label = _item.label as string; + const _value = _item.value as string; + return ( + + + {' '} + {' '} + + + {' '} + + {_label.toUpperCase()} ({textCenterEllipsis(_value, 5, 4)}) + + + + ); +}; diff --git a/src/components/piecharts/piechart.tsx b/src/components/piecharts/piechart.tsx deleted file mode 100644 index 3e601196..00000000 --- a/src/components/piecharts/piechart.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { useState, useEffect, Fragment } from 'react'; -import CanvasJSReact from 'src/libs/canvasjs/canvasjs.react'; -import { useMediaQuery, useTheme } from '@mui/material'; - -const CanvasJSChart = CanvasJSReact.CanvasJSChart; - -const PieChart = ({ data }) => { - const { breakpoints } = useTheme(); - const xsm = useMediaQuery(breakpoints.up('xsm')); - const downToXSM = useMediaQuery(breakpoints.down('xsm')); - - const [items, setItems] = useState([]); - const [percentageTotal, setPercentageTotal] = useState(0); - - useEffect(() => { - const _percentageTotal = data.map((item) => item.percentage).reduce((a, b) => a + b); - setPercentageTotal(_percentageTotal); - let _defaultItems = []; - if (_percentageTotal < 100 && _percentageTotal >= 0) - _defaultItems.push({ label: '', y: 100 - _percentageTotal }); - const _items = data.map((item) => { - return { - label: `${item.name} ${item.address && `(${item.address}) `}(${item.percentage}%)`, - y: item.percentage, - }; - }); - setItems([..._defaultItems, ..._items]); - }, [data]); - - if (percentageTotal > 100 || percentageTotal < 0) return ; - return ( -
- -
- ); -}; - -export default PieChart; diff --git a/src/components/transactions/FlowCommons/Success.tsx b/src/components/transactions/FlowCommons/Success.tsx index d08efb07..685016c9 100644 --- a/src/components/transactions/FlowCommons/Success.tsx +++ b/src/components/transactions/FlowCommons/Success.tsx @@ -156,7 +156,7 @@ export const TxSuccessView = ({ addERC20Token({ address: addToken.address, decimals: addToken.decimals, - symbol: addToken.mToken ? `a${addToken.symbol}` : addToken.symbol, + symbol: addToken.mToken ? `m${addToken.symbol}` : addToken.symbol, image: !/_/.test(addToken.symbol) ? base64 : undefined, }); }} diff --git a/src/components/transactions/GaugeWeightVote/GuageWeightVoteActions.tsx b/src/components/transactions/GaugeWeightVote/GuageWeightVoteActions.tsx index eddb0cfe..f5669959 100644 --- a/src/components/transactions/GaugeWeightVote/GuageWeightVoteActions.tsx +++ b/src/components/transactions/GaugeWeightVote/GuageWeightVoteActions.tsx @@ -33,7 +33,7 @@ export const GuageWeightVoteActions = ({ }); }, skip: blocked, - deps: [gaugeAddr], + deps: [gaugeAddr, userWeight], }); return ( diff --git a/src/helpers/ankr.ts b/src/helpers/ankr.ts new file mode 100644 index 00000000..b6360b77 --- /dev/null +++ b/src/helpers/ankr.ts @@ -0,0 +1,14 @@ +export const ANKR_SUPPORTED_CHAINS: Record = { + 1: "eth", + 56: "bsc", + 250: "fantom", + 43114: "avalanche", + 137: "polygon", + 42161: "arbitrum", + 57: "syscoin", + 10: "optimism", + 5: "eth_goerli", + 80001: "polygon_mumbai", + 43113: "avalanche_fuji" +} + \ No newline at end of file diff --git a/src/helpers/rsuite-types.ts b/src/helpers/rsuite-types.ts index f3f0fae7..0c5d308e 100644 --- a/src/helpers/rsuite-types.ts +++ b/src/helpers/rsuite-types.ts @@ -239,3 +239,40 @@ export type CursorPosition = { clientTop: number; clientLeft: number; }; + +//rsuite-table types +export interface StandardProps extends React.HTMLAttributes { + /** The prefix of the component CSS class */ + classPrefix?: string; + /** Additional classes */ + className?: string; + /** Primary content */ + children?: React.ReactNode; + /** Additional style */ + style?: React.CSSProperties; +} +export declare type SortType = 'desc' | 'asc'; +export declare type TableSizeChangeEventName = + | 'bodyHeightChanged' + | 'bodyWidthChanged' + | 'widthChanged' + | 'heightChanged'; +export interface RowDataType { + dataKey?: string; + children?: RowDataType[]; + [key: string]: any; +} +export declare type RowKeyType = string | number; +export interface TableLocaleType { + emptyMessage?: string; + loading?: string; +} +export declare type ListenerCallback = { + off: () => void; +}; +export declare type ElementOffset = { + top: number; + left: number; + width: number; + height: number; +}; diff --git a/src/hooks/useTxBuilder.tsx b/src/hooks/useTxBuilder.tsx index c9e65231..f3a653e4 100644 --- a/src/hooks/useTxBuilder.tsx +++ b/src/hooks/useTxBuilder.tsx @@ -6,6 +6,7 @@ import { PoolInterface, VotingEscrow, GaugeController, + LiquidityGauge } from '@monetaria/contract-helpers'; import React, { useContext } from 'react'; @@ -16,6 +17,7 @@ export interface TxBuilderContextInterface { incentivesTxBuilderV2: IncentivesControllerV2Interface; votingEscrow: VotingEscrow; gaugeController: GaugeController; + gauges: Record; } export const TxBuilderContext = React.createContext({} as TxBuilderContextInterface); diff --git a/src/libs/canvasjs/CanvasJSVueComponent.vue b/src/libs/canvasjs/CanvasJSVueComponent.vue deleted file mode 100644 index 3cdb7dd2..00000000 --- a/src/libs/canvasjs/CanvasJSVueComponent.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - \ No newline at end of file diff --git a/src/libs/canvasjs/canvasjs.angular.component.ts b/src/libs/canvasjs/canvasjs.angular.component.ts deleted file mode 100644 index 82a6858d..00000000 --- a/src/libs/canvasjs/canvasjs.angular.component.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* -CanvasJS Angular Charts - https://canvasjs.com/ -Copyright 2022 fenopix - ---------------------- License Information -------------------- -CanvasJS is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details. -https://canvasjs.com/license/ - -*/ -/*tslint:disable*/ -/*eslint-disable*/ -/*jshint ignore:start*/ -import { Component, AfterViewInit, OnChanges, OnDestroy, Input, Output, EventEmitter } from '@angular/core'; -declare var require: any; -var CanvasJS = require('./canvasjs.min'); - -@Component({ - selector: 'canvasjs-chart', - template: '
' -}) - -class CanvasJSChart implements AfterViewInit, OnChanges, OnDestroy { - static _cjsChartContainerId = 0; - chart: any; - chartContainerId: any; - prevChartOptions: any; - shouldUpdateChart = false; - - @Input() - options: any; - @Input() - styles: any; - - @Output() - chartInstance = new EventEmitter(); - - constructor() { - this.options = this.options ? this.options : {}; - this.styles = this.styles ? this.styles : { width: "100%", position: "relative" }; - this.styles.height = this.options.height ? this.options.height + "px" : "400px"; - - this.chartContainerId = 'canvasjs-angular-chart-container-' + CanvasJSChart._cjsChartContainerId++; - } - - ngDoCheck() { - if(this.prevChartOptions != this.options) { - this.shouldUpdateChart = true; - } - } - - ngOnChanges() { - //Update Chart Options & Render - if(this.shouldUpdateChart && this.chart) { - this.chart.options = this.options; - this.chart.render(); - this.shouldUpdateChart = false; - this.prevChartOptions = this.options; - } - } - - ngAfterViewInit() { - this.chart = new CanvasJS.Chart(this.chartContainerId, this.options); - this.chart.render(); - this.prevChartOptions = this.options; - this.chartInstance.emit(this.chart); - } - - ngOnDestroy() { - if(this.chart) - this.chart.destroy(); - } -} - -export { - CanvasJSChart, - CanvasJS -}; -/*tslint:enable*/ -/*eslint-enable*/ -/*jshint ignore:end*/ \ No newline at end of file diff --git a/src/libs/canvasjs/canvasjs.min.js b/src/libs/canvasjs/canvasjs.min.js deleted file mode 100644 index ece90328..00000000 --- a/src/libs/canvasjs/canvasjs.min.js +++ /dev/null @@ -1,965 +0,0 @@ -/* - CanvasJS HTML5 & JavaScript Charts - v3.7.3 GA - https://canvasjs.com/ - Copyright 2022 fenopix - - --------------------- License Information -------------------- - CanvasJS is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details. - https://canvasjs.com/license/ - -*/ -/*tslint:disable*/ -/*eslint-disable*/ -/*jshint ignore:start*/ -(function(){function pa(h,m){h.prototype=db(m.prototype);h.prototype.constructor=h;h.base=m.prototype}function db(h){function m(){}m.prototype=h;return new m}function Wa(h,m,B){"millisecond"===B?h.setMilliseconds(h.getMilliseconds()+1*m):"second"===B?h.setSeconds(h.getSeconds()+1*m):"minute"===B?h.setMinutes(h.getMinutes()+1*m):"hour"===B?h.setHours(h.getHours()+1*m):"day"===B?h.setDate(h.getDate()+1*m):"week"===B?h.setDate(h.getDate()+7*m):"month"===B?h.setMonth(h.getMonth()+1*m):"year"===B&&h.setFullYear(h.getFullYear()+ -1*m);return h}function Z(h,m){var B=!1;0>h&&(B=!0,h*=-1);h=""+h;for(m=m?m:1;h.length>16).toString(16),B=((h&65280)>>8).toString(16);h=((h&255)>>0).toString(16);m=2>m.length?"0"+m:m;B=2>B.length?"0"+B:B;h=2>h.length?"0"+h:h;return"#"+m+B+h}function eb(h,m){var B=this.length>>>0,r=Number(m)||0,r=0>r?Math.ceil(r):Math.floor(r); -for(0>r&&(r+=B);r=(new Date).getTime()- -h._dropDownCloseTime.getTime()||(h._dropdownMenu.style.display="block",h._menuButton.blur(),h._dropdownMenu.focus())},h.allDOMEventHandlers,!0);K(h._menuButton,"mousemove",function(){m||(W(h._menuButton,{backgroundColor:h.toolbar.itemBackgroundColorOnHover,color:h.toolbar.fontColorOnHover}),0>=navigator.userAgent.search("MSIE")&&W(h._menuButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},h.allDOMEventHandlers,!0);K(h._menuButton,"mouseout",function(){m||(W(h._menuButton,{backgroundColor:h.toolbar.itemBackgroundColor, -color:h.toolbar.fontColor}),0>=navigator.userAgent.search("MSIE")&&W(h._menuButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},h.allDOMEventHandlers,!0)}if(h.exportEnabled&&h._dropdownMenu){W(h._dropdownMenu,{backgroundColor:h.toolbar.itemBackgroundColor,color:h.toolbar.fontColor});for(var B=h._dropdownMenu.childNodes,r=[h._cultureInfo.printText,h._cultureInfo.saveJPGText,h._cultureInfo.savePNGText],ta=0;taB;B++)if(h[B]!==h[B+4]|h[B]!==h[B+8]|h[B]!==h[B+12]){m=!1;break}return m? -h[0]<<16|h[1]<<8|h[2]:0}function ma(h,m,B){return h in m?m[h]:B[h]}function Ma(h,m,B){if(w&&$a){var r=h.getContext("2d");Na=r.webkitBackingStorePixelRatio||r.mozBackingStorePixelRatio||r.msBackingStorePixelRatio||r.oBackingStorePixelRatio||r.backingStorePixelRatio||1;la=Ra/Na;h.width=m*la;h.height=B*la;Ra!==Na&&(h.style.width=m+"px",h.style.height=B+"px",r.scale(la,la))}else h.width=m,h.height=B}function ib(h){if(!jb){var m=!1,B=!1;"undefined"===typeof qa.Chart.creditHref?(h.creditHref=ia("iuuqr;..b`ow`rkr/bnl."), -h.creditText=ia("B`ow`rKR/bnl")):(m=h.updateOption("creditText"),B=h.updateOption("creditHref"));if(h.creditHref&&h.creditText){h._creditLink||(h._creditLink=document.createElement("a"),h._creditLink.setAttribute("class","canvasjs-chart-credit"),h._creditLink.setAttribute("title","JavaScript Charts"),W(h._creditLink,{outline:"none",margin:"0px",position:"absolute",right:"2px",top:h.height-14+"px",color:"dimgrey",textDecoration:"none",fontSize:"11px",fontFamily:"Calibri, Lucida Grande, Lucida Sans Unicode, Arial, sans-serif"}), -h._creditLink.setAttribute("tabIndex",-1),h._creditLink.setAttribute("target","_blank"));if(0===h.renderCount||m||B)h._creditLink.setAttribute("href",h.creditHref),h._creditLink.innerHTML=h.creditText;h._creditLink&&h.creditHref&&h.creditText?(h._creditLink.parentElement||h._canvasJSContainer.appendChild(h._creditLink),h._creditLink.style.top=h.height-14+"px"):h._creditLink.parentElement&&h._canvasJSContainer.removeChild(h._creditLink)}}}function sa(h,m){Ha&&(this.canvasCount|=0,window.console.log(++this.canvasCount)); -var B=document.createElement("canvas");B.setAttribute("class","canvasjs-chart-canvas");Ma(B,h,m);w||"undefined"===typeof G_vmlCanvasManager||G_vmlCanvasManager.initElement(B);return B}function W(h,m){for(var B in m)h.style[B]=m[B]}function va(h,m,B){m.getAttribute("state")||(m.style.backgroundColor=h.toolbar.itemBackgroundColor,m.style.color=h.toolbar.fontColor,m.style.border="none",W(m,{WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"}));m.getAttribute("state")!== -B&&(m.setAttribute("state",B),m.setAttribute("type","button"),W(m,{padding:"5px 12px",cursor:"pointer","float":"left",width:"40px",height:"25px",outline:"0px",verticalAlign:"baseline",lineHeight:"0"}),m.setAttribute("title",h._cultureInfo[B+"Text"]),m.innerHTML=""+h._cultureInfo[B+"Text"]+"",W(m.childNodes[0],{height:"95%",pointerEvents:"none"}))}function La(){for(var h=null,m=0;md?"a":"p";case "tt":return 12>d?"am":"pm";case "T":return 12>d?"A":"P";case "TT":return 12>d?"AM":"PM";case "K":return U?"UTC":(String(E).match(S)|| -[""]).pop().replace(A,"");case "z":return(0h?!0:!1;w&&(h*=-1);var v=r?r.decimalSeparator:".",S=r?r.digitGroupSeparator:",",A="";m=String(m);var A=1,E=r="",J=-1,O=[],R=[],P=0,K=0,I=0,U=!1,W= -0,E=m.match(/"[^"]*"|'[^']*'|[eE][+-]*[0]+|[,]+[.]|\u2030|./g);m=null;for(var N=0;E&&NJ)J=N;else{if("%"===m)A*=100;else if("\u2030"===m){A*=1E3;continue}else if(","===m[0]&&"."===m[m.length-1]){A/=Math.pow(1E3,m.length-1);J=N+m.length-1;continue}else"E"!==m[0]&&"e"!==m[0]||"0"!==m[m.length-1]||(U=!0);0>J?(O.push(m),"#"===m||"0"===m?P++:","===m&&I++):(R.push(m),"#"!==m&&"0"!==m||K++)}U&&(m=Math.floor(h),E=-Math.floor(Math.log(h)/Math.LN10+1),W=0===h?0:0===m?-(P+E): -String(m).length-P,A/=Math.pow(10,W));0>J&&(J=N);A=(h*A).toFixed(K);m=A.split(".");A=(m[0]+"").split("");h=(m[1]+"").split("");A&&"0"===A[0]&&A.shift();for(U=E=N=K=J=0;0W?m.replace("+","").replace("-",""):m.replace("-",""),r+=m.replace(/[0]+/,function(a){return Z(W,a.length)}));S="";for(O=!1;0W?m.replace("+","").replace("-",""):m.replace("-",""),S+=m.replace(/[0]+/,function(a){return Z(W,a.length)}));r+=(O?v:"")+S;return w?"-"+r:r},Oa=function(h){var m=0,r=0;h=h||window.event;h.offsetX||0===h.offsetX?(m=h.offsetX,r=h.offsetY):h.layerX||0==h.layerX?(m=h.layerX,r=h.layerY):(m=h.pageX-h.target.offsetLeft,r=h.pageY-h.target.offsetTop);return{x:m,y:r}},$a=!0,Ra=window.devicePixelRatio|| -1,Na=1,la=$a?Ra/Na:1,ea=function(h,m,r,w,v,E,A,J,P,O,R,U,K){"undefined"===typeof K&&(K=1);A=A||0;J=J||"black";var I=15m)v=E-1;else break}r>m&&1E&&(A=m.pop(),w-=A.height,v=J)}this._wrappedText={lines:m,width:v,height:w};this.width=v+(this.leftPadding+this.rightPadding);this.height=w+(this.topPadding+this.bottomPadding);this.ctx.font=r};ja.prototype._getFontString=function(){var h;h=""+(this.fontStyle?this.fontStyle+" ": -"");h+=this.fontWeight?this.fontWeight+" ":"";h+=this.fontSize?this.fontSize+"px ":"";var m=this.fontFamily?this.fontFamily+"":"";!w&&m&&(m=m.split(",")[0],"'"!==m[0]&&'"'!==m[0]&&(m="'"+m+"'"));return h+=m};pa(Ta,V);pa(ya,V);ya.prototype.setLayout=function(){if(this.text){var h=this.dockInsidePlotArea?this.chart.plotArea:this.chart,m=h.layoutManager.getFreeSpace(),w=m.x1,v=m.y1,E=0,J=0,A=this.chart._menuButton&&this.chart.exportEnabled&&"top"===this.verticalAlign?22:0,I,K;"top"===this.verticalAlign|| -"bottom"===this.verticalAlign?(null===this.maxWidth&&(this.maxWidth=m.width-4-A*("center"===this.horizontalAlign?2:1)),J=0.5*m.height-this.margin-2,E=0):"center"===this.verticalAlign&&("left"===this.horizontalAlign||"right"===this.horizontalAlign?(null===this.maxWidth&&(this.maxWidth=m.height-4),J=0.5*m.width-this.margin-2):"center"===this.horizontalAlign&&(null===this.maxWidth&&(this.maxWidth=m.width-4),J=0.5*m.height-4));var O;r(this.padding)||"number"!==typeof this.padding?r(this.padding)||"object"!== -typeof this.padding||(O=this.padding.top?this.padding.top:this.padding.bottom?this.padding.bottom:0,O+=this.padding.bottom?this.padding.bottom:this.padding.top?this.padding.top:0):O=2*this.padding;this.wrap||(J=Math.min(J,1.5*this.fontSize+O));J=new ja(this.ctx,{fontSize:this.fontSize,fontFamily:this.fontFamily,fontColor:this.fontColor,fontStyle:this.fontStyle,fontWeight:this.fontWeight,horizontalAlign:this.horizontalAlign,textAlign:this.horizontalAlign,verticalAlign:this.verticalAlign,borderColor:this.borderColor, -borderThickness:this.borderThickness,backgroundColor:this.backgroundColor,maxWidth:this.maxWidth,maxHeight:J,cornerRadius:this.cornerRadius,text:this.text,padding:this.padding,textBaseline:"top"});O=J.measureText();"top"===this.verticalAlign||"bottom"===this.verticalAlign?("top"===this.verticalAlign?(v=m.y1+2,K="top"):"bottom"===this.verticalAlign&&(v=m.y2-2-O.height,K="bottom"),"left"===this.horizontalAlign?w=m.x1+2:"center"===this.horizontalAlign?w=m.x1+m.width/2-O.width/2:"right"===this.horizontalAlign&& -(w=m.x2-2-O.width-A),I=this.horizontalAlign,this.width=O.width,this.height=O.height):"center"===this.verticalAlign&&("left"===this.horizontalAlign?(w=m.x1+2,v=m.y2-2-(this.maxWidth/2-O.width/2),E=-90,K="left",this.width=O.height,this.height=O.width):"right"===this.horizontalAlign?(w=m.x2-2,v=m.y1+2+(this.maxWidth/2-O.width/2),E=90,K="right",this.width=O.height,this.height=O.width):"center"===this.horizontalAlign&&(v=h.y1+(h.height/2-O.height/2),w=h.x1+(h.width/2-O.width/2),K="center",this.width=O.width, -this.height=O.height),I="center");J.x=w;J.y=v;J.angle=E;J.horizontalAlign=I;this._textBlock=J;h.layoutManager.registerSpace(K,{width:this.width+("left"===K||"right"===K?this.margin+2:0),height:this.height+("top"===K||"bottom"===K?this.margin+2:0)});this.bounds={x1:w,y1:v,x2:w+this.width,y2:v+this.height};this.ctx.textBaseline="top"}};ya.prototype.render=function(){this._textBlock&&this._textBlock.render(!0)};pa(Ia,V);Ia.prototype.setLayout=ya.prototype.setLayout;Ia.prototype.render=ya.prototype.render; -Ua.prototype.get=function(h,m){var r=null;0a[f].x&&0D?{x:a[s].x+D/3,y:a[s].y+b/3}:{x:a[s].x,y:a[s].y+b/9};s=e;f=0===s?0:s-1;l=s===a.length-1?s:s+1;b=Math.abs((a[l].x-a[f].x)/(0===a[s].x-a[f].x?0.01:a[s].x-a[f].x))*(d-1)/2+1;D=(a[l].x-a[f].x)/b;b=(a[l].y-a[f].y)/b;c[c.length]=a[s].x>a[f].x&&0D?{x:a[s].x-D/3,y:a[s].y-b/3}:{x:a[s].x,y:a[s].y-b/9};c[c.length]=a[e]}return c}function E(a,d,c,b,e,f,l,s,D,k){var n=0;k? -(l.color=f,s.color=f):k=1;n=D?Math.abs(e-c):Math.abs(b-d);n=0this.labelAngle?this.labelAngle-=180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360);this.options.scaleBreaks&&(this.scaleBreaks=new X(this.chart, -this.options.scaleBreaks,++this.chart._eventManager.lastObjectId,this));this.stripLines=[];if(this.options.stripLines&&0=this._appliedBreaks[a+1].startValue&&(this._appliedBreaks[a].endValue=Math.max(this._appliedBreaks[a].endValue,this._appliedBreaks[a+1].endValue),window.console&&window.console.log("CanvasJS Error: Breaks "+a+" and "+(a+1)+" are overlapping."),this._appliedBreaks.splice(a,2),a--)}}function $(a,d,c,b,e,f){$.base.constructor.call(this,"Break",d,c,b,f);this.id=e;this.chart=a;this.ctx=this.chart.ctx;this.scaleBreaks=f;this.optionsName= -d;this.isOptionsInArray=!0;this.type=c.type?this.type:f.type;this.fillOpacity=r(c.fillOpacity)?f.fillOpacity:this.fillOpacity;this.lineThickness=r(c.lineThickness)?f.lineThickness:this.lineThickness;this.color=c.color?this.color:f.color;this.lineColor=c.lineColor?this.lineColor:f.lineColor;this.lineDashType=c.lineDashType?this.lineDashType:f.lineDashType;!r(this.startValue)&&this.startValue.getTime&&(this.startValue=this.startValue.getTime());!r(this.endValue)&&this.endValue.getTime&&(this.endValue= -this.endValue.getTime());"number"===typeof this.startValue&&("number"===typeof this.endValue&&this.endValue=navigator.userAgent.search("MSIE")&&W(a._zoomButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers);K(this._zoomButton,"mouseout",function(){d||(W(a._zoomButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&W(a._zoomButton.childNodes[0],{WebkitFilter:"invert(0%)", -filter:"invert(0%)"}))},this.allDOMEventHandlers)}this._resetButton?(W(this._resetButton,{borderRight:this.toolbar.buttonBorderThickness+"px solid "+this.toolbar.buttonBorderColor,backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor}),this._resetButton.title=this._cultureInfo.resetText):(d=!1,ua(this._resetButton=document.createElement("button")),va(this,this._resetButton,"reset"),this._resetButton.style.borderRight=(this.exportEnabled?this.toolbar.buttonBorderThickness:0)+"px solid "+ -this.toolbar.buttonBorderColor,this._toolBar.appendChild(this._resetButton),K(this._resetButton,"touchstart",function(a){d=!0},this.allDOMEventHandlers),K(this._resetButton,"click",function(){a.toolTip.hide();a.toolTip&&a.toolTip.enabled&&a.toolTip.dispatchEvent("hidden",{chart:a,toolTip:a.toolTip},a.toolTip);a.zoomEnabled||a.panEnabled?(a.zoomEnabled=!0,a.panEnabled=!1,va(a,a._zoomButton,"pan"),a._defaultCursor="default",a.overlaidCanvas.style.cursor=a._defaultCursor):(a.zoomEnabled=!1,a.panEnabled= -!1);if(a.sessionVariables.axisX)for(var b=0;b=navigator.userAgent.search("MSIE")&&W(a._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"});ua(a._zoomButton,a._resetButton);a.stockChart&&(a.stockChart._rangeEventParameter={stockChart:a.stockChart,source:"chart",index:a.stockChart.charts.indexOf(a),minimum:null, -maximum:null});a._dispatchRangeEvent("rangeChanging","reset");a.stockChart&&(a.stockChart._rangeEventParameter.type="rangeChanging",a.stockChart.dispatchEvent("rangeChanging",a.stockChart._rangeEventParameter,a.stockChart));a.render();a.syncCharts&&a.syncCharts(null,null);a._dispatchRangeEvent("rangeChanged","reset");a.stockChart&&(a.stockChart._rangeEventParameter.type="rangeChanged",a.stockChart.dispatchEvent("rangeChanged",a.stockChart._rangeEventParameter,a.stockChart))},this.allDOMEventHandlers), -K(this._resetButton,"mousemove",function(){d||(W(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColorOnHover,color:a.toolbar.fontColorOnHover,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&W(a._resetButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers),K(this._resetButton,"mouseout",function(){d||(W(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:"0.4s",WebkitTransition:"0.4s"}), -0>=navigator.userAgent.search("MSIE")&&W(a._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},this.allDOMEventHandlers),this.overlaidCanvas.style.cursor=a._defaultCursor);this.zoomEnabled||this.panEnabled||(this._zoomButton?(a._zoomButton.getAttribute("state")===a._cultureInfo.zoomText?(this.panEnabled=!0,this.zoomEnabled=!1):(this.zoomEnabled=!0,this.panEnabled=!1),La(a._zoomButton,a._resetButton)):(this.zoomEnabled=!0,this.panEnabled=!1))}else this.panEnabled=this.zoomEnabled= -!1;hb(this);"none"!==this._toolBar.style.display&&this._zoomButton&&(this.panEnabled?va(a,a._zoomButton,"zoom"):va(a,a._zoomButton,"pan"),a._resetButton.getAttribute("state")!==a._cultureInfo.resetText&&va(a,a._resetButton,"reset"));this.options.toolTip&&this.toolTip.options!==this.options.toolTip&&(this.toolTip.options=this.options.toolTip);for(var c in this.toolTip.options)this.toolTip.options.hasOwnProperty(c)&&this.toolTip.updateOption(c)};m.prototype._updateSize=function(){var a;a=[this.canvas, -this.overlaidCanvas,this._eventManager.ghostCanvas];var d=0,c=0;this.options.width?d=this.width:this.width=d=0b.linkedDataSeriesIndex||b.linkedDataSeriesIndex>=this.options.data.length||"number"!==typeof b.linkedDataSeriesIndex||"error"===this.options.data[b.linkedDataSeriesIndex].type)&&(b.linkedDataSeriesIndex=null);null===b.name&& -(b.name="DataSeries "+a);null===b.color?1a&&"undefined"!==typeof D.startTimePercent?a>=D.startTimePercent&&D.animationCallback(D.easingFunction(a-D.startTimePercent,0,1,1-D.startTimePercent),D): -D.animationCallback(D.easingFunction(a,0,1,1),D);n.dispatchEvent("dataAnimationIterationEnd",{chart:n})},function(){c=[];for(var a=0;aa.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f=!1,l=0;lc.max&&(c.max=b);ed.max&&"number"===typeof e&&(d.max=e);if(0t&&(t=1/t);c.minDiff>t&&1!==t&&(c.minDiff=t)}else t=b-s.dataPoints[D-1].x,0>t&&(t*=-1),c.minDiff>t&&0!==t&&(c.minDiff=t);null!==e&&null!==s.dataPoints[D-1].y&&(a.axisY.logarithmic?(t=e/s.dataPoints[D-1].y,1>t&&(t=1/t),d.minDiff>t&&1!==t&&(d.minDiff=t)):(t=e-s.dataPoints[D-1].y,0>t&&(t*=-1),d.minDiff>t&&0!==t&&(d.minDiff=t)))}if(bg&& -!n)n=!0;else if(b>g&&n)continue;s.dataPoints[D].label&&(a.axisX.labels[b]=s.dataPoints[D].label);bc.viewPortMax&&(c.viewPortMax=b);null===e?c.viewPortMin===b&&pd.viewPortMax&&"number"===typeof e&&(d.viewPortMax=e))}}s.axisX.valueType=s.xValueType=f?"dateTime":"number"}};m.prototype._processStackedPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var d= -a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f=!1,l=[],s=[],D=Infinity,k=-Infinity,n=0;nc.max&&(c.max=b);if(0m&&(m=1/m);c.minDiff>m&&1!==m&&(c.minDiff=m)}else m=b-p.dataPoints[q-1].x,0>m&&(m*=-1),c.minDiff>m&&0!==m&&(c.minDiff=m);null!==e&&null!==p.dataPoints[q-1].y&&(a.axisY.logarithmic?0m&&(m=1/m),d.minDiff>m&&1!==m&&(d.minDiff=m)):(m=e-p.dataPoints[q-1].y,0>m&&(m*=-1),d.minDiff>m&&0!==m&&(d.minDiff=m)))}if(bu&&!t)t=!0;else if(b>u&&t)continue;p.dataPoints[q].label&&(a.axisX.labels[b]=p.dataPoints[q].label);bc.viewPortMax&&(c.viewPortMax=b);null===p.dataPoints[q].y?c.viewPortMin===b&&hd.max&&(d.max=a),qc.viewPortMax|| -(ad.viewPortMax&&(d.viewPortMax=a)));for(q in s)s.hasOwnProperty(q)&&!isNaN(q)&&(a=s[q],ad.max&&(d.max=Math.max(a,k)),qc.viewPortMax||(ad.viewPortMax&&(d.viewPortMax=Math.max(a,k))))}};m.prototype._processStacked100PlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f=!1,l=!1,s=!1,D=[],k=0;kc.max&&(c.max=b);if(0u&&(u=1/u);c.minDiff>u&&1!==u&&(c.minDiff=u)}else u=b-n.dataPoints[p-1].x,0>u&&(u*=-1),c.minDiff>u&&0!==u&&(c.minDiff=u);r(e)||null===n.dataPoints[p-1].y||(a.axisY.logarithmic?0u&&(u=1/u),d.minDiff>u&&1!==u&&(d.minDiff=u)):(u=e-n.dataPoints[p-1].y,0>u&&(u*=-1),d.minDiff>u&&0!==u&&(d.minDiff=u)))}if(bm&&!g)g=!0;else if(b>m&&g)continue;n.dataPoints[p].label&&(a.axisX.labels[b]=n.dataPoints[p].label); -bc.viewPortMax&&(c.viewPortMax=b);null===e?c.viewPortMin===b&&te&&(s=!0),D[b]=D[b]?D[b]+Math.abs(e):Math.abs(e))}}n.axisX.valueType=n.xValueType=f?"dateTime":"number"}a.axisY.logarithmic?(d.max=r(d.viewPortMax)?99*Math.pow(a.axisY.logarithmBase,-0.05):Math.max(d.viewPortMax,99*Math.pow(a.axisY.logarithmBase,-0.05)),d.min= -r(d.viewPortMin)?1:Math.min(d.viewPortMin,1)):l&&!s?(d.max=r(d.viewPortMax)?99:Math.max(d.viewPortMax,99),d.min=r(d.viewPortMin)?1:Math.min(d.viewPortMin,1)):l&&s?(d.max=r(d.viewPortMax)?99:Math.max(d.viewPortMax,99),d.min=r(d.viewPortMin)?-99:Math.min(d.viewPortMin,-99)):!l&&s&&(d.max=r(d.viewPortMax)?-1:Math.max(d.viewPortMax,-1),d.min=r(d.viewPortMin)?-99:Math.min(d.viewPortMin,-99));d.viewPortMin=d.min;d.viewPortMax=d.max;a.dataPointYSums=D}};m.prototype._processMultiYPlotUnit=function(a){if(a.dataSeriesIndexes&& -!(1>a.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f,l,s=!1,D=0;Dc.max&&(c.max=b);fd.max&&(d.max=l);0t&&(t=1/t),c.minDiff>t&&1!==t&&(c.minDiff=t)):(t=b-k.dataPoints[n-1].x,0>t&&(t*=-1),c.minDiff>t&&0!==t&&(c.minDiff=t)),e&&(null!==e[0]&&k.dataPoints[n-1].y&&null!== -k.dataPoints[n-1].y[0])&&(a.axisY.logarithmic?(t=e[0]/k.dataPoints[n-1].y[0],1>t&&(t=1/t),d.minDiff>t&&1!==t&&(d.minDiff=t)):(t=e[0]-k.dataPoints[n-1].y[0],0>t&&(t*=-1),d.minDiff>t&&0!==t&&(d.minDiff=t))));if(!(bu&&!q)q=!0;else if(b>u&&q)continue;k.dataPoints[n].label&&(a.axisX.labels[b]=k.dataPoints[n].label);bc.viewPortMax&&(c.viewPortMax=b);if(c.viewPortMin===b&&e)for(r=0;rd.viewPortMax&&(d.viewPortMax=l))}}k.axisX.valueType=k.xValueType=s?"dateTime":"number"}};m.prototype._processSpecificPlotUnit=function(a){if("waterfall"===a.type&&a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f=!1,l=0;lc.max&&(c.max=b),s.dataPointEOs[D].cumulativeSumd.max&&(d.max=s.dataPointEOs[D].cumulativeSum),0p&&(p=1/p),c.minDiff>p&&1!==p&&(c.minDiff=p)):(p=b-s.dataPoints[D-1].x,0>p&& -(p*=-1),c.minDiff>p&&0!==p&&(c.minDiff=p)),null!==e&&null!==s.dataPoints[D-1].y&&(a.axisY.logarithmic?(e=s.dataPointEOs[D].cumulativeSum/s.dataPointEOs[D-1].cumulativeSum,1>e&&(e=1/e),d.minDiff>e&&1!==e&&(d.minDiff=e)):(e=s.dataPointEOs[D].cumulativeSum-s.dataPointEOs[D-1].cumulativeSum,0>e&&(e*=-1),d.minDiff>e&&0!==e&&(d.minDiff=e)))),!(bg&&!n)n=!0;else if(b>g&&n)continue;s.dataPoints[D].label&&(a.axisX.labels[b]=s.dataPoints[D].label);bc.viewPortMax&&(c.viewPortMax=b);0d.viewPortMax&&(d.viewPortMax=s.dataPointEOs[D-1].cumulativeSum));s.dataPointEOs[D].cumulativeSumd.viewPortMax&&(d.viewPortMax=s.dataPointEOs[D].cumulativeSum)}s.axisX.valueType=s.xValueType=f?"dateTime":"number"}}; -m.prototype.calculateAutoBreaks=function(){function a(a,b,c,e){if(e)return c=Math.pow(Math.min(c*a/b,b/a),0.2),1>=c&&(c=Math.pow(1>a?1/a:Math.min(b/a,a),0.25)),{startValue:a*c,endValue:b/c};c=0.2*Math.min(c-b+a,b-a);0>=c&&(c=0.25*Math.min(b-a,Math.abs(a)));return{startValue:a+c,endValue:b-c}}function d(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){var b=a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks,c=a.axisY.scaleBreaks&&a.axisY.scaleBreaks.autoCalculate&& -1<=a.axisY.scaleBreaks.maxNumberOfAutoBreaks;if(b||c)for(var d=a.axisY.dataInfo,f=a.axisX.dataInfo,g,l=f.min,k=f.max,n=d.min,p=d.max,f=f._dataRanges,d=d._dataRanges,q,s=0,D=0;Dh.dataPoints.length))for(s=0;sf[q].max&&(f[q].max=g)),c){var m=(p+1-n)*Math.max(parseFloat(a.axisY.scaleBreaks.collapsibleThreshold)||10,10)/100;if((g="waterfall"===a.type?h.dataPointEOs[s].cumulativeSum:h.dataPoints[s].y)&&g.length)for(var w=0;wd[q].max&&(d[q].max=g[w]);else r(g)||(q=Math.floor((g-n)/m),gd[q].max&&(d[q].max=g))}}}}function c(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)&&a.axisX.scaleBreaks&& -a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks)for(var b=a.axisX.dataInfo,c=b.min,d=b.max,f=b._dataRanges,g,l=0,k=0;kn.dataPoints.length))for(l=0;lf[g].max&&(f[g].max= -b)}}for(var b,e=this,f=!1,l=0;ln[g].max&&(n[g].max=p)}delete this._axes[l].dataInfo.dataPointYPositiveSums}if(this._axes[l].dataInfo.dataPointYNegativeSums){q= -this._axes[l].dataInfo.dataPointYNegativeSums;n=k;for(s in q)q.hasOwnProperty(s)&&!isNaN(s)&&(p=-1*q[s],r(p)||(g=Math.floor((p-D)/b),pn[g].max&&(n[g].max=p)));delete this._axes[l].dataInfo.dataPointYNegativeSums}for(s=0;sb&&f.push({diff:p,start:n,end:D});break}else s++;if(this._axes[l].scaleBreaks.customBreaks)for(s=0;s=e.x1&&(a<=e.x2&&d>=e.y1&&d<=e.y2)&&(b=e.id)}return b};m.prototype.getAutoFontSize=mb;m.prototype.resetOverlayedCanvas= -function(){this.overlaidCanvasCtx.clearRect(0,0,this.width,this.height)};m.prototype.clearCanvas=lb;m.prototype.attachEvent=function(a){this._events.push(a)};m.prototype._touchEventHandler=function(a){if(a.changedTouches&&this.interactivityEnabled){var d=[],c=a.changedTouches,b=c?c[0]:a,e=null;switch(a.type){case "touchstart":case "MSPointerDown":d=["mousemove","mousedown"];this._lastTouchData=Oa(b);this._lastTouchData.time=new Date;break;case "touchmove":case "MSPointerMove":d=["mousemove"];break; -case "touchend":case "MSPointerUp":var f=this._lastTouchData&&this._lastTouchData.time?new Date-this._lastTouchData.time:0,d="touchstart"===this._lastTouchEventType||"MSPointerDown"===this._lastTouchEventType||300>f?["mouseup","click"]:["mouseup"];break;default:return}if(!(c&&1f)this._lastTouchData.scroll=!0}catch(s){}this._lastTouchEventType= -a.type;if(this._lastTouchData.scroll&&this.zoomEnabled)this.isDrag&&this.resetOverlayedCanvas(),this.isDrag=!1;else for(c=0;c=e.x1&&d.x<=e.x2&&d.y>=e.y1&&d.y<=e.y2){b[c].call(b.context,d.x,d.y);"mousedown"===c&&!0===b.capture?(m.capturedEventParam=b,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.documentElement.addEventListener("mouseup",this._mouseEventHandler,!1)):"mouseup"===c&&(b.chart.overlaidCanvas.releaseCapture? -b.chart.overlaidCanvas.releaseCapture():document.documentElement.removeEventListener("mouseup",this._mouseEventHandler,!1));break}else b=null;a.target.style.cursor=b&&b.cursor?b.cursor:this._defaultCursor}c=this.plotArea;if(d.xc.x2||d.yc.y2){this.toolTip&&this.toolTip.enabled?(this.toolTip.hide(),this.toolTip.dispatchEvent("hidden",{chart:this,toolTip:this.toolTip},this.toolTip)):this.resetOverlayedCanvas();for(f=0;fc.maximum&&(f=c.viewportMaximum/c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum/f,c.sessionVariables.newViewportMaximum=c.viewportMaximum/f,l=!0):c.viewportMinimumc.maximum&&(f=c.viewportMaximum-c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum-f,c.sessionVariables.newViewportMaximum=c.viewportMaximum-f,l=!0);else if((!e||2Math.abs(c)&&(this.panEnabled||this.zoomEnabled)){this.toolTip.hide();this.toolTip&&this.toolTip.enabled&&this.toolTip.dispatchEvent("hidden",{chart:this,toolTip:this.toolTip},this.toolTip);for(var s=0;sg)var t=g,g=q,q=t;if(p.scaleBreaks)for(t=0;!f&&t=g;if(isFinite(p.dataInfo.minDiff))if(t=p.getApparentDifference(q,g,null,!0),!(f||!(this.panEnabled&&p.scaleBreaks&&p.scaleBreaks._appliedBreaks.length)&& -(p.logarithmic&&tp.maximum))D.push(p),n.push({val1:q,val2:g}),s=!0;else if(!e){s=!1;break}}return{isValid:s,axesWithValidRange:D,axesRanges:n}};m.prototype.preparePlotArea=function(){var a=this.plotArea;!w&&(0c.lineCoordinates.x2?d.x2:c.lineCoordinates.x2;a.y2=d.y2>d.y1?d.y2:c.lineCoordinates.y2;a.width=a.x2-a.x1;a.height=a.y2-a.y1}this.axisY2&&0c.lineCoordinates.x2? -d.x2:c.lineCoordinates.x2,a.y2=d.y2>d.y1?d.y2:c.lineCoordinates.y2,a.width=a.x2-a.x1,a.height=a.y2-a.y1)}else d=this.layoutManager.getFreeSpace(),a.x1=d.x1,a.x2=d.x2,a.y1=d.y1,a.y2=d.y2,a.width=d.width,a.height=d.height;w||(a.canvas.width=a.width,a.canvas.height=a.height,a.canvas.style.left=a.x1+"px",a.canvas.style.top=a.y1+"px",(0c.x2||n.point.yc.y2+1)continue}else if("rangearea"===p||"rangesplinearea"===p){if(n.dataPoint.xe.viewportMaximum||Math.max.apply(null,n.dataPoint.y) -f.viewportMaximum)continue}else if(0<=p.indexOf("line")||0<=p.indexOf("area")||0<=p.indexOf("bubble")||0<=p.indexOf("scatter")){if(n.dataPoint.xe.viewportMaximum||n.dataPoint.yf.viewportMaximum)continue}else if(0<=p.indexOf("column")||"waterfall"===p||"error"===p&&!n.axisSwapped){if(n.dataPoint.xe.viewportMaximum||n.bounds.y1>c.y2||n.bounds.y2e.viewportMaximum||n.bounds.x1>c.x2||n.bounds.x2e.viewportMaximum||Math.max.apply(null,n.dataPoint.y)f.viewportMaximum)continue}else if(n.dataPoint.xe.viewportMaximum)continue;l=s=2;"horizontal"===z?(D=h.width,k=h.height):(k=h.width,D=h.height);if("normal"=== -this.plotInfo.axisPlacement){if(0<=p.indexOf("line")||0<=p.indexOf("area"))x="auto",s=4;else if(0<=p.indexOf("stacked"))"auto"===x&&(x="inside");else if("bubble"===p||"scatter"===p)x="inside";q=n.point.x-("horizontal"===z?D/2:D/2-t/2);"inside"!==x?(e=c.y1,f=c.y2,0n.point.y)):(g=n.point.y+t/2+s+b,g>f-k&&(g="auto"===x?Math.min(n.point.y,f)+t/2-k-s:f+t/2-k,A=gf-k-s&&("bubble"===p||"scatter"===p)&&(g=Math.min(n.point.y+s,c.y2-k-s))),g=Math.min(g,f))}else 0<=p.indexOf("line")||0<=p.indexOf("area")|| -0<=p.indexOf("scatter")?(x="auto",l=4):0<=p.indexOf("stacked")?"auto"===x&&(x="inside"):"bubble"===p&&(x="inside"),g=n.point.y+t/2-k/2+s,"inside"!==x?(e=c.x1,f=c.x2,0>v?(q=n.point.x-("horizontal"===z?D:D-t/2)-l-b,qn.point.x)):(q=n.point.x+("horizontal"===z?0:t/2)+l+b,q>f-D-l-b&&(q="auto"===x?Math.min(n.point.x,f)-("horizontal"===z?D:D/2)-l:f-D-l,A=qv?Math.max(n.bounds.x1,c.x1)+t/2+l:Math.min(n.bounds.x2,c.x2)-D/2-l+("horizontal"===z?0:t/2):(Math.max(n.bounds.x1,c.x1)+Math.min(n.bounds.x2,c.x2))/2+("horizontal"===z?0:t/2),q=0>v?Math.max(n.point.x,b)-("horizontal"===z?D/2:0):Math.min(n.point.x,b)-D/2,q=Math.max(q,e));"vertical"===z&&(g+=k-t/2);h.x=q;h.y=g;h.render(!0);y&&("inside"!==x&&(0>p.indexOf("bar")&&("error"!==p||!n.axisSwapped)&&n.point.x>c.x1&&n.point.xp.indexOf("column")&&("error"!==p||n.axisSwapped)&&n.point.y>c.y1&& -n.point.y=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var e=this.plotArea;c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();for(var f=[],l,s=0;sa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!z)))if("number"!==typeof n[u].y)0n[u].y===a.axisY.reversed?1:-1,color:t})}c.stroke();w&&b.stroke()}}ba.drawMarkers(f);w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop", -a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),b.beginPath());c.restore();c.beginPath();return{source:d,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderStepLine=function(a){var d= -a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var e=this.plotArea;c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();for(var f=[],l,s=0;sa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!z)))if("number"!==typeof n[u].y)0< -u&&!(k.connectNullData||z||m)&&(c.stroke(),w&&b.stroke()),z=!0;else{var G=x;r=a.axisX.convertValueToPixel(r);x=a.axisY.convertValueToPixel(n[u].y);var C=k.dataPointIds[u];this._eventManager.objectMap[C]={id:C,objectType:"dataPoint",dataSeriesIndex:D,dataPointIndex:u,x1:r,y1:x};m||z?(!m&&k.connectNullData?(c.setLineDash&&(k.options.nullDataLineDashType||p===k.lineDashType&&k.lineDashType!==k.nullDataLineDashType)&&(c.stroke(),c.beginPath(),c.moveTo(l.x,l.y),p=k.nullDataLineDashType,c.setLineDash(q)), -c.lineTo(r,G),c.lineTo(r,x),w&&(b.lineTo(r,G),b.lineTo(r,x))):(c.beginPath(),c.moveTo(r,x),w&&(b.beginPath(),b.moveTo(r,x))),z=m=!1):(c.lineTo(r,G),w&&b.lineTo(r,G),c.lineTo(r,x),w&&b.lineTo(r,x),0==u%500&&(c.stroke(),c.beginPath(),c.moveTo(r,x),w&&(b.stroke(),b.beginPath(),b.moveTo(r,x))));l={x:r,y:x};un[u].y===a.axisY.reversed?1:-1,color:t})}c.stroke(); -w&&b.stroke()}}ba.drawMarkers(f);w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),b.beginPath());c.restore();c.beginPath();return{source:d,dest:this.plotArea.ctx, -animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderSpline=function(a){function d(a){a=v(a,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx;b.save(); -var f=this.plotArea;b.beginPath();b.rect(f.x1,f.y1,f.width,f.height);b.clip();for(var l=[],s=0;sa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!m)))if("number"!==typeof n[r].y)0n[r].y===a.axisY.reversed?1:-1,color:t});m=!1}d(x)}ba.drawMarkers(l);w&&(c.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(f.x1,f.y1,f.width,f.height),e.beginPath());b.restore();b.beginPath();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear, -animationBase:0}}};m.prototype.renderColumn=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=0,l,s,D,k=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,n=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width, -0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.dataPointWidth=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&f>n&&(f=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,n));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&nn&&(p=n);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(n=0;na.axisX.dataInfo.viewPortMax)&&"number"===typeof t[f].y){l=a.axisX.convertValueToPixel(D);s=a.axisY.convertValueToPixel(t[f].y);l=a.axisX.reversed?l+a.plotType.totalDataSeries*p/2-(a.previousDataSeriesCount+n)*p<<0:l-a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+n)*p<<0;var r=a.axisX.reversed?l-p<<0:l+p<<0,u;0<=t[f].y?u=k:(u=s,s=k);s>u&&(b=s,s=u,u=b);b=t[f].color?t[f].color:g._colorSet[f%g._colorSet.length];ea(c,a.axisX.reversed?r:l,s,a.axisX.reversed? -l:r,u,b,0,null,h&&(a.axisY.reversed?0>t[f].y:0<=t[f].y),(a.axisY.reversed?0<=t[f].y:0>t[f].y)&&h,!1,!1,g.fillOpacity);b=g.dataPointIds[f];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:f,x1:l,y1:s,x2:r,y2:u};b=P(b);w&&ea(this._eventManager.ghostCtx,a.axisX.reversed?r:l,s,a.axisX.reversed?l:r,u,b,0,null,!1,!1,!1,!1);(t[f].indexLabel||g.indexLabel||t[f].indexLabelFormatter||g.indexLabelFormatter)&&this._indexLabels.push({chartType:"column",dataPoint:t[f], -dataSeries:g,point:{x:l+(r-l)/2,y:0>t[f].y===a.axisY.reversed?s:u},direction:0>t[f].y===a.axisY.reversed?1:-1,bounds:{x1:l,y1:Math.min(s,u),x2:r,y2:Math.max(s,u)},color:b})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.yScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:ka.axisY.bounds.y2?a.axisY.bounds.y2:k}}};m.prototype.renderStackedColumn=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea, -f=[],l=[],s=[],D=[],k=0,n,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(t)/ -Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>g&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&gg&&(t=g);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1, -e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(g=0;ga.axisX.dataInfo.viewPortMax)&&"number"===typeof u[k].y){n=a.axisX.convertValueToPixel(b);n=n-a.plotType.plotUnits.length*t/2+a.index*t<<0;var x=n+t<<0,z;if(a.axisY.logarithmic|| -a.axisY.scaleBreaks&&0=u[k].y)D[b]=u[k].y+(D[b]?D[b]:0),z=a.axisY.convertValueToPixel(D[b]),p="undefined"!==typeof l[b]?l[b]:q,l[b]=z;else if(p=a.axisY.convertValueToPixel(u[k].y),0<=u[k].y){var G="undefined"!==typeof f[b]?f[b]:0;p-=G;z=q-G;f[b]=G+(z-p)}else G= -l[b]?l[b]:0,z=p+G,p=q+G,l[b]=G+(z-p);b=u[k].color?u[k].color:r._colorSet[k%r._colorSet.length];ea(c,n,a.axisY.reversed?z:p,x,a.axisY.reversed?p:z,b,0,null,m&&(a.axisY.reversed?0>u[k].y:0<=u[k].y),(a.axisY.reversed?0<=u[k].y:0>u[k].y)&&m,!1,!1,r.fillOpacity);b=r.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:k,x1:n,y1:p,x2:x,y2:z};b=P(b);w&&ea(this._eventManager.ghostCtx,n,p,x,z,b,0,null,!1,!1,!1,!1);(u[k].indexLabel||r.indexLabel||u[k].indexLabelFormatter|| -r.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn",dataPoint:u[k],dataSeries:r,point:{x:n+(x-n)/2,y:0<=u[k].y?p:z},direction:0>u[k].y===a.axisY.reversed?1:-1,bounds:{x1:n,y1:Math.min(p,z),x2:x,y2:Math.max(p,z)},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height), -this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.yScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:qa.axisY.bounds.y2?a.axisY.bounds.y2:q}}};m.prototype.renderStackedColumn100=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx: -d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=[],l=[],s=[],D=[],k=0,n,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth? -this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(t)/Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>g&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&gg&&(t=g);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height); -c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(g=0;ga.axisX.dataInfo.viewPortMax)&&"number"===typeof u[k].y){n=a.axisX.convertValueToPixel(b);p=0!==a.dataPointYSums[b]? -100*(u[k].y/a.dataPointYSums[b]):0;n=n-a.plotType.plotUnits.length*t/2+a.index*t<<0;var x=n+t<<0,z;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=s[b])continue;p=a.axisY.convertValueToPixel(s[b]);z=f[b]?f[b]:q;f[b]=p}else if(a.axisY.scaleBreaks&&0=u[k].y)D[b]=p+("undefined"!==typeof D[b]?D[b]:0),z=a.axisY.convertValueToPixel(D[b]),p=l[b]?l[b]:q,l[b]=z; -else if(p=a.axisY.convertValueToPixel(p),0<=u[k].y){var G="undefined"!==typeof f[b]?f[b]:0;p-=G;z=q-G;a.dataSeriesIndexes.length-1===g&&1>=Math.abs(e.y1-p)&&(p=e.y1);f[b]=G+(z-p)}else G="undefined"!==typeof l[b]?l[b]:0,z=p+G,p=q+G,a.dataSeriesIndexes.length-1===g&&1>=Math.abs(e.y2-z)&&(z=e.y2),l[b]=G+(z-p);b=u[k].color?u[k].color:r._colorSet[k%r._colorSet.length];ea(c,n,a.axisY.reversed?z:p,x,a.axisY.reversed?p:z,b,0,null,m&&(a.axisY.reversed?0>u[k].y:0<=u[k].y),(a.axisY.reversed?0<=u[k].y:0>u[k].y)&& -m,!1,!1,r.fillOpacity);b=r.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:k,x1:n,y1:p,x2:x,y2:z};b=P(b);w&&ea(this._eventManager.ghostCtx,n,p,x,z,b,0,null,!1,!1,!1,!1);(u[k].indexLabel||r.indexLabel||u[k].indexLabelFormatter||r.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn100",dataPoint:u[k],dataSeries:r,point:{x:n+(x-n)/2,y:0<=u[k].y?p:z},direction:0>u[k].y===a.axisY.reversed?1:-1,bounds:{x1:n,y1:Math.min(p,z), -x2:x,y2:Math.max(p,z)},color:b})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d, -dest:this.plotArea.ctx,animationCallback:N.yScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:qa.axisY.bounds.y2?a.axisY.bounds.y2:q}}};m.prototype.renderBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=0,l,s,D,k=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth? -this.dataPointWidth:1,n=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&f>n&&(f= -Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,n));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&nn&&(p=n);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(n=0;na.axisX.dataInfo.viewPortMax)&&"number"===typeof t[f].y){s=a.axisX.convertValueToPixel(D);l=a.axisY.convertValueToPixel(t[f].y);s=a.axisX.reversed?s+a.plotType.totalDataSeries*p/2-(a.previousDataSeriesCount+n)*p<<0:s-a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+ -n)*p<<0;var r=a.axisX.reversed?s-p<<0:s+p<<0,u;0<=t[f].y?u=k:(u=l,l=k);b=t[f].color?t[f].color:g._colorSet[f%g._colorSet.length];ea(c,a.axisY.reversed?l:u,a.axisX.reversed?r:s,a.axisY.reversed?u:l,a.axisX.reversed?s:r,b,0,null,h,!1,!1,!1,g.fillOpacity);b=g.dataPointIds[f];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:f,x1:u,y1:s,x2:l,y2:r};b=P(b);w&&ea(this._eventManager.ghostCtx,u,a.axisX.reversed?r:s,l,a.axisX.reversed?s:r,b,0,null,!1,!1,!1,!1);(t[f].indexLabel|| -g.indexLabel||t[f].indexLabelFormatter||g.indexLabelFormatter)&&this._indexLabels.push({chartType:"bar",dataPoint:t[f],dataSeries:g,point:{x:0<=t[f].y?l:u,y:s+(r-s)/2},direction:0>t[f].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(u,l),y1:s,x2:Math.max(u,l),y2:r},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas, -0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.xScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:ka.axisY.bounds.x2?a.axisY.bounds.x2:k}}};m.prototype.renderStackedBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx, -c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=[],l=[],s=[],D=[],k=0,n,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth? -this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(t)/Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>g&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&gg&&(t=g);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height); -c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(g=0;ga.axisX.dataInfo.viewPortMax)&&"number"===typeof u[k].y){p=a.axisX.convertValueToPixel(b); -p=p-a.plotType.plotUnits.length*t/2+a.index*t<<0;var x=p+t<<0,z;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=u[k].y)D[b]=u[k].y+(D[b]?D[b]:0),n=l[b]?l[b]:q,l[b]=z=a.axisY.convertValueToPixel(D[b]);else if(n=a.axisY.convertValueToPixel(u[k].y),0<=u[k].y){var G=f[b]?f[b]:0;z=q+G;n+= -G;f[b]=G+(n-z)}else G=l[b]?l[b]:0,z=n-G,n=q-G,l[b]=G+(n-z);b=u[k].color?u[k].color:r._colorSet[k%r._colorSet.length];ea(c,a.axisY.reversed?n:z,p,a.axisY.reversed?z:n,x,b,0,null,m,!1,!1,!1,r.fillOpacity);b=r.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:k,x1:z,y1:p,x2:n,y2:x};b=P(b);w&&ea(this._eventManager.ghostCtx,z,p,n,x,b,0,null,!1,!1,!1,!1);(u[k].indexLabel||r.indexLabel||u[k].indexLabelFormatter||r.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar", -dataPoint:u[k],dataSeries:r,point:{x:0<=u[k].y?n:z,y:p+(x-p)/2},direction:0>u[k].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(z,n),y1:p,x2:Math.max(z,n),y2:x},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.xScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:qa.axisY.bounds.x2?a.axisY.bounds.x2:q}}};m.prototype.renderStackedBar100=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea, -f=[],l=[],s=[],D=[],k=0,n,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(t)/ -Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>g&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&gg&&(t=g);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1, -e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(g=0;ga.axisX.dataInfo.viewPortMax)&&"number"===typeof u[k].y){p=a.axisX.convertValueToPixel(b);var x;x=0!==a.dataPointYSums[b]?100*(u[k].y/a.dataPointYSums[b]):0;p=p-a.plotType.plotUnits.length* -t/2+a.index*t<<0;var z=p+t<<0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=s[b])continue;x=f[b]?f[b]:q;f[b]=n=a.axisY.convertValueToPixel(s[b])}else if(a.axisY.scaleBreaks&&0=u[k].y)D[b]=x+(D[b]?D[b]:0),n=l[b]?l[b]:q,l[b]=x=a.axisY.convertValueToPixel(D[b]);else if(n=a.axisY.convertValueToPixel(x),0<=u[k].y){var G=f[b]?f[b]:0;x=q+G;n+=G;a.dataSeriesIndexes.length-1===g&& -1>=Math.abs(e.x2-n)&&(n=e.x2);f[b]=G+(n-x)}else G=l[b]?l[b]:0,x=n-G,n=q-G,a.dataSeriesIndexes.length-1===g&&1>=Math.abs(e.x1-x)&&(x=e.x1),l[b]=G+(n-x);b=u[k].color?u[k].color:r._colorSet[k%r._colorSet.length];ea(c,a.axisY.reversed?n:x,p,a.axisY.reversed?x:n,z,b,0,null,m,!1,!1,!1,r.fillOpacity);b=r.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:k,x1:x,y1:p,x2:n,y2:z};b=P(b);w&&ea(this._eventManager.ghostCtx,x,p,n,z,b,0,null,!1,!1,!1,!1); -(u[k].indexLabel||r.indexLabel||u[k].indexLabelFormatter||r.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar100",dataPoint:u[k],dataSeries:r,point:{x:0<=u[k].y?n:x,y:p+(z-p)/2},direction:0>u[k].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(x,n),y1:p,x2:Math.max(x,n),y2:z},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&& -c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.xScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:qa.axisY.bounds.x2?a.axisY.bounds.x2:q}}};m.prototype.renderArea=function(a){var d, -c;function b(){G&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?z=x:0>a.axisY.viewportMaximum?z=s.y1:0=a.dataSeriesIndexes.length)){var l= -this._eventManager.ghostCtx,s=a.axisY.lineCoordinates,D=[],k=this.plotArea,n;f.save();w&&l.save();f.beginPath();f.rect(k.x1,k.y1,k.width,k.height);f.clip();w&&(l.beginPath(),l.rect(k.x1,k.y1,k.width,k.height),l.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax&&(!g.connectNullData||!ka)))if("number"!== -typeof t[h].y)g.connectNullData||(ka||d)||b(),ka=!0;else{r=a.axisX.convertValueToPixel(m);u=a.axisY.convertValueToPixel(t[h].y);d||ka?(!d&&g.connectNullData?(f.setLineDash&&(g.options.nullDataLineDashType||c===g.lineDashType&&g.lineDashType!==g.nullDataLineDashType)&&(d=r,c=u,r=n.x,u=n.y,b(),f.moveTo(n.x,n.y),r=d,u=c,G=n,c=g.nullDataLineDashType,f.setLineDash(M)),f.lineTo(r,u),w&&l.lineTo(r,u)):(f.beginPath(),f.moveTo(r,u),w&&(l.beginPath(),l.moveTo(r,u)),G={x:r,y:u}),ka=d=!1):(f.lineTo(r,u),w&&l.lineTo(r, -u),0==h%250&&b());n={x:r,y:u};ht[h].y===a.axisY.reversed?1:-1,color:C})}b();ba.drawMarkers(D)}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),f.globalCompositeOperation="source-atop",a.axisX.maskCanvas&& -f.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&f.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),f.clearRect(k.x1,k.y1,k.width,k.height),this._eventManager.ghostCtx.restore());f.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderSplineArea=function(a){function d(){var c= -v(y,2);if(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?m=r:0>a.axisY.viewportMaximum?m=f.y1:0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,f=a.axisY.lineCoordinates,l=[],s=this.plotArea;b.save();w&&e.save();b.beginPath();b.rect(s.x1,s.y1,s.width,s.height);b.clip();w&&(e.beginPath(),e.rect(s.x1,s.y1,s.width, -s.height),e.clip());for(var h=0;ha.axisX.dataInfo.viewPortMax&&(!n.connectNullData||!t)))if("number"!==typeof p[q].y)0p[q].y===a.axisY.reversed?1:-1,color:x});t=!1}d();ba.drawMarkers(l)}}w&&(c.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(s.x1,s.y1,s.width,s.height),this._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear, -animationBase:0}}};m.prototype.renderStepArea=function(a){var d,c;function b(){G&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?z=x:0>a.axisY.viewportMaximum?z=s.y1:0=a.dataSeriesIndexes.length)){var l=this._eventManager.ghostCtx,s=a.axisY.lineCoordinates,h=[],k=this.plotArea,n;f.save();w&&l.save();f.beginPath();f.rect(k.x1,k.y1,k.width,k.height);f.clip();w&&(l.beginPath(),l.rect(k.x1,k.y1,k.width,k.height),l.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax&&(!g.connectNullData||!c))){var aa=u;"number"!==typeof t[r].y?(g.connectNullData||(c||d)||b(),c=!0):(m=a.axisX.convertValueToPixel(y),u=a.axisY.convertValueToPixel(t[r].y),d||c?(!d&&g.connectNullData?(f.setLineDash&&(g.options.nullDataLineDashType||M===g.lineDashType&&g.lineDashType!==g.nullDataLineDashType)&&(d=m,c=u,m=n.x,u=n.y,b(),f.moveTo(n.x,n.y),m=d,u=c,G=n,M=g.nullDataLineDashType,f.setLineDash(T)),f.lineTo(m,aa),f.lineTo(m,u),w&&(l.lineTo(m,aa),l.lineTo(m,u))): -(f.beginPath(),f.moveTo(m,u),w&&(l.beginPath(),l.moveTo(m,u)),G={x:m,y:u}),c=d=!1):(f.lineTo(m,aa),w&&l.lineTo(m,aa),f.lineTo(m,u),w&&l.lineTo(m,u),0==r%250&&b()),n={x:m,y:u},rt[r].y===a.axisY.reversed?1:-1,color:C}))}b();ba.drawMarkers(h)}}w&& -(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),f.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&f.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&f.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),f.clearRect(k.x1,k.y1,k.width,k.height),this._eventManager.ghostCtx.restore());f.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation, -easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderStackedArea=function(a){function d(){if(!(1>k.length)){for(0=a.dataSeriesIndexes.length)){var e=null,f=null,l=[],s=this.plotArea,h=[], -k=[],n=[],p=[],q=0,g,t,r=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),m=this._eventManager.ghostCtx,u,y,x;w&&m.beginPath();b.save();w&&m.save();b.beginPath();b.rect(s.x1,s.y1,s.width,s.height);b.clip();w&&(m.beginPath(),m.rect(s.x1,s.y1,s.width,s.height),m.clip());for(var e=[],z=0;za.axisX.dataInfo.viewPortMax&&(!C.connectNullData||!aa)))if("number"!==typeof ga.y)C.connectNullData||(aa||y)||d(),aa=!0;else{g=a.axisX.convertValueToPixel(f);var na=h[f]?h[f]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=p[f]&&a.axisY.logarithmic)continue; -t=a.axisY.convertValueToPixel(p[f])}else t=a.axisY.convertValueToPixel(ga.y),t-=na;k.push({x:g,y:r-na});h[f]=r-t;y||aa?(!y&&C.connectNullData?(b.setLineDash&&(C.options.nullDataLineDashType||x===C.lineDashType&&C.lineDashType!==C.nullDataLineDashType)&&(y=k.pop(),x=k[k.length-1],d(),b.moveTo(u.x,u.y),k.push(x),k.push(y),x=C.nullDataLineDashType,b.setLineDash(T)),b.lineTo(g,t),w&&m.lineTo(g,t)):(b.beginPath(),b.moveTo(g,t),w&&(m.beginPath(),m.moveTo(g,t))),aa=y=!1):(b.lineTo(g,t),w&&m.lineTo(g,t), -0==q%250&&(d(),b.moveTo(g,t),w&&m.moveTo(g,t),k.push({x:g,y:r-na})));u={x:g,y:t};q -v[q].y===a.axisY.reversed?1:-1,color:e})}}d();b.moveTo(g,t);w&&m.moveTo(g,t)}delete C.dataPointIndexes}ba.drawMarkers(l);w&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(s.x1, -s.y1,s.width,s.height),m.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderStackedArea100=function(a){function d(){for(0=a.dataSeriesIndexes.length)){var e=null,f=null,l=this.plotArea,s=[],h=[],k=[],n=[],p=[],q=0,g,t,r,m,u,y=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),x=this._eventManager.ghostCtx;b.save();w&&x.save();b.beginPath();b.rect(l.x1,l.y1,l.width,l.height);b.clip();w&&(x.beginPath(),x.rect(l.x1,l.y1,l.width,l.height),x.clip());for(var e=[],z=0;za.axisX.dataInfo.viewPortMax&&(!C.connectNullData||!aa)))if("number"!==typeof ga.y)C.connectNullData||(aa||m)||d(),aa=!0;else{var na;na=0!==a.dataPointYSums[f]?100*(ga.y/a.dataPointYSums[f]):0;g=a.axisX.convertValueToPixel(f); -var E=h[f]?h[f]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=p[f]&&a.axisY.logarithmic)continue;t=a.axisY.convertValueToPixel(p[f])}else t=a.axisY.convertValueToPixel(na),t-=E;k.push({x:g,y:y-E});h[f]=y-t;m||aa?(!m&&C.connectNullData?(b.setLineDash&&(C.options.nullDataLineDashType||u===C.lineDashType&&C.lineDashType!==C.nullDataLineDashType)&&(m=k.pop(),u=k[k.length-1],d(),b.moveTo(r.x,r.y),k.push(u),k.push(m),u=C.nullDataLineDashType, -b.setLineDash(T)),b.lineTo(g,t),w&&x.lineTo(g,t)):(b.beginPath(),b.moveTo(g,t),w&&(x.beginPath(),x.moveTo(g,t))),aa=m=!1):(b.lineTo(g,t),w&&x.lineTo(g,t),0==q%250&&(d(),b.moveTo(g,t),w&&x.moveTo(g,t),k.push({x:g,y:y-E})));r={x:g,y:t};qv[q].y===a.axisY.reversed?1:-1,color:e})}}d();b.moveTo(g,t);w&&x.moveTo(g,t)}delete C.dataPointIndexes}ba.drawMarkers(s);w&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width, -this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(l.x1,l.y1,l.width,l.height),x.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderBubble=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,e=0,f,l;c.save();w&&this._eventManager.ghostCtx.save(); -c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var s=-Infinity,h=Infinity,k=0;ka.axisX.dataInfo.viewPortMax||"undefined"===typeof q[e].z||(g=q[e].z,g> -s&&(s=g),ga.axisX.dataInfo.viewPortMax)&&"number"===typeof q[e].y){f=a.axisX.convertValueToPixel(f);l=a.axisY.convertValueToPixel(q[e].y);var g=q[e].z,m=2*Math.max(Math.sqrt((s=== -h?r/2:t+(r-t)/(s-h)*(g-h))/Math.PI)<<0,1),g=p.getMarkerProperties(e,c);g.size=m;c.globalAlpha=p.fillOpacity;ba.drawMarker(f,l,c,g.type,g.size,g.color,g.borderColor,g.borderThickness);c.globalAlpha=1;var u=p.dataPointIds[e];this._eventManager.objectMap[u]={id:u,objectType:"dataPoint",dataSeriesIndex:n,dataPointIndex:e,x1:f,y1:l,size:m};m=P(u);w&&ba.drawMarker(f,l,this._eventManager.ghostCtx,g.type,g.size,m,m,g.borderThickness);(q[e].indexLabel||p.indexLabel||q[e].indexLabelFormatter||p.indexLabelFormatter)&& -this._indexLabels.push({chartType:"bubble",dataPoint:q[e],dataSeries:p,point:{x:f,y:l},direction:1,bounds:{x1:f-g.size/2,y1:l-g.size/2,x2:f+g.size/2,y2:l+g.size/2},color:null})}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};m.prototype.renderScatter=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,e=0,f,l;c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width, -b.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var s=0;sa.axisX.dataInfo.viewPortMax)&&"number"=== -typeof n[e].y){f=a.axisX.convertValueToPixel(f);l=a.axisY.convertValueToPixel(n[e].y);var g=k.getMarkerProperties(e,f,l,c);c.globalAlpha=k.fillOpacity;ba.drawMarker(g.x,g.y,g.ctx,g.type,g.size,g.color,g.borderColor,g.borderThickness);c.globalAlpha=1;Math.sqrt((p-f)*(p-f)+(q-l)*(q-l))Math.min(this.plotArea.width,this.plotArea.height)||(p=k.dataPointIds[e],this._eventManager.objectMap[p]={id:p,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:e,x1:f,y1:l},p=P(p), -w&&ba.drawMarker(g.x,g.y,this._eventManager.ghostCtx,g.type,g.size,p,p,g.borderThickness),(n[e].indexLabel||k.indexLabel||n[e].indexLabelFormatter||k.indexLabelFormatter)&&this._indexLabels.push({chartType:"scatter",dataPoint:n[e],dataSeries:k,point:{x:f,y:l},direction:1,bounds:{x1:f-g.size/2,y1:l-g.size/2,x2:f+g.size/2,y2:l+g.size/2},color:null}),p=f,q=l)}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas, -0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};m.prototype.renderCandlestick=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx, -c=w?this._preRenderCtx:d,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e=null,f=null,l=this.plotArea,s=0,h,k,n,p,q,g,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,f=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.015*this.width,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth?this.dataPointWidth:0.7*l.width* -(a.axisX.logarithmic?Math.log(t)/Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&e>f&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,f));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ff&&(t=f);c.save();w&&b.save();c.beginPath();c.rect(l.x1,l.y1,l.width,l.height);c.clip();w&&(b.beginPath(),b.rect(l.x1,l.y1,l.width,l.height),b.clip());for(var m= -0;ma.axisX.dataInfo.viewPortMax)&&!r(y[s].y)&&y[s].y.length&&"number"===typeof y[s].y[0]&&"number"===typeof y[s].y[1]&&"number"===typeof y[s].y[2]&&"number"===typeof y[s].y[3]){h=a.axisX.convertValueToPixel(g);k=a.axisY.convertValueToPixel(y[s].y[0]);n=a.axisY.convertValueToPixel(y[s].y[1]); -p=a.axisY.convertValueToPixel(y[s].y[2]);q=a.axisY.convertValueToPixel(y[s].y[3]);var z=h-t/2<<0,G=z+t<<0,f=u.options.fallingColor?u.fallingColor:u._colorSet[0],e=y[s].color?y[s].color:u._colorSet[0],C=Math.round(Math.max(1,0.15*t)),v=0===C%2?0:0.5,A=u.dataPointIds[s];this._eventManager.objectMap[A]={id:A,objectType:"dataPoint",dataSeriesIndex:fa,dataPointIndex:s,x1:z,y1:k,x2:G,y2:n,x3:h,y3:p,x4:h,y4:q,borderThickness:C,color:e};c.strokeStyle=e;c.beginPath();c.lineWidth=C;b.lineWidth=Math.max(C,4); -"candlestick"===u.type?(c.moveTo(h-v,n),c.lineTo(h-v,Math.min(k,q)),c.stroke(),c.moveTo(h-v,Math.max(k,q)),c.lineTo(h-v,p),c.stroke(),ea(c,z,Math.min(k,q),G,Math.max(k,q),y[s].y[0]<=y[s].y[3]?u.risingColor:f,C,e,x,x,!1,!1,u.fillOpacity),w&&(e=P(A),b.strokeStyle=e,b.moveTo(h-v,n),b.lineTo(h-v,Math.min(k,q)),b.stroke(),b.moveTo(h-v,Math.max(k,q)),b.lineTo(h-v,p),b.stroke(),ea(b,z,Math.min(k,q),G,Math.max(k,q),e,0,null,!1,!1,!1,!1))):"ohlc"===u.type&&(c.moveTo(h-v,n),c.lineTo(h-v,p),c.stroke(),c.beginPath(), -c.moveTo(h,k),c.lineTo(z,k),c.stroke(),c.beginPath(),c.moveTo(h,q),c.lineTo(G,q),c.stroke(),w&&(e=P(A),b.strokeStyle=e,b.moveTo(h-v,n),b.lineTo(h-v,p),b.stroke(),b.beginPath(),b.moveTo(h,k),b.lineTo(z,k),b.stroke(),b.beginPath(),b.moveTo(h,q),b.lineTo(G,q),b.stroke()));(y[s].indexLabel||u.indexLabel||y[s].indexLabelFormatter||u.indexLabelFormatter)&&this._indexLabels.push({chartType:u.type,dataPoint:y[s],dataSeries:u,point:{x:z+(G-z)/2,y:a.axisY.reversed?p:n},direction:1,bounds:{x1:z,y1:Math.min(n, -p),x2:G,y2:Math.max(n,p)},color:e})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(l.x1,l.y1,l.width,l.height),b.restore());c.restore();return{source:d,dest:this.plotArea.ctx, -animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};m.prototype.renderBoxAndWhisker=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e=null,f=this.plotArea,l=0,s,h,k,n,p,q,g,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,l=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth? -this.dataPointWidth:0.015*this.width,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth?this.dataPointWidth:0.7*f.width*(a.axisX.logarithmic?Math.log(t)/Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&e>l&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ll&&(t=l);c.save();w&&b.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();w&&(b.beginPath(),b.rect(f.x1,f.y1,f.width,f.height),b.clip());for(var m=!1,m=!!a.axisY.reversed,fa=0;faa.axisX.dataInfo.viewPortMax)&&!r(x[l].y)&&x[l].y.length&& -"number"===typeof x[l].y[0]&&"number"===typeof x[l].y[1]&&"number"===typeof x[l].y[2]&&"number"===typeof x[l].y[3]&&"number"===typeof x[l].y[4]&&5===x[l].y.length){s=a.axisX.convertValueToPixel(g);h=a.axisY.convertValueToPixel(x[l].y[0]);k=a.axisY.convertValueToPixel(x[l].y[1]);n=a.axisY.convertValueToPixel(x[l].y[2]);p=a.axisY.convertValueToPixel(x[l].y[3]);q=a.axisY.convertValueToPixel(x[l].y[4]);var G=s-t/2<<0,C=s+t/2<<0,e=x[l].color?x[l].color:y._colorSet[0],v=Math.round(Math.max(1,0.15*t)),A= -0===v%2?0:0.5,M=x[l].whiskerColor?x[l].whiskerColor:x[l].color?y.whiskerColor?y.whiskerColor:x[l].color:y.whiskerColor?y.whiskerColor:e,T="number"===typeof x[l].whiskerThickness?x[l].whiskerThickness:"number"===typeof y.options.whiskerThickness?y.whiskerThickness:v,B=x[l].whiskerDashType?x[l].whiskerDashType:y.whiskerDashType,aa=r(x[l].whiskerLength)?r(y.options.whiskerLength)?t:y.whiskerLength:x[l].whiskerLength,aa="number"===typeof aa?0>=aa?0:aa>=t?t:aa:"string"===typeof aa?parseInt(aa)*t/100>t? -t:parseInt(aa)*t/100:t,ga=1===Math.round(T)%2?0.5:0,na=x[l].stemColor?x[l].stemColor:x[l].color?y.stemColor?y.stemColor:x[l].color:y.stemColor?y.stemColor:e,E="number"===typeof x[l].stemThickness?x[l].stemThickness:"number"===typeof y.options.stemThickness?y.stemThickness:v,F=1===Math.round(E)%2?0.5:0,I=x[l].stemDashType?x[l].stemDashType:y.stemDashType,K=x[l].lineColor?x[l].lineColor:x[l].color?y.lineColor?y.lineColor:x[l].color:y.lineColor?y.lineColor:e,O="number"===typeof x[l].lineThickness?x[l].lineThickness: -"number"===typeof y.options.lineThickness?y.lineThickness:v,R=x[l].lineDashType?x[l].lineDashType:y.lineDashType,L=1===Math.round(O)%2?0.5:0,S=y.upperBoxColor,U=y.lowerBoxColor,ra=r(y.options.fillOpacity)?1:y.fillOpacity,Q=y.dataPointIds[l];this._eventManager.objectMap[Q]={id:Q,objectType:"dataPoint",dataSeriesIndex:u,dataPointIndex:l,x1:G,y1:h,x2:C,y2:k,x3:s,y3:n,x4:s,y4:p,y5:q,borderThickness:v,color:e,stemThickness:E,stemColor:na,whiskerThickness:T,whiskerLength:aa,whiskerColor:M,lineThickness:O, -lineColor:K};c.save();0=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=0,l,s,h,f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;l=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.03*this.width;var k= -a.axisX.dataInfo.minDiff;isFinite(k)||(k=0.3*Math.abs(a.axisX.range));k=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(k)/Math.log(a.axisX.range):Math.abs(k)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&f>l&&(f=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ll&&(k=l);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var n=0;na.axisX.dataInfo.viewPortMax)&&!r(g[f].y)&&g[f].y.length&&"number"===typeof g[f].y[0]&&"number"===typeof g[f].y[1]){b=a.axisX.convertValueToPixel(h);l=a.axisY.convertValueToPixel(g[f].y[0]);s=a.axisY.convertValueToPixel(g[f].y[1]);var m=a.axisX.reversed?b+a.plotType.totalDataSeries*k/2-(a.previousDataSeriesCount+n)*k<<0:b-a.plotType.totalDataSeries*k/2+(a.previousDataSeriesCount+n)*k<<0,fa=a.axisX.reversed?m-k<<0:m+k<<0,b=g[f].color?g[f].color:q._colorSet[f%q._colorSet.length];if(l>s){var u=l;l= -s;s=u}u=q.dataPointIds[f];this._eventManager.objectMap[u]={id:u,objectType:"dataPoint",dataSeriesIndex:p,dataPointIndex:f,x1:m,y1:l,x2:fa,y2:s};ea(c,a.axisX.reversed?fa:m,l,a.axisX.reversed?m:fa,s,b,0,b,t,t,!1,!1,q.fillOpacity);b=P(u);w&&ea(this._eventManager.ghostCtx,a.axisX.reversed?fa:m,l,a.axisX.reversed?m:fa,s,b,0,null,!1,!1,!1,!1);if(g[f].indexLabel||q.indexLabel||g[f].indexLabelFormatter||q.indexLabelFormatter)this._indexLabels.push({chartType:"rangeColumn",dataPoint:g[f],dataSeries:q,indexKeyword:0, -point:{x:m+(fa-m)/2,y:g[f].y[1]>=g[f].y[0]?s:l},direction:g[f].y[1]>=g[f].y[0]?-1:1,bounds:{x1:m,y1:Math.min(l,s),x2:fa,y2:Math.max(l,s)},color:b}),this._indexLabels.push({chartType:"rangeColumn",dataPoint:g[f],dataSeries:q,indexKeyword:1,point:{x:m+(fa-m)/2,y:g[f].y[1]>=g[f].y[0]?l:s},direction:g[f].y[1]>=g[f].y[0]?1:-1,bounds:{x1:m,y1:Math.min(l,s),x2:fa,y2:Math.max(l,s)},color:b})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&& -c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};m.prototype.renderError=function(a){var d= -a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d,b=a.axisY._position?"left"===a.axisY._position||"right"===a.axisY._position?!1:!0:!1;if(!(0>=a.dataSeriesIndexes.length)){var e=null,f=!1,l=this.plotArea,s=0,h,k,n,p,q,g,t,m=a.axisX.dataInfo.minDiff;isFinite(m)||(m=0.3*Math.abs(a.axisX.range));c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(l.x1,l.y1,l.width,l.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(l.x1,l.y1,l.width, -l.height),this._eventManager.ghostCtx.clip());for(var fa=0,u=0;us&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,s));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ss&&(u= -s);if(0=M.length?0:M.length>=u?u:M.length:"string"===typeof M.length?parseInt(M.length)*u/100>u?u:parseInt(M.length)*u/100>u:u;M.thickness="number"===typeof M.thickness?0>M.thickness?0:Math.round(M.thickness):2;var T={color:v[s].stemColor?v[s].stemColor:v[s].color?z.stemColor?z.stemColor:v[s].color:z.stemColor?z.stemColor:e,thickness:v[s].stemThickness?v[s].stemThickness:z.stemThickness,dashType:v[s].stemDashType?v[s].stemDashType: -z.stemDashType};T.thickness="number"===typeof T.thickness?0>T.thickness?0:Math.round(T.thickness):2;v[s].getTime?t=v[s].x.getTime():t=v[s].x;if(!(ta.axisX.dataInfo.viewPortMax)&&!r(v[s].y)&&v[s].y.length&&"number"===typeof v[s].y[0]&&"number"===typeof v[s].y[1]){var ka=a.axisX.convertValueToPixel(t);b?k=ka:h=ka;ka=a.axisY.convertValueToPixel(v[s].y[0]);b?n=ka:q=ka;ka=a.axisY.convertValueToPixel(v[s].y[1]);b?p=ka:g=ka;b?(q=a.axisX.reversed?k+(C?fa:1)*u/2-(C?A-1:0)* -u<<0:k-(C?fa:1)*u/2+(C?A-1:0)*u<<0,g=a.axisX.reversed?q-u<<0:q+u<<0):(n=a.axisX.reversed?h+(C?fa:1)*u/2-(C?A-1:0)*u<<0:h-(C?fa:1)*u/2+(C?A-1:0)*u<<0,p=a.axisX.reversed?n-u<<0:n+u<<0);!b&&q>g&&(ka=q,q=g,g=ka);b&&n>p&&(ka=n,n=p,p=ka);ka=z.dataPointIds[s];this._eventManager.objectMap[ka]={id:ka,objectType:"dataPoint",dataSeriesIndex:x,dataPointIndex:s,x1:Math.min(n,p),y1:Math.min(q,g),x2:Math.max(p,n),y2:Math.max(g,q),isXYSwapped:b,stemProperties:T,whiskerProperties:M};E(c,Math.min(n,p),Math.min(q,g), -Math.max(p,n),Math.max(g,q),e,M,T,b);w&&E(this._eventManager.ghostCtx,n,q,p,g,e,M,T,b);if(v[s].indexLabel||z.indexLabel||v[s].indexLabelFormatter||z.indexLabelFormatter)this._indexLabels.push({chartType:"error",dataPoint:v[s],dataSeries:z,indexKeyword:0,point:{x:b?v[s].y[1]>=v[s].y[0]?n:p:n+(p-n)/2,y:b?q+(g-q)/2:v[s].y[1]>=v[s].y[0]?g:q},direction:v[s].y[1]>=v[s].y[0]?-1:1,bounds:{x1:b?Math.min(n,p):n,y1:b?q:Math.min(q,g),x2:b?Math.max(n,p):p,y2:b?g:Math.max(q,g)},color:e,axisSwapped:b}),this._indexLabels.push({chartType:"error", -dataPoint:v[s],dataSeries:z,indexKeyword:1,point:{x:b?v[s].y[1]>=v[s].y[0]?p:n:n+(p-n)/2,y:b?q+(g-q)/2:v[s].y[1]>=v[s].y[0]?q:g},direction:v[s].y[1]>=v[s].y[0]?1:-1,bounds:{x1:b?Math.min(n,p):n,y1:b?q:Math.min(q,g),x2:b?Math.max(n,p):p,y2:b?g:Math.max(q,g)},color:e,axisSwapped:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas, -0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(l.x1,l.y1,l.width,l.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};m.prototype.renderRangeBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b= -null,e=this.plotArea,f=0,l,s,h,k,f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;l=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0;var n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.range));n=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(n)/Math.log(a.axisX.range): -Math.abs(n)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&f>l&&(f=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ll&&(n=l);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1, -e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax)&&!r(t[f].y)&&t[f].y.length&&"number"===typeof t[f].y[0]&&"number"===typeof t[f].y[1]){l=a.axisY.convertValueToPixel(t[f].y[0]);s=a.axisY.convertValueToPixel(t[f].y[1]); -h=a.axisX.convertValueToPixel(k);h=a.axisX.reversed?h+a.plotType.totalDataSeries*n/2-(a.previousDataSeriesCount+p)*n<<0:h-a.plotType.totalDataSeries*n/2+(a.previousDataSeriesCount+p)*n<<0;var v=a.axisX.reversed?h-n<<0:h+n<<0;l>s&&(b=l,l=s,s=b);b=t[f].color?t[f].color:g._colorSet[f%g._colorSet.length];ea(c,l,a.axisX.reversed?v:h,s,a.axisX.reversed?h:v,b,0,null,m,!1,!1,!1,g.fillOpacity);b=g.dataPointIds[f];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:f, -x1:l,y1:h,x2:s,y2:v};b=P(b);w&&ea(this._eventManager.ghostCtx,l,a.axisX.reversed?v:h,s,a.axisX.reversed?h:v,b,0,null,!1,!1,!1,!1);if(t[f].indexLabel||g.indexLabel||t[f].indexLabelFormatter||g.indexLabelFormatter)this._indexLabels.push({chartType:"rangeBar",dataPoint:t[f],dataSeries:g,indexKeyword:0,point:{x:t[f].y[1]>=t[f].y[0]?l:s,y:h+(v-h)/2},direction:t[f].y[1]>=t[f].y[0]?-1:1,bounds:{x1:Math.min(l,s),y1:h,x2:Math.max(l,s),y2:v},color:b}),this._indexLabels.push({chartType:"rangeBar",dataPoint:t[f], -dataSeries:g,indexKeyword:1,point:{x:t[f].y[1]>=t[f].y[0]?s:l,y:h+(v-h)/2},direction:t[f].y[1]>=t[f].y[0]?1:-1,bounds:{x1:Math.min(l,s),y1:h,x2:Math.max(l,s),y2:v},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};m.prototype.renderRangeArea=function(a){function d(){if(y){for(var a=null,c=h.length-1;0<=c;c--)a=h[c],b.lineTo(a.x,a.y2),e.lineTo(a.x,a.y2);b.closePath();b.globalAlpha=n.fillOpacity;b.fill();b.globalAlpha=1;e.fill();if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,f=[],l=this.plotArea;b.save();w&&e.save();b.beginPath();b.rect(l.x1,l.y1,l.width,l.height);b.clip();w&&(e.beginPath(), -e.rect(l.x1,l.y1,l.width,l.height),e.clip());for(var s=0;sa.axisX.dataInfo.viewPortMax&&(!n.connectNullData||!M)))if(null!==p[g].y&&p[g].y.length&&"number"===typeof p[g].y[0]&&"number"===typeof p[g].y[1]){t=a.axisX.convertValueToPixel(u);r=a.axisY.convertValueToPixel(p[g].y[0]);m=a.axisY.convertValueToPixel(p[g].y[1]);q||M?(n.connectNullData&&!q?(b.setLineDash&&(n.options.nullDataLineDashType|| -C===n.lineDashType&&n.lineDashType!==n.nullDataLineDashType)&&(h[h.length-1].newLineDashArray=B,C=n.nullDataLineDashType,b.setLineDash(A)),b.lineTo(t,r),w&&e.lineTo(t,r),h.push({x:t,y1:r,y2:m})):(b.beginPath(),b.moveTo(t,r),y={x:t,y:r},h=[],h.push({x:t,y1:r,y2:m}),w&&(e.beginPath(),e.moveTo(t,r))),M=q=!1):(b.lineTo(t,r),h.push({x:t,y1:r,y2:m}),w&&e.lineTo(t,r),0==g%250&&d());u=n.dataPointIds[g];this._eventManager.objectMap[u]={id:u,objectType:"dataPoint",dataSeriesIndex:k,dataPointIndex:g,x1:t,y1:r, -y2:m};gp[g].y[1]===a.axisY.reversed?-1: -1,color:x}),this._indexLabels.push({chartType:"rangeArea",dataPoint:p[g],dataSeries:n,indexKeyword:1,point:{x:t,y:m},direction:p[g].y[0]>p[g].y[1]===a.axisY.reversed?1:-1,color:x})}else M||q||d(),M=!0;d();ba.drawMarkers(f)}}w&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&& -this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(l.x1,l.y1,l.width,l.height),this._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderRangeSplineArea=function(a){function d(a,c){var d=v(r,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,f=[],l=this.plotArea;b.save();w&&e.save();b.beginPath();b.rect(l.x1,l.y1,l.width,l.height);b.clip();w&&(e.beginPath(),e.rect(l.x1,l.y1,l.width,l.height),e.clip());for(var s=0;sa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!g)))if(null!==n[p].y&&n[p].y.length&&"number"===typeof n[p].y[0]&&"number"===typeof n[p].y[1]){q=a.axisX.convertValueToPixel(q);g=a.axisY.convertValueToPixel(n[p].y[0]);t=a.axisY.convertValueToPixel(n[p].y[1]);var E=k.dataPointIds[p];this._eventManager.objectMap[E]={id:E,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:p,x1:q,y1:g,y2:t};r[r.length]={x:q,y:g};m[m.length]={x:q,y:t};p=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx, -e=null,f=this.plotArea,l=0,s,h,k,n,p=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),l=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;h=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0;var q=a.axisX.dataInfo.minDiff;isFinite(q)||(q=0.3*Math.abs(a.axisX.range));q=this.options.dataPointWidth? -this.dataPointWidth:0.6*(f.width*(a.axisX.logarithmic?Math.log(q)/Math.log(a.axisX.range):Math.abs(q)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&l>h&&(l=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(q=h);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height); -c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.clip());for(var g=0;gk&&(e=h,h=k,k=e);a.axisY.reversed&&(e=h,h=k,k=e);e=r.dataPointIds[l];this._eventManager.objectMap[e]={id:e,objectType:"dataPoint",dataSeriesIndex:t,dataPointIndex:l,x1:s,y1:h,x2:B,y2:k};var M=m[l].color?m[l].color:0m[l].y===a.axisY.reversed?1:-1,bounds:{x1:s,y1:Math.min(h,k),x2:B,y2:Math.max(h,k)},color:e})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(f.x1,f.y1,f.width, -f.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};var ia=function(a,d,c,b,e,f,l,h,r){if(!(0>c)){"undefined"===typeof h&&(h=1);if(!w){var k=Number((l%(2*Math.PI)).toFixed(8));Number((f%(2*Math.PI)).toFixed(8))===k&&(l-=1E-4)}a.save();a.globalAlpha=h;"pie"===e?(a.beginPath(),a.moveTo(d.x,d.y),a.arc(d.x,d.y,c,f,l,!1),a.fillStyle=b,a.strokeStyle="white",a.lineWidth= -2,a.closePath(),a.fill()):"doughnut"===e&&(a.beginPath(),a.arc(d.x,d.y,c,f,l,!1),0<=r&&a.arc(d.x,d.y,r*c,l,f,!0),a.closePath(),a.fillStyle=b,a.strokeStyle="white",a.lineWidth=2,a.fill());a.globalAlpha=1;a.restore()}};m.prototype.renderPie=function(a){function d(){if(k&&n){for(var a=0,b=0,c=0,d=0,e=0;eMath.PI/2-u&&h.midAngleh.midAngle)c=e;a++}else if(h.midAngle>3*Math.PI/2-u&&h.midAngle<3*Math.PI/2+u){if(0===b||g[d].midAngle>h.midAngle)d=e;b++}h.hemisphere=f>Math.PI/2&&f<=3*Math.PI/2?"left":"right";h.indexLabelTextBlock=new ja(m.plotArea.ctx,{fontSize:h.indexLabelFontSize,fontFamily:h.indexLabelFontFamily,fontColor:h.indexLabelFontColor,fontStyle:h.indexLabelFontStyle,fontWeight:h.indexLabelFontWeight, -textAlign:h.indexLabelTextAlign,backgroundColor:h.indexLabelBackgroundColor,maxWidth:h.indexLabelMaxWidth,maxHeight:h.indexLabelWrap?5*h.indexLabelFontSize:1.5*h.indexLabelFontSize,text:h.indexLabelText,padding:0,textBaseline:"top"});h.indexLabelTextBlock.measureText()}l=f=0;p=!1;for(e=0;eMath.PI/2-u&&h.midAngle -3*Math.PI/2-u&&h.midAngle<3*Math.PI/2+u)&&(l<=b/2&&!p?(h.hemisphere="left",l++):(h.hemisphere="right",p=!0))}}function c(a){var b=m.plotArea.ctx;b.clearRect(q.x1,q.y1,q.width,q.height);b.fillStyle=m.backgroundColor;b.fillRect(q.x1,q.y1,q.width,q.height);for(b=0;bc){var e=0.07*C*Math.cos(g[b].midAngle),f=0.07*C*Math.sin(g[b].midAngle),l=!1;if(n[b].exploded){if(1E-9a.indexLabelTextBlock.y?e-d:c-f}function e(a){for(var c=null,d=1;db(g[c],g[a])||("right"===g[a].hemisphere?g[c].indexLabelTextBlock.y>=g[a].indexLabelTextBlock.y:g[c].indexLabelTextBlock.y<= -g[a].indexLabelTextBlock.y)))break;else c=null;return c}function f(a,c,d){d=(d||0)+1;if(1E3c&&p.indexLabelTextBlock.yh)return 0;var q=0,s=0,s=q=q=0;0>c?p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2>k&&p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2+ch&&(c=p.indexLabelTextBlock.y+p.indexLabelTextBlock.height/2+c-h);c=p.indexLabelTextBlock.y+c;k=0;k="right"===p.hemisphere?x.x+Math.sqrt(Math.pow(w,2)-Math.pow(c-x.y,2)):x.x-Math.sqrt(Math.pow(w,2)-Math.pow(c-x.y,2));s=x.x+C*Math.cos(p.midAngle);q=x.y+C*Math.sin(p.midAngle);q=Math.sqrt(Math.pow(k-s,2)+Math.pow(c-q,2));s=Math.acos(C/w);q=Math.acos((w*w+C*C-q*q)/(2*C*w));c=qb(g[k],g[a])||("right"===g[a].hemisphere?g[k].indexLabelTextBlock.y<=g[a].indexLabelTextBlock.y:g[k].indexLabelTextBlock.y>=g[a].indexLabelTextBlock.y)))break;else k=null;s=k;q=e(a);h=k=0;0>c?(h="right"===p.hemisphere?s:q,l=c,null!==h&&(s=-c,c=p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2-(g[h].indexLabelTextBlock.y+g[h].indexLabelTextBlock.height/ -2),c-s+k.toFixed(y)&&(l=c>t?-(c-t):-(s-(h-k)))))):0t?c-t:s-(k-h)))));l&&(d=p.indexLabelTextBlock.y+l,c=0,c="right"===p.hemisphere?x.x+Math.sqrt(Math.pow(w,2)-Math.pow(d-x.y,2)):x.x-Math.sqrt(Math.pow(w,2)-Math.pow(d-x.y,2)),p.midAngle> -Math.PI/2-u&&p.midAnglek.indexLabelTextBlock.x?c=k.indexLabelTextBlock.x-15:"right"===p.hemisphere&&("left"===a.hemisphere&&c3*Math.PI/2-u&&p.midAngle<3*Math.PI/2+u&&(k=(a-1+g.length)%g.length,k=g[k],a=g[(a+1+g.length)%g.length],"right"===p.hemisphere&&"left"===k.hemisphere&&ca.indexLabelTextBlock.x)&&(c=a.indexLabelTextBlock.x-15)),p.indexLabelTextBlock.y=d,p.indexLabelTextBlock.x=c,p.indexLabelAngle=Math.atan2(p.indexLabelTextBlock.y-x.y,p.indexLabelTextBlock.x-x.x))}return l}function l(){var a=m.plotArea.ctx;a.fillStyle="grey";a.strokeStyle="grey";a.font="16px Arial";a.textBaseline="middle";for(var c=a=0,d=0,l=!0,c=0;10>c&&(1>c||0z){for(var A=r=0,G=0;Gr?h.indexLabelText="":h.indexLabelTextBlock.maxWidth=0.85*r,0.3*h.indexLabelTextBlock.maxWidthd&&(d=u)),u=u=0,0d&&(d=u)));var L=function(a,b,c){for(var d=[],e=0;d.push(g[b]),b!==c;b=(b+1+n.length)%n.length);d.sort(function(a,b){return a.y-b.y});for(b=0;bz){q=s.indexLabelTextBlock.x;var r=s.indexLabelTextBlock.y-s.indexLabelTextBlock.height/2,m=s.indexLabelTextBlock.y+s.indexLabelTextBlock.height/2,t=h.indexLabelTextBlock.y-h.indexLabelTextBlock.height/2,u=h.indexLabelTextBlock.x+h.indexLabelTextBlock.width,D=h.indexLabelTextBlock.y+h.indexLabelTextBlock.height/2;q=s.indexLabelTextBlock.x+s.indexLabelTextBlock.widthu+p||r>D+p||ma&&(a=k),l!==a&&(c=l,d+=-z),0===k%Math.max(n.length/ -10,3)&&(f=!0)):f=!0;f&&(0=a.dataSeriesIndexes.length)){var k=this.data[a.dataSeriesIndexes[0]],n=k.dataPoints,p=10,q=this.plotArea,g=k.dataPointEOs,t=2,w,v=1.3,u=20/180*Math.PI,y=6,x={x:(q.x2+q.x1)/2,y:(q.y2+q.y1)/2},z=0;a=!1;for(var A=0;Ab&&(e=b,f=!0);var l=n[c].color?n[c].color:k._colorSet[c%k._colorSet.length];e>d&&ia(m.plotArea.ctx,g[c].center,g[c].radius,l,k.type,d,e,k.fillOpacity,g[c].percentInnerRadius);if(f)break}h();m.dispatchEvent("dataAnimationIterationEnd",{chart:m});1<=a&&m.dispatchEvent("dataAnimationEnd",{chart:m})},function(){m.disableToolTip=!1;m._animator.animate(0, -m.animatedRender?500:0,function(a){c(a);h();m.dispatchEvent("dataAnimationIterationEnd",{chart:m})});m.dispatchEvent("dataAnimationEnd",{chart:m})})}}};var qa=function(a,d,c,b){"undefined"===typeof c&&(c=1);0>=Math.round(d.y4-d.y1)||(a.save(),a.globalAlpha=c,a.beginPath(),a.moveTo(Math.round(d.x1),Math.round(d.y1)),a.lineTo(Math.round(d.x2),Math.round(d.y2)),a.lineTo(Math.round(d.x3),Math.round(d.y3)),a.lineTo(Math.round(d.x4),Math.round(d.y4)),"undefined"!==d.x5&&(a.lineTo(Math.round(d.x5),Math.round(d.y5)), -a.lineTo(Math.round(d.x6),Math.round(d.y6))),a.closePath(),a.fillStyle=b?b:d.color,a.fill(),a.globalAplha=1,a.restore())};m.prototype.renderFunnel=function(a){function d(){for(var a=0,b=[],c=0;cp?(p=c,l=(b+p)*(e-h)/2,a-=l,n=e-h,h+=e-h,n+=0==p?0:a/p,h+=a/p,l=!0):(n=(Math.abs($)*b-Math.sqrt(p))/2,p=b-2*n/Math.abs($),h+=n,h>e&&(h-=n,p=c,l=(b+p)*(e-h)/2,a-=l,n=e-h,h+=e-h,n+=a/p,h+=a/p,l=!0),b= -p)),d.push(n);return d}function b(){if(u&&y){for(var a,b,c,d,e,f,k,l,h,n,p,q,s,m,t,D=[],x=[],v={percent:null,total:null},z=null,C=0;CD[C]&&(D[C]=C!==ca?u.reversed?Q[C].x3-Q[C].x4:Q[C].x2-Q[C].x1:Q[C].x2-Q[C].x1,D[C]/=2));s=b.indexLabelMaxWidth?b.indexLabelMaxWidth:u.options.indexLabelMaxWidth?u.indexLabelMaxWidth:D[C];if(s>D[C]||0>s)s=D[C];x[C]="inside"===u.indexLabelPlacement?Q[C].height:!1;v=A.getPercentAndTotal(u,b);if(u.indexLabelFormatter||b.indexLabelFormatter)z={chart:A.options,dataSeries:u,dataPoint:b,total:v.total,percent:v.percent};b=b.indexLabelFormatter?b.indexLabelFormatter(z):b.indexLabel? -A.replaceKeywordsWithValue(b.indexLabel,b,u,C):u.indexLabelFormatter?u.indexLabelFormatter(z):u.indexLabel?A.replaceKeywordsWithValue(u.indexLabel,b,u,C):b.label?b.label:"";0>=n&&(n=0);1E3>s&&1E3-sk?k:u.indexLabelMaxWidth:k,l=H.length-1;0<=l;l--){g=y[H[l].id];c=H[l];d=c.textBlock;b=(a=q(l)b.y&&(e=!0);c=g.indexLabelMaxWidth||k;if(c>k||0>c)c=k;f.push(c)}if(e)for(l=H.length-1;0<=l;l--)a=Q[l],H[l].textBlock.maxWidth= -f[f.length-(l+1)],H[l].textBlock.measureText(),H[l].textBlock.x=K-k,c=H[l].textBlock.heightoa+z&&(H[l].textBlock.y=oa+z-H[l].height),H[l].textBlock.yra+z&&(H[l].textBlock.y=ra+z-H[l].height))}function f(){var a,b,c,d;if("inside"!==u.indexLabelPlacement)for(var e=0;eBa?g(c).x2+1:(a.x2+a.x3)/2+1:(a.x2+a.x3)/2+1:"undefined"!==typeof a.x5?coa+z&&(H[e].textBlock.y=oa+z-H[e].height),H[e].textBlock.yra+z&&(H[e].textBlock.y=ra+z-H[e].height)));else for(e=0;e=c?(b=e!=ca?(a.x4+a.x3)/2-d/2:(a.x5+a.x4)/2-d/2,c=e!=ca?(a.y1+a.y3)/2-c/2:(a.y1+a.y4)/2-c/2,H[e].textBlock.x=b, -H[e].textBlock.y=c):H[e].isDirty=!0)}function l(){function a(b,c){var d;if(0>b||b>=H.length)return 0;var e,f=H[b].textBlock;if(0>c){c*=-1;e=p(b);d=h(e,b);if(d>=c)return f.y-=c,c;if(0==b)return 0=c)return f.y+=c,c;if(b==Q.length-1)return 0e)&&(k=q(s),!(k>=H.length-1)&&H[s].textBlock.y+H[s].height+da>H[k].textBlock.y&&(H[s].textBlock.y=H[s].textBlock.y+H[s].height-e>e-H[s].textBlock.y?e+1:e-H[s].height-1))}for(k=Q.length-1;0e&&(e=0,H[e].isDirty))break;if(H[k].textBlock.y=f){f=0;l+=H[f].height;break}e=p(f); -if(0>e){f=0;l+=H[f].height;break}}if(f!=k){g=H[f].textBlock.y;a-=g;a=l-a;g=c(a,d,f);break}}}return g}function c(a,b,d){var e=[],f=0,g=0;for(a=Math.abs(a);d<=b;d++)e.push(Q[d]);e.sort(function(a,b){return a.height-b.height});for(d=0;d+k.y.toFixed(6))&&(d=g.y+d+da-k.y,e=a(m,-d),ea?u.reversed?ra-z:oa-z:H[a].textBlock.y+H[a].height+da)}function m(a,b,c){var d,e,g,l=[],h=z,p=[];-1!==b&&(0<=Y.indexOf(b)?(e=Y.indexOf(b),Y.splice(e,1)):(Y.push(b),Y=Y.sort(function(a,b){return a-b})));if(0===Y.length)l= -ia;else{e=z*(1!=Y.length||0!=Y[0]&&Y[0]!=Q.length-1?2:1)/k();for(var s=0;sp&&(p*=-1),c.y1+=b-p[d],c.y2+=b-p[d],c.y3+=b-p[d],c.y4+=b-p[d],c.y5&&(c.y5+=b-p[d],c.y6+=b-p[d]),p[d]=b}};a._animator.animate(0,c,function(c){var d=a.plotArea.ctx||a.ctx;ha=!0;d.clearRect(x.x1,x.y1,x.x2-x.x1,x.y2-x.y1);d.fillStyle=a.backgroundColor;d.fillRect(x.x1,x.y1,x.width,x.height);q.changeSection(c,b);var e={};e.dataSeries=u;e.dataPoint=u.reversed?u.dataPoints[y.length-1-b]:u.dataPoints[b];e.index=u.reversed?y.length-1-b:b;a.toolTip.highlightObjects([e]); -for(e=0;ea){b=Q[c];break}return b?(a=b.y6?a>b.y6?b.x3+(b.x4-b.x3)/(b.y4-b.y3)*(a-b.y3):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2), -{x1:a,x2:a}):-1}function t(a){for(var b=0;b=a.dataSeriesIndexes.length)){for(var u=this.data[a.dataSeriesIndexes[0]],y=u.dataPoints,x=this.plotArea,z=0.025*x.width,B=0.01*x.width,C=0,E=x.height-2*z,I=Math.min(x.width-2*B,2.8*x.height),M=!1,T=0;TE?P=E:0>=P&&(P=0),F>a?F=a-0.5:0>=F&&(F=0)):"pyramid"===u.type&&(F=P=0,u.reversed=u.reversed?!1:!0);var B=T+a/2,Z=T,X=T+a,oa=u.reversed?R:O,L=B-F/2,ba=B+F/2,Ba=u.reversed?O+P:R- -P,ra=u.reversed?O:R;a=[];var B=[],Q=[],I=[],V=O,ca,$=(Ba-oa)/(L-Z),ea=-$,T="area"===(u.valueRepresents?u.valueRepresents:"height")?c():d();if(-1!==T){if(u.reversed)for(I.push(V),F=T.length-1;0a&&(C=a));for(F=0;F
Please right click on the image and save it to your device
"), -d.document.close()}}};m.prototype.print=function(){var a=this.exportChart({toDataURL:!0}),d=document.createElement("iframe");d.setAttribute("class","canvasjs-chart-print-frame");W(d,{position:"absolute",width:"100%",border:"0px",margin:"0px 0px 0px 0px",padding:"0px 0px 0px 0px"});d.style.height=this.height+"px";this._canvasJSContainer.appendChild(d);var c=this,b=d.contentWindow||d.contentDocument.document||d.contentDocument;b.document.open();b.document.write('\n');b.document.body&&b.document.body.style&&(b.document.body.style.margin="0px 0px 0px 0px",b.document.body.style.padding="0px 0px 0px 0px");b.document.close();setTimeout(function(){b.focus();b.print();setTimeout(function(){c._canvasJSContainer.removeChild(d)},1E3)},500)};m.prototype.getPercentAndTotal=function(a,d){var c=null,b=null,e=c=null;if(0<=a.type.indexOf("stacked"))b=0,c=d.x.getTime?d.x.getTime():d.x,c in a.plotUnit.yTotals&&(b=a.plotUnit.yTotals[c],c=a.plotUnit.yAbsTotals[c], -e=isNaN(d.y)?0:0===c?0:100*(d.y/c));else if("pie"===a.type||"doughnut"===a.type||"funnel"===a.type||"pyramid"===a.type){for(c=b=0;c=l||"undefined"===typeof l||0>=v||"undefined"===typeof v)){if("horizontal"=== -this.orientation){q.textBlock=new ja(this.ctx,{x:0,y:0,maxWidth:v,maxHeight:this.itemWrap?l:this.lineHeight,angle:0,text:q.text,horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"});q.textBlock.measureText();null!==this.itemWidth&&(q.textBlock.width=this.itemWidth-(w+h+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0)));if(!p||p.width+ -Math.round(q.textBlock.width+w+h+(0===p.width?0:this.horizontalSpacing)+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0))>f)p={items:[],width:0},k.push(p),this.height+=g,g=0;g=Math.max(g,q.textBlock.height)}else q.textBlock=new ja(this.ctx,{x:0,y:0,maxWidth:x,maxHeight:!0===this.itemWrap?l:1.5*this.fontSize,angle:0,text:q.text,horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor, -fontStyle:this.fontStyle,textBaseline:"middle"}),q.textBlock.measureText(),null!==this.itemWidth&&(q.textBlock.width=this.itemWidth-(w+h+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0))),this.height>0,0),this.dataPoints.length):0):(n=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,n=0>0,0),this.dataPoints.length):0));for(;;){f=0a?b.x/a:a/b.x:Math.abs(b.x-a);pn-e&&n+e>=this.dataPoints.length)break;-1===l?(e++,l=1):l=-1}return d||(c.dataPoint.x.getTime?c.dataPoint.x.getTime():c.dataPoint.x)!==(a.getTime?a.getTime():a)?d&&null!==c.dataPoint?c:null:c};S.prototype.getDataPointAtXY=function(a,d,c){if(!this.dataPoints||0===this.dataPoints.length||athis.chart.plotArea.x2||dthis.chart.plotArea.y2)return null;c=c||!1;var b=[],e=0,f=0,l=1,h=!1,r=Infinity,k=0,n= -0,p=0;if("none"!==this.chart.plotInfo.axisPlacement)if(p=(this.chart.axisX[0]?this.chart.axisX[0]:this.chart.axisX2[0]).getXValueAt({x:a,y:d}),this.axisX.logarithmic)var q=Math.log(this.dataPoints[this.dataPoints.length-1].x/this.dataPoints[0].x),p=1>0,0),this.dataPoints.length):0;else q=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,p=0> -0,0),this.dataPoints.length):0;for(;;){f=0=q.x1&&(a<=q.x2&&d>=q.y1&&d<=q.y2)&&(b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(q.x1- -a),Math.abs(q.x2-a),Math.abs(q.y1-d),Math.abs(q.y2-d))}),h=!0);break;case "line":case "stepLine":case "spline":case "area":case "stepArea":case "stackedArea":case "stackedArea100":case "splineArea":case "scatter":var w=ma("markerSize",g,this)||4,v=c?20:w,m=Math.sqrt(Math.pow(q.x1-a,2)+Math.pow(q.y1-d,2));m<=v&&b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:m});q=Math.abs(q.x1-a);q<=r?r=q:0v&&(m=Math.atan2(d-w.y,a-w.x),0>m&&(m+=2*Math.PI),m=Number(((180*(m/Math.PI)%360+360)%360).toFixed(12)),w=Number(((180*(q.startAngle/Math.PI)%360+360)%360).toFixed(12)),v=Number(((180*(q.endAngle/Math.PI)%360+360)%360).toFixed(12)),0===v&&1=v&&0!==g.y&&(v+=360,mw&&mm.y1&&dm.y6?(f=m.x6+(m.x5-m.x6)/(m.y5-m.y6)*(d-m.y6),m=m.x3+(m.x4-m.x3)/(m.y4-m.y3)*(d-m.y3)):(f=m.x1+(m.x6-m.x1)/(m.y6-m.y1)*(d-m.y1),m=m.x2+(m.x3-m.x2)/(m.y3-m.y2)*(d-m.y2)):(f=m.x1+(m.x4-m.x1)/(m.y4-m.y1)*(d-m.y1),m=m.x2+(m.x3-m.x2)/(m.y3-m.y2)*(d-m.y2)),a>f&&a=q.x1-q.borderThickness/2&&a<=q.x2+q.borderThickness/2&&d>=q.y4-q.borderThickness/2&&d<=q.y1+q.borderThickness/ -2||Math.abs(q.x2-a+q.x1-a)=q.y1&&d<=q.y4)b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y2-d),Math.abs(q.y3-d))}),h=!0;break;case "candlestick":if(a>=q.x1-q.borderThickness/2&&a<=q.x2+q.borderThickness/2&&d>=q.y2-q.borderThickness/2&&d<=q.y3+q.borderThickness/2||Math.abs(q.x2-a+q.x1-a)=q.y1&&d<=q.y4)b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(q.x1-a), -Math.abs(q.x2-a),Math.abs(q.y2-d),Math.abs(q.y3-d))}),h=!0;break;case "ohlc":if(Math.abs(q.x2-a+q.x1-a)=q.y2&&d<=q.y3||a>=q.x1&&a<=(q.x2+q.x1)/2&&d>=q.y1-q.borderThickness/2&&d<=q.y1+q.borderThickness/2||a>=(q.x1+q.x2)/2&&a<=q.x2&&d>=q.y4-q.borderThickness/2&&d<=q.y4+q.borderThickness/2)b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y2-d),Math.abs(q.y3-d))}),h=!0}if(h||1E3p-e&&p+e>= -this.dataPoints.length)break;-1===l?(e++,l=1):l=-1}a=null;for(d=0;dp[g].endValue;g++);a=g=p[g].startValue&&c<=p[g].endValue;n=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:n,label:this.labels[n]?this.labels[n]:null}):"axisX"===this.type&&this.labels[n]?this.labels[n]:da(n,this.valueFormatString,this.chart._cultureInfo),a=new ja(this.ctx,{x:0,y:0,maxWidth:f,maxHeight:l,angle:this.labelAngle,text:this.prefix+a+this.suffix,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,cornerRadius:this.labelCornerRadius,textAlign:this.labelTextAlign, -fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle",borderThickness:0}),this._labels.push({position:n,textBlock:a,effectiveHeight:null}))}g=q;for(c=this.intervalStartPosition;c<=e;c=parseFloat(1E-12>this.interval?this.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase,this.interval):c+this.interval:(this.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase, -this.interval):c+this.interval).toFixed(12))){for(;gp[g].endValue;g++);a=g=p[g].startValue&&c<=p[g].endValue;n=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:n,label:this.labels[n]?this.labels[n]:null}):"axisX"===this.type&&this.labels[n]?this.labels[n]:da(n,this.valueFormatString,this.chart._cultureInfo),a=new ja(this.ctx,{x:0,y:0,maxWidth:f,maxHeight:l,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign, -backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle"}),this._labels.push({position:n,textBlock:a,effectiveHeight:null}))}}else for(this.intervalStartPosition=this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType, -this.interval),e=Wa(new Date(this.viewportMaximum),this.interval,this.intervalType),g=q,c=this.intervalStartPosition;cp[g].endValue;g++);n=a;a=g=p[g].startValue&&a<=p[g].endValue;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:new Date(n),label:this.labels[n]?this.labels[n]:null}):"axisX"===this.type&&this.labels[n]?this.labels[n]:Aa(n,this.valueFormatString,this.chart._cultureInfo), -a=new ja(this.ctx,{x:0,y:0,maxWidth:f,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,maxHeight:l,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle"}),this._labels.push({position:n,textBlock:a, -effectiveHeight:null,breaksLabelType:void 0}))}if("bottom"===this._position||"top"===this._position)h=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.width*Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.width/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))* -I[this.intervalType+"Duration"]*this.interval,f="undefined"===typeof this.options.labelMaxWidth?0.5*this.chart.width>>0:this.options.labelMaxWidth,this.chart.panEnabled||(l="undefined"===typeof this.options.labelWrap||this.labelWrap?0.8*this.chart.height>>0:1.5*this.labelFontSize);else if("left"===this._position||"right"===this._position)h=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.height*Math.log(Math.min(this._labels[this._labels.length-1].position/ -this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.height/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*I[this.intervalType+"Duration"]*this.interval,this.chart.panEnabled||(f="undefined"===typeof this.options.labelMaxWidth?0.3*this.chart.width>>0:this.options.labelMaxWidth),l="undefined"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>> -0:1.5*this.labelFontSize;for(b=0;bthis.labelAngle?this.labelAngle-=180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360)),"bottom"===this._position||"top"===this._position)if(f=0.9*h>>0,q=0,!this.chart.panEnabled&&1<= -this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=f;this.sessionVariables.labelMaxHeight=l;this.sessionVariables.labelAngle=this.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;cq&&(v=c,q=n.width)}c=0;for(c=this.intervalStartPosition>0>2*f&&(this.sessionVariables.labelAngle=-25)):(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>f?-25:this.sessionVariables.labelAngle):r(this.options.labelMaxWidth)?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxHeight= -l,this.sessionVariables.labelMaxWidth=f,d&&t.width+d.width>>0>2*f&&(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=n)):(this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>f?-25:this.sessionVariables.labelAngle,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight=l,this.sessionVariables.labelWrap=this.labelWrap);else{if(r(this.options.labelWrap))if(!r(this.options.labelMaxWidth))this.options.labelMaxWidth>0,g=this.labelFontSize,qp&&(p=b-2*f,b>=2*f&&b<2.2*f?(this.sessionVariables.labelMaxWidth=f,r(this.options.labelFontSize)&&12=2.2*f&&b<2.8*f?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=n,this.sessionVariables.labelFontSize=g):b>=2.8*f&&b<3.2*f?(this.sessionVariables.labelMaxWidth=Math.max(f,q),this.sessionVariables.labelWrap=!0,r(this.options.labelFontSize)&&12=3.2*f&&b<3.6*f?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=n,this.sessionVariables.labelFontSize=this.labelFontSize):b>3.6*f&&b<5*f?(r(this.options.labelFontSize)&&125*f&&(this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=f,this.sessionVariables.labelFontSize=g,this.sessionVariables.labelMaxHeight=l,this.sessionVariables.labelAngle=this.labelAngle));else if(v===c&&(0===v&&q+this._labels[v+1].textBlock.measureText().width-2*f>p||v===this._labels.length-1&&q+this._labels[v-1].textBlock.measureText().width-2*f>p||0p&& -q+this._labels[v-1].textBlock.measureText().width-2*f>p))p=0===v?q+this._labels[v+1].textBlock.measureText().width-2*f:q+this._labels[v-1].textBlock.measureText().width-2*f,this.sessionVariables.labelFontSize=r(this.options.labelFontSize)?g:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=n;else if(0===p)for(this.sessionVariables.labelFontSize=r(this.options.labelFontSize)?g:this.options.labelFontSize,this.sessionVariables.labelWrap= -!0,b=0;b>0>2*f&&(this.sessionVariables.labelAngle=-25))}else(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxHeight=0===this.labelAngle?l:Math.min((b-f*Math.cos(Math.PI/ -180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)),b),n=0!=this.labelAngle?(k-(m+a.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)):f,this.sessionVariables.labelMaxHeight=this.labelWrap?(k-n*Math.sin(Math.PI/180*Math.abs(this.labelAngle)))/Math.cos(Math.PI/180*Math.abs(this.labelAngle)):1.5*this.labelFontSize,r(this.options.labelWrap))?r(this.options.labelWrap)&&(this.labelWrap&&!r(this.options.labelMaxWidth)? -(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:n,this.sessionVariables.labelMaxHeight=l):(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxWidth=n,this.sessionVariables.labelMaxHeight=b<0.9*h?0.9*h:b,this.sessionVariables.labelWrap=this.labelWrap)):(this.options.labelWrap?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth? -this.options.labelMaxWidth:n):(r(this.options.labelMaxWidth),this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:n,this.sessionVariables.labelWrap=this.labelWrap),this.sessionVariables.labelMaxHeight=l)}for(b=0;b>0:this.options.labelMaxWidth,l="undefined"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=f;this.sessionVariables.labelMaxHeight=l;this.sessionVariables.labelAngle=r(this.sessionVariables.labelAngle)? -0:this.sessionVariables.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;c>0,h-2*l>q&&(q=h-2*l,h>=2*l&&h<2.4*l?(r(this.options.labelFontSize)&&12=2.4*l&&h<2.8*l?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelFontSize=this.labelFontSize,this.sessionVariables.labelWrap=!0):h>=2.8*l&&h<3.2*l?(this.sessionVariables.labelMaxHeight=l,this.sessionVariables.labelWrap=!0,r(this.options.labelFontSize)&&12=3.2*l&&h<3.6*l?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelFontSize=this.labelFontSize):h>3.6*l&&h<10*l?(r(this.options.labelFontSize)&&1210*l&&h<50*l&&(r(this.options.labelFontSize)&&12>0:1.5*this.labelFontSize; -if("left"===this._position||"right"===this._position)r(f.options.labelWrap)&&!r(this.sessionVariables.stripLineLabelMaxHeight)?A=this.sessionVariables.stripLineLabelMaxHeight:this.sessionVariables.stripLineLabelMaxHeight=A=f.labelWrap?0.8*this.chart.width>>0:1.5*this.labelFontSize;r(f.labelBackgroundColor)&&(f.labelBackgroundColor="#EEEEEE")}else l="bottom"===this._position||"top"===this._position?0.9*this.chart.width>>0:0.9*this.chart.height>>0,A=r(f.options.labelWrap)||f.labelWrap?"bottom"===this._position|| -"top"===this._position?0.8*this.chart.width>>0:0.8*this.chart.height>>0:1.5*this.labelFontSize,r(f.labelBackgroundColor)&&(r(f.startValue)&&0!==f.startValue?f.labelBackgroundColor=w?"transparent":null:f.labelBackgroundColor="#EEEEEE");a=new ja(this.ctx,{x:0,y:0,backgroundColor:f.labelBackgroundColor,borderColor:f.labelBorderColor,borderThickness:f.labelBorderThickness,cornerRadius:f.labelCornerRadius,maxWidth:f.options.labelMaxWidth?f.options.labelMaxWidth:l,maxHeight:A,angle:this.labelAngle,text:f.labelFormatter? -f.labelFormatter({chart:this.chart,axis:this,stripLine:f}):f.label,textAlign:this.labelTextAlign,fontSize:"outside"===f.labelPlacement?f.options.labelFontSize?f.labelFontSize:this.labelFontSize:f.labelFontSize,fontFamily:"outside"===f.labelPlacement?f.options.labelFontFamily?f.labelFontFamily:this.labelFontFamily:f.labelFontFamily,fontWeight:"outside"===f.labelPlacement?f.options.labelFontWeight?f.labelFontWeight:this.labelFontWeight:f.labelFontWeight,fontColor:f.labelFontColor||f.color,fontStyle:"outside"=== -f.labelPlacement?f.options.labelFontStyle?f.labelFontStyle:this.fontWeight:f.labelFontStyle,textBaseline:"middle"});this._stripLineLabels.push({position:f.value,textBlock:a,effectiveHeight:null,stripLine:f})}};A.prototype.createLabelsAndCalculateWidth=function(){var a=0,d=0;this._labels=[];this._stripLineLabels=[];var c=this.chart.isNavigator?0:5;if("left"===this._position||"right"===this._position){this.createLabels();if("inside"!=this.labelPlacement||"inside"===this.labelPlacement&&0=this.viewportMinimum&&this._stripLineLabels[d].stripLine.value<=this.viewportMaximum)&& -(b=this._stripLineLabels[d].textBlock,e=b.measureText(),f=0===this.labelAngle?e.width:e.width*Math.cos(Math.PI/180*Math.abs(this.labelAngle))+(e.height-b.fontSize/2)*Math.sin(Math.PI/180*Math.abs(this.labelAngle)),a=this.viewportMinimum&&this._stripLineLabels[c].stripLine.value<=this.viewportMaximum)&&(d=this._stripLineLabels[c].textBlock,e=d.measureText(),f=0===this.labelAngle?e.height:e.width*Math.sin(Math.PI/180*Math.abs(this.labelAngle))+(e.height-d.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)),aq[g].viewportMaximum);w++)t[w].endValue=q[g].viewPortMinimum&&(q[g].scaleBreaks.lastBreakIndex=w));for(var v=w=0,u=0,y=0,x=0,z=0,A=0,C,B,E=h=0,I,J,K,t=I=J=K=!1,g=0;g -w;){var F=0,S=0,U=0,W=0,Y=e=0,L=0,Z=0,V=0,X=0,Q=0,$=0;if(c&&0n.width-p?n.width-p:f.x2-$-Z);if(a&&0n.width-p?n.width-p:f.x2-$-Z),a[g]._labels&&1m&&(h+=0a[g].labelAngle?C-vm&&(h=B+u/2-m-$),C-va[g].labelAngle&&0n.width-p?n.width-p:f.x2-$-Z),d[g].lineCoordinates.width=Math.abs(m-l),d[g]._labels&&1w;){V=W=S=U=Z=L=Y=e=R=P=F=X=0;if(a&&0n.width-10?n.width-10:f.x2-V-Y),c[g].labelAutoFit&&!r(y)&&(0c[g].labelAngle?Math.max(l,y):0===c[g].labelAngle?Math.max(l,y/2):l),0b[g].chart.width-10?b[g].chart.width-10:f.x2-V-Y),b[g]&&b[g].labelAutoFit&&!r(z)&&(0c[g].chart.height?c[g].chart.height:f.y2),c[g].lineCoordinates.y1=h-(p[g]+c[g].margin+X),c[g].lineCoordinates.y2=h-(p[g]+c[g].margin+X),"inside"===c[g].labelPlacement&&0n.height-Math.max(L,10)?n.height-Math.max(L,10):f.y2-U):f.y2>n.height-Math.max(L,10)?n.height-Math.max(L,10):f.y2;if(c&&0c[L].labelAngle?Math.max(m,y):0===c[L].labelAngle?Math.max(m,y/2):m,l= -0>c[L].labelAngle||0===c[L].labelAngle?m-W:l);if(b&&0n.height-Math.max(L,10)?n.height-Math.max(L,10):f.y2-U):f.y2>n.height-Math.max(L,10)?n.height-Math.max(L,10):f.y2;if(c&&0c[L].labelAngle?Math.max(m,y):0===c[L].labelAngle?Math.max(m,y/2):m,l=0>c[L].labelAngle||0===c[L].labelAngle?m-V:l);if(b&&0d[f].spacing?0:Math.abs(d[f].spacing/c),this.logarithmic&&(d[f].size=Math.pow(this.logarithmBase,d[f].size))};A.prototype.calculateBreaksInPixels=function(){if(!(this.scaleBreaks&&0>=this.scaleBreaks._appliedBreaks.length)){var a= -this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];a.length&&(this.scaleBreaks.firstBreakIndex=this.scaleBreaks.lastBreakIndex=null);for(var d=0;dthis.conversionParameters.maximum);d++)a[d].endValue=this.conversionParameters.minimum&&(a[d].startPixel=this.convertValueToPixel(a[d].startValue),this.scaleBreaks.lastBreakIndex=d),a[d].endValue<=this.conversionParameters.maximum&& -(a[d].endPixel=this.convertValueToPixel(a[d].endValue)))}};A.prototype.renderLabelsTicksAndTitle=function(){var a=this,d=!1,c=0,b=0,e=1,f=0;0!==this.labelAngle&&360!==this.labelAngle&&(e=1.2);if("undefined"===typeof this.options.interval){if("bottom"===this._position||"top"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],e=0!==this.labelAngle&&360!==this.labelAngle?1:1.2,l,h=this.viewportMaximum,m=this.lineCoordinates.width/Math.log(this.range),k=this._labels.length- -1;0<=k;k--){p=this._labels[k];if(p.positionthis.viewportMaximum||!(k===this._labels.length-1||lthis.lineCoordinates.width*e&&this.labelAutoFit&&(d=!0)}if("left"===this._position||"right"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],n,h=this.viewportMaximum,m=this.lineCoordinates.height/Math.log(this.range),k=this._labels.length-1;0<=k;k--){p=this._labels[k];if(p.positionthis.viewportMaximum||!(k===this._labels.length-1||nthis.lineCoordinates.height*e&&this.labelAutoFit&&(d=!0)}}this.logarithmic&&(!this.equidistantInterval&& -this.labelAutoFit)&&this._labels.sort(function(a,b){return a.position-b.position});var k=0,p,q;if("bottom"===this._position){for(k=0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<< -0),this.ctx.lineTo(b,q.y+this.tickLength<<0),this.ctx.stroke()),d&&0!==f++%2&&this.labelAutoFit||(0===p.textBlock.angle?(q.x-=p.textBlock.width/2,q.y="inside"===this.labelPlacement?q.y-(("inside"===this.tickPlacement?this.tickLength:0)+p.textBlock.height-p.textBlock.fontSize/2):q.y+("inside"===this.tickPlacement?0:this.tickLength)+p.textBlock.fontSize/2+5):(q.x="inside"===this.labelPlacement?0>this.labelAngle?q.x:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):q.x-(0>this.labelAngle?p.textBlock.width* -Math.cos(Math.PI/180*this.labelAngle):0),q.y="inside"===this.labelPlacement?0>this.labelAngle?q.y-("inside"===this.tickPlacement?this.tickLength:0)-5:q.y-("inside"===this.tickPlacement?this.tickLength:0)-Math.abs(p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)+5):q.y+("inside"===this.tickPlacement?0:this.tickLength)+Math.abs(0>this.labelAngle?p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5)),p.textBlock.x=q.x,p.textBlock.y=q.y));"inside"===this.tickPlacement&&this.chart.addEventListener("dataAnimationEnd", -function(){for(k=0;ka.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b,q.y-a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+ -this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y2-this._titleTextBlock.height-3,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("top"===this._position){for(k=0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle= -this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<<0),this.ctx.lineTo(b,q.y-this.tickLength<<0),this.ctx.stroke()),d&&0!==f++%2&&this.labelAutoFit||(0===p.textBlock.angle?(q.x-=p.textBlock.width/2,q.y="inside"===this.labelPlacement?q.y+this.labelFontSize/2+("inside"===this.tickPlacement?this.tickLength:0)+5:q.y-(("inside"===this.tickPlacement?0:this.tickLength)+p.textBlock.height-p.textBlock.fontSize/2)):(q.x="inside"===this.labelPlacement?0< -this.labelAngle?q.x:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):q.x+(p.textBlock.height-this.labelFontSize)*Math.sin(Math.PI/180*this.labelAngle)-(0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle= -a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b,q.y+a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y1+1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("left"===this._position){for(k= -0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x-this.tickLength<<0,b),this.ctx.stroke()),d&&0!==f++%2&&this.labelAutoFit||(0===this.labelAngle?(p.textBlock.y= -q.y,p.textBlock.x="inside"===this.labelPlacement?q.x+("inside"===this.tickPlacement?this.tickLength:0)+5:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-("inside"===this.tickPlacement?0:this.tickLength)-5):(p.textBlock.y="inside"===this.labelPlacement?q.y:q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle),p.textBlock.x="inside"===this.labelPlacement?q.x+("inside"===this.tickPlacement?this.tickLength:0)+5:0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth= -a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<0,b);a.ctx.lineTo(q.x+a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x1+1,this._titleTextBlock.y=this.lineCoordinates.height/2+this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("right"=== -this._position){for(k=0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x+this.tickLength<<0,b),this.ctx.stroke()),d&&0!==f++%2&&this.labelAutoFit||(0===this.labelAngle? -(p.textBlock.y=q.y,p.textBlock.x="inside"===this.labelPlacement?q.x-p.textBlock.width-("inside"===this.tickPlacement?this.tickLength:0)-5:q.x+("inside"===this.tickPlacement?0:this.tickLength)+5):(p.textBlock.y="inside"===this.labelPlacement?q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle):0>this.labelAngle?q.y:q.y-(p.textBlock.height-p.textBlock.fontSize/2-5)*Math.cos(Math.PI/180*this.labelAngle),p.textBlock.x="inside"===this.labelPlacement?q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)- -("inside"===this.tickPlacement?this.tickLength:0)-5:0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position), -a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<0,b);a.ctx.lineTo(q.x-a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x2-1,this._titleTextBlock.y=this.lineCoordinates.height/2-this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}f= -0;if("inside"===this.labelPlacement)this.chart.addEventListener("dataAnimationEnd",function(){for(k=0;ka.viewportMaximum||d&&0!==f++%2&&a.labelAutoFit)||(a.ctx.save(),a.ctx.beginPath(),p.textBlock.render(!0),a.ctx.restore())},this);else for(k=0;kthis.viewportMaximum||d&&0!==f++%2&&this.labelAutoFit)||p.textBlock.render(!0)};A.prototype.renderInterlacedColors= -function(){var a=this.chart.plotArea.ctx,d,c,b=this.chart.plotArea,e=0;d=!0;if(("bottom"===this._position||"top"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(Math.min(c.x,d.x),b.y1,Math.abs(c.x-d.x),Math.abs(b.y1-b.y2)),d=!1): -d=!0;else if(("left"===this._position||"right"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(b.x1,Math.min(c.y,d.y),Math.abs(b.x1-b.x2),Math.abs(d.y-c.y)),d=!1):d=!0;a.beginPath()};A.prototype.renderStripLinesOfThicknessType=function(a){if(this.stripLines&& -0this.viewportMaximum||r(k.value)||isNaN(this.range))||"value"===a&&(k.startValue<=this.viewportMinimum&&k.endValue<=this.viewportMinimum||k.startValue>=this.viewportMaximum&&k.endValue>=this.viewportMaximum||r(k.startValue)||r(k.endValue)||isNaN(this.range))||h.push(k))}for(b=0;bthis.viewportMaximum||isNaN(this.range))){a=this.getPixelCoordinatesOnAxis(c.position);if("outside"===c.stripLine.labelPlacement)if(k&&(this.ctx.strokeStyle=k.color,"pixel"===k._thicknessType&&(this.ctx.lineWidth=k.thickness)),"bottom"===this._position){var n=1===this.ctx.lineWidth%2?(a.x<<0)+0.5:a.x<<0;this.ctx.beginPath();this.ctx.moveTo(n,a.y<<0);this.ctx.lineTo(n,a.y+this.tickLength<<0);this.ctx.stroke(); -0===this.labelAngle?(a.x-=c.textBlock.width/2,a.y+=this.tickLength+c.textBlock.fontSize/2+5):(a.x-=0>this.labelAngle?c.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,a.y+=this.tickLength+Math.abs(0>this.labelAngle?c.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5))}else"top"===this._position?(n=1===this.ctx.lineWidth%2?(a.x<<0)+0.5:a.x<<0,this.ctx.beginPath(),this.ctx.moveTo(n,a.y<<0),this.ctx.lineTo(n,a.y-this.tickLength<<0),this.ctx.stroke(),0===this.labelAngle?(a.x-=c.textBlock.width/ -2,a.y-=this.tickLength+c.textBlock.height-c.textBlock.fontSize/2):(a.x+=(c.textBlock.height-this.tickLength-this.labelFontSize/2)*Math.sin(Math.PI/180*this.labelAngle)-(0this.labelAngle?a.y:a.y-(c.textBlock.height-c.textBlock.fontSize/2-5)*Math.cos(Math.PI/180*this.labelAngle),a.x=0this.chart.plotArea.x1?r(k.startValue)?a.x-=c.textBlock.height-c.textBlock.fontSize/2:a.x-=c.textBlock.height/2-c.textBlock.fontSize/2+3:(c.textBlock.angle=90,r(k.startValue)?a.x+=c.textBlock.height-c.textBlock.fontSize/2:a.x+=c.textBlock.height/2-c.textBlock.fontSize/2+3),a.y=-90===c.textBlock.angle? -"near"===c.stripLine.labelAlign?this.chart.plotArea.y2-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y1+c.textBlock.width+3:"near"===c.stripLine.labelAlign?this.chart.plotArea.y2-c.textBlock.width-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y1+3):"top"===this._position?(c.textBlock.maxWidth=this.options.stripLines[b].labelMaxWidth?this.options.stripLines[b].labelMaxWidth: -this.chart.plotArea.height-3,c.textBlock.measureText(),a.x-c.textBlock.height>this.chart.plotArea.x1?r(k.startValue)?a.x-=c.textBlock.height-c.textBlock.fontSize/2:a.x-=c.textBlock.height/2-c.textBlock.fontSize/2+3:(c.textBlock.angle=90,r(k.startValue)?a.x+=c.textBlock.height-c.textBlock.fontSize/2:a.x+=c.textBlock.height/2-c.textBlock.fontSize/2+3),a.y=-90===c.textBlock.angle?"near"===c.stripLine.labelAlign?this.chart.plotArea.y1+c.textBlock.width+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+ -this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y2-3:"near"===c.stripLine.labelAlign?this.chart.plotArea.y1+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y2-c.textBlock.width-3):"left"===this._position?(c.textBlock.maxWidth=this.options.stripLines[b].labelMaxWidth?this.options.stripLines[b].labelMaxWidth:this.chart.plotArea.width-3,c.textBlock.angle=0,c.textBlock.measureText(),a.y-c.textBlock.height>this.chart.plotArea.y1? -r(k.startValue)?a.y-=c.textBlock.height-c.textBlock.fontSize/2:a.y-=c.textBlock.height/2-c.textBlock.fontSize+3:a.y-c.textBlock.heightthis.chart.plotArea.y1?r(k.startValue)?a.y-=c.textBlock.height-c.textBlock.fontSize/2:a.y-=c.textBlock.height/2-c.textBlock.fontSize/2-3:a.y-c.textBlock.heightthis.viewportMaximum||isNaN(this.range))||a[d].render(this.maskCtx);this.maskCtx.restore()}};A.prototype.renderCrosshair=function(a,d){isFinite(this.minimum)&&isFinite(this.maximum)&&(this.crosshair.render(a,d),this.crosshair.dispatchEvent("updated",{chart:this.chart,crosshair:this.options,axis:this,value:this.crosshair.value},this))};A.prototype.showCrosshair=function(a){r(a)||(athis.viewportMaximum)||("top"===this._position||"bottom"===this._position?this.crosshair.render(this.convertValueToPixel(a), -null,a):this.crosshair.render(null,this.convertValueToPixel(a),a))};A.prototype.renderGrid=function(){if(this.gridThickness&&0this.viewportMaximum|| -this._labels[b].breaksLabelType)||(a.beginPath(),d=this.getPixelCoordinatesOnAxis(this._labels[b].position),d=1===a.lineWidth%2?(d.x<<0)+0.5:d.x<<0,a.moveTo(d,c.y1<<0),a.lineTo(d,c.y2<<0),a.stroke());else if("left"===this._position||"right"===this._position)for(var b=0;bthis.viewportMaximum||this._labels[b].breaksLabelType)||(a.beginPath(),d=this.getPixelCoordinatesOnAxis(this._labels[b].position),d= -1===a.lineWidth%2?(d.y<<0)+0.5:d.y<<0,a.moveTo(c.x1<<0,d),a.lineTo(c.x2<<0,d),a.stroke());a.restore()}};A.prototype.renderAxisLine=function(){var a=this.chart.ctx,d=w?this.chart._preRenderCtx:a,c=Math.ceil(this.tickThickness/(this.reversed?-2:2)),b=Math.ceil(this.tickThickness/(this.reversed?2:-2)),e,f;d.save();if("bottom"===this._position||"top"===this._position){if(this.lineThickness){this.reversed?(e=this.lineCoordinates.x2,f=this.lineCoordinates.x1):(e=this.lineCoordinates.x1,f=this.lineCoordinates.x2); -d.lineWidth=this.lineThickness;d.strokeStyle=this.lineColor?this.lineColor:"black";d.setLineDash&&d.setLineDash(J(this.lineDashType,this.lineThickness));var l=1===this.lineThickness%2?(this.lineCoordinates.y1<<0)+0.5:this.lineCoordinates.y1<<0;d.beginPath();if(this.scaleBreaks&&!r(this.scaleBreaks.firstBreakIndex))if(r(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+b;else for(var h=this.scaleBreaks.firstBreakIndex;h<=this.scaleBreaks.lastBreakIndex;h++)d.moveTo(e, -l),d.lineTo(this.scaleBreaks._appliedBreaks[h].startPixel+c,l),e=this.scaleBreaks._appliedBreaks[h].endPixel+b;e&&(d.moveTo(e,l),d.lineTo(f,l));d.stroke()}}else if(("left"===this._position||"right"===this._position)&&this.lineThickness){this.reversed?(e=this.lineCoordinates.y1,f=this.lineCoordinates.y2):(e=this.lineCoordinates.y2,f=this.lineCoordinates.y1);d.lineWidth=this.lineThickness;d.strokeStyle=this.lineColor;d.setLineDash&&d.setLineDash(J(this.lineDashType,this.lineThickness));l=1===this.lineThickness% -2?(this.lineCoordinates.x1<<0)+0.5:this.lineCoordinates.x1<<0;d.beginPath();if(this.scaleBreaks&&!r(this.scaleBreaks.firstBreakIndex))if(r(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+c;else for(h=this.scaleBreaks.firstBreakIndex;h<=this.scaleBreaks.lastBreakIndex;h++)d.moveTo(l,e),d.lineTo(l,this.scaleBreaks._appliedBreaks[h].startPixel+b),e=this.scaleBreaks._appliedBreaks[h].endPixel+c;e&&(d.moveTo(l,e),d.lineTo(l,f));d.stroke()}w&& -(a.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),this.chart._breaksCanvasCtx&&this.chart._breaksCanvasCtx.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),d.clearRect(0,0,this.chart.width,this.chart.height));d.restore()};A.prototype.getPixelCoordinatesOnAxis=function(a){var d={};if("bottom"===this._position||"top"===this._position)d.x=this.convertValueToPixel(a),d.y=this.lineCoordinates.y1;if("left"===this._position||"right"===this._position)d.y= -this.convertValueToPixel(a),d.x=this.lineCoordinates.x2;return d};A.prototype.convertPixelToValue=function(a){if("undefined"===typeof a)return null;var d=0,c=0,b,d=!0,e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[],c="number"===typeof a?a:"left"===this._position||"right"===this._position?a.y:a.x;if(this.logarithmic){a=b=Math.pow(this.logarithmBase,(c-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit);if(c<=this.conversionParameters.reference===("left"===this._position|| -"right"===this._position)!==this.reversed)for(c=0;ce[c].startValue/this.conversionParameters.minimum){b/=e[c].startValue/this.conversionParameters.minimum;if(be[c].startValue/e[c- -1].endValue){b/=e[c].startValue/e[c-1].endValue;if(bthis.conversionParameters.minimum))if(d)if(e[c].endValue>this.conversionParameters.minimum){if(1 -e[c].startValue){a=Math.pow(e[c].endValue/e[c].startValue,Math.log(b)/Math.log(e[c].size));break}else a*=e[c].startValue/this.conversionParameters.minimum*Math.pow(e[c].size,Math.log(e[c].startValue/this.conversionParameters.minimum)/Math.log(e[c].endValue/e[c].startValue))*b,b*=Math.pow(e[c].size,Math.log(this.conversionParameters.minimum/e[c].startValue)/Math.log(e[c].endValue/e[c].startValue));d=!1}else if(b1/e[c].size){a*=Math.pow(e[c].endValue/e[c].startValue,1>=e[c].size?1:Math.log(b)/Math.log(e[c].size))*b;break}else a/=e[c].endValue/e[c].startValue/e[c].size;b*=e[c].size;d=!1}else break;else if(b1/e[c].size){a*=Math.pow(e[c].endValue/e[c].startValue,1>=e[c].size?1:Math.log(b)/Math.log(e[c].size))*b;break}else a/=e[c].endValue/e[c].startValue/e[c].size;b*=e[c].size}else break;d=a*this.viewportMinimum}else{a=b=(c-this.conversionParameters.reference)/ -this.conversionParameters.pixelPerUnit;if(c<=this.conversionParameters.reference===("left"===this._position||"right"===this._position)!==this.reversed)for(c=0;c=e[c].size?0:b*(e[c].endValue-e[c].startValue)/e[c].size;break}else a+=e[c].endValue-this.conversionParameters.minimum- -e[c].size*(e[c].endValue-this.conversionParameters.minimum)/(e[c].endValue-e[c].startValue),b-=e[c].size*(e[c].endValue-this.conversionParameters.minimum)/(e[c].endValue-e[c].startValue);d=!1}else if(b>e[c].startValue-this.conversionParameters.minimum){b-=e[c].startValue-this.conversionParameters.minimum;if(be[c].startValue-e[c- -1].endValue){b-=e[c].startValue-e[c-1].endValue;if(bthis.conversionParameters.minimum))if(d)if(e[c].endValue>this.conversionParameters.minimum)if(e[c].size&&this.conversionParameters.minimum+b*(e[c].endValue-e[c].startValue)/e[c].size>e[c].startValue){a=0>=e[c].size?0:b*(e[c].endValue-e[c].startValue)/ -e[c].size;break}else a+=e[c].startValue-this.conversionParameters.minimum+e[c].size*(this.conversionParameters.minimum-e[c].startValue)/(e[c].endValue-e[c].startValue),b+=e[c].size*(this.conversionParameters.minimum-e[c].startValue)/(e[c].endValue-e[c].startValue),d=!1;else if(b-1*e[c].size){a+=(e[c].endValue-e[c].startValue)*(0===e[c].size?1:b/e[c].size)+b;break}else a-=e[c].endValue-e[c].startValue- -e[c].size;b+=e[c].size;d=!1}else break;else if(b-1*e[c].size){a+=(e[c].endValue-e[c].startValue)*(0===e[c].size?1:b/e[c].size)+b;break}else a-=e[c].endValue-e[c].startValue-e[c].size;b+=e[c].size}else break;d=this.conversionParameters.minimum+a}return d};A.prototype.convertValueToPixel=function(a){a=this.getApparentDifference(this.conversionParameters.minimum,a,a);return this.logarithmic?this.conversionParameters.reference+ -this.conversionParameters.pixelPerUnit*Math.log(a/this.conversionParameters.minimum)/this.conversionParameters.lnLogarithmBase+0.5<<0:"axisX"===this.type?this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5<<0:this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5};A.prototype.getApparentDifference=function(a,d,c,b){var e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[]; -if(this.logarithmic){c=r(c)?d/a:c;for(var f=0;fe[f].endValue||(a<=e[f].startValue&&d>=e[f].endValue?c=c/e[f].endValue*e[f].startValue*e[f].size:a>=e[f].startValue&&d>=e[f].endValue?c=c/e[f].endValue*a*Math.pow(e[f].size,Math.log(e[f].endValue/a)/Math.log(e[f].endValue/e[f].startValue)):a<=e[f].startValue&&d<=e[f].endValue?c=c/d*e[f].startValue*Math.pow(e[f].size,Math.log(d/e[f].startValue)/Math.log(e[f].endValue/e[f].startValue)):!b&&(a>e[f].startValue&&de[f].endValue||(a<=e[f].startValue&&d>=e[f].endValue?c=c-e[f].endValue+e[f].startValue+e[f].size:a>e[f].startValue&&d>=e[f].endValue?c=c-e[f].endValue+a+e[f].size*(e[f].endValue-a)/(e[f].endValue-e[f].startValue):a<=e[f].startValue&&de[f].startValue&& -da[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<=a[e].endValue?c=0:this.viewportMinimum<=a[e].startValue&& -this.viewportMaximum>=a[e].endValue?(b=b/a[e].endValue*a[e].startValue,c=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b/a[e].endValue*this.viewportMinimum,c=0a[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<=a[e].endValue?c=0:this.viewportMinimum<=a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b-a[e].endValue+a[e].startValue,c=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b-a[e].endValue+this.viewportMinimum,c=0this.maxWidth?8:6);var a=Math.max(b,Math.floor(this.maxWidth/a)),e,f,l,b=0;!r(this.options.viewportMinimum)&&(!r(this.options.viewportMaximum)&&this.options.viewportMinimum>=this.options.viewportMaximum)&&(this.viewportMinimum=this.viewportMaximum=null); -if(r(this.options.viewportMinimum)&&!r(this.sessionVariables.newViewportMinimum)&&!isNaN(this.sessionVariables.newViewportMinimum))this.viewportMinimum=this.sessionVariables.newViewportMinimum;else if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(r(this.options.viewportMaximum)&&!r(this.sessionVariables.newViewportMaximum)&&!isNaN(this.sessionVariables.newViewportMaximum))this.viewportMaximum=this.sessionVariables.newViewportMaximum;else if(null===this.viewportMaximum|| -isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(b=0;b=this.scaleBreaks._appliedBreaks[b].startValue||!r(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[b].startValue||!r(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[b].startValue)&&(!r(this.sessionVariables.newViewportMaximum)&& -this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue||!r(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[b].endValue||!r(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue)){this.scaleBreaks._appliedBreaks.splice(b,1);break}if("axisX"===this.type){if(this.dataSeries&&0f?(b=Math.min(0.01*Math.abs(this.getApparentDifference(f,e,null,!0)),5),0<=f?e=f-b:f=isFinite(e)?e+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(e,f,null,!0)),0.05),0!==f&&(f+=b),0!==e&&(e-= -b)),l=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1f&&(f=0));b=this.getApparentDifference(isNaN(this.viewportMinimum)||null===this.viewportMinimum?e:this.viewportMinimum,isNaN(this.viewportMaximum)||null===this.viewportMaximum?f:this.viewportMaximum,null,!0);if("axisX"===this.type&&c){this.valueType= -"dateTime";this.intervalType||(b/1<=a?(this.interval=1,this.intervalType="millisecond"):b/2<=a?(this.interval=2,this.intervalType="millisecond"):b/5<=a?(this.interval=5,this.intervalType="millisecond"):b/10<=a?(this.interval=10,this.intervalType="millisecond"):b/20<=a?(this.interval=20,this.intervalType="millisecond"):b/50<=a?(this.interval=50,this.intervalType="millisecond"):b/100<=a?(this.interval=100,this.intervalType="millisecond"):b/200<=a?(this.interval=200,this.intervalType="millisecond"): -b/250<=a?(this.interval=250,this.intervalType="millisecond"):b/300<=a?(this.interval=300,this.intervalType="millisecond"):b/400<=a?(this.interval=400,this.intervalType="millisecond"):b/500<=a?(this.interval=500,this.intervalType="millisecond"):b/(1*I.secondDuration)<=a?(this.interval=1,this.intervalType="second"):b/(2*I.secondDuration)<=a?(this.interval=2,this.intervalType="second"):b/(5*I.secondDuration)<=a?(this.interval=5,this.intervalType="second"):b/(10*I.secondDuration)<=a?(this.interval=10, -this.intervalType="second"):b/(15*I.secondDuration)<=a?(this.interval=15,this.intervalType="second"):b/(20*I.secondDuration)<=a?(this.interval=20,this.intervalType="second"):b/(30*I.secondDuration)<=a?(this.interval=30,this.intervalType="second"):b/(1*I.minuteDuration)<=a?(this.interval=1,this.intervalType="minute"):b/(2*I.minuteDuration)<=a?(this.interval=2,this.intervalType="minute"):b/(5*I.minuteDuration)<=a?(this.interval=5,this.intervalType="minute"):b/(10*I.minuteDuration)<=a?(this.interval= -10,this.intervalType="minute"):b/(15*I.minuteDuration)<=a?(this.interval=15,this.intervalType="minute"):b/(20*I.minuteDuration)<=a?(this.interval=20,this.intervalType="minute"):b/(30*I.minuteDuration)<=a?(this.interval=30,this.intervalType="minute"):b/(1*I.hourDuration)<=a?(this.interval=1,this.intervalType="hour"):b/(2*I.hourDuration)<=a?(this.interval=2,this.intervalType="hour"):b/(3*I.hourDuration)<=a?(this.interval=3,this.intervalType="hour"):b/(6*I.hourDuration)<=a?(this.interval=6,this.intervalType= -"hour"):b/(1*I.dayDuration)<=a?(this.interval=1,this.intervalType="day"):b/(2*I.dayDuration)<=a?(this.interval=2,this.intervalType="day"):b/(4*I.dayDuration)<=a?(this.interval=4,this.intervalType="day"):b/(1*I.weekDuration)<=a?(this.interval=1,this.intervalType="week"):b/(2*I.weekDuration)<=a?(this.interval=2,this.intervalType="week"):b/(3*I.weekDuration)<=a?(this.interval=3,this.intervalType="week"):b/(1*I.monthDuration)<=a?(this.interval=1,this.intervalType="month"):b/(2*I.monthDuration)<=a?(this.interval= -2,this.intervalType="month"):b/(3*I.monthDuration)<=a?(this.interval=3,this.intervalType="month"):b/(6*I.monthDuration)<=a?(this.interval=6,this.intervalType="month"):(this.interval=b/(1*I.yearDuration)<=a?1:b/(2*I.yearDuration)<=a?2:b/(4*I.yearDuration)<=a?4:Math.floor(A.getNiceNumber(b/(a-1),!0)/I.yearDuration),this.intervalType="year"));if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=e-l/2;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum= -f+l/2;d?this.autoValueFormatString="MMM DD YYYY HH:mm":"year"===this.intervalType?this.autoValueFormatString="YYYY":"month"===this.intervalType?this.autoValueFormatString="MMM YYYY":"week"===this.intervalType?this.autoValueFormatString="MMM DD YYYY":"day"===this.intervalType?this.autoValueFormatString="MMM DD YYYY":"hour"===this.intervalType?this.autoValueFormatString="hh:mm TT":"minute"===this.intervalType?this.autoValueFormatString="hh:mm TT":"second"===this.intervalType?this.autoValueFormatString= -"hh:mm:ss TT":"millisecond"===this.intervalType&&(this.autoValueFormatString="fff'ms'");this.valueFormatString||(this.valueFormatString=this.autoValueFormatString)}else{this.intervalType="number";b=A.getNiceNumber(b,!1);this.interval=this.options&&0f?(b=Math.min(0.01*Math.abs(this.getApparentDifference(f,e,null,!0)),5),0<=f?e=f-b:f=isFinite(e)?e+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(e,f,null,!0)),0.05),0!==f&&(f+=b),0!==e&&(e-=b)):(f="undefined"===typeof this.options.interval?-Infinity:this.options.interval,e="undefined"!==typeof this.options.interval||isFinite(this.dataInfo.minDiff)?0:Infinity),l=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1f&&(f=0)),Math.abs(this.getApparentDifference(e,f,null,!0)),"axisX"===this.type&&c){this.valueType="dateTime";if(null===this.minimum||isNaN(this.minimum))this.minimum=e-l/2,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum);if(null===this.maximum||isNaN(this.maximum))this.maximum= -f+l/2,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)}else this.intervalType=this.valueType="number",null===this.minimum&&(this.minimum="axisX"===this.type?e-l/2:Math.floor(e/this.interval)*this.interval,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum)), -null===this.maximum&&(this.maximum="axisX"===this.type?f+l/2:Math.ceil(f/this.interval)*this.interval,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)),0===this.maximum&&0===this.minimum&&(0===this.options.minimum?this.maximum+=10:0===this.options.maximum&&(this.minimum-=10));r(this.sessionVariables.newViewportMinimum)&&(this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum)); -r(this.sessionVariables.newViewportMaximum)&&(this.viewportMaximum=Math.min(this.viewportMaximum,this.maximum));this.range=this.viewportMaximum-this.viewportMinimum;this.intervalStartPosition="axisX"===this.type&&c?this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval):Math.floor((this.viewportMinimum+0.2*this.interval)/this.interval)*this.interval;this.valueFormatString||(this.valueFormatString=A.generateValueFormatString(this.range,2))}};A.prototype.calculateLogarithmicAxisParameters= -function(){var a=this.chart.layoutManager.getFreeSpace(),d=Math.log(this.logarithmBase),c;"bottom"===this._position||"top"===this._position?(this.maxWidth=a.width,this.maxHeight=a.height):(this.maxWidth=a.height,this.maxHeight=a.width);var a="axisX"===this.type?500>this.maxWidth?7:Math.max(7,Math.floor(this.maxWidth/100)):Math.max(Math.floor(this.maxWidth/50),3),b,e,f,l;l=1;if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(null===this.viewportMaximum|| -isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(l=0;l=this.scaleBreaks._appliedBreaks[l].startValue||!r(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[l].startValue||!r(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[l].startValue)&&(!r(this.sessionVariables.newViewportMaximum)&& -this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[l].endValue||!r(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[l].endValue||!r(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[l].endValue)){this.scaleBreaks._appliedBreaks.splice(l,1);break}"axisX"===this.type?(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,e=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax, -1===e/b&&(l=Math.pow(this.logarithmBase,"undefined"===typeof this.options.interval?0.4:this.options.interval),e*=l,b/=l),f=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/b>this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,e=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,0>=b&&!isFinite(e)?(e="undefined"===typeof this.options.interval?0: -this.options.interval,b=1):0>=b?b=e:isFinite(e)||(e=b),1===b&&1===e?(e*=this.logarithmBase-1/this.logarithmBase,b=1):1===e/b?(l=Math.min(e*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),e*=l,b/=l):b>e?(l=Math.min(b/e*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),1<=e?b=e/l:e=b*l):(l=Math.min(e/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==e&&(e*=l),1!==b&&(b/=l)),f=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/b>this.logarithmBase? -e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.viewportMinimum||isNaN(this.viewportMinimum))&&1e&&(e=1));l=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?e:this.viewportMaximum)/(isNaN(this.viewportMinimum)||null===this.viewportMinimum?b:this.viewportMinimum);var h=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?e:this.viewportMaximum)-(isNaN(this.viewportMinimum)|| -null===this.viewportMinimum?b:this.viewportMinimum);this.intervalType="number";l=Math.pow(this.logarithmBase,A.getNiceNumber(Math.abs(Math.log(l)/d),!1));this.options&&0this.logarithmBase? -e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(b=null!==this.minimum?this.minimum:this.dataInfo.min,e=null!==this.maximum?this.maximum:this.dataInfo.max,isFinite(b)||isFinite(e)?1===b&&1===e?(e*=this.logarithmBase,b/=this.logarithmBase):1===e/b?(l=Math.pow(this.logarithmBase,this.interval),e*=l,b/=l):b>e?(l=Math.min(0.01*(b/e),5),1<=e?b=e/l:e=b*l):(l=Math.min(e/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==e&&(e*=l),1!==b&&(b/=l)):(e="undefined"=== -typeof this.options.interval?0:this.options.interval,b=1),f=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/b>this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.minimum||isNaN(this.minimum))&&1e&&(e=1)),this.intervalType="number",null===this.minimum&&(this.minimum="axisX"===this.type?b/Math.sqrt(f):Math.pow(this.logarithmBase,this.interval*Math.floor(Math.log(b)/ -d/this.interval)),r(null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?"undefined"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:this.sessionVariables.viewportMinimum)||(this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?"undefined"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum: -this.sessionVariables.viewportMinimum))),null===this.maximum&&(this.maximum="axisX"===this.type?e*Math.sqrt(f):Math.pow(this.logarithmBase,this.interval*Math.ceil(Math.log(e)/d/this.interval)),r(null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?"undefined"===typeof this.sessionVariables.newViewportMaximum?0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum)||(this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum|| -isNaN(this.sessionVariables.viewportMaximum)?"undefined"===typeof this.sessionVariables.newViewportMaximum?0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum))),1===this.maximum&&1===this.minimum&&(1===this.options.minimum?this.maximum*=this.logarithmBase-1/this.logarithmBase:1===this.options.maximum&&(this.minimum/=this.logarithmBase-1/this.logarithmBase));this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum);this.viewportMaximum=Math.min(this.viewportMaximum, -this.maximum);this.viewportMinimum>this.viewportMaximum&&(!this.options.viewportMinimum&&!this.options.minimum||this.options.viewportMaximum||this.options.maximum?this.options.viewportMinimum||this.options.minimum||!this.options.viewportMaximum&&!this.options.maximum||(this.viewportMinimum=this.minimum=(this.options.viewportMaximum||this.options.maximum)/Math.pow(this.logarithmBase,2*Math.ceil(this.interval))):this.viewportMaximum=this.maximum=this.options.viewportMinimum||this.options.minimum);b= -Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(d*this.interval)+0.2)*this.interval);this.range=this.viewportMaximum/this.viewportMinimum;this.noTicks=a;if(!this.options.interval&&this.rangethis.viewportMaximum||3>a?2:3)){for(d=Math.floor(this.viewportMinimum/c+0.5)*c;dthis.interval&& -(this.interval=c,b=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(d*this.interval)+0.2)*this.interval))),this.equidistantInterval=!0,this.intervalStartPosition=b;if(!this.valueFormatString&&(this.valueFormatString="#,##0.##",1>this.viewportMinimum)){d=Math.floor(Math.abs(Math.log(this.viewportMinimum)/Math.LN10))+2;if(isNaN(d)||!isFinite(d))d=2;if(2a&&(b+=Math.floor(Math.abs(Math.log(a)/ -Math.LN10)),isNaN(b)||!isFinite(b))&&(b=d);for(var e=0;ec?1>=b?1:5>=b?5:10:Math.max(Math.floor(b),1);return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))};A.getNiceNumber=function(a,d){var c=Math.floor(Math.log(a)/Math.LN10),b=a/Math.pow(10,c),b=d?1.5>b?1:3>b?2:7>b?5:10:1>=b?1:2>=b?2:5>=b?5:10;return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))}; -A.prototype.getLabelStartPoint=function(){var a=I[this.intervalType+"Duration"]*this.interval,a=new Date(Math.floor(this.viewportMinimum/a)*a);if("millisecond"!==this.intervalType)if("second"===this.intervalType)0=a||"bottom"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(b,h),this.ctx.lineTo(l,h),this.ctx.lineTo(l,e);else if("wavy"===this.type){m=b;k=e;f=0.5;n=(h-k)/a/3;for(var q=0;q=a||"right"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(l,e),this.ctx.lineTo(l,h),this.ctx.lineTo(b,h);else if("wavy"===this.type){m=b;k=e;f=0.5;n= -(l-m)/a/3;for(q=0;q=d.axisY[b].viewportMinimum&& -a<=d.axisY[b].viewportMaximum?a:null);else if("top"===this.parent._position)for(b=0;b=d.axisY2[b].viewportMinimum&&a<=d.axisY2[b].viewportMaximum?a:null);else if("left"===this.parent._position)for(b=0;b=d.axisX[b].viewportMinimum&&a<=d.axisX[b].viewportMaximum?a:null);else{if("right"===this.parent._position)for(b=0;b=d.axisX2[b].viewportMinimum&&a<=d.axisX2[b].viewportMaximum?a:null)}else if("bottom"===this.parent._position)for(b=0;b=d.axisX[b].viewportMinimum&&a<=d.axisX[b].viewportMaximum?a:null);else if("top"===this.parent._position)for(b=0;b=d.axisX2[b].viewportMinimum&&a<=d.axisX2[b].viewportMaximum?a:null); -else if("left"===this.parent._position)for(b=0;b=d.axisY[b].viewportMinimum&&a<=d.axisY[b].viewportMaximum?a:null);else if("right"===this.parent._position)for(b=0;b=d.axisY2[b].viewportMinimum&&a<=d.axisY2[b].viewportMaximum?a:null);for(b=0;b=d.axisX[b].viewportMinimum&&a<=d.axisX[b].viewportMaximum)&&(d.axisX[b].showCrosshair(a),d.axisX[b].crosshair._updatedValue=a,this===d.axisX[b].crosshair&&(c=!0));for(b=0;b=d.axisX2[b].viewportMinimum&&a<=d.axisX2[b].viewportMaximum)&&(d.axisX2[b].showCrosshair(a),d.axisX2[b].crosshair._updatedValue=a,this===d.axisX2[b].crosshair&&(c=!0));for(b=0;b=d.axisY[b].viewportMinimum&&a<=d.axisY[b].viewportMaximum)&&(d.axisY[b].showCrosshair(a),d.axisY[b].crosshair._updatedValue=a,this===d.axisY[b].crosshair&&(c=!0));for(b=0;b=d.axisY2[b].viewportMinimum&&a<=d.axisY2[b].viewportMaximum)&&(d.axisY2[b].showCrosshair(a),d.axisY2[b].crosshair._updatedValue=a,this===d.axisY2[b].crosshair&& -(c=!0));this.chart.toolTip&&this.chart.toolTip._entries&&this.chart.toolTip.highlightObjects(this.chart.toolTip._entries);return c};ca.prototype.hide=function(){this.chart.resetOverlayedCanvas();this.chart.renderCrosshairs(this.parent);this._hidden=!0};ca.prototype.render=function(a,d,c){var b,e,f,h,m=null,w=null,k=null,n="";if(!this.valueFormatString)if("dateTime"===this.parent.valueType)this.valueFormatString=this.parent.valueFormatString;else{var p=0,p="xySwapped"===this.chart.plotInfo.axisPlacement? -50this.parent.range?2:Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0):50this.parent.range?2:10>this.parent.range?1:0);this.valueFormatString=A.generateValueFormatString(this.parent.range,p)}var k=null===this.opacity?1:this.opacity,p=Math.abs("pixel"===this._thicknessType?this.thickness:this.parent.conversionParameters.pixelPerUnit* -this.thickness),q=this.chart.overlaidCanvasCtx,g=q.globalAlpha;q.globalAlpha=k;q.beginPath();q.strokeStyle=this.color;q.lineWidth=p;q.save();this.labelFontSize=Math.abs(r(this.options.labelFontSize)?this.parent.labelFontSize:this.labelFontSize);this.labelMaxWidth=r(this.options.labelMaxWidth)?0.3*this.chart.width:this.labelMaxWidth;this.labelMaxHeight=r(this.options.labelWrap)||this.labelWrap?0.3*this.chart.height:2*this.labelFontSize;0this.chart.bounds.x2?k.x=this.chart.bounds.x2-k.width:k.xthis.chart.bounds.y2?k.y=this.chart.bounds.y2-k.height:k.ythis.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2);"left"===this.parent._position?k.x=this.parent.lineCoordinates.x2-k.measureText().width:"right"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}}else if("bottom"===this.parent._position||"top"===this.parent._position){t=this.parent.convertPixelToValue({x:a});for(B=0;Bthis.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width);k.xthis.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2);"left"===this.parent._position?k.x=this.parent.lineCoordinates.x2-k.measureText().width:"right"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}n=null;if("bottom"===this.parent._position||"top"===this.parent._position)"top"===this.parent._position&&k.y-k.fontSize/2this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.height+k.fontSize/2+2),b>=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMaximum:this.parent.viewportMinimum)&&e<=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMinimum:this.parent.viewportMaximum)&&(0this.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.measureText().width),h>=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMinimum:this.parent.viewportMaximum)&&f<=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMaximum:this.parent.viewportMinimum)&&(0this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2);"left"===this.parent._position? -k.x=this.parent.lineCoordinates.x1-k.measureText().width:"right"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}else{if("bottom"===this.parent._position||"top"===this.parent._position)k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:r(c)?this.parent.convertPixelToValue(a):c}):r(this.options.label)?da(r(c)?this.parent.convertPixelToValue(a):c,this.valueFormatString,this.chart._cultureInfo):this.label,k.x=b-k.measureText().width/ -2,k.x+k.width>this.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width),k.xthis.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width);k.xthis.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+ -k.fontSize/2),"left"===this.parent._position?k.x=this.parent.lineCoordinates.x2-k.measureText().width:"right"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2);"left"===this.parent._position&&k.xthis.chart.bounds.x2?k.x=this.chart.bounds.x2-k.measureText().width:"top"===this.parent._position&&k.y-k.fontSize/2this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.height+k.fontSize/2+2);0(new Date).getTime()-this._lastUpdated|| -(this._lastUpdated=(new Date).getTime(),this.chart.resetOverlayedCanvas(),this._updateToolTip(a,d))};Z.prototype._updateToolTip=function(a,d,c){c="undefined"===typeof c?!0:c;this.container||this._initialize();this.enabled||this.hide();if(!this.chart.disableToolTip){if("undefined"===typeof a||"undefined"===typeof d){if(isNaN(this._prevX)||isNaN(this._prevY))return;a=this._prevX;d=this._prevY}else this._prevX=a,this._prevY=d;var b=null,e=null,f=[],h=0;if(this.shared&&this.enabled&&"none"!==this.chart.plotInfo.axisPlacement){var m= -[];if(this.chart.axisX)for(var v=0;vk.dataSeries.axisY.viewportMaximum&&c++;c-k.dataPoint.y.length&&f.push(k)}else"column"===e.type||"bar"===e.type?0>k.dataPoint.y?0>k.dataSeries.axisY.viewportMinimum&&k.dataSeries.axisY.viewportMaximum>=k.dataPoint.y&&f.push(k):k.dataSeries.axisY.viewportMinimum<=k.dataPoint.y&&0<=k.dataSeries.axisY.viewportMaximum&&f.push(k):"bubble"===e.type?(c=this.chart._eventManager.objectMap[e.dataPointIds[k.index]].size/ -2,k.dataPoint.y>=k.dataSeries.axisY.viewportMinimum-c&&k.dataPoint.y<=k.dataSeries.axisY.viewportMaximum+c&&f.push(k)):"waterfall"===e.type?(c=0,k.cumulativeSumYStartValuek.dataSeries.axisY.viewportMaximum&&c++,k.cumulativeSumk.dataSeries.axisY.viewportMaximum&&c++,2>c&&-2= -k.dataSeries.axisY.viewportMinimum&&k.dataPoint.y<=k.dataSeries.axisY.viewportMaximum)&&f.push(k);else f.push(k)}}if(0a&&(a+=this.container.clientWidth+20);a+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(a=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));d=1!==f.length||this.shared||"line"!==f[0].dataSeries.type&&"stepLine"!== -f[0].dataSeries.type&&"spline"!==f[0].dataSeries.type&&"area"!==f[0].dataSeries.type&&"stepArea"!==f[0].dataSeries.type&&"splineArea"!==f[0].dataSeries.type?"bar"===f[0].dataSeries.type||"rangeBar"===f[0].dataSeries.type||"stackedBar"===f[0].dataSeries.type||"stackedBar100"===f[0].dataSeries.type?f[0].dataSeries.axisX.convertValueToPixel(f[0].dataPoint.x):d:f[0].dataSeries.axisY.convertValueToPixel(f[0].dataPoint.y);d=-d+10;0":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y}",m=c.axisXIndex):"bubble"===c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y},   {z}"):"rangeColumn"=== -c.type||"rangeBar"===c.type||"rangeArea"===c.type||"rangeSplineArea"===c.type||"error"===c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y[0]}, {y[1]}"):"candlestick"===c.type||"ohlc"=== -c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:
Open:   {y[0]}
High:    {y[1]}
Low:   {y[2]}
Close:   {y[3]}"):"boxAndWhisker"===c.type&& -(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:
Minimum:   {y[0]}
Q1:               {y[1]}
Q2:               {y[4]}
Q3:               {y[2]}
Maximum:  {y[3]}"), -null===d&&(d=""),c.visible&&(!0===this.reversed?(d=this.chart.replaceKeywordsWithValue(f,b,c,e)+d,h"+d)):(d+=this.chart.replaceKeywordsWithValue(f,b,c,e),h"))))}null!==d&&(d=r+d)}else{c=a[0].dataSeries;b=a[0].dataPoint;e=a[0].index;if(null===b.toolTipContent||"undefined"===typeof b.toolTipContent&&null===c.options.toolTipContent)return null;"line"===c.type||"stepLine"===c.type||"spline"===c.type||"area"===c.type||"stepArea"===c.type||"splineArea"===c.type|| -"column"===c.type||"bar"===c.type||"scatter"===c.type||"stackedColumn"===c.type||"stackedColumn100"===c.type||"stackedBar"===c.type||"stackedBar100"===c.type||"stackedArea"===c.type||"stackedArea100"===c.type||"waterfall"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+":  {y}":"bubble"===c.type? -f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+":  {y},   {z}":"pie"===c.type||"doughnut"===c.type||"funnel"===c.type||"pyramid"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.name?"{name}:  ":b.label?"{label}:  ":"")+"{y}":"rangeColumn"===c.type||"rangeBar"===c.type||"rangeArea"===c.type||"rangeSplineArea"===c.type||"error"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+" :  {y[0]},  {y[1]}":"candlestick"=== -c.type||"ohlc"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+"
Open:   {y[0]}
High:    {y[1]}
Low:     {y[2]}
Close:   {y[3]}":"boxAndWhisker"===c.type&&(f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&& -"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+"
Minimum:   {y[0]}
Q1:               {y[1]}
Q2:               {y[4]}
Q3:               {y[2]}
Maximum:  {y[3]}"); -null===d&&(d="");d+=this.chart.replaceKeywordsWithValue(f,b,c,e)}return d};Z.prototype.enableAnimation=function(){if(!this.container.style.WebkitTransition){var a=this.getContainerTransition(this.containerTransitionDuration);this.container.style.WebkitTransition=a;this.container.style.MsTransition=a;this.container.style.transition=a;this.container.style.MozTransition=this.mozContainerTransition}};Z.prototype.disableAnimation=function(){this.container.style.WebkitTransition&&(this.container.style.WebkitTransition= -"",this.container.style.MozTransition="",this.container.style.MsTransition="",this.container.style.transition="")};Z.prototype.hide=function(a){this.container&&(this.container.style.display="none",this.currentSeriesIndex=-1,this._prevY=this._prevX=NaN,("undefined"===typeof a||a)&&this.chart.resetOverlayedCanvas())};Z.prototype.show=function(a,d,c){this._updateToolTip(a,d,"undefined"===typeof c?!1:c)};Z.prototype.showAtIndex=function(a,d){};Z.prototype.showAtX=function(a,d){if(!this.enabled)return!1; -this.chart.clearedOverlayedCanvas=null;var c,b,e,f=[];e=!1;d=!r(d)&&0<=d&&d=b.dataSeries.axisX.viewportMinimum&&b.dataPoint.x<=b.dataSeries.axisX.viewportMaximum){e=!1;break}else if(b.dataPoint.xb.dataSeries.axisX.viewportMaximum||b.dataPoint.yb.dataSeries.axisY.viewportMaximum)e=!0;else{e=!1;break}if(e)return this.hide(),!1;this.highlightObjects(f);this._entries=f;h="";h=this.getToolTipInnerHTML({entries:f});if(null!==h){this.contentDiv.innerHTML=h;if(this.isToolTipDefinedInData&& -r(this.options.content)&&r(this.options.contentFormatter))for(b=this.contentDiv.getElementsByTagName("span"),h=0;hc&&(c+=this.container.clientWidth+20);c+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(c=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));f=1!==f.length||this.shared||"line"!==f[0].dataSeries.type&&"stepLine"!==f[0].dataSeries.type&&"spline"!==f[0].dataSeries.type&&"area"!==f[0].dataSeries.type&&"stepArea"!==f[0].dataSeries.type&&"splineArea"!==f[0].dataSeries.type?"bar"===f[0].dataSeries.type|| -"rangeBar"===f[0].dataSeries.type||"stackedBar"===f[0].dataSeries.type||"stackedBar100"===f[0].dataSeries.type?f[0].dataSeries.axisX.convertValueToPixel(f[0].dataPoint.x):f[0].dataSeries.axisY.convertValueToPixel(f[0].dataPoint.y):f[0].dataSeries.axisY.convertValueToPixel(f[0].dataPoint.y);f=-f+10;0 -b&&a.push(d),d.animationCallback(b),1<=b&&d.onComplete)d.onComplete();this.animations=a;0g;g++)for(var e=0;3>e;e++){for(var f=0,d=0;3>d;d++)f+=a[g][d]*b[d][e];c[g][e]=f}return c}function P(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit=a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX= -a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.globalAlpha=a.globalAlpha;b.font=a.font;b.textAlign=a.textAlign;b.textBaseline=a.textBaseline;b.arcScaleX_=a.arcScaleX_;b.arcScaleY_=a.arcScaleY_;b.lineScale_=a.lineScale_}function Q(a){var b=a.indexOf("(",3),c=a.indexOf(")",b+1),b=a.substring(b+1,c).split(",");if(4!=b.length||"a"!=a.charAt(3))b[3]=1;return b}function E(a,b,c){return Math.min(c,Math.max(b,a))}function F(a,b,c){0>c&&c++;16*c?a+6*(b-a)*c: -1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a}function G(a){if(a in H)return H[a];var b,c=1;a=String(a);if("#"==a.charAt(0))b=a;else if(/^rgb/.test(a)){c=Q(a);b="#";for(var g,e=0;3>e;e++)g=-1!=c[e].indexOf("%")?Math.floor(255*(parseFloat(c[e])/100)):+c[e],b+=v[E(g,0,255)];c=+c[3]}else if(/^hsl/.test(a)){e=c=Q(a);b=parseFloat(e[0])/360%360;0>b&&b++;g=E(parseFloat(e[1])/100,0,1);e=E(parseFloat(e[2])/100,0,1);if(0==g)g=e=b=e;else{var f=0.5>e?e*(1+g):e+g-e*g,d=2*e-f;g=F(d,f,b+1/3);e=F(d,f,b);b=F(d,f,b-1/3)}b="#"+ -v[Math.floor(255*g)]+v[Math.floor(255*e)]+v[Math.floor(255*b)];c=c[3]}else b=Z[a]||a;return H[a]={color:b,alpha:c}}function C(a){this.m_=D();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.fillStyle=this.strokeStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=1*q;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=a;var b="width:"+a.clientWidth+"px;height:"+a.clientHeight+"px;overflow:hidden;position:absolute", -c=a.ownerDocument.createElement("div");c.style.cssText=b;a.appendChild(c);b=c.cloneNode(!1);b.style.backgroundColor="red";b.style.filter="alpha(opacity=0)";a.appendChild(b);this.element_=c;this.lineScale_=this.arcScaleY_=this.arcScaleX_=1}function R(a,b,c,g){a.currentPath_.push({type:"bezierCurveTo",cp1x:b.x,cp1y:b.y,cp2x:c.x,cp2y:c.y,x:g.x,y:g.y});a.currentX_=g.x;a.currentY_=g.y}function S(a,b){var c=G(a.strokeStyle),g=c.color,c=c.alpha*a.globalAlpha,e=a.lineScale_*a.lineWidth;1>e&&(c*=e);b.push("')}function T(a,b,c,g){var e=a.fillStyle,f=a.arcScaleX_,d=a.arcScaleY_,k=g.x-c.x,n=g.y-c.y;if(e instanceof w){var h=0,l=g=0,u=0,m=1;if("gradient"==e.type_){h=e.x1_/f;c=e.y1_/d;var p=s(a,e.x0_/f,e.y0_/d),h=s(a,h,c),h=180*Math.atan2(h.x-p.x,h.y-p.y)/Math.PI;0>h&&(h+=360);1E-6>h&&(h=0)}else p=s(a,e.x0_,e.y0_),g=(p.x-c.x)/k,l=(p.y-c.y)/n,k/=f*q, -n/=d*q,m=x.max(k,n),u=2*e.r0_/m,m=2*e.r1_/m-u;f=e.colors_;f.sort(function(a,b){return a.offset-b.offset});d=f.length;p=f[0].color;c=f[d-1].color;k=f[0].alpha*a.globalAlpha;a=f[d-1].alpha*a.globalAlpha;for(var n=[],r=0;r')}else e instanceof -I?k&&n&&b.push("'):(e=G(a.fillStyle),b.push(''))}function s(a,b,c){a=a.m_;return{x:q*(b*a[0][0]+c*a[1][0]+a[2][0])-r,y:q*(b*a[0][1]+c*a[1][1]+a[2][1])-r}}function z(a,b,c){isFinite(b[0][0])&&(isFinite(b[0][1])&&isFinite(b[1][0])&&isFinite(b[1][1])&&isFinite(b[2][0])&&isFinite(b[2][1]))&&(a.m_=b,c&&(a.lineScale_=aa(ba(b[0][0]*b[1][1]-b[0][1]* -b[1][0]))))}function w(a){this.type_=a;this.r1_=this.y1_=this.x1_=this.r0_=this.y0_=this.x0_=0;this.colors_=[]}function I(a,b){if(!a||1!=a.nodeType||"IMG"!=a.tagName)throw new A("TYPE_MISMATCH_ERR");if("complete"!=a.readyState)throw new A("INVALID_STATE_ERR");switch(b){case "repeat":case null:case "":this.repetition_="repeat";break;case "repeat-x":case "repeat-y":case "no-repeat":this.repetition_=b;break;default:throw new A("SYNTAX_ERR");}this.src_=a.src;this.width_=a.width;this.height_=a.height} -function A(a){this.code=this[a];this.message=a+": DOM Exception "+this.code}var x=Math,k=x.round,J=x.sin,K=x.cos,ba=x.abs,aa=x.sqrt,q=10,r=q/2;navigator.userAgent.match(/MSIE ([\d.]+)?/);var M=Array.prototype.slice;O(document);var U={init:function(a){a=a||document;a.createElement("canvas");a.attachEvent("onreadystatechange",W(this.init_,this,a))},init_:function(a){a=a.getElementsByTagName("canvas");for(var b=0;bd;d++)for(var B=0;16>B;B++)v[16*d+B]=d.toString(16)+B.toString(16);var Z={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC", -bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000", -darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082", -ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA", -mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5", -peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"}, -H={},L={},$={butt:"flat",round:"round"},d=C.prototype;d.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null);this.element_.innerHTML=""};d.beginPath=function(){this.currentPath_=[]};d.moveTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"moveTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.lineTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"lineTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.bezierCurveTo= -function(a,b,c,g,e,f){e=s(this,e,f);a=s(this,a,b);c=s(this,c,g);R(this,a,c,e)};d.quadraticCurveTo=function(a,b,c,g){a=s(this,a,b);c=s(this,c,g);g={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)};R(this,g,{x:g.x+(c.x-this.currentX_)/3,y:g.y+(c.y-this.currentY_)/3},c)};d.arc=function(a,b,c,g,e,f){c*=q;var d=f?"at":"wa",k=a+K(g)*c-r,n=b+J(g)*c-r;g=a+K(e)*c-r;e=b+J(e)*c-r;k!=g||f||(k+=0.125);a=s(this,a,b);k=s(this,k,n);g=s(this,g,e);this.currentPath_.push({type:d, -x:a.x,y:a.y,radius:c,xStart:k.x,yStart:k.y,xEnd:g.x,yEnd:g.y})};d.rect=function(a,b,c,g){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath()};d.strokeRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath();this.stroke();this.currentPath_=e};d.fillRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+ -c,b+g);this.lineTo(a,b+g);this.closePath();this.fill();this.currentPath_=e};d.createLinearGradient=function(a,b,c,g){var e=new w("gradient");e.x0_=a;e.y0_=b;e.x1_=c;e.y1_=g;return e};d.createRadialGradient=function(a,b,c,g,e,f){var d=new w("gradientradial");d.x0_=a;d.y0_=b;d.r0_=c;d.x1_=g;d.y1_=e;d.r1_=f;return d};d.drawImage=function(a,b){var c,g,e,d,r,y,n,h;e=a.runtimeStyle.width;d=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var l=a.width,u=a.height;a.runtimeStyle.width= -e;a.runtimeStyle.height=d;if(3==arguments.length)c=arguments[1],g=arguments[2],r=y=0,n=e=l,h=d=u;else if(5==arguments.length)c=arguments[1],g=arguments[2],e=arguments[3],d=arguments[4],r=y=0,n=l,h=u;else if(9==arguments.length)r=arguments[1],y=arguments[2],n=arguments[3],h=arguments[4],c=arguments[5],g=arguments[6],e=arguments[7],d=arguments[8];else throw Error("Invalid number of arguments");var m=s(this,c,g),p=[];p.push(" ','","");this.element_.insertAdjacentHTML("BeforeEnd",p.join(""))};d.stroke=function(a){var b=[];b.push("d.x)d.x=f.x;if(null==c.y||f.yd.y)d.y=f.y}}b.push(' ">');a?T(this,b,c,d):S(this,b);b.push("");this.element_.insertAdjacentHTML("beforeEnd",b.join(""))};d.fill=function(){this.stroke(!0)};d.closePath=function(){this.currentPath_.push({type:"close"})};d.save=function(){var a= -{};P(this,a);this.aStack_.push(a);this.mStack_.push(this.m_);this.m_=t(D(),this.m_)};d.restore=function(){this.aStack_.length&&(P(this.aStack_.pop(),this),this.m_=this.mStack_.pop())};d.translate=function(a,b){z(this,t([[1,0,0],[0,1,0],[a,b,1]],this.m_),!1)};d.rotate=function(a){var b=K(a);a=J(a);z(this,t([[b,a,0],[-a,b,0],[0,0,1]],this.m_),!1)};d.scale=function(a,b){this.arcScaleX_*=a;this.arcScaleY_*=b;z(this,t([[a,0,0],[0,b,0],[0,0,1]],this.m_),!0)};d.transform=function(a,b,c,d,e,f){z(this,t([[a, -b,0],[c,d,0],[e,f,1]],this.m_),!0)};d.setTransform=function(a,b,c,d,e,f){z(this,[[a,b,0],[c,d,0],[e,f,1]],!0)};d.drawText_=function(a,b,c,d,e){var f=this.m_;d=0;var r=1E3,t=0,n=[],h;h=this.font;if(L[h])h=L[h];else{var l=document.createElement("div").style;try{l.font=h}catch(u){}h=L[h]={style:l.fontStyle||"normal",variant:l.fontVariant||"normal",weight:l.fontWeight||"normal",size:l.fontSize||10,family:l.fontFamily||"sans-serif"}}var l=h,m=this.element_;h={};for(var p in l)h[p]=l[p];p=parseFloat(m.currentStyle.fontSize); -m=parseFloat(l.size);"number"==typeof l.size?h.size=l.size:-1!=l.size.indexOf("px")?h.size=m:-1!=l.size.indexOf("em")?h.size=p*m:-1!=l.size.indexOf("%")?h.size=p/100*m:-1!=l.size.indexOf("pt")?h.size=m/0.75:h.size=p;h.size*=0.981;p=h.style+" "+h.variant+" "+h.weight+" "+h.size+"px "+h.family;m=this.element_.currentStyle;l=this.textAlign.toLowerCase();switch(l){case "left":case "center":case "right":break;case "end":l="ltr"==m.direction?"right":"left";break;case "start":l="rtl"==m.direction?"right": -"left";break;default:l="left"}switch(this.textBaseline){case "hanging":case "top":t=h.size/1.75;break;case "middle":break;default:case null:case "alphabetic":case "ideographic":case "bottom":t=-h.size/2.25}switch(l){case "right":d=1E3;r=0.05;break;case "center":d=r=500}b=s(this,b+0,c+t);n.push('');e?S(this,n):T(this,n,{x:-d,y:0}, -{x:r,y:h.size});e=f[0][0].toFixed(3)+","+f[1][0].toFixed(3)+","+f[0][1].toFixed(3)+","+f[1][1].toFixed(3)+",0,0";b=k(b.x/q)+","+k(b.y/q);n.push('','','');this.element_.insertAdjacentHTML("beforeEnd",n.join(""))};d.fillText=function(a,b,c,d){this.drawText_(a,b,c,d,!1)};d.strokeText=function(a, -b,c,d){this.drawText_(a,b,c,d,!0)};d.measureText=function(a){this.textMeasureEl_||(this.element_.insertAdjacentHTML("beforeEnd",''),this.textMeasureEl_=this.element_.lastChild);var b=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(b.createTextNode(a));return{width:this.textMeasureEl_.offsetWidth}};d.clip=function(){}; -d.arcTo=function(){};d.createPattern=function(a,b){return new I(a,b)};w.prototype.addColorStop=function(a,b){b=G(b);this.colors_.push({offset:a,color:b.color,alpha:b.alpha})};d=A.prototype=Error();d.INDEX_SIZE_ERR=1;d.DOMSTRING_SIZE_ERR=2;d.HIERARCHY_REQUEST_ERR=3;d.WRONG_DOCUMENT_ERR=4;d.INVALID_CHARACTER_ERR=5;d.NO_DATA_ALLOWED_ERR=6;d.NO_MODIFICATION_ALLOWED_ERR=7;d.NOT_FOUND_ERR=8;d.NOT_SUPPORTED_ERR=9;d.INUSE_ATTRIBUTE_ERR=10;d.INVALID_STATE_ERR=11;d.SYNTAX_ERR=12;d.INVALID_MODIFICATION_ERR= -13;d.NAMESPACE_ERR=14;d.INVALID_ACCESS_ERR=15;d.VALIDATION_ERR=16;d.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=U;CanvasRenderingContext2D=C;CanvasGradient=w;CanvasPattern=I;DOMException=A}(); -/*tslint:enable*/ -/*eslint-enable*/ -/*jshint ignore:end*/ \ No newline at end of file diff --git a/src/libs/canvasjs/canvasjs.react.js b/src/libs/canvasjs/canvasjs.react.js deleted file mode 100644 index a0b5e489..00000000 --- a/src/libs/canvasjs/canvasjs.react.js +++ /dev/null @@ -1,60 +0,0 @@ -/* -CanvasJS React Charts - https://canvasjs.com/ -Copyright 2022 fenopix - ---------------------- License Information -------------------- -CanvasJS is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details. -https://canvasjs.com/license/ - -*/ - -var React = require('react'); -var CanvasJS = require('./canvasjs.min'); -CanvasJS = CanvasJS.Chart ? CanvasJS : window.CanvasJS; - -class CanvasJSChart extends React.Component { - static _cjsContainerId = 0 - constructor(props) { - super(props); - this.options = props.options ? props.options : {}; - this.containerProps = props.containerProps ? { ...props.containerProps } : { width: "100%", position: "relative" }; - this.containerProps.height = props.containerProps && props.containerProps.height ? props.containerProps.height : this.options.height ? this.options.height + "px" : "400px"; - this.chartContainerId = "canvasjs-react-chart-container-" + CanvasJSChart._cjsContainerId++; - } - componentDidMount() { - //Create Chart and Render - this.chart = new CanvasJS.Chart(this.chartContainerId, this.options); - this.chart.render(); - - if (this.props.onRef) - this.props.onRef(this.chart); - } - shouldComponentUpdate(nextProps, nextState) { - //Check if Chart-options has changed and determine if component has to be updated - return !(nextProps.options === this.options); - } - componentDidUpdate() { - //Update Chart Options & Render - this.chart.options = this.props.options; - this.chart.render(); - } - componentWillUnmount() { - //Destroy chart and remove reference - if (this.chart) - this.chart.destroy(); - - if (this.props.onRef) - this.props.onRef(undefined); - } - render() { - //return React.createElement('div', { id: this.chartContainerId, style: this.containerProps }); - return
- } -} - -var CanvasJSReact = { - CanvasJSChart: CanvasJSChart, - CanvasJS: CanvasJS -}; - -export default CanvasJSReact; \ No newline at end of file diff --git a/src/libs/canvasjs/instruction.txt b/src/libs/canvasjs/instruction.txt deleted file mode 100644 index 6e4fe1d6..00000000 --- a/src/libs/canvasjs/instruction.txt +++ /dev/null @@ -1,11 +0,0 @@ -For JavaScript Standalone Version - use canvasjs.min.js **ONLY** -For jQuery Version - use jquery.canvasjs.min.js **ONLY** - -In React - Save canvasjs.min.js **AND** canvasjs.react.js within source-folder of your React application ( src or src/assets or src/lib ) - -In Angular - Save canvasjs.min.js **AND** canvasjs.angular.component.ts within source-folder of your Angular application ( src or src/assets or src/lib ) - -In Vue.js - Save canvasjs.min.js **AND** CanvasJSVueComponent.vue within source-folder of your Vue.js application ( src or src/assets or src/lib ) \ No newline at end of file diff --git a/src/libs/canvasjs/jquery.canvasjs.min.js b/src/libs/canvasjs/jquery.canvasjs.min.js deleted file mode 100644 index 28eb3735..00000000 --- a/src/libs/canvasjs/jquery.canvasjs.min.js +++ /dev/null @@ -1,976 +0,0 @@ -/* - CanvasJS jQuery Charting Plugin - https://canvasjs.com/ - Copyright 2022 fenopix - - --------------------- License Information -------------------- - CanvasJS is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details. - https://canvasjs.com/license/ - -*/ -/*tslint:disable*/ -/*eslint-disable*/ -/*jshint ignore:start*/ -(function(b,c,d,e){b.fn.CanvasJSChart=function(a){if(a){var b=this.first();a=new CanvasJS.Chart(this[0],a);b.children(".canvasjs-chart-container").data("canvasjsChartRef",a);a.render();return this}return this.first().children(".canvasjs-chart-container").data("canvasjsChartRef")}})(jQuery,window,document); - -/* - CanvasJS HTML5 & JavaScript Charts - v3.7.3 GA - https://canvasjs.com/ - Copyright 2022 fenopix - - --------------------- License Information -------------------- - CanvasJS is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details. - https://canvasjs.com/license/ - -*/ -(function(){function pa(h,m){h.prototype=db(m.prototype);h.prototype.constructor=h;h.base=m.prototype}function db(h){function m(){}m.prototype=h;return new m}function Wa(h,m,B){"millisecond"===B?h.setMilliseconds(h.getMilliseconds()+1*m):"second"===B?h.setSeconds(h.getSeconds()+1*m):"minute"===B?h.setMinutes(h.getMinutes()+1*m):"hour"===B?h.setHours(h.getHours()+1*m):"day"===B?h.setDate(h.getDate()+1*m):"week"===B?h.setDate(h.getDate()+7*m):"month"===B?h.setMonth(h.getMonth()+1*m):"year"===B&&h.setFullYear(h.getFullYear()+ -1*m);return h}function Z(h,m){var B=!1;0>h&&(B=!0,h*=-1);h=""+h;for(m=m?m:1;h.length>16).toString(16),B=((h&65280)>>8).toString(16);h=((h&255)>>0).toString(16);m=2>m.length?"0"+m:m;B=2>B.length?"0"+B:B;h=2>h.length?"0"+h:h;return"#"+m+B+h}function eb(h,m){var B=this.length>>>0,r=Number(m)||0,r=0>r?Math.ceil(r):Math.floor(r); -for(0>r&&(r+=B);r=(new Date).getTime()- -h._dropDownCloseTime.getTime()||(h._dropdownMenu.style.display="block",h._menuButton.blur(),h._dropdownMenu.focus())},h.allDOMEventHandlers,!0);K(h._menuButton,"mousemove",function(){m||(W(h._menuButton,{backgroundColor:h.toolbar.itemBackgroundColorOnHover,color:h.toolbar.fontColorOnHover}),0>=navigator.userAgent.search("MSIE")&&W(h._menuButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},h.allDOMEventHandlers,!0);K(h._menuButton,"mouseout",function(){m||(W(h._menuButton,{backgroundColor:h.toolbar.itemBackgroundColor, -color:h.toolbar.fontColor}),0>=navigator.userAgent.search("MSIE")&&W(h._menuButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},h.allDOMEventHandlers,!0)}if(h.exportEnabled&&h._dropdownMenu){W(h._dropdownMenu,{backgroundColor:h.toolbar.itemBackgroundColor,color:h.toolbar.fontColor});for(var B=h._dropdownMenu.childNodes,r=[h._cultureInfo.printText,h._cultureInfo.saveJPGText,h._cultureInfo.savePNGText],ta=0;taB;B++)if(h[B]!==h[B+4]|h[B]!==h[B+8]|h[B]!==h[B+12]){m=!1;break}return m? -h[0]<<16|h[1]<<8|h[2]:0}function ma(h,m,B){return h in m?m[h]:B[h]}function Ma(h,m,B){if(w&&$a){var r=h.getContext("2d");Na=r.webkitBackingStorePixelRatio||r.mozBackingStorePixelRatio||r.msBackingStorePixelRatio||r.oBackingStorePixelRatio||r.backingStorePixelRatio||1;la=Ra/Na;h.width=m*la;h.height=B*la;Ra!==Na&&(h.style.width=m+"px",h.style.height=B+"px",r.scale(la,la))}else h.width=m,h.height=B}function ib(h){if(!jb){var m=!1,B=!1;"undefined"===typeof qa.Chart.creditHref?(h.creditHref=ia("iuuqr;..b`ow`rkr/bnl."), -h.creditText=ia("B`ow`rKR/bnl")):(m=h.updateOption("creditText"),B=h.updateOption("creditHref"));if(h.creditHref&&h.creditText){h._creditLink||(h._creditLink=document.createElement("a"),h._creditLink.setAttribute("class","canvasjs-chart-credit"),h._creditLink.setAttribute("title","JavaScript Charts"),W(h._creditLink,{outline:"none",margin:"0px",position:"absolute",right:"2px",top:h.height-14+"px",color:"dimgrey",textDecoration:"none",fontSize:"11px",fontFamily:"Calibri, Lucida Grande, Lucida Sans Unicode, Arial, sans-serif"}), -h._creditLink.setAttribute("tabIndex",-1),h._creditLink.setAttribute("target","_blank"));if(0===h.renderCount||m||B)h._creditLink.setAttribute("href",h.creditHref),h._creditLink.innerHTML=h.creditText;h._creditLink&&h.creditHref&&h.creditText?(h._creditLink.parentElement||h._canvasJSContainer.appendChild(h._creditLink),h._creditLink.style.top=h.height-14+"px"):h._creditLink.parentElement&&h._canvasJSContainer.removeChild(h._creditLink)}}}function sa(h,m){Ha&&(this.canvasCount|=0,window.console.log(++this.canvasCount)); -var B=document.createElement("canvas");B.setAttribute("class","canvasjs-chart-canvas");Ma(B,h,m);w||"undefined"===typeof G_vmlCanvasManager||G_vmlCanvasManager.initElement(B);return B}function W(h,m){for(var B in m)h.style[B]=m[B]}function va(h,m,B){m.getAttribute("state")||(m.style.backgroundColor=h.toolbar.itemBackgroundColor,m.style.color=h.toolbar.fontColor,m.style.border="none",W(m,{WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"}));m.getAttribute("state")!== -B&&(m.setAttribute("state",B),m.setAttribute("type","button"),W(m,{padding:"5px 12px",cursor:"pointer","float":"left",width:"40px",height:"25px",outline:"0px",verticalAlign:"baseline",lineHeight:"0"}),m.setAttribute("title",h._cultureInfo[B+"Text"]),m.innerHTML=""+h._cultureInfo[B+"Text"]+"",W(m.childNodes[0],{height:"95%",pointerEvents:"none"}))}function La(){for(var h=null,m=0;md?"a":"p";case "tt":return 12>d?"am":"pm";case "T":return 12>d?"A":"P";case "TT":return 12>d?"AM":"PM";case "K":return U?"UTC":(String(E).match(S)|| -[""]).pop().replace(A,"");case "z":return(0h?!0:!1;w&&(h*=-1);var v=r?r.decimalSeparator:".",S=r?r.digitGroupSeparator:",",A="";m=String(m);var A=1,E=r="",J=-1,O=[],R=[],P=0,K=0,I=0,U=!1,W= -0,E=m.match(/"[^"]*"|'[^']*'|[eE][+-]*[0]+|[,]+[.]|\u2030|./g);m=null;for(var N=0;E&&NJ)J=N;else{if("%"===m)A*=100;else if("\u2030"===m){A*=1E3;continue}else if(","===m[0]&&"."===m[m.length-1]){A/=Math.pow(1E3,m.length-1);J=N+m.length-1;continue}else"E"!==m[0]&&"e"!==m[0]||"0"!==m[m.length-1]||(U=!0);0>J?(O.push(m),"#"===m||"0"===m?P++:","===m&&I++):(R.push(m),"#"!==m&&"0"!==m||K++)}U&&(m=Math.floor(h),E=-Math.floor(Math.log(h)/Math.LN10+1),W=0===h?0:0===m?-(P+E): -String(m).length-P,A/=Math.pow(10,W));0>J&&(J=N);A=(h*A).toFixed(K);m=A.split(".");A=(m[0]+"").split("");h=(m[1]+"").split("");A&&"0"===A[0]&&A.shift();for(U=E=N=K=J=0;0W?m.replace("+","").replace("-",""):m.replace("-",""),r+=m.replace(/[0]+/,function(a){return Z(W,a.length)}));S="";for(O=!1;0W?m.replace("+","").replace("-",""):m.replace("-",""),S+=m.replace(/[0]+/,function(a){return Z(W,a.length)}));r+=(O?v:"")+S;return w?"-"+r:r},Oa=function(h){var m=0,r=0;h=h||window.event;h.offsetX||0===h.offsetX?(m=h.offsetX,r=h.offsetY):h.layerX||0==h.layerX?(m=h.layerX,r=h.layerY):(m=h.pageX-h.target.offsetLeft,r=h.pageY-h.target.offsetTop);return{x:m,y:r}},$a=!0,Ra=window.devicePixelRatio|| -1,Na=1,la=$a?Ra/Na:1,ea=function(h,m,r,w,v,E,A,J,P,O,R,U,K){"undefined"===typeof K&&(K=1);A=A||0;J=J||"black";var I=15m)v=E-1;else break}r>m&&1E&&(A=m.pop(),w-=A.height,v=J)}this._wrappedText={lines:m,width:v,height:w};this.width=v+(this.leftPadding+this.rightPadding);this.height=w+(this.topPadding+this.bottomPadding);this.ctx.font=r};ja.prototype._getFontString=function(){var h;h=""+(this.fontStyle?this.fontStyle+" ": -"");h+=this.fontWeight?this.fontWeight+" ":"";h+=this.fontSize?this.fontSize+"px ":"";var m=this.fontFamily?this.fontFamily+"":"";!w&&m&&(m=m.split(",")[0],"'"!==m[0]&&'"'!==m[0]&&(m="'"+m+"'"));return h+=m};pa(Ta,V);pa(ya,V);ya.prototype.setLayout=function(){if(this.text){var h=this.dockInsidePlotArea?this.chart.plotArea:this.chart,m=h.layoutManager.getFreeSpace(),w=m.x1,v=m.y1,E=0,J=0,A=this.chart._menuButton&&this.chart.exportEnabled&&"top"===this.verticalAlign?22:0,I,K;"top"===this.verticalAlign|| -"bottom"===this.verticalAlign?(null===this.maxWidth&&(this.maxWidth=m.width-4-A*("center"===this.horizontalAlign?2:1)),J=0.5*m.height-this.margin-2,E=0):"center"===this.verticalAlign&&("left"===this.horizontalAlign||"right"===this.horizontalAlign?(null===this.maxWidth&&(this.maxWidth=m.height-4),J=0.5*m.width-this.margin-2):"center"===this.horizontalAlign&&(null===this.maxWidth&&(this.maxWidth=m.width-4),J=0.5*m.height-4));var O;r(this.padding)||"number"!==typeof this.padding?r(this.padding)||"object"!== -typeof this.padding||(O=this.padding.top?this.padding.top:this.padding.bottom?this.padding.bottom:0,O+=this.padding.bottom?this.padding.bottom:this.padding.top?this.padding.top:0):O=2*this.padding;this.wrap||(J=Math.min(J,1.5*this.fontSize+O));J=new ja(this.ctx,{fontSize:this.fontSize,fontFamily:this.fontFamily,fontColor:this.fontColor,fontStyle:this.fontStyle,fontWeight:this.fontWeight,horizontalAlign:this.horizontalAlign,textAlign:this.horizontalAlign,verticalAlign:this.verticalAlign,borderColor:this.borderColor, -borderThickness:this.borderThickness,backgroundColor:this.backgroundColor,maxWidth:this.maxWidth,maxHeight:J,cornerRadius:this.cornerRadius,text:this.text,padding:this.padding,textBaseline:"top"});O=J.measureText();"top"===this.verticalAlign||"bottom"===this.verticalAlign?("top"===this.verticalAlign?(v=m.y1+2,K="top"):"bottom"===this.verticalAlign&&(v=m.y2-2-O.height,K="bottom"),"left"===this.horizontalAlign?w=m.x1+2:"center"===this.horizontalAlign?w=m.x1+m.width/2-O.width/2:"right"===this.horizontalAlign&& -(w=m.x2-2-O.width-A),I=this.horizontalAlign,this.width=O.width,this.height=O.height):"center"===this.verticalAlign&&("left"===this.horizontalAlign?(w=m.x1+2,v=m.y2-2-(this.maxWidth/2-O.width/2),E=-90,K="left",this.width=O.height,this.height=O.width):"right"===this.horizontalAlign?(w=m.x2-2,v=m.y1+2+(this.maxWidth/2-O.width/2),E=90,K="right",this.width=O.height,this.height=O.width):"center"===this.horizontalAlign&&(v=h.y1+(h.height/2-O.height/2),w=h.x1+(h.width/2-O.width/2),K="center",this.width=O.width, -this.height=O.height),I="center");J.x=w;J.y=v;J.angle=E;J.horizontalAlign=I;this._textBlock=J;h.layoutManager.registerSpace(K,{width:this.width+("left"===K||"right"===K?this.margin+2:0),height:this.height+("top"===K||"bottom"===K?this.margin+2:0)});this.bounds={x1:w,y1:v,x2:w+this.width,y2:v+this.height};this.ctx.textBaseline="top"}};ya.prototype.render=function(){this._textBlock&&this._textBlock.render(!0)};pa(Ia,V);Ia.prototype.setLayout=ya.prototype.setLayout;Ia.prototype.render=ya.prototype.render; -Ua.prototype.get=function(h,m){var r=null;0a[f].x&&0D?{x:a[s].x+D/3,y:a[s].y+b/3}:{x:a[s].x,y:a[s].y+b/9};s=e;f=0===s?0:s-1;l=s===a.length-1?s:s+1;b=Math.abs((a[l].x-a[f].x)/(0===a[s].x-a[f].x?0.01:a[s].x-a[f].x))*(d-1)/2+1;D=(a[l].x-a[f].x)/b;b=(a[l].y-a[f].y)/b;c[c.length]=a[s].x>a[f].x&&0D?{x:a[s].x-D/3,y:a[s].y-b/3}:{x:a[s].x,y:a[s].y-b/9};c[c.length]=a[e]}return c}function E(a,d,c,b,e,f,l,s,D,k){var n=0;k? -(l.color=f,s.color=f):k=1;n=D?Math.abs(e-c):Math.abs(b-d);n=0this.labelAngle?this.labelAngle-=180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360);this.options.scaleBreaks&&(this.scaleBreaks=new X(this.chart, -this.options.scaleBreaks,++this.chart._eventManager.lastObjectId,this));this.stripLines=[];if(this.options.stripLines&&0=this._appliedBreaks[a+1].startValue&&(this._appliedBreaks[a].endValue=Math.max(this._appliedBreaks[a].endValue,this._appliedBreaks[a+1].endValue),window.console&&window.console.log("CanvasJS Error: Breaks "+a+" and "+(a+1)+" are overlapping."),this._appliedBreaks.splice(a,2),a--)}}function $(a,d,c,b,e,f){$.base.constructor.call(this,"Break",d,c,b,f);this.id=e;this.chart=a;this.ctx=this.chart.ctx;this.scaleBreaks=f;this.optionsName= -d;this.isOptionsInArray=!0;this.type=c.type?this.type:f.type;this.fillOpacity=r(c.fillOpacity)?f.fillOpacity:this.fillOpacity;this.lineThickness=r(c.lineThickness)?f.lineThickness:this.lineThickness;this.color=c.color?this.color:f.color;this.lineColor=c.lineColor?this.lineColor:f.lineColor;this.lineDashType=c.lineDashType?this.lineDashType:f.lineDashType;!r(this.startValue)&&this.startValue.getTime&&(this.startValue=this.startValue.getTime());!r(this.endValue)&&this.endValue.getTime&&(this.endValue= -this.endValue.getTime());"number"===typeof this.startValue&&("number"===typeof this.endValue&&this.endValue=navigator.userAgent.search("MSIE")&&W(a._zoomButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers);K(this._zoomButton,"mouseout",function(){d||(W(a._zoomButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&W(a._zoomButton.childNodes[0],{WebkitFilter:"invert(0%)", -filter:"invert(0%)"}))},this.allDOMEventHandlers)}this._resetButton?(W(this._resetButton,{borderRight:this.toolbar.buttonBorderThickness+"px solid "+this.toolbar.buttonBorderColor,backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor}),this._resetButton.title=this._cultureInfo.resetText):(d=!1,ua(this._resetButton=document.createElement("button")),va(this,this._resetButton,"reset"),this._resetButton.style.borderRight=(this.exportEnabled?this.toolbar.buttonBorderThickness:0)+"px solid "+ -this.toolbar.buttonBorderColor,this._toolBar.appendChild(this._resetButton),K(this._resetButton,"touchstart",function(a){d=!0},this.allDOMEventHandlers),K(this._resetButton,"click",function(){a.toolTip.hide();a.toolTip&&a.toolTip.enabled&&a.toolTip.dispatchEvent("hidden",{chart:a,toolTip:a.toolTip},a.toolTip);a.zoomEnabled||a.panEnabled?(a.zoomEnabled=!0,a.panEnabled=!1,va(a,a._zoomButton,"pan"),a._defaultCursor="default",a.overlaidCanvas.style.cursor=a._defaultCursor):(a.zoomEnabled=!1,a.panEnabled= -!1);if(a.sessionVariables.axisX)for(var b=0;b=navigator.userAgent.search("MSIE")&&W(a._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"});ua(a._zoomButton,a._resetButton);a.stockChart&&(a.stockChart._rangeEventParameter={stockChart:a.stockChart,source:"chart",index:a.stockChart.charts.indexOf(a),minimum:null, -maximum:null});a._dispatchRangeEvent("rangeChanging","reset");a.stockChart&&(a.stockChart._rangeEventParameter.type="rangeChanging",a.stockChart.dispatchEvent("rangeChanging",a.stockChart._rangeEventParameter,a.stockChart));a.render();a.syncCharts&&a.syncCharts(null,null);a._dispatchRangeEvent("rangeChanged","reset");a.stockChart&&(a.stockChart._rangeEventParameter.type="rangeChanged",a.stockChart.dispatchEvent("rangeChanged",a.stockChart._rangeEventParameter,a.stockChart))},this.allDOMEventHandlers), -K(this._resetButton,"mousemove",function(){d||(W(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColorOnHover,color:a.toolbar.fontColorOnHover,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&W(a._resetButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers),K(this._resetButton,"mouseout",function(){d||(W(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:"0.4s",WebkitTransition:"0.4s"}), -0>=navigator.userAgent.search("MSIE")&&W(a._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},this.allDOMEventHandlers),this.overlaidCanvas.style.cursor=a._defaultCursor);this.zoomEnabled||this.panEnabled||(this._zoomButton?(a._zoomButton.getAttribute("state")===a._cultureInfo.zoomText?(this.panEnabled=!0,this.zoomEnabled=!1):(this.zoomEnabled=!0,this.panEnabled=!1),La(a._zoomButton,a._resetButton)):(this.zoomEnabled=!0,this.panEnabled=!1))}else this.panEnabled=this.zoomEnabled= -!1;hb(this);"none"!==this._toolBar.style.display&&this._zoomButton&&(this.panEnabled?va(a,a._zoomButton,"zoom"):va(a,a._zoomButton,"pan"),a._resetButton.getAttribute("state")!==a._cultureInfo.resetText&&va(a,a._resetButton,"reset"));this.options.toolTip&&this.toolTip.options!==this.options.toolTip&&(this.toolTip.options=this.options.toolTip);for(var c in this.toolTip.options)this.toolTip.options.hasOwnProperty(c)&&this.toolTip.updateOption(c)};m.prototype._updateSize=function(){var a;a=[this.canvas, -this.overlaidCanvas,this._eventManager.ghostCanvas];var d=0,c=0;this.options.width?d=this.width:this.width=d=0b.linkedDataSeriesIndex||b.linkedDataSeriesIndex>=this.options.data.length||"number"!==typeof b.linkedDataSeriesIndex||"error"===this.options.data[b.linkedDataSeriesIndex].type)&&(b.linkedDataSeriesIndex=null);null===b.name&& -(b.name="DataSeries "+a);null===b.color?1a&&"undefined"!==typeof D.startTimePercent?a>=D.startTimePercent&&D.animationCallback(D.easingFunction(a-D.startTimePercent,0,1,1-D.startTimePercent),D): -D.animationCallback(D.easingFunction(a,0,1,1),D);n.dispatchEvent("dataAnimationIterationEnd",{chart:n})},function(){c=[];for(var a=0;aa.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f=!1,l=0;lc.max&&(c.max=b);ed.max&&"number"===typeof e&&(d.max=e);if(0t&&(t=1/t);c.minDiff>t&&1!==t&&(c.minDiff=t)}else t=b-s.dataPoints[D-1].x,0>t&&(t*=-1),c.minDiff>t&&0!==t&&(c.minDiff=t);null!==e&&null!==s.dataPoints[D-1].y&&(a.axisY.logarithmic?(t=e/s.dataPoints[D-1].y,1>t&&(t=1/t),d.minDiff>t&&1!==t&&(d.minDiff=t)):(t=e-s.dataPoints[D-1].y,0>t&&(t*=-1),d.minDiff>t&&0!==t&&(d.minDiff=t)))}if(bg&& -!n)n=!0;else if(b>g&&n)continue;s.dataPoints[D].label&&(a.axisX.labels[b]=s.dataPoints[D].label);bc.viewPortMax&&(c.viewPortMax=b);null===e?c.viewPortMin===b&&pd.viewPortMax&&"number"===typeof e&&(d.viewPortMax=e))}}s.axisX.valueType=s.xValueType=f?"dateTime":"number"}};m.prototype._processStackedPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var d= -a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f=!1,l=[],s=[],D=Infinity,k=-Infinity,n=0;nc.max&&(c.max=b);if(0m&&(m=1/m);c.minDiff>m&&1!==m&&(c.minDiff=m)}else m=b-p.dataPoints[q-1].x,0>m&&(m*=-1),c.minDiff>m&&0!==m&&(c.minDiff=m);null!==e&&null!==p.dataPoints[q-1].y&&(a.axisY.logarithmic?0m&&(m=1/m),d.minDiff>m&&1!==m&&(d.minDiff=m)):(m=e-p.dataPoints[q-1].y,0>m&&(m*=-1),d.minDiff>m&&0!==m&&(d.minDiff=m)))}if(bu&&!t)t=!0;else if(b>u&&t)continue;p.dataPoints[q].label&&(a.axisX.labels[b]=p.dataPoints[q].label);bc.viewPortMax&&(c.viewPortMax=b);null===p.dataPoints[q].y?c.viewPortMin===b&&hd.max&&(d.max=a),qc.viewPortMax|| -(ad.viewPortMax&&(d.viewPortMax=a)));for(q in s)s.hasOwnProperty(q)&&!isNaN(q)&&(a=s[q],ad.max&&(d.max=Math.max(a,k)),qc.viewPortMax||(ad.viewPortMax&&(d.viewPortMax=Math.max(a,k))))}};m.prototype._processStacked100PlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f=!1,l=!1,s=!1,D=[],k=0;kc.max&&(c.max=b);if(0u&&(u=1/u);c.minDiff>u&&1!==u&&(c.minDiff=u)}else u=b-n.dataPoints[p-1].x,0>u&&(u*=-1),c.minDiff>u&&0!==u&&(c.minDiff=u);r(e)||null===n.dataPoints[p-1].y||(a.axisY.logarithmic?0u&&(u=1/u),d.minDiff>u&&1!==u&&(d.minDiff=u)):(u=e-n.dataPoints[p-1].y,0>u&&(u*=-1),d.minDiff>u&&0!==u&&(d.minDiff=u)))}if(bm&&!g)g=!0;else if(b>m&&g)continue;n.dataPoints[p].label&&(a.axisX.labels[b]=n.dataPoints[p].label); -bc.viewPortMax&&(c.viewPortMax=b);null===e?c.viewPortMin===b&&te&&(s=!0),D[b]=D[b]?D[b]+Math.abs(e):Math.abs(e))}}n.axisX.valueType=n.xValueType=f?"dateTime":"number"}a.axisY.logarithmic?(d.max=r(d.viewPortMax)?99*Math.pow(a.axisY.logarithmBase,-0.05):Math.max(d.viewPortMax,99*Math.pow(a.axisY.logarithmBase,-0.05)),d.min= -r(d.viewPortMin)?1:Math.min(d.viewPortMin,1)):l&&!s?(d.max=r(d.viewPortMax)?99:Math.max(d.viewPortMax,99),d.min=r(d.viewPortMin)?1:Math.min(d.viewPortMin,1)):l&&s?(d.max=r(d.viewPortMax)?99:Math.max(d.viewPortMax,99),d.min=r(d.viewPortMin)?-99:Math.min(d.viewPortMin,-99)):!l&&s&&(d.max=r(d.viewPortMax)?-1:Math.max(d.viewPortMax,-1),d.min=r(d.viewPortMin)?-99:Math.min(d.viewPortMin,-99));d.viewPortMin=d.min;d.viewPortMax=d.max;a.dataPointYSums=D}};m.prototype._processMultiYPlotUnit=function(a){if(a.dataSeriesIndexes&& -!(1>a.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f,l,s=!1,D=0;Dc.max&&(c.max=b);fd.max&&(d.max=l);0t&&(t=1/t),c.minDiff>t&&1!==t&&(c.minDiff=t)):(t=b-k.dataPoints[n-1].x,0>t&&(t*=-1),c.minDiff>t&&0!==t&&(c.minDiff=t)),e&&(null!==e[0]&&k.dataPoints[n-1].y&&null!== -k.dataPoints[n-1].y[0])&&(a.axisY.logarithmic?(t=e[0]/k.dataPoints[n-1].y[0],1>t&&(t=1/t),d.minDiff>t&&1!==t&&(d.minDiff=t)):(t=e[0]-k.dataPoints[n-1].y[0],0>t&&(t*=-1),d.minDiff>t&&0!==t&&(d.minDiff=t))));if(!(bu&&!q)q=!0;else if(b>u&&q)continue;k.dataPoints[n].label&&(a.axisX.labels[b]=k.dataPoints[n].label);bc.viewPortMax&&(c.viewPortMax=b);if(c.viewPortMin===b&&e)for(r=0;rd.viewPortMax&&(d.viewPortMax=l))}}k.axisX.valueType=k.xValueType=s?"dateTime":"number"}};m.prototype._processSpecificPlotUnit=function(a){if("waterfall"===a.type&&a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f=!1,l=0;lc.max&&(c.max=b),s.dataPointEOs[D].cumulativeSumd.max&&(d.max=s.dataPointEOs[D].cumulativeSum),0p&&(p=1/p),c.minDiff>p&&1!==p&&(c.minDiff=p)):(p=b-s.dataPoints[D-1].x,0>p&& -(p*=-1),c.minDiff>p&&0!==p&&(c.minDiff=p)),null!==e&&null!==s.dataPoints[D-1].y&&(a.axisY.logarithmic?(e=s.dataPointEOs[D].cumulativeSum/s.dataPointEOs[D-1].cumulativeSum,1>e&&(e=1/e),d.minDiff>e&&1!==e&&(d.minDiff=e)):(e=s.dataPointEOs[D].cumulativeSum-s.dataPointEOs[D-1].cumulativeSum,0>e&&(e*=-1),d.minDiff>e&&0!==e&&(d.minDiff=e)))),!(bg&&!n)n=!0;else if(b>g&&n)continue;s.dataPoints[D].label&&(a.axisX.labels[b]=s.dataPoints[D].label);bc.viewPortMax&&(c.viewPortMax=b);0d.viewPortMax&&(d.viewPortMax=s.dataPointEOs[D-1].cumulativeSum));s.dataPointEOs[D].cumulativeSumd.viewPortMax&&(d.viewPortMax=s.dataPointEOs[D].cumulativeSum)}s.axisX.valueType=s.xValueType=f?"dateTime":"number"}}; -m.prototype.calculateAutoBreaks=function(){function a(a,b,c,e){if(e)return c=Math.pow(Math.min(c*a/b,b/a),0.2),1>=c&&(c=Math.pow(1>a?1/a:Math.min(b/a,a),0.25)),{startValue:a*c,endValue:b/c};c=0.2*Math.min(c-b+a,b-a);0>=c&&(c=0.25*Math.min(b-a,Math.abs(a)));return{startValue:a+c,endValue:b-c}}function d(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){var b=a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks,c=a.axisY.scaleBreaks&&a.axisY.scaleBreaks.autoCalculate&& -1<=a.axisY.scaleBreaks.maxNumberOfAutoBreaks;if(b||c)for(var d=a.axisY.dataInfo,f=a.axisX.dataInfo,g,l=f.min,k=f.max,n=d.min,p=d.max,f=f._dataRanges,d=d._dataRanges,q,s=0,D=0;Dh.dataPoints.length))for(s=0;sf[q].max&&(f[q].max=g)),c){var m=(p+1-n)*Math.max(parseFloat(a.axisY.scaleBreaks.collapsibleThreshold)||10,10)/100;if((g="waterfall"===a.type?h.dataPointEOs[s].cumulativeSum:h.dataPoints[s].y)&&g.length)for(var w=0;wd[q].max&&(d[q].max=g[w]);else r(g)||(q=Math.floor((g-n)/m),gd[q].max&&(d[q].max=g))}}}}function c(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)&&a.axisX.scaleBreaks&& -a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks)for(var b=a.axisX.dataInfo,c=b.min,d=b.max,f=b._dataRanges,g,l=0,k=0;kn.dataPoints.length))for(l=0;lf[g].max&&(f[g].max= -b)}}for(var b,e=this,f=!1,l=0;ln[g].max&&(n[g].max=p)}delete this._axes[l].dataInfo.dataPointYPositiveSums}if(this._axes[l].dataInfo.dataPointYNegativeSums){q= -this._axes[l].dataInfo.dataPointYNegativeSums;n=k;for(s in q)q.hasOwnProperty(s)&&!isNaN(s)&&(p=-1*q[s],r(p)||(g=Math.floor((p-D)/b),pn[g].max&&(n[g].max=p)));delete this._axes[l].dataInfo.dataPointYNegativeSums}for(s=0;sb&&f.push({diff:p,start:n,end:D});break}else s++;if(this._axes[l].scaleBreaks.customBreaks)for(s=0;s=e.x1&&(a<=e.x2&&d>=e.y1&&d<=e.y2)&&(b=e.id)}return b};m.prototype.getAutoFontSize=mb;m.prototype.resetOverlayedCanvas= -function(){this.overlaidCanvasCtx.clearRect(0,0,this.width,this.height)};m.prototype.clearCanvas=lb;m.prototype.attachEvent=function(a){this._events.push(a)};m.prototype._touchEventHandler=function(a){if(a.changedTouches&&this.interactivityEnabled){var d=[],c=a.changedTouches,b=c?c[0]:a,e=null;switch(a.type){case "touchstart":case "MSPointerDown":d=["mousemove","mousedown"];this._lastTouchData=Oa(b);this._lastTouchData.time=new Date;break;case "touchmove":case "MSPointerMove":d=["mousemove"];break; -case "touchend":case "MSPointerUp":var f=this._lastTouchData&&this._lastTouchData.time?new Date-this._lastTouchData.time:0,d="touchstart"===this._lastTouchEventType||"MSPointerDown"===this._lastTouchEventType||300>f?["mouseup","click"]:["mouseup"];break;default:return}if(!(c&&1f)this._lastTouchData.scroll=!0}catch(s){}this._lastTouchEventType= -a.type;if(this._lastTouchData.scroll&&this.zoomEnabled)this.isDrag&&this.resetOverlayedCanvas(),this.isDrag=!1;else for(c=0;c=e.x1&&d.x<=e.x2&&d.y>=e.y1&&d.y<=e.y2){b[c].call(b.context,d.x,d.y);"mousedown"===c&&!0===b.capture?(m.capturedEventParam=b,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.documentElement.addEventListener("mouseup",this._mouseEventHandler,!1)):"mouseup"===c&&(b.chart.overlaidCanvas.releaseCapture? -b.chart.overlaidCanvas.releaseCapture():document.documentElement.removeEventListener("mouseup",this._mouseEventHandler,!1));break}else b=null;a.target.style.cursor=b&&b.cursor?b.cursor:this._defaultCursor}c=this.plotArea;if(d.xc.x2||d.yc.y2){this.toolTip&&this.toolTip.enabled?(this.toolTip.hide(),this.toolTip.dispatchEvent("hidden",{chart:this,toolTip:this.toolTip},this.toolTip)):this.resetOverlayedCanvas();for(f=0;fc.maximum&&(f=c.viewportMaximum/c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum/f,c.sessionVariables.newViewportMaximum=c.viewportMaximum/f,l=!0):c.viewportMinimumc.maximum&&(f=c.viewportMaximum-c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum-f,c.sessionVariables.newViewportMaximum=c.viewportMaximum-f,l=!0);else if((!e||2Math.abs(c)&&(this.panEnabled||this.zoomEnabled)){this.toolTip.hide();this.toolTip&&this.toolTip.enabled&&this.toolTip.dispatchEvent("hidden",{chart:this,toolTip:this.toolTip},this.toolTip);for(var s=0;sg)var t=g,g=q,q=t;if(p.scaleBreaks)for(t=0;!f&&t=g;if(isFinite(p.dataInfo.minDiff))if(t=p.getApparentDifference(q,g,null,!0),!(f||!(this.panEnabled&&p.scaleBreaks&&p.scaleBreaks._appliedBreaks.length)&& -(p.logarithmic&&tp.maximum))D.push(p),n.push({val1:q,val2:g}),s=!0;else if(!e){s=!1;break}}return{isValid:s,axesWithValidRange:D,axesRanges:n}};m.prototype.preparePlotArea=function(){var a=this.plotArea;!w&&(0c.lineCoordinates.x2?d.x2:c.lineCoordinates.x2;a.y2=d.y2>d.y1?d.y2:c.lineCoordinates.y2;a.width=a.x2-a.x1;a.height=a.y2-a.y1}this.axisY2&&0c.lineCoordinates.x2? -d.x2:c.lineCoordinates.x2,a.y2=d.y2>d.y1?d.y2:c.lineCoordinates.y2,a.width=a.x2-a.x1,a.height=a.y2-a.y1)}else d=this.layoutManager.getFreeSpace(),a.x1=d.x1,a.x2=d.x2,a.y1=d.y1,a.y2=d.y2,a.width=d.width,a.height=d.height;w||(a.canvas.width=a.width,a.canvas.height=a.height,a.canvas.style.left=a.x1+"px",a.canvas.style.top=a.y1+"px",(0c.x2||n.point.yc.y2+1)continue}else if("rangearea"===p||"rangesplinearea"===p){if(n.dataPoint.xe.viewportMaximum||Math.max.apply(null,n.dataPoint.y) -f.viewportMaximum)continue}else if(0<=p.indexOf("line")||0<=p.indexOf("area")||0<=p.indexOf("bubble")||0<=p.indexOf("scatter")){if(n.dataPoint.xe.viewportMaximum||n.dataPoint.yf.viewportMaximum)continue}else if(0<=p.indexOf("column")||"waterfall"===p||"error"===p&&!n.axisSwapped){if(n.dataPoint.xe.viewportMaximum||n.bounds.y1>c.y2||n.bounds.y2e.viewportMaximum||n.bounds.x1>c.x2||n.bounds.x2e.viewportMaximum||Math.max.apply(null,n.dataPoint.y)f.viewportMaximum)continue}else if(n.dataPoint.xe.viewportMaximum)continue;l=s=2;"horizontal"===z?(D=h.width,k=h.height):(k=h.width,D=h.height);if("normal"=== -this.plotInfo.axisPlacement){if(0<=p.indexOf("line")||0<=p.indexOf("area"))x="auto",s=4;else if(0<=p.indexOf("stacked"))"auto"===x&&(x="inside");else if("bubble"===p||"scatter"===p)x="inside";q=n.point.x-("horizontal"===z?D/2:D/2-t/2);"inside"!==x?(e=c.y1,f=c.y2,0n.point.y)):(g=n.point.y+t/2+s+b,g>f-k&&(g="auto"===x?Math.min(n.point.y,f)+t/2-k-s:f+t/2-k,A=gf-k-s&&("bubble"===p||"scatter"===p)&&(g=Math.min(n.point.y+s,c.y2-k-s))),g=Math.min(g,f))}else 0<=p.indexOf("line")||0<=p.indexOf("area")|| -0<=p.indexOf("scatter")?(x="auto",l=4):0<=p.indexOf("stacked")?"auto"===x&&(x="inside"):"bubble"===p&&(x="inside"),g=n.point.y+t/2-k/2+s,"inside"!==x?(e=c.x1,f=c.x2,0>v?(q=n.point.x-("horizontal"===z?D:D-t/2)-l-b,qn.point.x)):(q=n.point.x+("horizontal"===z?0:t/2)+l+b,q>f-D-l-b&&(q="auto"===x?Math.min(n.point.x,f)-("horizontal"===z?D:D/2)-l:f-D-l,A=qv?Math.max(n.bounds.x1,c.x1)+t/2+l:Math.min(n.bounds.x2,c.x2)-D/2-l+("horizontal"===z?0:t/2):(Math.max(n.bounds.x1,c.x1)+Math.min(n.bounds.x2,c.x2))/2+("horizontal"===z?0:t/2),q=0>v?Math.max(n.point.x,b)-("horizontal"===z?D/2:0):Math.min(n.point.x,b)-D/2,q=Math.max(q,e));"vertical"===z&&(g+=k-t/2);h.x=q;h.y=g;h.render(!0);y&&("inside"!==x&&(0>p.indexOf("bar")&&("error"!==p||!n.axisSwapped)&&n.point.x>c.x1&&n.point.xp.indexOf("column")&&("error"!==p||n.axisSwapped)&&n.point.y>c.y1&& -n.point.y=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var e=this.plotArea;c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();for(var f=[],l,s=0;sa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!z)))if("number"!==typeof n[u].y)0n[u].y===a.axisY.reversed?1:-1,color:t})}c.stroke();w&&b.stroke()}}ba.drawMarkers(f);w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop", -a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),b.beginPath());c.restore();c.beginPath();return{source:d,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderStepLine=function(a){var d= -a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var e=this.plotArea;c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();for(var f=[],l,s=0;sa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!z)))if("number"!==typeof n[u].y)0< -u&&!(k.connectNullData||z||m)&&(c.stroke(),w&&b.stroke()),z=!0;else{var G=x;r=a.axisX.convertValueToPixel(r);x=a.axisY.convertValueToPixel(n[u].y);var C=k.dataPointIds[u];this._eventManager.objectMap[C]={id:C,objectType:"dataPoint",dataSeriesIndex:D,dataPointIndex:u,x1:r,y1:x};m||z?(!m&&k.connectNullData?(c.setLineDash&&(k.options.nullDataLineDashType||p===k.lineDashType&&k.lineDashType!==k.nullDataLineDashType)&&(c.stroke(),c.beginPath(),c.moveTo(l.x,l.y),p=k.nullDataLineDashType,c.setLineDash(q)), -c.lineTo(r,G),c.lineTo(r,x),w&&(b.lineTo(r,G),b.lineTo(r,x))):(c.beginPath(),c.moveTo(r,x),w&&(b.beginPath(),b.moveTo(r,x))),z=m=!1):(c.lineTo(r,G),w&&b.lineTo(r,G),c.lineTo(r,x),w&&b.lineTo(r,x),0==u%500&&(c.stroke(),c.beginPath(),c.moveTo(r,x),w&&(b.stroke(),b.beginPath(),b.moveTo(r,x))));l={x:r,y:x};un[u].y===a.axisY.reversed?1:-1,color:t})}c.stroke(); -w&&b.stroke()}}ba.drawMarkers(f);w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),b.beginPath());c.restore();c.beginPath();return{source:d,dest:this.plotArea.ctx, -animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderSpline=function(a){function d(a){a=v(a,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx;b.save(); -var f=this.plotArea;b.beginPath();b.rect(f.x1,f.y1,f.width,f.height);b.clip();for(var l=[],s=0;sa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!m)))if("number"!==typeof n[r].y)0n[r].y===a.axisY.reversed?1:-1,color:t});m=!1}d(x)}ba.drawMarkers(l);w&&(c.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(f.x1,f.y1,f.width,f.height),e.beginPath());b.restore();b.beginPath();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear, -animationBase:0}}};m.prototype.renderColumn=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=0,l,s,D,k=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,n=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width, -0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.dataPointWidth=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&f>n&&(f=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,n));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&nn&&(p=n);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(n=0;na.axisX.dataInfo.viewPortMax)&&"number"===typeof t[f].y){l=a.axisX.convertValueToPixel(D);s=a.axisY.convertValueToPixel(t[f].y);l=a.axisX.reversed?l+a.plotType.totalDataSeries*p/2-(a.previousDataSeriesCount+n)*p<<0:l-a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+n)*p<<0;var r=a.axisX.reversed?l-p<<0:l+p<<0,u;0<=t[f].y?u=k:(u=s,s=k);s>u&&(b=s,s=u,u=b);b=t[f].color?t[f].color:g._colorSet[f%g._colorSet.length];ea(c,a.axisX.reversed?r:l,s,a.axisX.reversed? -l:r,u,b,0,null,h&&(a.axisY.reversed?0>t[f].y:0<=t[f].y),(a.axisY.reversed?0<=t[f].y:0>t[f].y)&&h,!1,!1,g.fillOpacity);b=g.dataPointIds[f];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:f,x1:l,y1:s,x2:r,y2:u};b=P(b);w&&ea(this._eventManager.ghostCtx,a.axisX.reversed?r:l,s,a.axisX.reversed?l:r,u,b,0,null,!1,!1,!1,!1);(t[f].indexLabel||g.indexLabel||t[f].indexLabelFormatter||g.indexLabelFormatter)&&this._indexLabels.push({chartType:"column",dataPoint:t[f], -dataSeries:g,point:{x:l+(r-l)/2,y:0>t[f].y===a.axisY.reversed?s:u},direction:0>t[f].y===a.axisY.reversed?1:-1,bounds:{x1:l,y1:Math.min(s,u),x2:r,y2:Math.max(s,u)},color:b})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.yScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:ka.axisY.bounds.y2?a.axisY.bounds.y2:k}}};m.prototype.renderStackedColumn=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea, -f=[],l=[],s=[],D=[],k=0,n,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(t)/ -Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>g&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&gg&&(t=g);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1, -e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(g=0;ga.axisX.dataInfo.viewPortMax)&&"number"===typeof u[k].y){n=a.axisX.convertValueToPixel(b);n=n-a.plotType.plotUnits.length*t/2+a.index*t<<0;var x=n+t<<0,z;if(a.axisY.logarithmic|| -a.axisY.scaleBreaks&&0=u[k].y)D[b]=u[k].y+(D[b]?D[b]:0),z=a.axisY.convertValueToPixel(D[b]),p="undefined"!==typeof l[b]?l[b]:q,l[b]=z;else if(p=a.axisY.convertValueToPixel(u[k].y),0<=u[k].y){var G="undefined"!==typeof f[b]?f[b]:0;p-=G;z=q-G;f[b]=G+(z-p)}else G= -l[b]?l[b]:0,z=p+G,p=q+G,l[b]=G+(z-p);b=u[k].color?u[k].color:r._colorSet[k%r._colorSet.length];ea(c,n,a.axisY.reversed?z:p,x,a.axisY.reversed?p:z,b,0,null,m&&(a.axisY.reversed?0>u[k].y:0<=u[k].y),(a.axisY.reversed?0<=u[k].y:0>u[k].y)&&m,!1,!1,r.fillOpacity);b=r.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:k,x1:n,y1:p,x2:x,y2:z};b=P(b);w&&ea(this._eventManager.ghostCtx,n,p,x,z,b,0,null,!1,!1,!1,!1);(u[k].indexLabel||r.indexLabel||u[k].indexLabelFormatter|| -r.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn",dataPoint:u[k],dataSeries:r,point:{x:n+(x-n)/2,y:0<=u[k].y?p:z},direction:0>u[k].y===a.axisY.reversed?1:-1,bounds:{x1:n,y1:Math.min(p,z),x2:x,y2:Math.max(p,z)},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height), -this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.yScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:qa.axisY.bounds.y2?a.axisY.bounds.y2:q}}};m.prototype.renderStackedColumn100=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx: -d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=[],l=[],s=[],D=[],k=0,n,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth? -this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(t)/Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>g&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&gg&&(t=g);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height); -c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(g=0;ga.axisX.dataInfo.viewPortMax)&&"number"===typeof u[k].y){n=a.axisX.convertValueToPixel(b);p=0!==a.dataPointYSums[b]? -100*(u[k].y/a.dataPointYSums[b]):0;n=n-a.plotType.plotUnits.length*t/2+a.index*t<<0;var x=n+t<<0,z;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=s[b])continue;p=a.axisY.convertValueToPixel(s[b]);z=f[b]?f[b]:q;f[b]=p}else if(a.axisY.scaleBreaks&&0=u[k].y)D[b]=p+("undefined"!==typeof D[b]?D[b]:0),z=a.axisY.convertValueToPixel(D[b]),p=l[b]?l[b]:q,l[b]=z; -else if(p=a.axisY.convertValueToPixel(p),0<=u[k].y){var G="undefined"!==typeof f[b]?f[b]:0;p-=G;z=q-G;a.dataSeriesIndexes.length-1===g&&1>=Math.abs(e.y1-p)&&(p=e.y1);f[b]=G+(z-p)}else G="undefined"!==typeof l[b]?l[b]:0,z=p+G,p=q+G,a.dataSeriesIndexes.length-1===g&&1>=Math.abs(e.y2-z)&&(z=e.y2),l[b]=G+(z-p);b=u[k].color?u[k].color:r._colorSet[k%r._colorSet.length];ea(c,n,a.axisY.reversed?z:p,x,a.axisY.reversed?p:z,b,0,null,m&&(a.axisY.reversed?0>u[k].y:0<=u[k].y),(a.axisY.reversed?0<=u[k].y:0>u[k].y)&& -m,!1,!1,r.fillOpacity);b=r.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:k,x1:n,y1:p,x2:x,y2:z};b=P(b);w&&ea(this._eventManager.ghostCtx,n,p,x,z,b,0,null,!1,!1,!1,!1);(u[k].indexLabel||r.indexLabel||u[k].indexLabelFormatter||r.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn100",dataPoint:u[k],dataSeries:r,point:{x:n+(x-n)/2,y:0<=u[k].y?p:z},direction:0>u[k].y===a.axisY.reversed?1:-1,bounds:{x1:n,y1:Math.min(p,z), -x2:x,y2:Math.max(p,z)},color:b})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d, -dest:this.plotArea.ctx,animationCallback:N.yScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:qa.axisY.bounds.y2?a.axisY.bounds.y2:q}}};m.prototype.renderBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=0,l,s,D,k=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth? -this.dataPointWidth:1,n=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&f>n&&(f= -Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,n));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&nn&&(p=n);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(n=0;na.axisX.dataInfo.viewPortMax)&&"number"===typeof t[f].y){s=a.axisX.convertValueToPixel(D);l=a.axisY.convertValueToPixel(t[f].y);s=a.axisX.reversed?s+a.plotType.totalDataSeries*p/2-(a.previousDataSeriesCount+n)*p<<0:s-a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+ -n)*p<<0;var r=a.axisX.reversed?s-p<<0:s+p<<0,u;0<=t[f].y?u=k:(u=l,l=k);b=t[f].color?t[f].color:g._colorSet[f%g._colorSet.length];ea(c,a.axisY.reversed?l:u,a.axisX.reversed?r:s,a.axisY.reversed?u:l,a.axisX.reversed?s:r,b,0,null,h,!1,!1,!1,g.fillOpacity);b=g.dataPointIds[f];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:f,x1:u,y1:s,x2:l,y2:r};b=P(b);w&&ea(this._eventManager.ghostCtx,u,a.axisX.reversed?r:s,l,a.axisX.reversed?s:r,b,0,null,!1,!1,!1,!1);(t[f].indexLabel|| -g.indexLabel||t[f].indexLabelFormatter||g.indexLabelFormatter)&&this._indexLabels.push({chartType:"bar",dataPoint:t[f],dataSeries:g,point:{x:0<=t[f].y?l:u,y:s+(r-s)/2},direction:0>t[f].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(u,l),y1:s,x2:Math.max(u,l),y2:r},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas, -0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.xScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:ka.axisY.bounds.x2?a.axisY.bounds.x2:k}}};m.prototype.renderStackedBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx, -c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=[],l=[],s=[],D=[],k=0,n,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth? -this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(t)/Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>g&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&gg&&(t=g);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height); -c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(g=0;ga.axisX.dataInfo.viewPortMax)&&"number"===typeof u[k].y){p=a.axisX.convertValueToPixel(b); -p=p-a.plotType.plotUnits.length*t/2+a.index*t<<0;var x=p+t<<0,z;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=u[k].y)D[b]=u[k].y+(D[b]?D[b]:0),n=l[b]?l[b]:q,l[b]=z=a.axisY.convertValueToPixel(D[b]);else if(n=a.axisY.convertValueToPixel(u[k].y),0<=u[k].y){var G=f[b]?f[b]:0;z=q+G;n+= -G;f[b]=G+(n-z)}else G=l[b]?l[b]:0,z=n-G,n=q-G,l[b]=G+(n-z);b=u[k].color?u[k].color:r._colorSet[k%r._colorSet.length];ea(c,a.axisY.reversed?n:z,p,a.axisY.reversed?z:n,x,b,0,null,m,!1,!1,!1,r.fillOpacity);b=r.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:k,x1:z,y1:p,x2:n,y2:x};b=P(b);w&&ea(this._eventManager.ghostCtx,z,p,n,x,b,0,null,!1,!1,!1,!1);(u[k].indexLabel||r.indexLabel||u[k].indexLabelFormatter||r.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar", -dataPoint:u[k],dataSeries:r,point:{x:0<=u[k].y?n:z,y:p+(x-p)/2},direction:0>u[k].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(z,n),y1:p,x2:Math.max(z,n),y2:x},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.xScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:qa.axisY.bounds.x2?a.axisY.bounds.x2:q}}};m.prototype.renderStackedBar100=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea, -f=[],l=[],s=[],D=[],k=0,n,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,g=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(t)/ -Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>g&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,g));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&gg&&(t=g);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1, -e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(g=0;ga.axisX.dataInfo.viewPortMax)&&"number"===typeof u[k].y){p=a.axisX.convertValueToPixel(b);var x;x=0!==a.dataPointYSums[b]?100*(u[k].y/a.dataPointYSums[b]):0;p=p-a.plotType.plotUnits.length* -t/2+a.index*t<<0;var z=p+t<<0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=s[b])continue;x=f[b]?f[b]:q;f[b]=n=a.axisY.convertValueToPixel(s[b])}else if(a.axisY.scaleBreaks&&0=u[k].y)D[b]=x+(D[b]?D[b]:0),n=l[b]?l[b]:q,l[b]=x=a.axisY.convertValueToPixel(D[b]);else if(n=a.axisY.convertValueToPixel(x),0<=u[k].y){var G=f[b]?f[b]:0;x=q+G;n+=G;a.dataSeriesIndexes.length-1===g&& -1>=Math.abs(e.x2-n)&&(n=e.x2);f[b]=G+(n-x)}else G=l[b]?l[b]:0,x=n-G,n=q-G,a.dataSeriesIndexes.length-1===g&&1>=Math.abs(e.x1-x)&&(x=e.x1),l[b]=G+(n-x);b=u[k].color?u[k].color:r._colorSet[k%r._colorSet.length];ea(c,a.axisY.reversed?n:x,p,a.axisY.reversed?x:n,z,b,0,null,m,!1,!1,!1,r.fillOpacity);b=r.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:k,x1:x,y1:p,x2:n,y2:z};b=P(b);w&&ea(this._eventManager.ghostCtx,x,p,n,z,b,0,null,!1,!1,!1,!1); -(u[k].indexLabel||r.indexLabel||u[k].indexLabelFormatter||r.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar100",dataPoint:u[k],dataSeries:r,point:{x:0<=u[k].y?n:x,y:p+(z-p)/2},direction:0>u[k].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(x,n),y1:p,x2:Math.max(x,n),y2:z},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&& -c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.xScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:qa.axisY.bounds.x2?a.axisY.bounds.x2:q}}};m.prototype.renderArea=function(a){var d, -c;function b(){G&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?z=x:0>a.axisY.viewportMaximum?z=s.y1:0=a.dataSeriesIndexes.length)){var l= -this._eventManager.ghostCtx,s=a.axisY.lineCoordinates,D=[],k=this.plotArea,n;f.save();w&&l.save();f.beginPath();f.rect(k.x1,k.y1,k.width,k.height);f.clip();w&&(l.beginPath(),l.rect(k.x1,k.y1,k.width,k.height),l.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax&&(!g.connectNullData||!ka)))if("number"!== -typeof t[h].y)g.connectNullData||(ka||d)||b(),ka=!0;else{r=a.axisX.convertValueToPixel(m);u=a.axisY.convertValueToPixel(t[h].y);d||ka?(!d&&g.connectNullData?(f.setLineDash&&(g.options.nullDataLineDashType||c===g.lineDashType&&g.lineDashType!==g.nullDataLineDashType)&&(d=r,c=u,r=n.x,u=n.y,b(),f.moveTo(n.x,n.y),r=d,u=c,G=n,c=g.nullDataLineDashType,f.setLineDash(M)),f.lineTo(r,u),w&&l.lineTo(r,u)):(f.beginPath(),f.moveTo(r,u),w&&(l.beginPath(),l.moveTo(r,u)),G={x:r,y:u}),ka=d=!1):(f.lineTo(r,u),w&&l.lineTo(r, -u),0==h%250&&b());n={x:r,y:u};ht[h].y===a.axisY.reversed?1:-1,color:C})}b();ba.drawMarkers(D)}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),f.globalCompositeOperation="source-atop",a.axisX.maskCanvas&& -f.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&f.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),f.clearRect(k.x1,k.y1,k.width,k.height),this._eventManager.ghostCtx.restore());f.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderSplineArea=function(a){function d(){var c= -v(y,2);if(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?m=r:0>a.axisY.viewportMaximum?m=f.y1:0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,f=a.axisY.lineCoordinates,l=[],s=this.plotArea;b.save();w&&e.save();b.beginPath();b.rect(s.x1,s.y1,s.width,s.height);b.clip();w&&(e.beginPath(),e.rect(s.x1,s.y1,s.width, -s.height),e.clip());for(var h=0;ha.axisX.dataInfo.viewPortMax&&(!n.connectNullData||!t)))if("number"!==typeof p[q].y)0p[q].y===a.axisY.reversed?1:-1,color:x});t=!1}d();ba.drawMarkers(l)}}w&&(c.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(s.x1,s.y1,s.width,s.height),this._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear, -animationBase:0}}};m.prototype.renderStepArea=function(a){var d,c;function b(){G&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?z=x:0>a.axisY.viewportMaximum?z=s.y1:0=a.dataSeriesIndexes.length)){var l=this._eventManager.ghostCtx,s=a.axisY.lineCoordinates,h=[],k=this.plotArea,n;f.save();w&&l.save();f.beginPath();f.rect(k.x1,k.y1,k.width,k.height);f.clip();w&&(l.beginPath(),l.rect(k.x1,k.y1,k.width,k.height),l.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax&&(!g.connectNullData||!c))){var aa=u;"number"!==typeof t[r].y?(g.connectNullData||(c||d)||b(),c=!0):(m=a.axisX.convertValueToPixel(y),u=a.axisY.convertValueToPixel(t[r].y),d||c?(!d&&g.connectNullData?(f.setLineDash&&(g.options.nullDataLineDashType||M===g.lineDashType&&g.lineDashType!==g.nullDataLineDashType)&&(d=m,c=u,m=n.x,u=n.y,b(),f.moveTo(n.x,n.y),m=d,u=c,G=n,M=g.nullDataLineDashType,f.setLineDash(T)),f.lineTo(m,aa),f.lineTo(m,u),w&&(l.lineTo(m,aa),l.lineTo(m,u))): -(f.beginPath(),f.moveTo(m,u),w&&(l.beginPath(),l.moveTo(m,u)),G={x:m,y:u}),c=d=!1):(f.lineTo(m,aa),w&&l.lineTo(m,aa),f.lineTo(m,u),w&&l.lineTo(m,u),0==r%250&&b()),n={x:m,y:u},rt[r].y===a.axisY.reversed?1:-1,color:C}))}b();ba.drawMarkers(h)}}w&& -(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),f.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&f.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&f.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),f.clearRect(k.x1,k.y1,k.width,k.height),this._eventManager.ghostCtx.restore());f.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation, -easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderStackedArea=function(a){function d(){if(!(1>k.length)){for(0=a.dataSeriesIndexes.length)){var e=null,f=null,l=[],s=this.plotArea,h=[], -k=[],n=[],p=[],q=0,g,t,r=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),m=this._eventManager.ghostCtx,u,y,x;w&&m.beginPath();b.save();w&&m.save();b.beginPath();b.rect(s.x1,s.y1,s.width,s.height);b.clip();w&&(m.beginPath(),m.rect(s.x1,s.y1,s.width,s.height),m.clip());for(var e=[],z=0;za.axisX.dataInfo.viewPortMax&&(!C.connectNullData||!aa)))if("number"!==typeof ga.y)C.connectNullData||(aa||y)||d(),aa=!0;else{g=a.axisX.convertValueToPixel(f);var na=h[f]?h[f]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=p[f]&&a.axisY.logarithmic)continue; -t=a.axisY.convertValueToPixel(p[f])}else t=a.axisY.convertValueToPixel(ga.y),t-=na;k.push({x:g,y:r-na});h[f]=r-t;y||aa?(!y&&C.connectNullData?(b.setLineDash&&(C.options.nullDataLineDashType||x===C.lineDashType&&C.lineDashType!==C.nullDataLineDashType)&&(y=k.pop(),x=k[k.length-1],d(),b.moveTo(u.x,u.y),k.push(x),k.push(y),x=C.nullDataLineDashType,b.setLineDash(T)),b.lineTo(g,t),w&&m.lineTo(g,t)):(b.beginPath(),b.moveTo(g,t),w&&(m.beginPath(),m.moveTo(g,t))),aa=y=!1):(b.lineTo(g,t),w&&m.lineTo(g,t), -0==q%250&&(d(),b.moveTo(g,t),w&&m.moveTo(g,t),k.push({x:g,y:r-na})));u={x:g,y:t};q -v[q].y===a.axisY.reversed?1:-1,color:e})}}d();b.moveTo(g,t);w&&m.moveTo(g,t)}delete C.dataPointIndexes}ba.drawMarkers(l);w&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(s.x1, -s.y1,s.width,s.height),m.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderStackedArea100=function(a){function d(){for(0=a.dataSeriesIndexes.length)){var e=null,f=null,l=this.plotArea,s=[],h=[],k=[],n=[],p=[],q=0,g,t,r,m,u,y=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),x=this._eventManager.ghostCtx;b.save();w&&x.save();b.beginPath();b.rect(l.x1,l.y1,l.width,l.height);b.clip();w&&(x.beginPath(),x.rect(l.x1,l.y1,l.width,l.height),x.clip());for(var e=[],z=0;za.axisX.dataInfo.viewPortMax&&(!C.connectNullData||!aa)))if("number"!==typeof ga.y)C.connectNullData||(aa||m)||d(),aa=!0;else{var na;na=0!==a.dataPointYSums[f]?100*(ga.y/a.dataPointYSums[f]):0;g=a.axisX.convertValueToPixel(f); -var E=h[f]?h[f]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=p[f]&&a.axisY.logarithmic)continue;t=a.axisY.convertValueToPixel(p[f])}else t=a.axisY.convertValueToPixel(na),t-=E;k.push({x:g,y:y-E});h[f]=y-t;m||aa?(!m&&C.connectNullData?(b.setLineDash&&(C.options.nullDataLineDashType||u===C.lineDashType&&C.lineDashType!==C.nullDataLineDashType)&&(m=k.pop(),u=k[k.length-1],d(),b.moveTo(r.x,r.y),k.push(u),k.push(m),u=C.nullDataLineDashType, -b.setLineDash(T)),b.lineTo(g,t),w&&x.lineTo(g,t)):(b.beginPath(),b.moveTo(g,t),w&&(x.beginPath(),x.moveTo(g,t))),aa=m=!1):(b.lineTo(g,t),w&&x.lineTo(g,t),0==q%250&&(d(),b.moveTo(g,t),w&&x.moveTo(g,t),k.push({x:g,y:y-E})));r={x:g,y:t};qv[q].y===a.axisY.reversed?1:-1,color:e})}}d();b.moveTo(g,t);w&&x.moveTo(g,t)}delete C.dataPointIndexes}ba.drawMarkers(s);w&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width, -this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(l.x1,l.y1,l.width,l.height),x.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderBubble=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,e=0,f,l;c.save();w&&this._eventManager.ghostCtx.save(); -c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var s=-Infinity,h=Infinity,k=0;ka.axisX.dataInfo.viewPortMax||"undefined"===typeof q[e].z||(g=q[e].z,g> -s&&(s=g),ga.axisX.dataInfo.viewPortMax)&&"number"===typeof q[e].y){f=a.axisX.convertValueToPixel(f);l=a.axisY.convertValueToPixel(q[e].y);var g=q[e].z,m=2*Math.max(Math.sqrt((s=== -h?r/2:t+(r-t)/(s-h)*(g-h))/Math.PI)<<0,1),g=p.getMarkerProperties(e,c);g.size=m;c.globalAlpha=p.fillOpacity;ba.drawMarker(f,l,c,g.type,g.size,g.color,g.borderColor,g.borderThickness);c.globalAlpha=1;var u=p.dataPointIds[e];this._eventManager.objectMap[u]={id:u,objectType:"dataPoint",dataSeriesIndex:n,dataPointIndex:e,x1:f,y1:l,size:m};m=P(u);w&&ba.drawMarker(f,l,this._eventManager.ghostCtx,g.type,g.size,m,m,g.borderThickness);(q[e].indexLabel||p.indexLabel||q[e].indexLabelFormatter||p.indexLabelFormatter)&& -this._indexLabels.push({chartType:"bubble",dataPoint:q[e],dataSeries:p,point:{x:f,y:l},direction:1,bounds:{x1:f-g.size/2,y1:l-g.size/2,x2:f+g.size/2,y2:l+g.size/2},color:null})}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};m.prototype.renderScatter=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,e=0,f,l;c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width, -b.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var s=0;sa.axisX.dataInfo.viewPortMax)&&"number"=== -typeof n[e].y){f=a.axisX.convertValueToPixel(f);l=a.axisY.convertValueToPixel(n[e].y);var g=k.getMarkerProperties(e,f,l,c);c.globalAlpha=k.fillOpacity;ba.drawMarker(g.x,g.y,g.ctx,g.type,g.size,g.color,g.borderColor,g.borderThickness);c.globalAlpha=1;Math.sqrt((p-f)*(p-f)+(q-l)*(q-l))Math.min(this.plotArea.width,this.plotArea.height)||(p=k.dataPointIds[e],this._eventManager.objectMap[p]={id:p,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:e,x1:f,y1:l},p=P(p), -w&&ba.drawMarker(g.x,g.y,this._eventManager.ghostCtx,g.type,g.size,p,p,g.borderThickness),(n[e].indexLabel||k.indexLabel||n[e].indexLabelFormatter||k.indexLabelFormatter)&&this._indexLabels.push({chartType:"scatter",dataPoint:n[e],dataSeries:k,point:{x:f,y:l},direction:1,bounds:{x1:f-g.size/2,y1:l-g.size/2,x2:f+g.size/2,y2:l+g.size/2},color:null}),p=f,q=l)}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas, -0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};m.prototype.renderCandlestick=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx, -c=w?this._preRenderCtx:d,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e=null,f=null,l=this.plotArea,s=0,h,k,n,p,q,g,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,f=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.015*this.width,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth?this.dataPointWidth:0.7*l.width* -(a.axisX.logarithmic?Math.log(t)/Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&e>f&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,f));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ff&&(t=f);c.save();w&&b.save();c.beginPath();c.rect(l.x1,l.y1,l.width,l.height);c.clip();w&&(b.beginPath(),b.rect(l.x1,l.y1,l.width,l.height),b.clip());for(var m= -0;ma.axisX.dataInfo.viewPortMax)&&!r(y[s].y)&&y[s].y.length&&"number"===typeof y[s].y[0]&&"number"===typeof y[s].y[1]&&"number"===typeof y[s].y[2]&&"number"===typeof y[s].y[3]){h=a.axisX.convertValueToPixel(g);k=a.axisY.convertValueToPixel(y[s].y[0]);n=a.axisY.convertValueToPixel(y[s].y[1]); -p=a.axisY.convertValueToPixel(y[s].y[2]);q=a.axisY.convertValueToPixel(y[s].y[3]);var z=h-t/2<<0,G=z+t<<0,f=u.options.fallingColor?u.fallingColor:u._colorSet[0],e=y[s].color?y[s].color:u._colorSet[0],C=Math.round(Math.max(1,0.15*t)),v=0===C%2?0:0.5,A=u.dataPointIds[s];this._eventManager.objectMap[A]={id:A,objectType:"dataPoint",dataSeriesIndex:fa,dataPointIndex:s,x1:z,y1:k,x2:G,y2:n,x3:h,y3:p,x4:h,y4:q,borderThickness:C,color:e};c.strokeStyle=e;c.beginPath();c.lineWidth=C;b.lineWidth=Math.max(C,4); -"candlestick"===u.type?(c.moveTo(h-v,n),c.lineTo(h-v,Math.min(k,q)),c.stroke(),c.moveTo(h-v,Math.max(k,q)),c.lineTo(h-v,p),c.stroke(),ea(c,z,Math.min(k,q),G,Math.max(k,q),y[s].y[0]<=y[s].y[3]?u.risingColor:f,C,e,x,x,!1,!1,u.fillOpacity),w&&(e=P(A),b.strokeStyle=e,b.moveTo(h-v,n),b.lineTo(h-v,Math.min(k,q)),b.stroke(),b.moveTo(h-v,Math.max(k,q)),b.lineTo(h-v,p),b.stroke(),ea(b,z,Math.min(k,q),G,Math.max(k,q),e,0,null,!1,!1,!1,!1))):"ohlc"===u.type&&(c.moveTo(h-v,n),c.lineTo(h-v,p),c.stroke(),c.beginPath(), -c.moveTo(h,k),c.lineTo(z,k),c.stroke(),c.beginPath(),c.moveTo(h,q),c.lineTo(G,q),c.stroke(),w&&(e=P(A),b.strokeStyle=e,b.moveTo(h-v,n),b.lineTo(h-v,p),b.stroke(),b.beginPath(),b.moveTo(h,k),b.lineTo(z,k),b.stroke(),b.beginPath(),b.moveTo(h,q),b.lineTo(G,q),b.stroke()));(y[s].indexLabel||u.indexLabel||y[s].indexLabelFormatter||u.indexLabelFormatter)&&this._indexLabels.push({chartType:u.type,dataPoint:y[s],dataSeries:u,point:{x:z+(G-z)/2,y:a.axisY.reversed?p:n},direction:1,bounds:{x1:z,y1:Math.min(n, -p),x2:G,y2:Math.max(n,p)},color:e})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(l.x1,l.y1,l.width,l.height),b.restore());c.restore();return{source:d,dest:this.plotArea.ctx, -animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};m.prototype.renderBoxAndWhisker=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e=null,f=this.plotArea,l=0,s,h,k,n,p,q,g,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,l=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth? -this.dataPointWidth:0.015*this.width,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth?this.dataPointWidth:0.7*f.width*(a.axisX.logarithmic?Math.log(t)/Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&e>l&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ll&&(t=l);c.save();w&&b.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();w&&(b.beginPath(),b.rect(f.x1,f.y1,f.width,f.height),b.clip());for(var m=!1,m=!!a.axisY.reversed,fa=0;faa.axisX.dataInfo.viewPortMax)&&!r(x[l].y)&&x[l].y.length&& -"number"===typeof x[l].y[0]&&"number"===typeof x[l].y[1]&&"number"===typeof x[l].y[2]&&"number"===typeof x[l].y[3]&&"number"===typeof x[l].y[4]&&5===x[l].y.length){s=a.axisX.convertValueToPixel(g);h=a.axisY.convertValueToPixel(x[l].y[0]);k=a.axisY.convertValueToPixel(x[l].y[1]);n=a.axisY.convertValueToPixel(x[l].y[2]);p=a.axisY.convertValueToPixel(x[l].y[3]);q=a.axisY.convertValueToPixel(x[l].y[4]);var G=s-t/2<<0,C=s+t/2<<0,e=x[l].color?x[l].color:y._colorSet[0],v=Math.round(Math.max(1,0.15*t)),A= -0===v%2?0:0.5,M=x[l].whiskerColor?x[l].whiskerColor:x[l].color?y.whiskerColor?y.whiskerColor:x[l].color:y.whiskerColor?y.whiskerColor:e,T="number"===typeof x[l].whiskerThickness?x[l].whiskerThickness:"number"===typeof y.options.whiskerThickness?y.whiskerThickness:v,B=x[l].whiskerDashType?x[l].whiskerDashType:y.whiskerDashType,aa=r(x[l].whiskerLength)?r(y.options.whiskerLength)?t:y.whiskerLength:x[l].whiskerLength,aa="number"===typeof aa?0>=aa?0:aa>=t?t:aa:"string"===typeof aa?parseInt(aa)*t/100>t? -t:parseInt(aa)*t/100:t,ga=1===Math.round(T)%2?0.5:0,na=x[l].stemColor?x[l].stemColor:x[l].color?y.stemColor?y.stemColor:x[l].color:y.stemColor?y.stemColor:e,E="number"===typeof x[l].stemThickness?x[l].stemThickness:"number"===typeof y.options.stemThickness?y.stemThickness:v,F=1===Math.round(E)%2?0.5:0,I=x[l].stemDashType?x[l].stemDashType:y.stemDashType,K=x[l].lineColor?x[l].lineColor:x[l].color?y.lineColor?y.lineColor:x[l].color:y.lineColor?y.lineColor:e,O="number"===typeof x[l].lineThickness?x[l].lineThickness: -"number"===typeof y.options.lineThickness?y.lineThickness:v,R=x[l].lineDashType?x[l].lineDashType:y.lineDashType,L=1===Math.round(O)%2?0.5:0,S=y.upperBoxColor,U=y.lowerBoxColor,ra=r(y.options.fillOpacity)?1:y.fillOpacity,Q=y.dataPointIds[l];this._eventManager.objectMap[Q]={id:Q,objectType:"dataPoint",dataSeriesIndex:u,dataPointIndex:l,x1:G,y1:h,x2:C,y2:k,x3:s,y3:n,x4:s,y4:p,y5:q,borderThickness:v,color:e,stemThickness:E,stemColor:na,whiskerThickness:T,whiskerLength:aa,whiskerColor:M,lineThickness:O, -lineColor:K};c.save();0=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=0,l,s,h,f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;l=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.03*this.width;var k= -a.axisX.dataInfo.minDiff;isFinite(k)||(k=0.3*Math.abs(a.axisX.range));k=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(k)/Math.log(a.axisX.range):Math.abs(k)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&f>l&&(f=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ll&&(k=l);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var n=0;na.axisX.dataInfo.viewPortMax)&&!r(g[f].y)&&g[f].y.length&&"number"===typeof g[f].y[0]&&"number"===typeof g[f].y[1]){b=a.axisX.convertValueToPixel(h);l=a.axisY.convertValueToPixel(g[f].y[0]);s=a.axisY.convertValueToPixel(g[f].y[1]);var m=a.axisX.reversed?b+a.plotType.totalDataSeries*k/2-(a.previousDataSeriesCount+n)*k<<0:b-a.plotType.totalDataSeries*k/2+(a.previousDataSeriesCount+n)*k<<0,fa=a.axisX.reversed?m-k<<0:m+k<<0,b=g[f].color?g[f].color:q._colorSet[f%q._colorSet.length];if(l>s){var u=l;l= -s;s=u}u=q.dataPointIds[f];this._eventManager.objectMap[u]={id:u,objectType:"dataPoint",dataSeriesIndex:p,dataPointIndex:f,x1:m,y1:l,x2:fa,y2:s};ea(c,a.axisX.reversed?fa:m,l,a.axisX.reversed?m:fa,s,b,0,b,t,t,!1,!1,q.fillOpacity);b=P(u);w&&ea(this._eventManager.ghostCtx,a.axisX.reversed?fa:m,l,a.axisX.reversed?m:fa,s,b,0,null,!1,!1,!1,!1);if(g[f].indexLabel||q.indexLabel||g[f].indexLabelFormatter||q.indexLabelFormatter)this._indexLabels.push({chartType:"rangeColumn",dataPoint:g[f],dataSeries:q,indexKeyword:0, -point:{x:m+(fa-m)/2,y:g[f].y[1]>=g[f].y[0]?s:l},direction:g[f].y[1]>=g[f].y[0]?-1:1,bounds:{x1:m,y1:Math.min(l,s),x2:fa,y2:Math.max(l,s)},color:b}),this._indexLabels.push({chartType:"rangeColumn",dataPoint:g[f],dataSeries:q,indexKeyword:1,point:{x:m+(fa-m)/2,y:g[f].y[1]>=g[f].y[0]?l:s},direction:g[f].y[1]>=g[f].y[0]?1:-1,bounds:{x1:m,y1:Math.min(l,s),x2:fa,y2:Math.max(l,s)},color:b})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&& -c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};m.prototype.renderError=function(a){var d= -a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d,b=a.axisY._position?"left"===a.axisY._position||"right"===a.axisY._position?!1:!0:!1;if(!(0>=a.dataSeriesIndexes.length)){var e=null,f=!1,l=this.plotArea,s=0,h,k,n,p,q,g,t,m=a.axisX.dataInfo.minDiff;isFinite(m)||(m=0.3*Math.abs(a.axisX.range));c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(l.x1,l.y1,l.width,l.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(l.x1,l.y1,l.width, -l.height),this._eventManager.ghostCtx.clip());for(var fa=0,u=0;us&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,s));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ss&&(u= -s);if(0=M.length?0:M.length>=u?u:M.length:"string"===typeof M.length?parseInt(M.length)*u/100>u?u:parseInt(M.length)*u/100>u:u;M.thickness="number"===typeof M.thickness?0>M.thickness?0:Math.round(M.thickness):2;var T={color:v[s].stemColor?v[s].stemColor:v[s].color?z.stemColor?z.stemColor:v[s].color:z.stemColor?z.stemColor:e,thickness:v[s].stemThickness?v[s].stemThickness:z.stemThickness,dashType:v[s].stemDashType?v[s].stemDashType: -z.stemDashType};T.thickness="number"===typeof T.thickness?0>T.thickness?0:Math.round(T.thickness):2;v[s].getTime?t=v[s].x.getTime():t=v[s].x;if(!(ta.axisX.dataInfo.viewPortMax)&&!r(v[s].y)&&v[s].y.length&&"number"===typeof v[s].y[0]&&"number"===typeof v[s].y[1]){var ka=a.axisX.convertValueToPixel(t);b?k=ka:h=ka;ka=a.axisY.convertValueToPixel(v[s].y[0]);b?n=ka:q=ka;ka=a.axisY.convertValueToPixel(v[s].y[1]);b?p=ka:g=ka;b?(q=a.axisX.reversed?k+(C?fa:1)*u/2-(C?A-1:0)* -u<<0:k-(C?fa:1)*u/2+(C?A-1:0)*u<<0,g=a.axisX.reversed?q-u<<0:q+u<<0):(n=a.axisX.reversed?h+(C?fa:1)*u/2-(C?A-1:0)*u<<0:h-(C?fa:1)*u/2+(C?A-1:0)*u<<0,p=a.axisX.reversed?n-u<<0:n+u<<0);!b&&q>g&&(ka=q,q=g,g=ka);b&&n>p&&(ka=n,n=p,p=ka);ka=z.dataPointIds[s];this._eventManager.objectMap[ka]={id:ka,objectType:"dataPoint",dataSeriesIndex:x,dataPointIndex:s,x1:Math.min(n,p),y1:Math.min(q,g),x2:Math.max(p,n),y2:Math.max(g,q),isXYSwapped:b,stemProperties:T,whiskerProperties:M};E(c,Math.min(n,p),Math.min(q,g), -Math.max(p,n),Math.max(g,q),e,M,T,b);w&&E(this._eventManager.ghostCtx,n,q,p,g,e,M,T,b);if(v[s].indexLabel||z.indexLabel||v[s].indexLabelFormatter||z.indexLabelFormatter)this._indexLabels.push({chartType:"error",dataPoint:v[s],dataSeries:z,indexKeyword:0,point:{x:b?v[s].y[1]>=v[s].y[0]?n:p:n+(p-n)/2,y:b?q+(g-q)/2:v[s].y[1]>=v[s].y[0]?g:q},direction:v[s].y[1]>=v[s].y[0]?-1:1,bounds:{x1:b?Math.min(n,p):n,y1:b?q:Math.min(q,g),x2:b?Math.max(n,p):p,y2:b?g:Math.max(q,g)},color:e,axisSwapped:b}),this._indexLabels.push({chartType:"error", -dataPoint:v[s],dataSeries:z,indexKeyword:1,point:{x:b?v[s].y[1]>=v[s].y[0]?p:n:n+(p-n)/2,y:b?q+(g-q)/2:v[s].y[1]>=v[s].y[0]?q:g},direction:v[s].y[1]>=v[s].y[0]?1:-1,bounds:{x1:b?Math.min(n,p):n,y1:b?q:Math.min(q,g),x2:b?Math.max(n,p):p,y2:b?g:Math.max(q,g)},color:e,axisSwapped:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas, -0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(l.x1,l.y1,l.width,l.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};m.prototype.renderRangeBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b= -null,e=this.plotArea,f=0,l,s,h,k,f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;l=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0;var n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.range));n=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(n)/Math.log(a.axisX.range): -Math.abs(n)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&f>l&&(f=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ll&&(n=l);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1, -e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax)&&!r(t[f].y)&&t[f].y.length&&"number"===typeof t[f].y[0]&&"number"===typeof t[f].y[1]){l=a.axisY.convertValueToPixel(t[f].y[0]);s=a.axisY.convertValueToPixel(t[f].y[1]); -h=a.axisX.convertValueToPixel(k);h=a.axisX.reversed?h+a.plotType.totalDataSeries*n/2-(a.previousDataSeriesCount+p)*n<<0:h-a.plotType.totalDataSeries*n/2+(a.previousDataSeriesCount+p)*n<<0;var v=a.axisX.reversed?h-n<<0:h+n<<0;l>s&&(b=l,l=s,s=b);b=t[f].color?t[f].color:g._colorSet[f%g._colorSet.length];ea(c,l,a.axisX.reversed?v:h,s,a.axisX.reversed?h:v,b,0,null,m,!1,!1,!1,g.fillOpacity);b=g.dataPointIds[f];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:f, -x1:l,y1:h,x2:s,y2:v};b=P(b);w&&ea(this._eventManager.ghostCtx,l,a.axisX.reversed?v:h,s,a.axisX.reversed?h:v,b,0,null,!1,!1,!1,!1);if(t[f].indexLabel||g.indexLabel||t[f].indexLabelFormatter||g.indexLabelFormatter)this._indexLabels.push({chartType:"rangeBar",dataPoint:t[f],dataSeries:g,indexKeyword:0,point:{x:t[f].y[1]>=t[f].y[0]?l:s,y:h+(v-h)/2},direction:t[f].y[1]>=t[f].y[0]?-1:1,bounds:{x1:Math.min(l,s),y1:h,x2:Math.max(l,s),y2:v},color:b}),this._indexLabels.push({chartType:"rangeBar",dataPoint:t[f], -dataSeries:g,indexKeyword:1,point:{x:t[f].y[1]>=t[f].y[0]?s:l,y:h+(v-h)/2},direction:t[f].y[1]>=t[f].y[0]?1:-1,bounds:{x1:Math.min(l,s),y1:h,x2:Math.max(l,s),y2:v},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};m.prototype.renderRangeArea=function(a){function d(){if(y){for(var a=null,c=h.length-1;0<=c;c--)a=h[c],b.lineTo(a.x,a.y2),e.lineTo(a.x,a.y2);b.closePath();b.globalAlpha=n.fillOpacity;b.fill();b.globalAlpha=1;e.fill();if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,f=[],l=this.plotArea;b.save();w&&e.save();b.beginPath();b.rect(l.x1,l.y1,l.width,l.height);b.clip();w&&(e.beginPath(), -e.rect(l.x1,l.y1,l.width,l.height),e.clip());for(var s=0;sa.axisX.dataInfo.viewPortMax&&(!n.connectNullData||!M)))if(null!==p[g].y&&p[g].y.length&&"number"===typeof p[g].y[0]&&"number"===typeof p[g].y[1]){t=a.axisX.convertValueToPixel(u);r=a.axisY.convertValueToPixel(p[g].y[0]);m=a.axisY.convertValueToPixel(p[g].y[1]);q||M?(n.connectNullData&&!q?(b.setLineDash&&(n.options.nullDataLineDashType|| -C===n.lineDashType&&n.lineDashType!==n.nullDataLineDashType)&&(h[h.length-1].newLineDashArray=B,C=n.nullDataLineDashType,b.setLineDash(A)),b.lineTo(t,r),w&&e.lineTo(t,r),h.push({x:t,y1:r,y2:m})):(b.beginPath(),b.moveTo(t,r),y={x:t,y:r},h=[],h.push({x:t,y1:r,y2:m}),w&&(e.beginPath(),e.moveTo(t,r))),M=q=!1):(b.lineTo(t,r),h.push({x:t,y1:r,y2:m}),w&&e.lineTo(t,r),0==g%250&&d());u=n.dataPointIds[g];this._eventManager.objectMap[u]={id:u,objectType:"dataPoint",dataSeriesIndex:k,dataPointIndex:g,x1:t,y1:r, -y2:m};gp[g].y[1]===a.axisY.reversed?-1: -1,color:x}),this._indexLabels.push({chartType:"rangeArea",dataPoint:p[g],dataSeries:n,indexKeyword:1,point:{x:t,y:m},direction:p[g].y[0]>p[g].y[1]===a.axisY.reversed?1:-1,color:x})}else M||q||d(),M=!0;d();ba.drawMarkers(f)}}w&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&& -this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(l.x1,l.y1,l.width,l.height),this._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};m.prototype.renderRangeSplineArea=function(a){function d(a,c){var d=v(r,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,f=[],l=this.plotArea;b.save();w&&e.save();b.beginPath();b.rect(l.x1,l.y1,l.width,l.height);b.clip();w&&(e.beginPath(),e.rect(l.x1,l.y1,l.width,l.height),e.clip());for(var s=0;sa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!g)))if(null!==n[p].y&&n[p].y.length&&"number"===typeof n[p].y[0]&&"number"===typeof n[p].y[1]){q=a.axisX.convertValueToPixel(q);g=a.axisY.convertValueToPixel(n[p].y[0]);t=a.axisY.convertValueToPixel(n[p].y[1]);var E=k.dataPointIds[p];this._eventManager.objectMap[E]={id:E,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:p,x1:q,y1:g,y2:t};r[r.length]={x:q,y:g};m[m.length]={x:q,y:t};p=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx, -e=null,f=this.plotArea,l=0,s,h,k,n,p=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),l=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;h=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0;var q=a.axisX.dataInfo.minDiff;isFinite(q)||(q=0.3*Math.abs(a.axisX.range));q=this.options.dataPointWidth? -this.dataPointWidth:0.6*(f.width*(a.axisX.logarithmic?Math.log(q)/Math.log(a.axisX.range):Math.abs(q)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&l>h&&(l=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(q=h);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height); -c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.clip());for(var g=0;gk&&(e=h,h=k,k=e);a.axisY.reversed&&(e=h,h=k,k=e);e=r.dataPointIds[l];this._eventManager.objectMap[e]={id:e,objectType:"dataPoint",dataSeriesIndex:t,dataPointIndex:l,x1:s,y1:h,x2:B,y2:k};var M=m[l].color?m[l].color:0m[l].y===a.axisY.reversed?1:-1,bounds:{x1:s,y1:Math.min(h,k),x2:B,y2:Math.max(h,k)},color:e})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(f.x1,f.y1,f.width, -f.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};var ia=function(a,d,c,b,e,f,l,h,r){if(!(0>c)){"undefined"===typeof h&&(h=1);if(!w){var k=Number((l%(2*Math.PI)).toFixed(8));Number((f%(2*Math.PI)).toFixed(8))===k&&(l-=1E-4)}a.save();a.globalAlpha=h;"pie"===e?(a.beginPath(),a.moveTo(d.x,d.y),a.arc(d.x,d.y,c,f,l,!1),a.fillStyle=b,a.strokeStyle="white",a.lineWidth= -2,a.closePath(),a.fill()):"doughnut"===e&&(a.beginPath(),a.arc(d.x,d.y,c,f,l,!1),0<=r&&a.arc(d.x,d.y,r*c,l,f,!0),a.closePath(),a.fillStyle=b,a.strokeStyle="white",a.lineWidth=2,a.fill());a.globalAlpha=1;a.restore()}};m.prototype.renderPie=function(a){function d(){if(k&&n){for(var a=0,b=0,c=0,d=0,e=0;eMath.PI/2-u&&h.midAngleh.midAngle)c=e;a++}else if(h.midAngle>3*Math.PI/2-u&&h.midAngle<3*Math.PI/2+u){if(0===b||g[d].midAngle>h.midAngle)d=e;b++}h.hemisphere=f>Math.PI/2&&f<=3*Math.PI/2?"left":"right";h.indexLabelTextBlock=new ja(m.plotArea.ctx,{fontSize:h.indexLabelFontSize,fontFamily:h.indexLabelFontFamily,fontColor:h.indexLabelFontColor,fontStyle:h.indexLabelFontStyle,fontWeight:h.indexLabelFontWeight, -textAlign:h.indexLabelTextAlign,backgroundColor:h.indexLabelBackgroundColor,maxWidth:h.indexLabelMaxWidth,maxHeight:h.indexLabelWrap?5*h.indexLabelFontSize:1.5*h.indexLabelFontSize,text:h.indexLabelText,padding:0,textBaseline:"top"});h.indexLabelTextBlock.measureText()}l=f=0;p=!1;for(e=0;eMath.PI/2-u&&h.midAngle -3*Math.PI/2-u&&h.midAngle<3*Math.PI/2+u)&&(l<=b/2&&!p?(h.hemisphere="left",l++):(h.hemisphere="right",p=!0))}}function c(a){var b=m.plotArea.ctx;b.clearRect(q.x1,q.y1,q.width,q.height);b.fillStyle=m.backgroundColor;b.fillRect(q.x1,q.y1,q.width,q.height);for(b=0;bc){var e=0.07*C*Math.cos(g[b].midAngle),f=0.07*C*Math.sin(g[b].midAngle),l=!1;if(n[b].exploded){if(1E-9a.indexLabelTextBlock.y?e-d:c-f}function e(a){for(var c=null,d=1;db(g[c],g[a])||("right"===g[a].hemisphere?g[c].indexLabelTextBlock.y>=g[a].indexLabelTextBlock.y:g[c].indexLabelTextBlock.y<= -g[a].indexLabelTextBlock.y)))break;else c=null;return c}function f(a,c,d){d=(d||0)+1;if(1E3c&&p.indexLabelTextBlock.yh)return 0;var q=0,s=0,s=q=q=0;0>c?p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2>k&&p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2+ch&&(c=p.indexLabelTextBlock.y+p.indexLabelTextBlock.height/2+c-h);c=p.indexLabelTextBlock.y+c;k=0;k="right"===p.hemisphere?x.x+Math.sqrt(Math.pow(w,2)-Math.pow(c-x.y,2)):x.x-Math.sqrt(Math.pow(w,2)-Math.pow(c-x.y,2));s=x.x+C*Math.cos(p.midAngle);q=x.y+C*Math.sin(p.midAngle);q=Math.sqrt(Math.pow(k-s,2)+Math.pow(c-q,2));s=Math.acos(C/w);q=Math.acos((w*w+C*C-q*q)/(2*C*w));c=qb(g[k],g[a])||("right"===g[a].hemisphere?g[k].indexLabelTextBlock.y<=g[a].indexLabelTextBlock.y:g[k].indexLabelTextBlock.y>=g[a].indexLabelTextBlock.y)))break;else k=null;s=k;q=e(a);h=k=0;0>c?(h="right"===p.hemisphere?s:q,l=c,null!==h&&(s=-c,c=p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2-(g[h].indexLabelTextBlock.y+g[h].indexLabelTextBlock.height/ -2),c-s+k.toFixed(y)&&(l=c>t?-(c-t):-(s-(h-k)))))):0t?c-t:s-(k-h)))));l&&(d=p.indexLabelTextBlock.y+l,c=0,c="right"===p.hemisphere?x.x+Math.sqrt(Math.pow(w,2)-Math.pow(d-x.y,2)):x.x-Math.sqrt(Math.pow(w,2)-Math.pow(d-x.y,2)),p.midAngle> -Math.PI/2-u&&p.midAnglek.indexLabelTextBlock.x?c=k.indexLabelTextBlock.x-15:"right"===p.hemisphere&&("left"===a.hemisphere&&c3*Math.PI/2-u&&p.midAngle<3*Math.PI/2+u&&(k=(a-1+g.length)%g.length,k=g[k],a=g[(a+1+g.length)%g.length],"right"===p.hemisphere&&"left"===k.hemisphere&&ca.indexLabelTextBlock.x)&&(c=a.indexLabelTextBlock.x-15)),p.indexLabelTextBlock.y=d,p.indexLabelTextBlock.x=c,p.indexLabelAngle=Math.atan2(p.indexLabelTextBlock.y-x.y,p.indexLabelTextBlock.x-x.x))}return l}function l(){var a=m.plotArea.ctx;a.fillStyle="grey";a.strokeStyle="grey";a.font="16px Arial";a.textBaseline="middle";for(var c=a=0,d=0,l=!0,c=0;10>c&&(1>c||0z){for(var A=r=0,G=0;Gr?h.indexLabelText="":h.indexLabelTextBlock.maxWidth=0.85*r,0.3*h.indexLabelTextBlock.maxWidthd&&(d=u)),u=u=0,0d&&(d=u)));var L=function(a,b,c){for(var d=[],e=0;d.push(g[b]),b!==c;b=(b+1+n.length)%n.length);d.sort(function(a,b){return a.y-b.y});for(b=0;bz){q=s.indexLabelTextBlock.x;var r=s.indexLabelTextBlock.y-s.indexLabelTextBlock.height/2,m=s.indexLabelTextBlock.y+s.indexLabelTextBlock.height/2,t=h.indexLabelTextBlock.y-h.indexLabelTextBlock.height/2,u=h.indexLabelTextBlock.x+h.indexLabelTextBlock.width,D=h.indexLabelTextBlock.y+h.indexLabelTextBlock.height/2;q=s.indexLabelTextBlock.x+s.indexLabelTextBlock.widthu+p||r>D+p||ma&&(a=k),l!==a&&(c=l,d+=-z),0===k%Math.max(n.length/ -10,3)&&(f=!0)):f=!0;f&&(0=a.dataSeriesIndexes.length)){var k=this.data[a.dataSeriesIndexes[0]],n=k.dataPoints,p=10,q=this.plotArea,g=k.dataPointEOs,t=2,w,v=1.3,u=20/180*Math.PI,y=6,x={x:(q.x2+q.x1)/2,y:(q.y2+q.y1)/2},z=0;a=!1;for(var A=0;Ab&&(e=b,f=!0);var l=n[c].color?n[c].color:k._colorSet[c%k._colorSet.length];e>d&&ia(m.plotArea.ctx,g[c].center,g[c].radius,l,k.type,d,e,k.fillOpacity,g[c].percentInnerRadius);if(f)break}h();m.dispatchEvent("dataAnimationIterationEnd",{chart:m});1<=a&&m.dispatchEvent("dataAnimationEnd",{chart:m})},function(){m.disableToolTip=!1;m._animator.animate(0, -m.animatedRender?500:0,function(a){c(a);h();m.dispatchEvent("dataAnimationIterationEnd",{chart:m})});m.dispatchEvent("dataAnimationEnd",{chart:m})})}}};var qa=function(a,d,c,b){"undefined"===typeof c&&(c=1);0>=Math.round(d.y4-d.y1)||(a.save(),a.globalAlpha=c,a.beginPath(),a.moveTo(Math.round(d.x1),Math.round(d.y1)),a.lineTo(Math.round(d.x2),Math.round(d.y2)),a.lineTo(Math.round(d.x3),Math.round(d.y3)),a.lineTo(Math.round(d.x4),Math.round(d.y4)),"undefined"!==d.x5&&(a.lineTo(Math.round(d.x5),Math.round(d.y5)), -a.lineTo(Math.round(d.x6),Math.round(d.y6))),a.closePath(),a.fillStyle=b?b:d.color,a.fill(),a.globalAplha=1,a.restore())};m.prototype.renderFunnel=function(a){function d(){for(var a=0,b=[],c=0;cp?(p=c,l=(b+p)*(e-h)/2,a-=l,n=e-h,h+=e-h,n+=0==p?0:a/p,h+=a/p,l=!0):(n=(Math.abs($)*b-Math.sqrt(p))/2,p=b-2*n/Math.abs($),h+=n,h>e&&(h-=n,p=c,l=(b+p)*(e-h)/2,a-=l,n=e-h,h+=e-h,n+=a/p,h+=a/p,l=!0),b= -p)),d.push(n);return d}function b(){if(u&&y){for(var a,b,c,d,e,f,k,l,h,n,p,q,s,m,t,D=[],x=[],v={percent:null,total:null},z=null,C=0;CD[C]&&(D[C]=C!==ca?u.reversed?Q[C].x3-Q[C].x4:Q[C].x2-Q[C].x1:Q[C].x2-Q[C].x1,D[C]/=2));s=b.indexLabelMaxWidth?b.indexLabelMaxWidth:u.options.indexLabelMaxWidth?u.indexLabelMaxWidth:D[C];if(s>D[C]||0>s)s=D[C];x[C]="inside"===u.indexLabelPlacement?Q[C].height:!1;v=A.getPercentAndTotal(u,b);if(u.indexLabelFormatter||b.indexLabelFormatter)z={chart:A.options,dataSeries:u,dataPoint:b,total:v.total,percent:v.percent};b=b.indexLabelFormatter?b.indexLabelFormatter(z):b.indexLabel? -A.replaceKeywordsWithValue(b.indexLabel,b,u,C):u.indexLabelFormatter?u.indexLabelFormatter(z):u.indexLabel?A.replaceKeywordsWithValue(u.indexLabel,b,u,C):b.label?b.label:"";0>=n&&(n=0);1E3>s&&1E3-sk?k:u.indexLabelMaxWidth:k,l=H.length-1;0<=l;l--){g=y[H[l].id];c=H[l];d=c.textBlock;b=(a=q(l)b.y&&(e=!0);c=g.indexLabelMaxWidth||k;if(c>k||0>c)c=k;f.push(c)}if(e)for(l=H.length-1;0<=l;l--)a=Q[l],H[l].textBlock.maxWidth= -f[f.length-(l+1)],H[l].textBlock.measureText(),H[l].textBlock.x=K-k,c=H[l].textBlock.heightoa+z&&(H[l].textBlock.y=oa+z-H[l].height),H[l].textBlock.yra+z&&(H[l].textBlock.y=ra+z-H[l].height))}function f(){var a,b,c,d;if("inside"!==u.indexLabelPlacement)for(var e=0;eBa?g(c).x2+1:(a.x2+a.x3)/2+1:(a.x2+a.x3)/2+1:"undefined"!==typeof a.x5?coa+z&&(H[e].textBlock.y=oa+z-H[e].height),H[e].textBlock.yra+z&&(H[e].textBlock.y=ra+z-H[e].height)));else for(e=0;e=c?(b=e!=ca?(a.x4+a.x3)/2-d/2:(a.x5+a.x4)/2-d/2,c=e!=ca?(a.y1+a.y3)/2-c/2:(a.y1+a.y4)/2-c/2,H[e].textBlock.x=b, -H[e].textBlock.y=c):H[e].isDirty=!0)}function l(){function a(b,c){var d;if(0>b||b>=H.length)return 0;var e,f=H[b].textBlock;if(0>c){c*=-1;e=p(b);d=h(e,b);if(d>=c)return f.y-=c,c;if(0==b)return 0=c)return f.y+=c,c;if(b==Q.length-1)return 0e)&&(k=q(s),!(k>=H.length-1)&&H[s].textBlock.y+H[s].height+da>H[k].textBlock.y&&(H[s].textBlock.y=H[s].textBlock.y+H[s].height-e>e-H[s].textBlock.y?e+1:e-H[s].height-1))}for(k=Q.length-1;0e&&(e=0,H[e].isDirty))break;if(H[k].textBlock.y=f){f=0;l+=H[f].height;break}e=p(f); -if(0>e){f=0;l+=H[f].height;break}}if(f!=k){g=H[f].textBlock.y;a-=g;a=l-a;g=c(a,d,f);break}}}return g}function c(a,b,d){var e=[],f=0,g=0;for(a=Math.abs(a);d<=b;d++)e.push(Q[d]);e.sort(function(a,b){return a.height-b.height});for(d=0;d+k.y.toFixed(6))&&(d=g.y+d+da-k.y,e=a(m,-d),ea?u.reversed?ra-z:oa-z:H[a].textBlock.y+H[a].height+da)}function m(a,b,c){var d,e,g,l=[],h=z,p=[];-1!==b&&(0<=Y.indexOf(b)?(e=Y.indexOf(b),Y.splice(e,1)):(Y.push(b),Y=Y.sort(function(a,b){return a-b})));if(0===Y.length)l= -ia;else{e=z*(1!=Y.length||0!=Y[0]&&Y[0]!=Q.length-1?2:1)/k();for(var s=0;sp&&(p*=-1),c.y1+=b-p[d],c.y2+=b-p[d],c.y3+=b-p[d],c.y4+=b-p[d],c.y5&&(c.y5+=b-p[d],c.y6+=b-p[d]),p[d]=b}};a._animator.animate(0,c,function(c){var d=a.plotArea.ctx||a.ctx;ha=!0;d.clearRect(x.x1,x.y1,x.x2-x.x1,x.y2-x.y1);d.fillStyle=a.backgroundColor;d.fillRect(x.x1,x.y1,x.width,x.height);q.changeSection(c,b);var e={};e.dataSeries=u;e.dataPoint=u.reversed?u.dataPoints[y.length-1-b]:u.dataPoints[b];e.index=u.reversed?y.length-1-b:b;a.toolTip.highlightObjects([e]); -for(e=0;ea){b=Q[c];break}return b?(a=b.y6?a>b.y6?b.x3+(b.x4-b.x3)/(b.y4-b.y3)*(a-b.y3):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2), -{x1:a,x2:a}):-1}function t(a){for(var b=0;b=a.dataSeriesIndexes.length)){for(var u=this.data[a.dataSeriesIndexes[0]],y=u.dataPoints,x=this.plotArea,z=0.025*x.width,B=0.01*x.width,C=0,E=x.height-2*z,I=Math.min(x.width-2*B,2.8*x.height),M=!1,T=0;TE?P=E:0>=P&&(P=0),F>a?F=a-0.5:0>=F&&(F=0)):"pyramid"===u.type&&(F=P=0,u.reversed=u.reversed?!1:!0);var B=T+a/2,Z=T,X=T+a,oa=u.reversed?R:O,L=B-F/2,ba=B+F/2,Ba=u.reversed?O+P:R- -P,ra=u.reversed?O:R;a=[];var B=[],Q=[],I=[],V=O,ca,$=(Ba-oa)/(L-Z),ea=-$,T="area"===(u.valueRepresents?u.valueRepresents:"height")?c():d();if(-1!==T){if(u.reversed)for(I.push(V),F=T.length-1;0a&&(C=a));for(F=0;F
Please right click on the image and save it to your device
"), -d.document.close()}}};m.prototype.print=function(){var a=this.exportChart({toDataURL:!0}),d=document.createElement("iframe");d.setAttribute("class","canvasjs-chart-print-frame");W(d,{position:"absolute",width:"100%",border:"0px",margin:"0px 0px 0px 0px",padding:"0px 0px 0px 0px"});d.style.height=this.height+"px";this._canvasJSContainer.appendChild(d);var c=this,b=d.contentWindow||d.contentDocument.document||d.contentDocument;b.document.open();b.document.write('\n');b.document.body&&b.document.body.style&&(b.document.body.style.margin="0px 0px 0px 0px",b.document.body.style.padding="0px 0px 0px 0px");b.document.close();setTimeout(function(){b.focus();b.print();setTimeout(function(){c._canvasJSContainer.removeChild(d)},1E3)},500)};m.prototype.getPercentAndTotal=function(a,d){var c=null,b=null,e=c=null;if(0<=a.type.indexOf("stacked"))b=0,c=d.x.getTime?d.x.getTime():d.x,c in a.plotUnit.yTotals&&(b=a.plotUnit.yTotals[c],c=a.plotUnit.yAbsTotals[c], -e=isNaN(d.y)?0:0===c?0:100*(d.y/c));else if("pie"===a.type||"doughnut"===a.type||"funnel"===a.type||"pyramid"===a.type){for(c=b=0;c=l||"undefined"===typeof l||0>=v||"undefined"===typeof v)){if("horizontal"=== -this.orientation){q.textBlock=new ja(this.ctx,{x:0,y:0,maxWidth:v,maxHeight:this.itemWrap?l:this.lineHeight,angle:0,text:q.text,horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"});q.textBlock.measureText();null!==this.itemWidth&&(q.textBlock.width=this.itemWidth-(w+h+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0)));if(!p||p.width+ -Math.round(q.textBlock.width+w+h+(0===p.width?0:this.horizontalSpacing)+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0))>f)p={items:[],width:0},k.push(p),this.height+=g,g=0;g=Math.max(g,q.textBlock.height)}else q.textBlock=new ja(this.ctx,{x:0,y:0,maxWidth:x,maxHeight:!0===this.itemWrap?l:1.5*this.fontSize,angle:0,text:q.text,horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor, -fontStyle:this.fontStyle,textBaseline:"middle"}),q.textBlock.measureText(),null!==this.itemWidth&&(q.textBlock.width=this.itemWidth-(w+h+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0))),this.height>0,0),this.dataPoints.length):0):(n=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,n=0>0,0),this.dataPoints.length):0));for(;;){f=0a?b.x/a:a/b.x:Math.abs(b.x-a);pn-e&&n+e>=this.dataPoints.length)break;-1===l?(e++,l=1):l=-1}return d||(c.dataPoint.x.getTime?c.dataPoint.x.getTime():c.dataPoint.x)!==(a.getTime?a.getTime():a)?d&&null!==c.dataPoint?c:null:c};S.prototype.getDataPointAtXY=function(a,d,c){if(!this.dataPoints||0===this.dataPoints.length||athis.chart.plotArea.x2||dthis.chart.plotArea.y2)return null;c=c||!1;var b=[],e=0,f=0,l=1,h=!1,r=Infinity,k=0,n= -0,p=0;if("none"!==this.chart.plotInfo.axisPlacement)if(p=(this.chart.axisX[0]?this.chart.axisX[0]:this.chart.axisX2[0]).getXValueAt({x:a,y:d}),this.axisX.logarithmic)var q=Math.log(this.dataPoints[this.dataPoints.length-1].x/this.dataPoints[0].x),p=1>0,0),this.dataPoints.length):0;else q=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,p=0> -0,0),this.dataPoints.length):0;for(;;){f=0=q.x1&&(a<=q.x2&&d>=q.y1&&d<=q.y2)&&(b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(q.x1- -a),Math.abs(q.x2-a),Math.abs(q.y1-d),Math.abs(q.y2-d))}),h=!0);break;case "line":case "stepLine":case "spline":case "area":case "stepArea":case "stackedArea":case "stackedArea100":case "splineArea":case "scatter":var w=ma("markerSize",g,this)||4,v=c?20:w,m=Math.sqrt(Math.pow(q.x1-a,2)+Math.pow(q.y1-d,2));m<=v&&b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:m});q=Math.abs(q.x1-a);q<=r?r=q:0v&&(m=Math.atan2(d-w.y,a-w.x),0>m&&(m+=2*Math.PI),m=Number(((180*(m/Math.PI)%360+360)%360).toFixed(12)),w=Number(((180*(q.startAngle/Math.PI)%360+360)%360).toFixed(12)),v=Number(((180*(q.endAngle/Math.PI)%360+360)%360).toFixed(12)),0===v&&1=v&&0!==g.y&&(v+=360,mw&&mm.y1&&dm.y6?(f=m.x6+(m.x5-m.x6)/(m.y5-m.y6)*(d-m.y6),m=m.x3+(m.x4-m.x3)/(m.y4-m.y3)*(d-m.y3)):(f=m.x1+(m.x6-m.x1)/(m.y6-m.y1)*(d-m.y1),m=m.x2+(m.x3-m.x2)/(m.y3-m.y2)*(d-m.y2)):(f=m.x1+(m.x4-m.x1)/(m.y4-m.y1)*(d-m.y1),m=m.x2+(m.x3-m.x2)/(m.y3-m.y2)*(d-m.y2)),a>f&&a=q.x1-q.borderThickness/2&&a<=q.x2+q.borderThickness/2&&d>=q.y4-q.borderThickness/2&&d<=q.y1+q.borderThickness/ -2||Math.abs(q.x2-a+q.x1-a)=q.y1&&d<=q.y4)b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y2-d),Math.abs(q.y3-d))}),h=!0;break;case "candlestick":if(a>=q.x1-q.borderThickness/2&&a<=q.x2+q.borderThickness/2&&d>=q.y2-q.borderThickness/2&&d<=q.y3+q.borderThickness/2||Math.abs(q.x2-a+q.x1-a)=q.y1&&d<=q.y4)b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(q.x1-a), -Math.abs(q.x2-a),Math.abs(q.y2-d),Math.abs(q.y3-d))}),h=!0;break;case "ohlc":if(Math.abs(q.x2-a+q.x1-a)=q.y2&&d<=q.y3||a>=q.x1&&a<=(q.x2+q.x1)/2&&d>=q.y1-q.borderThickness/2&&d<=q.y1+q.borderThickness/2||a>=(q.x1+q.x2)/2&&a<=q.x2&&d>=q.y4-q.borderThickness/2&&d<=q.y4+q.borderThickness/2)b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y2-d),Math.abs(q.y3-d))}),h=!0}if(h||1E3p-e&&p+e>= -this.dataPoints.length)break;-1===l?(e++,l=1):l=-1}a=null;for(d=0;dp[g].endValue;g++);a=g=p[g].startValue&&c<=p[g].endValue;n=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:n,label:this.labels[n]?this.labels[n]:null}):"axisX"===this.type&&this.labels[n]?this.labels[n]:da(n,this.valueFormatString,this.chart._cultureInfo),a=new ja(this.ctx,{x:0,y:0,maxWidth:f,maxHeight:l,angle:this.labelAngle,text:this.prefix+a+this.suffix,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,cornerRadius:this.labelCornerRadius,textAlign:this.labelTextAlign, -fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle",borderThickness:0}),this._labels.push({position:n,textBlock:a,effectiveHeight:null}))}g=q;for(c=this.intervalStartPosition;c<=e;c=parseFloat(1E-12>this.interval?this.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase,this.interval):c+this.interval:(this.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase, -this.interval):c+this.interval).toFixed(12))){for(;gp[g].endValue;g++);a=g=p[g].startValue&&c<=p[g].endValue;n=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:n,label:this.labels[n]?this.labels[n]:null}):"axisX"===this.type&&this.labels[n]?this.labels[n]:da(n,this.valueFormatString,this.chart._cultureInfo),a=new ja(this.ctx,{x:0,y:0,maxWidth:f,maxHeight:l,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign, -backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle"}),this._labels.push({position:n,textBlock:a,effectiveHeight:null}))}}else for(this.intervalStartPosition=this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType, -this.interval),e=Wa(new Date(this.viewportMaximum),this.interval,this.intervalType),g=q,c=this.intervalStartPosition;cp[g].endValue;g++);n=a;a=g=p[g].startValue&&a<=p[g].endValue;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:new Date(n),label:this.labels[n]?this.labels[n]:null}):"axisX"===this.type&&this.labels[n]?this.labels[n]:Aa(n,this.valueFormatString,this.chart._cultureInfo), -a=new ja(this.ctx,{x:0,y:0,maxWidth:f,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,maxHeight:l,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle"}),this._labels.push({position:n,textBlock:a, -effectiveHeight:null,breaksLabelType:void 0}))}if("bottom"===this._position||"top"===this._position)h=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.width*Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.width/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))* -I[this.intervalType+"Duration"]*this.interval,f="undefined"===typeof this.options.labelMaxWidth?0.5*this.chart.width>>0:this.options.labelMaxWidth,this.chart.panEnabled||(l="undefined"===typeof this.options.labelWrap||this.labelWrap?0.8*this.chart.height>>0:1.5*this.labelFontSize);else if("left"===this._position||"right"===this._position)h=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.height*Math.log(Math.min(this._labels[this._labels.length-1].position/ -this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.height/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*I[this.intervalType+"Duration"]*this.interval,this.chart.panEnabled||(f="undefined"===typeof this.options.labelMaxWidth?0.3*this.chart.width>>0:this.options.labelMaxWidth),l="undefined"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>> -0:1.5*this.labelFontSize;for(b=0;bthis.labelAngle?this.labelAngle-=180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360)),"bottom"===this._position||"top"===this._position)if(f=0.9*h>>0,q=0,!this.chart.panEnabled&&1<= -this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=f;this.sessionVariables.labelMaxHeight=l;this.sessionVariables.labelAngle=this.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;cq&&(v=c,q=n.width)}c=0;for(c=this.intervalStartPosition>0>2*f&&(this.sessionVariables.labelAngle=-25)):(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>f?-25:this.sessionVariables.labelAngle):r(this.options.labelMaxWidth)?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxHeight= -l,this.sessionVariables.labelMaxWidth=f,d&&t.width+d.width>>0>2*f&&(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=n)):(this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>f?-25:this.sessionVariables.labelAngle,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight=l,this.sessionVariables.labelWrap=this.labelWrap);else{if(r(this.options.labelWrap))if(!r(this.options.labelMaxWidth))this.options.labelMaxWidth>0,g=this.labelFontSize,qp&&(p=b-2*f,b>=2*f&&b<2.2*f?(this.sessionVariables.labelMaxWidth=f,r(this.options.labelFontSize)&&12=2.2*f&&b<2.8*f?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=n,this.sessionVariables.labelFontSize=g):b>=2.8*f&&b<3.2*f?(this.sessionVariables.labelMaxWidth=Math.max(f,q),this.sessionVariables.labelWrap=!0,r(this.options.labelFontSize)&&12=3.2*f&&b<3.6*f?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=n,this.sessionVariables.labelFontSize=this.labelFontSize):b>3.6*f&&b<5*f?(r(this.options.labelFontSize)&&125*f&&(this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=f,this.sessionVariables.labelFontSize=g,this.sessionVariables.labelMaxHeight=l,this.sessionVariables.labelAngle=this.labelAngle));else if(v===c&&(0===v&&q+this._labels[v+1].textBlock.measureText().width-2*f>p||v===this._labels.length-1&&q+this._labels[v-1].textBlock.measureText().width-2*f>p||0p&& -q+this._labels[v-1].textBlock.measureText().width-2*f>p))p=0===v?q+this._labels[v+1].textBlock.measureText().width-2*f:q+this._labels[v-1].textBlock.measureText().width-2*f,this.sessionVariables.labelFontSize=r(this.options.labelFontSize)?g:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=n;else if(0===p)for(this.sessionVariables.labelFontSize=r(this.options.labelFontSize)?g:this.options.labelFontSize,this.sessionVariables.labelWrap= -!0,b=0;b>0>2*f&&(this.sessionVariables.labelAngle=-25))}else(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxHeight=0===this.labelAngle?l:Math.min((b-f*Math.cos(Math.PI/ -180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)),b),n=0!=this.labelAngle?(k-(m+a.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)):f,this.sessionVariables.labelMaxHeight=this.labelWrap?(k-n*Math.sin(Math.PI/180*Math.abs(this.labelAngle)))/Math.cos(Math.PI/180*Math.abs(this.labelAngle)):1.5*this.labelFontSize,r(this.options.labelWrap))?r(this.options.labelWrap)&&(this.labelWrap&&!r(this.options.labelMaxWidth)? -(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:n,this.sessionVariables.labelMaxHeight=l):(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxWidth=n,this.sessionVariables.labelMaxHeight=b<0.9*h?0.9*h:b,this.sessionVariables.labelWrap=this.labelWrap)):(this.options.labelWrap?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth? -this.options.labelMaxWidth:n):(r(this.options.labelMaxWidth),this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:n,this.sessionVariables.labelWrap=this.labelWrap),this.sessionVariables.labelMaxHeight=l)}for(b=0;b>0:this.options.labelMaxWidth,l="undefined"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=f;this.sessionVariables.labelMaxHeight=l;this.sessionVariables.labelAngle=r(this.sessionVariables.labelAngle)? -0:this.sessionVariables.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;c>0,h-2*l>q&&(q=h-2*l,h>=2*l&&h<2.4*l?(r(this.options.labelFontSize)&&12=2.4*l&&h<2.8*l?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelFontSize=this.labelFontSize,this.sessionVariables.labelWrap=!0):h>=2.8*l&&h<3.2*l?(this.sessionVariables.labelMaxHeight=l,this.sessionVariables.labelWrap=!0,r(this.options.labelFontSize)&&12=3.2*l&&h<3.6*l?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelFontSize=this.labelFontSize):h>3.6*l&&h<10*l?(r(this.options.labelFontSize)&&1210*l&&h<50*l&&(r(this.options.labelFontSize)&&12>0:1.5*this.labelFontSize; -if("left"===this._position||"right"===this._position)r(f.options.labelWrap)&&!r(this.sessionVariables.stripLineLabelMaxHeight)?A=this.sessionVariables.stripLineLabelMaxHeight:this.sessionVariables.stripLineLabelMaxHeight=A=f.labelWrap?0.8*this.chart.width>>0:1.5*this.labelFontSize;r(f.labelBackgroundColor)&&(f.labelBackgroundColor="#EEEEEE")}else l="bottom"===this._position||"top"===this._position?0.9*this.chart.width>>0:0.9*this.chart.height>>0,A=r(f.options.labelWrap)||f.labelWrap?"bottom"===this._position|| -"top"===this._position?0.8*this.chart.width>>0:0.8*this.chart.height>>0:1.5*this.labelFontSize,r(f.labelBackgroundColor)&&(r(f.startValue)&&0!==f.startValue?f.labelBackgroundColor=w?"transparent":null:f.labelBackgroundColor="#EEEEEE");a=new ja(this.ctx,{x:0,y:0,backgroundColor:f.labelBackgroundColor,borderColor:f.labelBorderColor,borderThickness:f.labelBorderThickness,cornerRadius:f.labelCornerRadius,maxWidth:f.options.labelMaxWidth?f.options.labelMaxWidth:l,maxHeight:A,angle:this.labelAngle,text:f.labelFormatter? -f.labelFormatter({chart:this.chart,axis:this,stripLine:f}):f.label,textAlign:this.labelTextAlign,fontSize:"outside"===f.labelPlacement?f.options.labelFontSize?f.labelFontSize:this.labelFontSize:f.labelFontSize,fontFamily:"outside"===f.labelPlacement?f.options.labelFontFamily?f.labelFontFamily:this.labelFontFamily:f.labelFontFamily,fontWeight:"outside"===f.labelPlacement?f.options.labelFontWeight?f.labelFontWeight:this.labelFontWeight:f.labelFontWeight,fontColor:f.labelFontColor||f.color,fontStyle:"outside"=== -f.labelPlacement?f.options.labelFontStyle?f.labelFontStyle:this.fontWeight:f.labelFontStyle,textBaseline:"middle"});this._stripLineLabels.push({position:f.value,textBlock:a,effectiveHeight:null,stripLine:f})}};A.prototype.createLabelsAndCalculateWidth=function(){var a=0,d=0;this._labels=[];this._stripLineLabels=[];var c=this.chart.isNavigator?0:5;if("left"===this._position||"right"===this._position){this.createLabels();if("inside"!=this.labelPlacement||"inside"===this.labelPlacement&&0=this.viewportMinimum&&this._stripLineLabels[d].stripLine.value<=this.viewportMaximum)&& -(b=this._stripLineLabels[d].textBlock,e=b.measureText(),f=0===this.labelAngle?e.width:e.width*Math.cos(Math.PI/180*Math.abs(this.labelAngle))+(e.height-b.fontSize/2)*Math.sin(Math.PI/180*Math.abs(this.labelAngle)),a=this.viewportMinimum&&this._stripLineLabels[c].stripLine.value<=this.viewportMaximum)&&(d=this._stripLineLabels[c].textBlock,e=d.measureText(),f=0===this.labelAngle?e.height:e.width*Math.sin(Math.PI/180*Math.abs(this.labelAngle))+(e.height-d.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)),aq[g].viewportMaximum);w++)t[w].endValue=q[g].viewPortMinimum&&(q[g].scaleBreaks.lastBreakIndex=w));for(var v=w=0,u=0,y=0,x=0,z=0,A=0,C,B,E=h=0,I,J,K,t=I=J=K=!1,g=0;g -w;){var F=0,S=0,U=0,W=0,Y=e=0,L=0,Z=0,V=0,X=0,Q=0,$=0;if(c&&0n.width-p?n.width-p:f.x2-$-Z);if(a&&0n.width-p?n.width-p:f.x2-$-Z),a[g]._labels&&1m&&(h+=0a[g].labelAngle?C-vm&&(h=B+u/2-m-$),C-va[g].labelAngle&&0n.width-p?n.width-p:f.x2-$-Z),d[g].lineCoordinates.width=Math.abs(m-l),d[g]._labels&&1w;){V=W=S=U=Z=L=Y=e=R=P=F=X=0;if(a&&0n.width-10?n.width-10:f.x2-V-Y),c[g].labelAutoFit&&!r(y)&&(0c[g].labelAngle?Math.max(l,y):0===c[g].labelAngle?Math.max(l,y/2):l),0b[g].chart.width-10?b[g].chart.width-10:f.x2-V-Y),b[g]&&b[g].labelAutoFit&&!r(z)&&(0c[g].chart.height?c[g].chart.height:f.y2),c[g].lineCoordinates.y1=h-(p[g]+c[g].margin+X),c[g].lineCoordinates.y2=h-(p[g]+c[g].margin+X),"inside"===c[g].labelPlacement&&0n.height-Math.max(L,10)?n.height-Math.max(L,10):f.y2-U):f.y2>n.height-Math.max(L,10)?n.height-Math.max(L,10):f.y2;if(c&&0c[L].labelAngle?Math.max(m,y):0===c[L].labelAngle?Math.max(m,y/2):m,l= -0>c[L].labelAngle||0===c[L].labelAngle?m-W:l);if(b&&0n.height-Math.max(L,10)?n.height-Math.max(L,10):f.y2-U):f.y2>n.height-Math.max(L,10)?n.height-Math.max(L,10):f.y2;if(c&&0c[L].labelAngle?Math.max(m,y):0===c[L].labelAngle?Math.max(m,y/2):m,l=0>c[L].labelAngle||0===c[L].labelAngle?m-V:l);if(b&&0d[f].spacing?0:Math.abs(d[f].spacing/c),this.logarithmic&&(d[f].size=Math.pow(this.logarithmBase,d[f].size))};A.prototype.calculateBreaksInPixels=function(){if(!(this.scaleBreaks&&0>=this.scaleBreaks._appliedBreaks.length)){var a= -this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];a.length&&(this.scaleBreaks.firstBreakIndex=this.scaleBreaks.lastBreakIndex=null);for(var d=0;dthis.conversionParameters.maximum);d++)a[d].endValue=this.conversionParameters.minimum&&(a[d].startPixel=this.convertValueToPixel(a[d].startValue),this.scaleBreaks.lastBreakIndex=d),a[d].endValue<=this.conversionParameters.maximum&& -(a[d].endPixel=this.convertValueToPixel(a[d].endValue)))}};A.prototype.renderLabelsTicksAndTitle=function(){var a=this,d=!1,c=0,b=0,e=1,f=0;0!==this.labelAngle&&360!==this.labelAngle&&(e=1.2);if("undefined"===typeof this.options.interval){if("bottom"===this._position||"top"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],e=0!==this.labelAngle&&360!==this.labelAngle?1:1.2,l,h=this.viewportMaximum,m=this.lineCoordinates.width/Math.log(this.range),k=this._labels.length- -1;0<=k;k--){p=this._labels[k];if(p.positionthis.viewportMaximum||!(k===this._labels.length-1||lthis.lineCoordinates.width*e&&this.labelAutoFit&&(d=!0)}if("left"===this._position||"right"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],n,h=this.viewportMaximum,m=this.lineCoordinates.height/Math.log(this.range),k=this._labels.length-1;0<=k;k--){p=this._labels[k];if(p.positionthis.viewportMaximum||!(k===this._labels.length-1||nthis.lineCoordinates.height*e&&this.labelAutoFit&&(d=!0)}}this.logarithmic&&(!this.equidistantInterval&& -this.labelAutoFit)&&this._labels.sort(function(a,b){return a.position-b.position});var k=0,p,q;if("bottom"===this._position){for(k=0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<< -0),this.ctx.lineTo(b,q.y+this.tickLength<<0),this.ctx.stroke()),d&&0!==f++%2&&this.labelAutoFit||(0===p.textBlock.angle?(q.x-=p.textBlock.width/2,q.y="inside"===this.labelPlacement?q.y-(("inside"===this.tickPlacement?this.tickLength:0)+p.textBlock.height-p.textBlock.fontSize/2):q.y+("inside"===this.tickPlacement?0:this.tickLength)+p.textBlock.fontSize/2+5):(q.x="inside"===this.labelPlacement?0>this.labelAngle?q.x:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):q.x-(0>this.labelAngle?p.textBlock.width* -Math.cos(Math.PI/180*this.labelAngle):0),q.y="inside"===this.labelPlacement?0>this.labelAngle?q.y-("inside"===this.tickPlacement?this.tickLength:0)-5:q.y-("inside"===this.tickPlacement?this.tickLength:0)-Math.abs(p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)+5):q.y+("inside"===this.tickPlacement?0:this.tickLength)+Math.abs(0>this.labelAngle?p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5)),p.textBlock.x=q.x,p.textBlock.y=q.y));"inside"===this.tickPlacement&&this.chart.addEventListener("dataAnimationEnd", -function(){for(k=0;ka.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b,q.y-a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+ -this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y2-this._titleTextBlock.height-3,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("top"===this._position){for(k=0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle= -this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<<0),this.ctx.lineTo(b,q.y-this.tickLength<<0),this.ctx.stroke()),d&&0!==f++%2&&this.labelAutoFit||(0===p.textBlock.angle?(q.x-=p.textBlock.width/2,q.y="inside"===this.labelPlacement?q.y+this.labelFontSize/2+("inside"===this.tickPlacement?this.tickLength:0)+5:q.y-(("inside"===this.tickPlacement?0:this.tickLength)+p.textBlock.height-p.textBlock.fontSize/2)):(q.x="inside"===this.labelPlacement?0< -this.labelAngle?q.x:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):q.x+(p.textBlock.height-this.labelFontSize)*Math.sin(Math.PI/180*this.labelAngle)-(0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle= -a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b,q.y+a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y1+1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("left"===this._position){for(k= -0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x-this.tickLength<<0,b),this.ctx.stroke()),d&&0!==f++%2&&this.labelAutoFit||(0===this.labelAngle?(p.textBlock.y= -q.y,p.textBlock.x="inside"===this.labelPlacement?q.x+("inside"===this.tickPlacement?this.tickLength:0)+5:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-("inside"===this.tickPlacement?0:this.tickLength)-5):(p.textBlock.y="inside"===this.labelPlacement?q.y:q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle),p.textBlock.x="inside"===this.labelPlacement?q.x+("inside"===this.tickPlacement?this.tickLength:0)+5:0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth= -a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<0,b);a.ctx.lineTo(q.x+a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x1+1,this._titleTextBlock.y=this.lineCoordinates.height/2+this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("right"=== -this._position){for(k=0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x+this.tickLength<<0,b),this.ctx.stroke()),d&&0!==f++%2&&this.labelAutoFit||(0===this.labelAngle? -(p.textBlock.y=q.y,p.textBlock.x="inside"===this.labelPlacement?q.x-p.textBlock.width-("inside"===this.tickPlacement?this.tickLength:0)-5:q.x+("inside"===this.tickPlacement?0:this.tickLength)+5):(p.textBlock.y="inside"===this.labelPlacement?q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle):0>this.labelAngle?q.y:q.y-(p.textBlock.height-p.textBlock.fontSize/2-5)*Math.cos(Math.PI/180*this.labelAngle),p.textBlock.x="inside"===this.labelPlacement?q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)- -("inside"===this.tickPlacement?this.tickLength:0)-5:0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position), -a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<0,b);a.ctx.lineTo(q.x-a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x2-1,this._titleTextBlock.y=this.lineCoordinates.height/2-this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}f= -0;if("inside"===this.labelPlacement)this.chart.addEventListener("dataAnimationEnd",function(){for(k=0;ka.viewportMaximum||d&&0!==f++%2&&a.labelAutoFit)||(a.ctx.save(),a.ctx.beginPath(),p.textBlock.render(!0),a.ctx.restore())},this);else for(k=0;kthis.viewportMaximum||d&&0!==f++%2&&this.labelAutoFit)||p.textBlock.render(!0)};A.prototype.renderInterlacedColors= -function(){var a=this.chart.plotArea.ctx,d,c,b=this.chart.plotArea,e=0;d=!0;if(("bottom"===this._position||"top"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(Math.min(c.x,d.x),b.y1,Math.abs(c.x-d.x),Math.abs(b.y1-b.y2)),d=!1): -d=!0;else if(("left"===this._position||"right"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(b.x1,Math.min(c.y,d.y),Math.abs(b.x1-b.x2),Math.abs(d.y-c.y)),d=!1):d=!0;a.beginPath()};A.prototype.renderStripLinesOfThicknessType=function(a){if(this.stripLines&& -0this.viewportMaximum||r(k.value)||isNaN(this.range))||"value"===a&&(k.startValue<=this.viewportMinimum&&k.endValue<=this.viewportMinimum||k.startValue>=this.viewportMaximum&&k.endValue>=this.viewportMaximum||r(k.startValue)||r(k.endValue)||isNaN(this.range))||h.push(k))}for(b=0;bthis.viewportMaximum||isNaN(this.range))){a=this.getPixelCoordinatesOnAxis(c.position);if("outside"===c.stripLine.labelPlacement)if(k&&(this.ctx.strokeStyle=k.color,"pixel"===k._thicknessType&&(this.ctx.lineWidth=k.thickness)),"bottom"===this._position){var n=1===this.ctx.lineWidth%2?(a.x<<0)+0.5:a.x<<0;this.ctx.beginPath();this.ctx.moveTo(n,a.y<<0);this.ctx.lineTo(n,a.y+this.tickLength<<0);this.ctx.stroke(); -0===this.labelAngle?(a.x-=c.textBlock.width/2,a.y+=this.tickLength+c.textBlock.fontSize/2+5):(a.x-=0>this.labelAngle?c.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,a.y+=this.tickLength+Math.abs(0>this.labelAngle?c.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5))}else"top"===this._position?(n=1===this.ctx.lineWidth%2?(a.x<<0)+0.5:a.x<<0,this.ctx.beginPath(),this.ctx.moveTo(n,a.y<<0),this.ctx.lineTo(n,a.y-this.tickLength<<0),this.ctx.stroke(),0===this.labelAngle?(a.x-=c.textBlock.width/ -2,a.y-=this.tickLength+c.textBlock.height-c.textBlock.fontSize/2):(a.x+=(c.textBlock.height-this.tickLength-this.labelFontSize/2)*Math.sin(Math.PI/180*this.labelAngle)-(0this.labelAngle?a.y:a.y-(c.textBlock.height-c.textBlock.fontSize/2-5)*Math.cos(Math.PI/180*this.labelAngle),a.x=0this.chart.plotArea.x1?r(k.startValue)?a.x-=c.textBlock.height-c.textBlock.fontSize/2:a.x-=c.textBlock.height/2-c.textBlock.fontSize/2+3:(c.textBlock.angle=90,r(k.startValue)?a.x+=c.textBlock.height-c.textBlock.fontSize/2:a.x+=c.textBlock.height/2-c.textBlock.fontSize/2+3),a.y=-90===c.textBlock.angle? -"near"===c.stripLine.labelAlign?this.chart.plotArea.y2-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y1+c.textBlock.width+3:"near"===c.stripLine.labelAlign?this.chart.plotArea.y2-c.textBlock.width-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y1+3):"top"===this._position?(c.textBlock.maxWidth=this.options.stripLines[b].labelMaxWidth?this.options.stripLines[b].labelMaxWidth: -this.chart.plotArea.height-3,c.textBlock.measureText(),a.x-c.textBlock.height>this.chart.plotArea.x1?r(k.startValue)?a.x-=c.textBlock.height-c.textBlock.fontSize/2:a.x-=c.textBlock.height/2-c.textBlock.fontSize/2+3:(c.textBlock.angle=90,r(k.startValue)?a.x+=c.textBlock.height-c.textBlock.fontSize/2:a.x+=c.textBlock.height/2-c.textBlock.fontSize/2+3),a.y=-90===c.textBlock.angle?"near"===c.stripLine.labelAlign?this.chart.plotArea.y1+c.textBlock.width+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+ -this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y2-3:"near"===c.stripLine.labelAlign?this.chart.plotArea.y1+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y2-c.textBlock.width-3):"left"===this._position?(c.textBlock.maxWidth=this.options.stripLines[b].labelMaxWidth?this.options.stripLines[b].labelMaxWidth:this.chart.plotArea.width-3,c.textBlock.angle=0,c.textBlock.measureText(),a.y-c.textBlock.height>this.chart.plotArea.y1? -r(k.startValue)?a.y-=c.textBlock.height-c.textBlock.fontSize/2:a.y-=c.textBlock.height/2-c.textBlock.fontSize+3:a.y-c.textBlock.heightthis.chart.plotArea.y1?r(k.startValue)?a.y-=c.textBlock.height-c.textBlock.fontSize/2:a.y-=c.textBlock.height/2-c.textBlock.fontSize/2-3:a.y-c.textBlock.heightthis.viewportMaximum||isNaN(this.range))||a[d].render(this.maskCtx);this.maskCtx.restore()}};A.prototype.renderCrosshair=function(a,d){isFinite(this.minimum)&&isFinite(this.maximum)&&(this.crosshair.render(a,d),this.crosshair.dispatchEvent("updated",{chart:this.chart,crosshair:this.options,axis:this,value:this.crosshair.value},this))};A.prototype.showCrosshair=function(a){r(a)||(athis.viewportMaximum)||("top"===this._position||"bottom"===this._position?this.crosshair.render(this.convertValueToPixel(a), -null,a):this.crosshair.render(null,this.convertValueToPixel(a),a))};A.prototype.renderGrid=function(){if(this.gridThickness&&0this.viewportMaximum|| -this._labels[b].breaksLabelType)||(a.beginPath(),d=this.getPixelCoordinatesOnAxis(this._labels[b].position),d=1===a.lineWidth%2?(d.x<<0)+0.5:d.x<<0,a.moveTo(d,c.y1<<0),a.lineTo(d,c.y2<<0),a.stroke());else if("left"===this._position||"right"===this._position)for(var b=0;bthis.viewportMaximum||this._labels[b].breaksLabelType)||(a.beginPath(),d=this.getPixelCoordinatesOnAxis(this._labels[b].position),d= -1===a.lineWidth%2?(d.y<<0)+0.5:d.y<<0,a.moveTo(c.x1<<0,d),a.lineTo(c.x2<<0,d),a.stroke());a.restore()}};A.prototype.renderAxisLine=function(){var a=this.chart.ctx,d=w?this.chart._preRenderCtx:a,c=Math.ceil(this.tickThickness/(this.reversed?-2:2)),b=Math.ceil(this.tickThickness/(this.reversed?2:-2)),e,f;d.save();if("bottom"===this._position||"top"===this._position){if(this.lineThickness){this.reversed?(e=this.lineCoordinates.x2,f=this.lineCoordinates.x1):(e=this.lineCoordinates.x1,f=this.lineCoordinates.x2); -d.lineWidth=this.lineThickness;d.strokeStyle=this.lineColor?this.lineColor:"black";d.setLineDash&&d.setLineDash(J(this.lineDashType,this.lineThickness));var l=1===this.lineThickness%2?(this.lineCoordinates.y1<<0)+0.5:this.lineCoordinates.y1<<0;d.beginPath();if(this.scaleBreaks&&!r(this.scaleBreaks.firstBreakIndex))if(r(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+b;else for(var h=this.scaleBreaks.firstBreakIndex;h<=this.scaleBreaks.lastBreakIndex;h++)d.moveTo(e, -l),d.lineTo(this.scaleBreaks._appliedBreaks[h].startPixel+c,l),e=this.scaleBreaks._appliedBreaks[h].endPixel+b;e&&(d.moveTo(e,l),d.lineTo(f,l));d.stroke()}}else if(("left"===this._position||"right"===this._position)&&this.lineThickness){this.reversed?(e=this.lineCoordinates.y1,f=this.lineCoordinates.y2):(e=this.lineCoordinates.y2,f=this.lineCoordinates.y1);d.lineWidth=this.lineThickness;d.strokeStyle=this.lineColor;d.setLineDash&&d.setLineDash(J(this.lineDashType,this.lineThickness));l=1===this.lineThickness% -2?(this.lineCoordinates.x1<<0)+0.5:this.lineCoordinates.x1<<0;d.beginPath();if(this.scaleBreaks&&!r(this.scaleBreaks.firstBreakIndex))if(r(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+c;else for(h=this.scaleBreaks.firstBreakIndex;h<=this.scaleBreaks.lastBreakIndex;h++)d.moveTo(l,e),d.lineTo(l,this.scaleBreaks._appliedBreaks[h].startPixel+b),e=this.scaleBreaks._appliedBreaks[h].endPixel+c;e&&(d.moveTo(l,e),d.lineTo(l,f));d.stroke()}w&& -(a.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),this.chart._breaksCanvasCtx&&this.chart._breaksCanvasCtx.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),d.clearRect(0,0,this.chart.width,this.chart.height));d.restore()};A.prototype.getPixelCoordinatesOnAxis=function(a){var d={};if("bottom"===this._position||"top"===this._position)d.x=this.convertValueToPixel(a),d.y=this.lineCoordinates.y1;if("left"===this._position||"right"===this._position)d.y= -this.convertValueToPixel(a),d.x=this.lineCoordinates.x2;return d};A.prototype.convertPixelToValue=function(a){if("undefined"===typeof a)return null;var d=0,c=0,b,d=!0,e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[],c="number"===typeof a?a:"left"===this._position||"right"===this._position?a.y:a.x;if(this.logarithmic){a=b=Math.pow(this.logarithmBase,(c-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit);if(c<=this.conversionParameters.reference===("left"===this._position|| -"right"===this._position)!==this.reversed)for(c=0;ce[c].startValue/this.conversionParameters.minimum){b/=e[c].startValue/this.conversionParameters.minimum;if(be[c].startValue/e[c- -1].endValue){b/=e[c].startValue/e[c-1].endValue;if(bthis.conversionParameters.minimum))if(d)if(e[c].endValue>this.conversionParameters.minimum){if(1 -e[c].startValue){a=Math.pow(e[c].endValue/e[c].startValue,Math.log(b)/Math.log(e[c].size));break}else a*=e[c].startValue/this.conversionParameters.minimum*Math.pow(e[c].size,Math.log(e[c].startValue/this.conversionParameters.minimum)/Math.log(e[c].endValue/e[c].startValue))*b,b*=Math.pow(e[c].size,Math.log(this.conversionParameters.minimum/e[c].startValue)/Math.log(e[c].endValue/e[c].startValue));d=!1}else if(b1/e[c].size){a*=Math.pow(e[c].endValue/e[c].startValue,1>=e[c].size?1:Math.log(b)/Math.log(e[c].size))*b;break}else a/=e[c].endValue/e[c].startValue/e[c].size;b*=e[c].size;d=!1}else break;else if(b1/e[c].size){a*=Math.pow(e[c].endValue/e[c].startValue,1>=e[c].size?1:Math.log(b)/Math.log(e[c].size))*b;break}else a/=e[c].endValue/e[c].startValue/e[c].size;b*=e[c].size}else break;d=a*this.viewportMinimum}else{a=b=(c-this.conversionParameters.reference)/ -this.conversionParameters.pixelPerUnit;if(c<=this.conversionParameters.reference===("left"===this._position||"right"===this._position)!==this.reversed)for(c=0;c=e[c].size?0:b*(e[c].endValue-e[c].startValue)/e[c].size;break}else a+=e[c].endValue-this.conversionParameters.minimum- -e[c].size*(e[c].endValue-this.conversionParameters.minimum)/(e[c].endValue-e[c].startValue),b-=e[c].size*(e[c].endValue-this.conversionParameters.minimum)/(e[c].endValue-e[c].startValue);d=!1}else if(b>e[c].startValue-this.conversionParameters.minimum){b-=e[c].startValue-this.conversionParameters.minimum;if(be[c].startValue-e[c- -1].endValue){b-=e[c].startValue-e[c-1].endValue;if(bthis.conversionParameters.minimum))if(d)if(e[c].endValue>this.conversionParameters.minimum)if(e[c].size&&this.conversionParameters.minimum+b*(e[c].endValue-e[c].startValue)/e[c].size>e[c].startValue){a=0>=e[c].size?0:b*(e[c].endValue-e[c].startValue)/ -e[c].size;break}else a+=e[c].startValue-this.conversionParameters.minimum+e[c].size*(this.conversionParameters.minimum-e[c].startValue)/(e[c].endValue-e[c].startValue),b+=e[c].size*(this.conversionParameters.minimum-e[c].startValue)/(e[c].endValue-e[c].startValue),d=!1;else if(b-1*e[c].size){a+=(e[c].endValue-e[c].startValue)*(0===e[c].size?1:b/e[c].size)+b;break}else a-=e[c].endValue-e[c].startValue- -e[c].size;b+=e[c].size;d=!1}else break;else if(b-1*e[c].size){a+=(e[c].endValue-e[c].startValue)*(0===e[c].size?1:b/e[c].size)+b;break}else a-=e[c].endValue-e[c].startValue-e[c].size;b+=e[c].size}else break;d=this.conversionParameters.minimum+a}return d};A.prototype.convertValueToPixel=function(a){a=this.getApparentDifference(this.conversionParameters.minimum,a,a);return this.logarithmic?this.conversionParameters.reference+ -this.conversionParameters.pixelPerUnit*Math.log(a/this.conversionParameters.minimum)/this.conversionParameters.lnLogarithmBase+0.5<<0:"axisX"===this.type?this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5<<0:this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5};A.prototype.getApparentDifference=function(a,d,c,b){var e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[]; -if(this.logarithmic){c=r(c)?d/a:c;for(var f=0;fe[f].endValue||(a<=e[f].startValue&&d>=e[f].endValue?c=c/e[f].endValue*e[f].startValue*e[f].size:a>=e[f].startValue&&d>=e[f].endValue?c=c/e[f].endValue*a*Math.pow(e[f].size,Math.log(e[f].endValue/a)/Math.log(e[f].endValue/e[f].startValue)):a<=e[f].startValue&&d<=e[f].endValue?c=c/d*e[f].startValue*Math.pow(e[f].size,Math.log(d/e[f].startValue)/Math.log(e[f].endValue/e[f].startValue)):!b&&(a>e[f].startValue&&de[f].endValue||(a<=e[f].startValue&&d>=e[f].endValue?c=c-e[f].endValue+e[f].startValue+e[f].size:a>e[f].startValue&&d>=e[f].endValue?c=c-e[f].endValue+a+e[f].size*(e[f].endValue-a)/(e[f].endValue-e[f].startValue):a<=e[f].startValue&&de[f].startValue&& -da[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<=a[e].endValue?c=0:this.viewportMinimum<=a[e].startValue&& -this.viewportMaximum>=a[e].endValue?(b=b/a[e].endValue*a[e].startValue,c=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b/a[e].endValue*this.viewportMinimum,c=0a[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<=a[e].endValue?c=0:this.viewportMinimum<=a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b-a[e].endValue+a[e].startValue,c=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b-a[e].endValue+this.viewportMinimum,c=0this.maxWidth?8:6);var a=Math.max(b,Math.floor(this.maxWidth/a)),e,f,l,b=0;!r(this.options.viewportMinimum)&&(!r(this.options.viewportMaximum)&&this.options.viewportMinimum>=this.options.viewportMaximum)&&(this.viewportMinimum=this.viewportMaximum=null); -if(r(this.options.viewportMinimum)&&!r(this.sessionVariables.newViewportMinimum)&&!isNaN(this.sessionVariables.newViewportMinimum))this.viewportMinimum=this.sessionVariables.newViewportMinimum;else if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(r(this.options.viewportMaximum)&&!r(this.sessionVariables.newViewportMaximum)&&!isNaN(this.sessionVariables.newViewportMaximum))this.viewportMaximum=this.sessionVariables.newViewportMaximum;else if(null===this.viewportMaximum|| -isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(b=0;b=this.scaleBreaks._appliedBreaks[b].startValue||!r(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[b].startValue||!r(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[b].startValue)&&(!r(this.sessionVariables.newViewportMaximum)&& -this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue||!r(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[b].endValue||!r(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue)){this.scaleBreaks._appliedBreaks.splice(b,1);break}if("axisX"===this.type){if(this.dataSeries&&0f?(b=Math.min(0.01*Math.abs(this.getApparentDifference(f,e,null,!0)),5),0<=f?e=f-b:f=isFinite(e)?e+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(e,f,null,!0)),0.05),0!==f&&(f+=b),0!==e&&(e-= -b)),l=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1f&&(f=0));b=this.getApparentDifference(isNaN(this.viewportMinimum)||null===this.viewportMinimum?e:this.viewportMinimum,isNaN(this.viewportMaximum)||null===this.viewportMaximum?f:this.viewportMaximum,null,!0);if("axisX"===this.type&&c){this.valueType= -"dateTime";this.intervalType||(b/1<=a?(this.interval=1,this.intervalType="millisecond"):b/2<=a?(this.interval=2,this.intervalType="millisecond"):b/5<=a?(this.interval=5,this.intervalType="millisecond"):b/10<=a?(this.interval=10,this.intervalType="millisecond"):b/20<=a?(this.interval=20,this.intervalType="millisecond"):b/50<=a?(this.interval=50,this.intervalType="millisecond"):b/100<=a?(this.interval=100,this.intervalType="millisecond"):b/200<=a?(this.interval=200,this.intervalType="millisecond"): -b/250<=a?(this.interval=250,this.intervalType="millisecond"):b/300<=a?(this.interval=300,this.intervalType="millisecond"):b/400<=a?(this.interval=400,this.intervalType="millisecond"):b/500<=a?(this.interval=500,this.intervalType="millisecond"):b/(1*I.secondDuration)<=a?(this.interval=1,this.intervalType="second"):b/(2*I.secondDuration)<=a?(this.interval=2,this.intervalType="second"):b/(5*I.secondDuration)<=a?(this.interval=5,this.intervalType="second"):b/(10*I.secondDuration)<=a?(this.interval=10, -this.intervalType="second"):b/(15*I.secondDuration)<=a?(this.interval=15,this.intervalType="second"):b/(20*I.secondDuration)<=a?(this.interval=20,this.intervalType="second"):b/(30*I.secondDuration)<=a?(this.interval=30,this.intervalType="second"):b/(1*I.minuteDuration)<=a?(this.interval=1,this.intervalType="minute"):b/(2*I.minuteDuration)<=a?(this.interval=2,this.intervalType="minute"):b/(5*I.minuteDuration)<=a?(this.interval=5,this.intervalType="minute"):b/(10*I.minuteDuration)<=a?(this.interval= -10,this.intervalType="minute"):b/(15*I.minuteDuration)<=a?(this.interval=15,this.intervalType="minute"):b/(20*I.minuteDuration)<=a?(this.interval=20,this.intervalType="minute"):b/(30*I.minuteDuration)<=a?(this.interval=30,this.intervalType="minute"):b/(1*I.hourDuration)<=a?(this.interval=1,this.intervalType="hour"):b/(2*I.hourDuration)<=a?(this.interval=2,this.intervalType="hour"):b/(3*I.hourDuration)<=a?(this.interval=3,this.intervalType="hour"):b/(6*I.hourDuration)<=a?(this.interval=6,this.intervalType= -"hour"):b/(1*I.dayDuration)<=a?(this.interval=1,this.intervalType="day"):b/(2*I.dayDuration)<=a?(this.interval=2,this.intervalType="day"):b/(4*I.dayDuration)<=a?(this.interval=4,this.intervalType="day"):b/(1*I.weekDuration)<=a?(this.interval=1,this.intervalType="week"):b/(2*I.weekDuration)<=a?(this.interval=2,this.intervalType="week"):b/(3*I.weekDuration)<=a?(this.interval=3,this.intervalType="week"):b/(1*I.monthDuration)<=a?(this.interval=1,this.intervalType="month"):b/(2*I.monthDuration)<=a?(this.interval= -2,this.intervalType="month"):b/(3*I.monthDuration)<=a?(this.interval=3,this.intervalType="month"):b/(6*I.monthDuration)<=a?(this.interval=6,this.intervalType="month"):(this.interval=b/(1*I.yearDuration)<=a?1:b/(2*I.yearDuration)<=a?2:b/(4*I.yearDuration)<=a?4:Math.floor(A.getNiceNumber(b/(a-1),!0)/I.yearDuration),this.intervalType="year"));if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=e-l/2;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum= -f+l/2;d?this.autoValueFormatString="MMM DD YYYY HH:mm":"year"===this.intervalType?this.autoValueFormatString="YYYY":"month"===this.intervalType?this.autoValueFormatString="MMM YYYY":"week"===this.intervalType?this.autoValueFormatString="MMM DD YYYY":"day"===this.intervalType?this.autoValueFormatString="MMM DD YYYY":"hour"===this.intervalType?this.autoValueFormatString="hh:mm TT":"minute"===this.intervalType?this.autoValueFormatString="hh:mm TT":"second"===this.intervalType?this.autoValueFormatString= -"hh:mm:ss TT":"millisecond"===this.intervalType&&(this.autoValueFormatString="fff'ms'");this.valueFormatString||(this.valueFormatString=this.autoValueFormatString)}else{this.intervalType="number";b=A.getNiceNumber(b,!1);this.interval=this.options&&0f?(b=Math.min(0.01*Math.abs(this.getApparentDifference(f,e,null,!0)),5),0<=f?e=f-b:f=isFinite(e)?e+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(e,f,null,!0)),0.05),0!==f&&(f+=b),0!==e&&(e-=b)):(f="undefined"===typeof this.options.interval?-Infinity:this.options.interval,e="undefined"!==typeof this.options.interval||isFinite(this.dataInfo.minDiff)?0:Infinity),l=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1f&&(f=0)),Math.abs(this.getApparentDifference(e,f,null,!0)),"axisX"===this.type&&c){this.valueType="dateTime";if(null===this.minimum||isNaN(this.minimum))this.minimum=e-l/2,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum);if(null===this.maximum||isNaN(this.maximum))this.maximum= -f+l/2,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)}else this.intervalType=this.valueType="number",null===this.minimum&&(this.minimum="axisX"===this.type?e-l/2:Math.floor(e/this.interval)*this.interval,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum)), -null===this.maximum&&(this.maximum="axisX"===this.type?f+l/2:Math.ceil(f/this.interval)*this.interval,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)),0===this.maximum&&0===this.minimum&&(0===this.options.minimum?this.maximum+=10:0===this.options.maximum&&(this.minimum-=10));r(this.sessionVariables.newViewportMinimum)&&(this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum)); -r(this.sessionVariables.newViewportMaximum)&&(this.viewportMaximum=Math.min(this.viewportMaximum,this.maximum));this.range=this.viewportMaximum-this.viewportMinimum;this.intervalStartPosition="axisX"===this.type&&c?this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval):Math.floor((this.viewportMinimum+0.2*this.interval)/this.interval)*this.interval;this.valueFormatString||(this.valueFormatString=A.generateValueFormatString(this.range,2))}};A.prototype.calculateLogarithmicAxisParameters= -function(){var a=this.chart.layoutManager.getFreeSpace(),d=Math.log(this.logarithmBase),c;"bottom"===this._position||"top"===this._position?(this.maxWidth=a.width,this.maxHeight=a.height):(this.maxWidth=a.height,this.maxHeight=a.width);var a="axisX"===this.type?500>this.maxWidth?7:Math.max(7,Math.floor(this.maxWidth/100)):Math.max(Math.floor(this.maxWidth/50),3),b,e,f,l;l=1;if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(null===this.viewportMaximum|| -isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(l=0;l=this.scaleBreaks._appliedBreaks[l].startValue||!r(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[l].startValue||!r(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[l].startValue)&&(!r(this.sessionVariables.newViewportMaximum)&& -this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[l].endValue||!r(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[l].endValue||!r(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[l].endValue)){this.scaleBreaks._appliedBreaks.splice(l,1);break}"axisX"===this.type?(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,e=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax, -1===e/b&&(l=Math.pow(this.logarithmBase,"undefined"===typeof this.options.interval?0.4:this.options.interval),e*=l,b/=l),f=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/b>this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,e=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,0>=b&&!isFinite(e)?(e="undefined"===typeof this.options.interval?0: -this.options.interval,b=1):0>=b?b=e:isFinite(e)||(e=b),1===b&&1===e?(e*=this.logarithmBase-1/this.logarithmBase,b=1):1===e/b?(l=Math.min(e*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),e*=l,b/=l):b>e?(l=Math.min(b/e*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),1<=e?b=e/l:e=b*l):(l=Math.min(e/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==e&&(e*=l),1!==b&&(b/=l)),f=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/b>this.logarithmBase? -e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.viewportMinimum||isNaN(this.viewportMinimum))&&1e&&(e=1));l=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?e:this.viewportMaximum)/(isNaN(this.viewportMinimum)||null===this.viewportMinimum?b:this.viewportMinimum);var h=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?e:this.viewportMaximum)-(isNaN(this.viewportMinimum)|| -null===this.viewportMinimum?b:this.viewportMinimum);this.intervalType="number";l=Math.pow(this.logarithmBase,A.getNiceNumber(Math.abs(Math.log(l)/d),!1));this.options&&0this.logarithmBase? -e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(b=null!==this.minimum?this.minimum:this.dataInfo.min,e=null!==this.maximum?this.maximum:this.dataInfo.max,isFinite(b)||isFinite(e)?1===b&&1===e?(e*=this.logarithmBase,b/=this.logarithmBase):1===e/b?(l=Math.pow(this.logarithmBase,this.interval),e*=l,b/=l):b>e?(l=Math.min(0.01*(b/e),5),1<=e?b=e/l:e=b*l):(l=Math.min(e/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==e&&(e*=l),1!==b&&(b/=l)):(e="undefined"=== -typeof this.options.interval?0:this.options.interval,b=1),f=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/b>this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.minimum||isNaN(this.minimum))&&1e&&(e=1)),this.intervalType="number",null===this.minimum&&(this.minimum="axisX"===this.type?b/Math.sqrt(f):Math.pow(this.logarithmBase,this.interval*Math.floor(Math.log(b)/ -d/this.interval)),r(null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?"undefined"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:this.sessionVariables.viewportMinimum)||(this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?"undefined"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum: -this.sessionVariables.viewportMinimum))),null===this.maximum&&(this.maximum="axisX"===this.type?e*Math.sqrt(f):Math.pow(this.logarithmBase,this.interval*Math.ceil(Math.log(e)/d/this.interval)),r(null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?"undefined"===typeof this.sessionVariables.newViewportMaximum?0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum)||(this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum|| -isNaN(this.sessionVariables.viewportMaximum)?"undefined"===typeof this.sessionVariables.newViewportMaximum?0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum))),1===this.maximum&&1===this.minimum&&(1===this.options.minimum?this.maximum*=this.logarithmBase-1/this.logarithmBase:1===this.options.maximum&&(this.minimum/=this.logarithmBase-1/this.logarithmBase));this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum);this.viewportMaximum=Math.min(this.viewportMaximum, -this.maximum);this.viewportMinimum>this.viewportMaximum&&(!this.options.viewportMinimum&&!this.options.minimum||this.options.viewportMaximum||this.options.maximum?this.options.viewportMinimum||this.options.minimum||!this.options.viewportMaximum&&!this.options.maximum||(this.viewportMinimum=this.minimum=(this.options.viewportMaximum||this.options.maximum)/Math.pow(this.logarithmBase,2*Math.ceil(this.interval))):this.viewportMaximum=this.maximum=this.options.viewportMinimum||this.options.minimum);b= -Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(d*this.interval)+0.2)*this.interval);this.range=this.viewportMaximum/this.viewportMinimum;this.noTicks=a;if(!this.options.interval&&this.rangethis.viewportMaximum||3>a?2:3)){for(d=Math.floor(this.viewportMinimum/c+0.5)*c;dthis.interval&& -(this.interval=c,b=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(d*this.interval)+0.2)*this.interval))),this.equidistantInterval=!0,this.intervalStartPosition=b;if(!this.valueFormatString&&(this.valueFormatString="#,##0.##",1>this.viewportMinimum)){d=Math.floor(Math.abs(Math.log(this.viewportMinimum)/Math.LN10))+2;if(isNaN(d)||!isFinite(d))d=2;if(2a&&(b+=Math.floor(Math.abs(Math.log(a)/ -Math.LN10)),isNaN(b)||!isFinite(b))&&(b=d);for(var e=0;ec?1>=b?1:5>=b?5:10:Math.max(Math.floor(b),1);return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))};A.getNiceNumber=function(a,d){var c=Math.floor(Math.log(a)/Math.LN10),b=a/Math.pow(10,c),b=d?1.5>b?1:3>b?2:7>b?5:10:1>=b?1:2>=b?2:5>=b?5:10;return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))}; -A.prototype.getLabelStartPoint=function(){var a=I[this.intervalType+"Duration"]*this.interval,a=new Date(Math.floor(this.viewportMinimum/a)*a);if("millisecond"!==this.intervalType)if("second"===this.intervalType)0=a||"bottom"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(b,h),this.ctx.lineTo(l,h),this.ctx.lineTo(l,e);else if("wavy"===this.type){m=b;k=e;f=0.5;n=(h-k)/a/3;for(var q=0;q=a||"right"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(l,e),this.ctx.lineTo(l,h),this.ctx.lineTo(b,h);else if("wavy"===this.type){m=b;k=e;f=0.5;n= -(l-m)/a/3;for(q=0;q=d.axisY[b].viewportMinimum&& -a<=d.axisY[b].viewportMaximum?a:null);else if("top"===this.parent._position)for(b=0;b=d.axisY2[b].viewportMinimum&&a<=d.axisY2[b].viewportMaximum?a:null);else if("left"===this.parent._position)for(b=0;b=d.axisX[b].viewportMinimum&&a<=d.axisX[b].viewportMaximum?a:null);else{if("right"===this.parent._position)for(b=0;b=d.axisX2[b].viewportMinimum&&a<=d.axisX2[b].viewportMaximum?a:null)}else if("bottom"===this.parent._position)for(b=0;b=d.axisX[b].viewportMinimum&&a<=d.axisX[b].viewportMaximum?a:null);else if("top"===this.parent._position)for(b=0;b=d.axisX2[b].viewportMinimum&&a<=d.axisX2[b].viewportMaximum?a:null); -else if("left"===this.parent._position)for(b=0;b=d.axisY[b].viewportMinimum&&a<=d.axisY[b].viewportMaximum?a:null);else if("right"===this.parent._position)for(b=0;b=d.axisY2[b].viewportMinimum&&a<=d.axisY2[b].viewportMaximum?a:null);for(b=0;b=d.axisX[b].viewportMinimum&&a<=d.axisX[b].viewportMaximum)&&(d.axisX[b].showCrosshair(a),d.axisX[b].crosshair._updatedValue=a,this===d.axisX[b].crosshair&&(c=!0));for(b=0;b=d.axisX2[b].viewportMinimum&&a<=d.axisX2[b].viewportMaximum)&&(d.axisX2[b].showCrosshair(a),d.axisX2[b].crosshair._updatedValue=a,this===d.axisX2[b].crosshair&&(c=!0));for(b=0;b=d.axisY[b].viewportMinimum&&a<=d.axisY[b].viewportMaximum)&&(d.axisY[b].showCrosshair(a),d.axisY[b].crosshair._updatedValue=a,this===d.axisY[b].crosshair&&(c=!0));for(b=0;b=d.axisY2[b].viewportMinimum&&a<=d.axisY2[b].viewportMaximum)&&(d.axisY2[b].showCrosshair(a),d.axisY2[b].crosshair._updatedValue=a,this===d.axisY2[b].crosshair&& -(c=!0));this.chart.toolTip&&this.chart.toolTip._entries&&this.chart.toolTip.highlightObjects(this.chart.toolTip._entries);return c};ca.prototype.hide=function(){this.chart.resetOverlayedCanvas();this.chart.renderCrosshairs(this.parent);this._hidden=!0};ca.prototype.render=function(a,d,c){var b,e,f,h,m=null,w=null,k=null,n="";if(!this.valueFormatString)if("dateTime"===this.parent.valueType)this.valueFormatString=this.parent.valueFormatString;else{var p=0,p="xySwapped"===this.chart.plotInfo.axisPlacement? -50this.parent.range?2:Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0):50this.parent.range?2:10>this.parent.range?1:0);this.valueFormatString=A.generateValueFormatString(this.parent.range,p)}var k=null===this.opacity?1:this.opacity,p=Math.abs("pixel"===this._thicknessType?this.thickness:this.parent.conversionParameters.pixelPerUnit* -this.thickness),q=this.chart.overlaidCanvasCtx,g=q.globalAlpha;q.globalAlpha=k;q.beginPath();q.strokeStyle=this.color;q.lineWidth=p;q.save();this.labelFontSize=Math.abs(r(this.options.labelFontSize)?this.parent.labelFontSize:this.labelFontSize);this.labelMaxWidth=r(this.options.labelMaxWidth)?0.3*this.chart.width:this.labelMaxWidth;this.labelMaxHeight=r(this.options.labelWrap)||this.labelWrap?0.3*this.chart.height:2*this.labelFontSize;0this.chart.bounds.x2?k.x=this.chart.bounds.x2-k.width:k.xthis.chart.bounds.y2?k.y=this.chart.bounds.y2-k.height:k.ythis.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2);"left"===this.parent._position?k.x=this.parent.lineCoordinates.x2-k.measureText().width:"right"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}}else if("bottom"===this.parent._position||"top"===this.parent._position){t=this.parent.convertPixelToValue({x:a});for(B=0;Bthis.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width);k.xthis.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2);"left"===this.parent._position?k.x=this.parent.lineCoordinates.x2-k.measureText().width:"right"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}n=null;if("bottom"===this.parent._position||"top"===this.parent._position)"top"===this.parent._position&&k.y-k.fontSize/2this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.height+k.fontSize/2+2),b>=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMaximum:this.parent.viewportMinimum)&&e<=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMinimum:this.parent.viewportMaximum)&&(0this.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.measureText().width),h>=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMinimum:this.parent.viewportMaximum)&&f<=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMaximum:this.parent.viewportMinimum)&&(0this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2);"left"===this.parent._position? -k.x=this.parent.lineCoordinates.x1-k.measureText().width:"right"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}else{if("bottom"===this.parent._position||"top"===this.parent._position)k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:r(c)?this.parent.convertPixelToValue(a):c}):r(this.options.label)?da(r(c)?this.parent.convertPixelToValue(a):c,this.valueFormatString,this.chart._cultureInfo):this.label,k.x=b-k.measureText().width/ -2,k.x+k.width>this.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width),k.xthis.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width);k.xthis.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+ -k.fontSize/2),"left"===this.parent._position?k.x=this.parent.lineCoordinates.x2-k.measureText().width:"right"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2);"left"===this.parent._position&&k.xthis.chart.bounds.x2?k.x=this.chart.bounds.x2-k.measureText().width:"top"===this.parent._position&&k.y-k.fontSize/2this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.height+k.fontSize/2+2);0(new Date).getTime()-this._lastUpdated|| -(this._lastUpdated=(new Date).getTime(),this.chart.resetOverlayedCanvas(),this._updateToolTip(a,d))};Z.prototype._updateToolTip=function(a,d,c){c="undefined"===typeof c?!0:c;this.container||this._initialize();this.enabled||this.hide();if(!this.chart.disableToolTip){if("undefined"===typeof a||"undefined"===typeof d){if(isNaN(this._prevX)||isNaN(this._prevY))return;a=this._prevX;d=this._prevY}else this._prevX=a,this._prevY=d;var b=null,e=null,f=[],h=0;if(this.shared&&this.enabled&&"none"!==this.chart.plotInfo.axisPlacement){var m= -[];if(this.chart.axisX)for(var v=0;vk.dataSeries.axisY.viewportMaximum&&c++;c-k.dataPoint.y.length&&f.push(k)}else"column"===e.type||"bar"===e.type?0>k.dataPoint.y?0>k.dataSeries.axisY.viewportMinimum&&k.dataSeries.axisY.viewportMaximum>=k.dataPoint.y&&f.push(k):k.dataSeries.axisY.viewportMinimum<=k.dataPoint.y&&0<=k.dataSeries.axisY.viewportMaximum&&f.push(k):"bubble"===e.type?(c=this.chart._eventManager.objectMap[e.dataPointIds[k.index]].size/ -2,k.dataPoint.y>=k.dataSeries.axisY.viewportMinimum-c&&k.dataPoint.y<=k.dataSeries.axisY.viewportMaximum+c&&f.push(k)):"waterfall"===e.type?(c=0,k.cumulativeSumYStartValuek.dataSeries.axisY.viewportMaximum&&c++,k.cumulativeSumk.dataSeries.axisY.viewportMaximum&&c++,2>c&&-2= -k.dataSeries.axisY.viewportMinimum&&k.dataPoint.y<=k.dataSeries.axisY.viewportMaximum)&&f.push(k);else f.push(k)}}if(0a&&(a+=this.container.clientWidth+20);a+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(a=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));d=1!==f.length||this.shared||"line"!==f[0].dataSeries.type&&"stepLine"!== -f[0].dataSeries.type&&"spline"!==f[0].dataSeries.type&&"area"!==f[0].dataSeries.type&&"stepArea"!==f[0].dataSeries.type&&"splineArea"!==f[0].dataSeries.type?"bar"===f[0].dataSeries.type||"rangeBar"===f[0].dataSeries.type||"stackedBar"===f[0].dataSeries.type||"stackedBar100"===f[0].dataSeries.type?f[0].dataSeries.axisX.convertValueToPixel(f[0].dataPoint.x):d:f[0].dataSeries.axisY.convertValueToPixel(f[0].dataPoint.y);d=-d+10;0":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y}",m=c.axisXIndex):"bubble"===c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y},   {z}"):"rangeColumn"=== -c.type||"rangeBar"===c.type||"rangeArea"===c.type||"rangeSplineArea"===c.type||"error"===c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y[0]}, {y[1]}"):"candlestick"===c.type||"ohlc"=== -c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:
Open:   {y[0]}
High:    {y[1]}
Low:   {y[2]}
Close:   {y[3]}"):"boxAndWhisker"===c.type&& -(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:
Minimum:   {y[0]}
Q1:               {y[1]}
Q2:               {y[4]}
Q3:               {y[2]}
Maximum:  {y[3]}"), -null===d&&(d=""),c.visible&&(!0===this.reversed?(d=this.chart.replaceKeywordsWithValue(f,b,c,e)+d,h"+d)):(d+=this.chart.replaceKeywordsWithValue(f,b,c,e),h"))))}null!==d&&(d=r+d)}else{c=a[0].dataSeries;b=a[0].dataPoint;e=a[0].index;if(null===b.toolTipContent||"undefined"===typeof b.toolTipContent&&null===c.options.toolTipContent)return null;"line"===c.type||"stepLine"===c.type||"spline"===c.type||"area"===c.type||"stepArea"===c.type||"splineArea"===c.type|| -"column"===c.type||"bar"===c.type||"scatter"===c.type||"stackedColumn"===c.type||"stackedColumn100"===c.type||"stackedBar"===c.type||"stackedBar100"===c.type||"stackedArea"===c.type||"stackedArea100"===c.type||"waterfall"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+":  {y}":"bubble"===c.type? -f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+":  {y},   {z}":"pie"===c.type||"doughnut"===c.type||"funnel"===c.type||"pyramid"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.name?"{name}:  ":b.label?"{label}:  ":"")+"{y}":"rangeColumn"===c.type||"rangeBar"===c.type||"rangeArea"===c.type||"rangeSplineArea"===c.type||"error"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+" :  {y[0]},  {y[1]}":"candlestick"=== -c.type||"ohlc"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+"
Open:   {y[0]}
High:    {y[1]}
Low:     {y[2]}
Close:   {y[3]}":"boxAndWhisker"===c.type&&(f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&& -"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+"
Minimum:   {y[0]}
Q1:               {y[1]}
Q2:               {y[4]}
Q3:               {y[2]}
Maximum:  {y[3]}"); -null===d&&(d="");d+=this.chart.replaceKeywordsWithValue(f,b,c,e)}return d};Z.prototype.enableAnimation=function(){if(!this.container.style.WebkitTransition){var a=this.getContainerTransition(this.containerTransitionDuration);this.container.style.WebkitTransition=a;this.container.style.MsTransition=a;this.container.style.transition=a;this.container.style.MozTransition=this.mozContainerTransition}};Z.prototype.disableAnimation=function(){this.container.style.WebkitTransition&&(this.container.style.WebkitTransition= -"",this.container.style.MozTransition="",this.container.style.MsTransition="",this.container.style.transition="")};Z.prototype.hide=function(a){this.container&&(this.container.style.display="none",this.currentSeriesIndex=-1,this._prevY=this._prevX=NaN,("undefined"===typeof a||a)&&this.chart.resetOverlayedCanvas())};Z.prototype.show=function(a,d,c){this._updateToolTip(a,d,"undefined"===typeof c?!1:c)};Z.prototype.showAtIndex=function(a,d){};Z.prototype.showAtX=function(a,d){if(!this.enabled)return!1; -this.chart.clearedOverlayedCanvas=null;var c,b,e,f=[];e=!1;d=!r(d)&&0<=d&&d=b.dataSeries.axisX.viewportMinimum&&b.dataPoint.x<=b.dataSeries.axisX.viewportMaximum){e=!1;break}else if(b.dataPoint.xb.dataSeries.axisX.viewportMaximum||b.dataPoint.yb.dataSeries.axisY.viewportMaximum)e=!0;else{e=!1;break}if(e)return this.hide(),!1;this.highlightObjects(f);this._entries=f;h="";h=this.getToolTipInnerHTML({entries:f});if(null!==h){this.contentDiv.innerHTML=h;if(this.isToolTipDefinedInData&& -r(this.options.content)&&r(this.options.contentFormatter))for(b=this.contentDiv.getElementsByTagName("span"),h=0;hc&&(c+=this.container.clientWidth+20);c+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(c=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));f=1!==f.length||this.shared||"line"!==f[0].dataSeries.type&&"stepLine"!==f[0].dataSeries.type&&"spline"!==f[0].dataSeries.type&&"area"!==f[0].dataSeries.type&&"stepArea"!==f[0].dataSeries.type&&"splineArea"!==f[0].dataSeries.type?"bar"===f[0].dataSeries.type|| -"rangeBar"===f[0].dataSeries.type||"stackedBar"===f[0].dataSeries.type||"stackedBar100"===f[0].dataSeries.type?f[0].dataSeries.axisX.convertValueToPixel(f[0].dataPoint.x):f[0].dataSeries.axisY.convertValueToPixel(f[0].dataPoint.y):f[0].dataSeries.axisY.convertValueToPixel(f[0].dataPoint.y);f=-f+10;0 -b&&a.push(d),d.animationCallback(b),1<=b&&d.onComplete)d.onComplete();this.animations=a;0g;g++)for(var e=0;3>e;e++){for(var f=0,d=0;3>d;d++)f+=a[g][d]*b[d][e];c[g][e]=f}return c}function P(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit=a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX= -a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.globalAlpha=a.globalAlpha;b.font=a.font;b.textAlign=a.textAlign;b.textBaseline=a.textBaseline;b.arcScaleX_=a.arcScaleX_;b.arcScaleY_=a.arcScaleY_;b.lineScale_=a.lineScale_}function Q(a){var b=a.indexOf("(",3),c=a.indexOf(")",b+1),b=a.substring(b+1,c).split(",");if(4!=b.length||"a"!=a.charAt(3))b[3]=1;return b}function E(a,b,c){return Math.min(c,Math.max(b,a))}function F(a,b,c){0>c&&c++;16*c?a+6*(b-a)*c: -1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a}function G(a){if(a in H)return H[a];var b,c=1;a=String(a);if("#"==a.charAt(0))b=a;else if(/^rgb/.test(a)){c=Q(a);b="#";for(var g,e=0;3>e;e++)g=-1!=c[e].indexOf("%")?Math.floor(255*(parseFloat(c[e])/100)):+c[e],b+=v[E(g,0,255)];c=+c[3]}else if(/^hsl/.test(a)){e=c=Q(a);b=parseFloat(e[0])/360%360;0>b&&b++;g=E(parseFloat(e[1])/100,0,1);e=E(parseFloat(e[2])/100,0,1);if(0==g)g=e=b=e;else{var f=0.5>e?e*(1+g):e+g-e*g,d=2*e-f;g=F(d,f,b+1/3);e=F(d,f,b);b=F(d,f,b-1/3)}b="#"+ -v[Math.floor(255*g)]+v[Math.floor(255*e)]+v[Math.floor(255*b)];c=c[3]}else b=Z[a]||a;return H[a]={color:b,alpha:c}}function C(a){this.m_=D();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.fillStyle=this.strokeStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=1*q;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=a;var b="width:"+a.clientWidth+"px;height:"+a.clientHeight+"px;overflow:hidden;position:absolute", -c=a.ownerDocument.createElement("div");c.style.cssText=b;a.appendChild(c);b=c.cloneNode(!1);b.style.backgroundColor="red";b.style.filter="alpha(opacity=0)";a.appendChild(b);this.element_=c;this.lineScale_=this.arcScaleY_=this.arcScaleX_=1}function R(a,b,c,g){a.currentPath_.push({type:"bezierCurveTo",cp1x:b.x,cp1y:b.y,cp2x:c.x,cp2y:c.y,x:g.x,y:g.y});a.currentX_=g.x;a.currentY_=g.y}function S(a,b){var c=G(a.strokeStyle),g=c.color,c=c.alpha*a.globalAlpha,e=a.lineScale_*a.lineWidth;1>e&&(c*=e);b.push("')}function T(a,b,c,g){var e=a.fillStyle,f=a.arcScaleX_,d=a.arcScaleY_,k=g.x-c.x,n=g.y-c.y;if(e instanceof w){var h=0,l=g=0,u=0,m=1;if("gradient"==e.type_){h=e.x1_/f;c=e.y1_/d;var p=s(a,e.x0_/f,e.y0_/d),h=s(a,h,c),h=180*Math.atan2(h.x-p.x,h.y-p.y)/Math.PI;0>h&&(h+=360);1E-6>h&&(h=0)}else p=s(a,e.x0_,e.y0_),g=(p.x-c.x)/k,l=(p.y-c.y)/n,k/=f*q, -n/=d*q,m=x.max(k,n),u=2*e.r0_/m,m=2*e.r1_/m-u;f=e.colors_;f.sort(function(a,b){return a.offset-b.offset});d=f.length;p=f[0].color;c=f[d-1].color;k=f[0].alpha*a.globalAlpha;a=f[d-1].alpha*a.globalAlpha;for(var n=[],r=0;r')}else e instanceof -I?k&&n&&b.push("'):(e=G(a.fillStyle),b.push(''))}function s(a,b,c){a=a.m_;return{x:q*(b*a[0][0]+c*a[1][0]+a[2][0])-r,y:q*(b*a[0][1]+c*a[1][1]+a[2][1])-r}}function z(a,b,c){isFinite(b[0][0])&&(isFinite(b[0][1])&&isFinite(b[1][0])&&isFinite(b[1][1])&&isFinite(b[2][0])&&isFinite(b[2][1]))&&(a.m_=b,c&&(a.lineScale_=aa(ba(b[0][0]*b[1][1]-b[0][1]* -b[1][0]))))}function w(a){this.type_=a;this.r1_=this.y1_=this.x1_=this.r0_=this.y0_=this.x0_=0;this.colors_=[]}function I(a,b){if(!a||1!=a.nodeType||"IMG"!=a.tagName)throw new A("TYPE_MISMATCH_ERR");if("complete"!=a.readyState)throw new A("INVALID_STATE_ERR");switch(b){case "repeat":case null:case "":this.repetition_="repeat";break;case "repeat-x":case "repeat-y":case "no-repeat":this.repetition_=b;break;default:throw new A("SYNTAX_ERR");}this.src_=a.src;this.width_=a.width;this.height_=a.height} -function A(a){this.code=this[a];this.message=a+": DOM Exception "+this.code}var x=Math,k=x.round,J=x.sin,K=x.cos,ba=x.abs,aa=x.sqrt,q=10,r=q/2;navigator.userAgent.match(/MSIE ([\d.]+)?/);var M=Array.prototype.slice;O(document);var U={init:function(a){a=a||document;a.createElement("canvas");a.attachEvent("onreadystatechange",W(this.init_,this,a))},init_:function(a){a=a.getElementsByTagName("canvas");for(var b=0;bd;d++)for(var B=0;16>B;B++)v[16*d+B]=d.toString(16)+B.toString(16);var Z={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC", -bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000", -darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082", -ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA", -mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5", -peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"}, -H={},L={},$={butt:"flat",round:"round"},d=C.prototype;d.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null);this.element_.innerHTML=""};d.beginPath=function(){this.currentPath_=[]};d.moveTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"moveTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.lineTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"lineTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.bezierCurveTo= -function(a,b,c,g,e,f){e=s(this,e,f);a=s(this,a,b);c=s(this,c,g);R(this,a,c,e)};d.quadraticCurveTo=function(a,b,c,g){a=s(this,a,b);c=s(this,c,g);g={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)};R(this,g,{x:g.x+(c.x-this.currentX_)/3,y:g.y+(c.y-this.currentY_)/3},c)};d.arc=function(a,b,c,g,e,f){c*=q;var d=f?"at":"wa",k=a+K(g)*c-r,n=b+J(g)*c-r;g=a+K(e)*c-r;e=b+J(e)*c-r;k!=g||f||(k+=0.125);a=s(this,a,b);k=s(this,k,n);g=s(this,g,e);this.currentPath_.push({type:d, -x:a.x,y:a.y,radius:c,xStart:k.x,yStart:k.y,xEnd:g.x,yEnd:g.y})};d.rect=function(a,b,c,g){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath()};d.strokeRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath();this.stroke();this.currentPath_=e};d.fillRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+ -c,b+g);this.lineTo(a,b+g);this.closePath();this.fill();this.currentPath_=e};d.createLinearGradient=function(a,b,c,g){var e=new w("gradient");e.x0_=a;e.y0_=b;e.x1_=c;e.y1_=g;return e};d.createRadialGradient=function(a,b,c,g,e,f){var d=new w("gradientradial");d.x0_=a;d.y0_=b;d.r0_=c;d.x1_=g;d.y1_=e;d.r1_=f;return d};d.drawImage=function(a,b){var c,g,e,d,r,y,n,h;e=a.runtimeStyle.width;d=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var l=a.width,u=a.height;a.runtimeStyle.width= -e;a.runtimeStyle.height=d;if(3==arguments.length)c=arguments[1],g=arguments[2],r=y=0,n=e=l,h=d=u;else if(5==arguments.length)c=arguments[1],g=arguments[2],e=arguments[3],d=arguments[4],r=y=0,n=l,h=u;else if(9==arguments.length)r=arguments[1],y=arguments[2],n=arguments[3],h=arguments[4],c=arguments[5],g=arguments[6],e=arguments[7],d=arguments[8];else throw Error("Invalid number of arguments");var m=s(this,c,g),p=[];p.push(" ','","");this.element_.insertAdjacentHTML("BeforeEnd",p.join(""))};d.stroke=function(a){var b=[];b.push("d.x)d.x=f.x;if(null==c.y||f.yd.y)d.y=f.y}}b.push(' ">');a?T(this,b,c,d):S(this,b);b.push("");this.element_.insertAdjacentHTML("beforeEnd",b.join(""))};d.fill=function(){this.stroke(!0)};d.closePath=function(){this.currentPath_.push({type:"close"})};d.save=function(){var a= -{};P(this,a);this.aStack_.push(a);this.mStack_.push(this.m_);this.m_=t(D(),this.m_)};d.restore=function(){this.aStack_.length&&(P(this.aStack_.pop(),this),this.m_=this.mStack_.pop())};d.translate=function(a,b){z(this,t([[1,0,0],[0,1,0],[a,b,1]],this.m_),!1)};d.rotate=function(a){var b=K(a);a=J(a);z(this,t([[b,a,0],[-a,b,0],[0,0,1]],this.m_),!1)};d.scale=function(a,b){this.arcScaleX_*=a;this.arcScaleY_*=b;z(this,t([[a,0,0],[0,b,0],[0,0,1]],this.m_),!0)};d.transform=function(a,b,c,d,e,f){z(this,t([[a, -b,0],[c,d,0],[e,f,1]],this.m_),!0)};d.setTransform=function(a,b,c,d,e,f){z(this,[[a,b,0],[c,d,0],[e,f,1]],!0)};d.drawText_=function(a,b,c,d,e){var f=this.m_;d=0;var r=1E3,t=0,n=[],h;h=this.font;if(L[h])h=L[h];else{var l=document.createElement("div").style;try{l.font=h}catch(u){}h=L[h]={style:l.fontStyle||"normal",variant:l.fontVariant||"normal",weight:l.fontWeight||"normal",size:l.fontSize||10,family:l.fontFamily||"sans-serif"}}var l=h,m=this.element_;h={};for(var p in l)h[p]=l[p];p=parseFloat(m.currentStyle.fontSize); -m=parseFloat(l.size);"number"==typeof l.size?h.size=l.size:-1!=l.size.indexOf("px")?h.size=m:-1!=l.size.indexOf("em")?h.size=p*m:-1!=l.size.indexOf("%")?h.size=p/100*m:-1!=l.size.indexOf("pt")?h.size=m/0.75:h.size=p;h.size*=0.981;p=h.style+" "+h.variant+" "+h.weight+" "+h.size+"px "+h.family;m=this.element_.currentStyle;l=this.textAlign.toLowerCase();switch(l){case "left":case "center":case "right":break;case "end":l="ltr"==m.direction?"right":"left";break;case "start":l="rtl"==m.direction?"right": -"left";break;default:l="left"}switch(this.textBaseline){case "hanging":case "top":t=h.size/1.75;break;case "middle":break;default:case null:case "alphabetic":case "ideographic":case "bottom":t=-h.size/2.25}switch(l){case "right":d=1E3;r=0.05;break;case "center":d=r=500}b=s(this,b+0,c+t);n.push('');e?S(this,n):T(this,n,{x:-d,y:0}, -{x:r,y:h.size});e=f[0][0].toFixed(3)+","+f[1][0].toFixed(3)+","+f[0][1].toFixed(3)+","+f[1][1].toFixed(3)+",0,0";b=k(b.x/q)+","+k(b.y/q);n.push('','','');this.element_.insertAdjacentHTML("beforeEnd",n.join(""))};d.fillText=function(a,b,c,d){this.drawText_(a,b,c,d,!1)};d.strokeText=function(a, -b,c,d){this.drawText_(a,b,c,d,!0)};d.measureText=function(a){this.textMeasureEl_||(this.element_.insertAdjacentHTML("beforeEnd",''),this.textMeasureEl_=this.element_.lastChild);var b=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(b.createTextNode(a));return{width:this.textMeasureEl_.offsetWidth}};d.clip=function(){}; -d.arcTo=function(){};d.createPattern=function(a,b){return new I(a,b)};w.prototype.addColorStop=function(a,b){b=G(b);this.colors_.push({offset:a,color:b.color,alpha:b.alpha})};d=A.prototype=Error();d.INDEX_SIZE_ERR=1;d.DOMSTRING_SIZE_ERR=2;d.HIERARCHY_REQUEST_ERR=3;d.WRONG_DOCUMENT_ERR=4;d.INVALID_CHARACTER_ERR=5;d.NO_DATA_ALLOWED_ERR=6;d.NO_MODIFICATION_ALLOWED_ERR=7;d.NOT_FOUND_ERR=8;d.NOT_SUPPORTED_ERR=9;d.INUSE_ATTRIBUTE_ERR=10;d.INVALID_STATE_ERR=11;d.SYNTAX_ERR=12;d.INVALID_MODIFICATION_ERR= -13;d.NAMESPACE_ERR=14;d.INVALID_ACCESS_ERR=15;d.VALIDATION_ERR=16;d.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=U;CanvasRenderingContext2D=C;CanvasGradient=w;CanvasPattern=I;DOMException=A}(); -/*tslint:enable*/ -/*eslint-enable*/ -/*jshint ignore:end*/ \ No newline at end of file diff --git a/src/libs/canvasjs/license.txt b/src/libs/canvasjs/license.txt deleted file mode 100644 index d66a6cbe..00000000 --- a/src/libs/canvasjs/license.txt +++ /dev/null @@ -1,9 +0,0 @@ -* -* @preserve CanvasJS HTML5 & JavaScript Charts - v3.7.3 GA - https://canvasjs.com/ -* Copyright 2022 fenopix -* -* --------------------- License Information -------------------- -* CanvasJS is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details. -* https://canvasjs.com/license/ -* -* \ No newline at end of file diff --git a/src/libs/chart_libs/canvasjs.min.js b/src/libs/chart_libs/canvasjs.min.js deleted file mode 100644 index 865903a7..00000000 --- a/src/libs/chart_libs/canvasjs.min.js +++ /dev/null @@ -1,960 +0,0 @@ -/* - CanvasJS HTML5 & JavaScript Charts - v3.6.3 GA - https://canvasjs.com/ - Copyright 2022 fenopix - - --------------------- License Information -------------------- - CanvasJS is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details. - https://canvasjs.com/license/ - -*/ -/*eslint-disable*/ -/*jshint ignore:start*/ -(function(){function oa(h,n){h.prototype=db(n.prototype);h.prototype.constructor=h;h.base=n.prototype}function db(h){function n(){}n.prototype=h;return new n}function Wa(h,n,v){"millisecond"===v?h.setMilliseconds(h.getMilliseconds()+1*n):"second"===v?h.setSeconds(h.getSeconds()+1*n):"minute"===v?h.setMinutes(h.getMinutes()+1*n):"hour"===v?h.setHours(h.getHours()+1*n):"day"===v?h.setDate(h.getDate()+1*n):"week"===v?h.setDate(h.getDate()+7*n):"month"===v?h.setMonth(h.getMonth()+1*n):"year"===v&&h.setFullYear(h.getFullYear()+ -1*n);return h}function W(h,n){var v=!1;0>h&&(v=!0,h*=-1);h=""+h;for(n=n?n:1;h.length>16).toString(16),v=((h&65280)>>8).toString(16);h=((h&255)>>0).toString(16);n=2>n.length?"0"+n:n;v=2>v.length?"0"+v:v;h=2>h.length?"0"+h:h;return"#"+n+v+h}function eb(h,n){var v=this.length>>>0,s=Number(n)||0,s=0>s?Math.ceil(s): -Math.floor(s);for(0>s&&(s+=v);s=(new Date).getTime()- -h._dropDownCloseTime.getTime()||(h._dropdownMenu.style.display="block",h._menuButton.blur(),h._dropdownMenu.focus())},h.allDOMEventHandlers,!0);J(h._menuButton,"mousemove",function(){n||(U(h._menuButton,{backgroundColor:h.toolbar.itemBackgroundColorOnHover,color:h.toolbar.fontColorOnHover}),0>=navigator.userAgent.search("MSIE")&&U(h._menuButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},h.allDOMEventHandlers,!0);J(h._menuButton,"mouseout",function(){n||(U(h._menuButton,{backgroundColor:h.toolbar.itemBackgroundColor, -color:h.toolbar.fontColor}),0>=navigator.userAgent.search("MSIE")&&U(h._menuButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},h.allDOMEventHandlers,!0)}if(h.exportEnabled&&h._dropdownMenu){U(h._dropdownMenu,{backgroundColor:h.toolbar.itemBackgroundColor,color:h.toolbar.fontColor});for(var v=h._dropdownMenu.childNodes,s=[h._cultureInfo.printText,h._cultureInfo.saveJPGText,h._cultureInfo.savePNGText],qa=0;qav;v++)if(h[v]!==h[v+4]|h[v]!==h[v+8]|h[v]!==h[v+12]){n=!1;break}return n? -h[0]<<16|h[1]<<8|h[2]:0}function la(h,n,v){return h in n?n[h]:v[h]}function Ma(h,n,v){if(w&&$a){var s=h.getContext("2d");Na=s.webkitBackingStorePixelRatio||s.mozBackingStorePixelRatio||s.msBackingStorePixelRatio||s.oBackingStorePixelRatio||s.backingStorePixelRatio||1;ka=Ra/Na;h.width=n*ka;h.height=v*ka;Ra!==Na&&(h.style.width=n+"px",h.style.height=v+"px",s.scale(ka,ka))}else h.width=n,h.height=v}function ib(h){if(!jb){var n=!1,v=!1;"undefined"===typeof pa.Chart.creditHref?(h.creditHref=ha("iuuqr;..b`ow`rkr/bnl."), -h.creditText=ha("B`ow`rKR/bnl")):(n=h.updateOption("creditText"),v=h.updateOption("creditHref"));if(h.creditHref&&h.creditText){h._creditLink||(h._creditLink=document.createElement("a"),h._creditLink.setAttribute("class","canvasjs-chart-credit"),h._creditLink.setAttribute("title","JavaScript Charts"),U(h._creditLink,{outline:"none",margin:"0px",position:"absolute",right:"2px",top:h.height-14+"px",color:"dimgrey",textDecoration:"none",fontSize:"11px",fontFamily:"Calibri, Lucida Grande, Lucida Sans Unicode, Arial, sans-serif"}), -h._creditLink.setAttribute("tabIndex",-1),h._creditLink.setAttribute("target","_blank"));if(0===h.renderCount||n||v)h._creditLink.setAttribute("href",h.creditHref),h._creditLink.innerHTML=h.creditText;h._creditLink&&h.creditHref&&h.creditText?(h._creditLink.parentElement||h._canvasJSContainer.appendChild(h._creditLink),h._creditLink.style.top=h.height-14+"px"):h._creditLink.parentElement&&h._canvasJSContainer.removeChild(h._creditLink)}}}function ta(h,n){Ha&&(this.canvasCount|=0,window.console.log(++this.canvasCount)); -var v=document.createElement("canvas");v.setAttribute("class","canvasjs-chart-canvas");Ma(v,h,n);w||"undefined"===typeof G_vmlCanvasManager||G_vmlCanvasManager.initElement(v);return v}function U(h,n){for(var v in n)h.style[v]=n[v]}function va(h,n,v){n.getAttribute("state")||(n.style.backgroundColor=h.toolbar.itemBackgroundColor,n.style.color=h.toolbar.fontColor,n.style.border="none",U(n,{WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"}));n.getAttribute("state")!== -v&&(n.setAttribute("state",v),n.setAttribute("type","button"),U(n,{padding:"5px 12px",cursor:"pointer","float":"left",width:"40px",height:"25px",outline:"0px",verticalAlign:"baseline",lineHeight:"0"}),n.setAttribute("title",h._cultureInfo[v+"Text"]),n.innerHTML=""+h._cultureInfo[v+"Text"]+"",U(n.childNodes[0],{height:"95%",pointerEvents:"none"}))}function La(){for(var h=null,n=0;nd?"a":"p";case "tt":return 12>d?"am":"pm";case "T":return 12>d?"A":"P";case "TT":return 12>d?"AM":"PM";case "K":return S?"UTC":(String(F).match(x)||[""]).pop().replace(E, -"");case "z":return(0h?!0:!1;s&&(h*=-1);var w=v?v.decimalSeparator:".",x=v?v.digitGroupSeparator:",",E="";n=String(n);var E=1,F=v="",N=-1,M=[],H=[],P=0,J=0,R=0,S=!1,U=0,F=n.match(/"[^"]*"|'[^']*'|[eE][+-]*[0]+|[,]+[.]|\u2030|./g); -n=null;for(var K=0;F&&KN)N=K;else{if("%"===n)E*=100;else if("\u2030"===n){E*=1E3;continue}else if(","===n[0]&&"."===n[n.length-1]){E/=Math.pow(1E3,n.length-1);N=K+n.length-1;continue}else"E"!==n[0]&&"e"!==n[0]||"0"!==n[n.length-1]||(S=!0);0>N?(M.push(n),"#"===n||"0"===n?P++:","===n&&R++):(H.push(n),"#"!==n&&"0"!==n||J++)}S&&(n=Math.floor(h),F=-Math.floor(Math.log(h)/Math.LN10+1),U=0===h?0:0===n?-(P+F):String(n).length-P,E/=Math.pow(10,U));0>N&&(N=K);E=(h*E).toFixed(J); -n=E.split(".");E=(n[0]+"").split("");h=(n[1]+"").split("");E&&"0"===E[0]&&E.shift();for(S=F=K=J=N=0;0U?n.replace("+","").replace("-",""):n.replace("-",""),v+=n.replace(/[0]+/,function(a){return W(U,a.length)}));x="";for(M=!1;0U?n.replace("+","").replace("-",""):n.replace("-",""),x+=n.replace(/[0]+/,function(a){return W(U,a.length)}));v+=(M?w:"")+x;return s?"-"+v:v},Oa=function(h){var n=0,v=0;h=h||window.event;h.offsetX||0===h.offsetX?(n=h.offsetX,v=h.offsetY):h.layerX||0==h.layerX?(n=h.layerX,v=h.layerY):(n=h.pageX-h.target.offsetLeft,v=h.pageY-h.target.offsetTop);return{x:n,y:v}},$a=!0,Ra=window.devicePixelRatio||1,Na=1,ka=$a?Ra/Na:1,ea=function(h,n,v,s,w,x,E,F,N,M,P,S,H){"undefined"=== -typeof H&&(H=1);E=E||0;F=F||"black";var J=15n)x=F-1;else break}s>n&&1F&&(E=n.pop(),w-=E.height,x=J)}this._wrappedText={lines:n,width:x,height:w};this.width=x+(this.leftPadding+this.rightPadding);this.height=w+(this.topPadding+this.bottomPadding);this.ctx.font=s};ia.prototype._getFontString=function(){var h;h=""+(this.fontStyle?this.fontStyle+" ": -"");h+=this.fontWeight?this.fontWeight+" ":"";h+=this.fontSize?this.fontSize+"px ":"";var n=this.fontFamily?this.fontFamily+"":"";!w&&n&&(n=n.split(",")[0],"'"!==n[0]&&'"'!==n[0]&&(n="'"+n+"'"));return h+=n};oa(Ta,Z);oa(za,Z);za.prototype.setLayout=function(){if(this.text){var h=this.dockInsidePlotArea?this.chart.plotArea:this.chart,n=h.layoutManager.getFreeSpace(),w=n.x1,x=n.y1,F=0,J=0,E=this.chart._menuButton&&this.chart.exportEnabled&&"top"===this.verticalAlign?22:0,N,H;"top"===this.verticalAlign|| -"bottom"===this.verticalAlign?(null===this.maxWidth&&(this.maxWidth=n.width-4-E*("center"===this.horizontalAlign?2:1)),J=0.5*n.height-this.margin-2,F=0):"center"===this.verticalAlign&&("left"===this.horizontalAlign||"right"===this.horizontalAlign?(null===this.maxWidth&&(this.maxWidth=n.height-4),J=0.5*n.width-this.margin-2):"center"===this.horizontalAlign&&(null===this.maxWidth&&(this.maxWidth=n.width-4),J=0.5*n.height-4));var M;s(this.padding)||"number"!==typeof this.padding?s(this.padding)||"object"!== -typeof this.padding||(M=this.padding.top?this.padding.top:this.padding.bottom?this.padding.bottom:0,M+=this.padding.bottom?this.padding.bottom:this.padding.top?this.padding.top:0):M=2*this.padding;this.wrap||(J=Math.min(J,1.5*this.fontSize+M));J=new ia(this.ctx,{fontSize:this.fontSize,fontFamily:this.fontFamily,fontColor:this.fontColor,fontStyle:this.fontStyle,fontWeight:this.fontWeight,horizontalAlign:this.horizontalAlign,verticalAlign:this.verticalAlign,borderColor:this.borderColor,borderThickness:this.borderThickness, -backgroundColor:this.backgroundColor,maxWidth:this.maxWidth,maxHeight:J,cornerRadius:this.cornerRadius,text:this.text,padding:this.padding,textBaseline:"top"});M=J.measureText();"top"===this.verticalAlign||"bottom"===this.verticalAlign?("top"===this.verticalAlign?(x=n.y1+2,H="top"):"bottom"===this.verticalAlign&&(x=n.y2-2-M.height,H="bottom"),"left"===this.horizontalAlign?w=n.x1+2:"center"===this.horizontalAlign?w=n.x1+n.width/2-M.width/2:"right"===this.horizontalAlign&&(w=n.x2-2-M.width-E),N=this.horizontalAlign, -this.width=M.width,this.height=M.height):"center"===this.verticalAlign&&("left"===this.horizontalAlign?(w=n.x1+2,x=n.y2-2-(this.maxWidth/2-M.width/2),F=-90,H="left",this.width=M.height,this.height=M.width):"right"===this.horizontalAlign?(w=n.x2-2,x=n.y1+2+(this.maxWidth/2-M.width/2),F=90,H="right",this.width=M.height,this.height=M.width):"center"===this.horizontalAlign&&(x=h.y1+(h.height/2-M.height/2),w=h.x1+(h.width/2-M.width/2),H="center",this.width=M.width,this.height=M.height),N="center");J.x= -w;J.y=x;J.angle=F;J.horizontalAlign=N;this._textBlock=J;h.layoutManager.registerSpace(H,{width:this.width+("left"===H||"right"===H?this.margin+2:0),height:this.height+("top"===H||"bottom"===H?this.margin+2:0)});this.bounds={x1:w,y1:x,x2:w+this.width,y2:x+this.height};this.ctx.textBaseline="top"}};za.prototype.render=function(){this._textBlock&&this._textBlock.render(!0)};oa(Ia,Z);Ia.prototype.setLayout=za.prototype.setLayout;Ia.prototype.render=za.prototype.render;Ua.prototype.get=function(h,n){var s= -null;0a[f].x&&0B?{x:a[t].x+B/3,y:a[t].y+b/3}:{x:a[t].x,y:a[t].y+b/9};t=e;f=0===t?0:t-1;l=t===a.length-1?t:t+1;b=Math.abs((a[l].x-a[f].x)/(0===a[t].x-a[f].x?0.01:a[t].x-a[f].x))*(d-1)/2+1;B=(a[l].x-a[f].x)/b;b=(a[l].y-a[f].y)/b;c[c.length]=a[t].x>a[f].x&&0B?{x:a[t].x-B/3,y:a[t].y-b/3}:{x:a[t].x,y:a[t].y-b/9};c[c.length]=a[e]}return c}function x(a,d,c,b,e,f,l,t,B,k){var m=0;k?(l.color=f,t.color=f): -k=1;m=B?Math.abs(e-c):Math.abs(b-d);m=0this.labelAngle?this.labelAngle-=180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360);this.options.scaleBreaks&&(this.scaleBreaks=new T(this.chart,this.options.scaleBreaks,++this.chart._eventManager.lastObjectId, -this));this.stripLines=[];if(this.options.stripLines&&0=this._appliedBreaks[a+1].startValue&&(this._appliedBreaks[a].endValue=Math.max(this._appliedBreaks[a].endValue,this._appliedBreaks[a+1].endValue),window.console&&window.console.log("CanvasJS Error: Breaks "+a+" and "+(a+1)+" are overlapping."),this._appliedBreaks.splice(a,2),a--)}}function V(a,d,c,b,e,f){V.base.constructor.call(this,"Break",d,c,b,f);this.id=e;this.chart=a;this.ctx=this.chart.ctx;this.scaleBreaks=f;this.optionsName= -d;this.isOptionsInArray=!0;this.type=c.type?this.type:f.type;this.fillOpacity=s(c.fillOpacity)?f.fillOpacity:this.fillOpacity;this.lineThickness=s(c.lineThickness)?f.lineThickness:this.lineThickness;this.color=c.color?this.color:f.color;this.lineColor=c.lineColor?this.lineColor:f.lineColor;this.lineDashType=c.lineDashType?this.lineDashType:f.lineDashType;!s(this.startValue)&&this.startValue.getTime&&(this.startValue=this.startValue.getTime());!s(this.endValue)&&this.endValue.getTime&&(this.endValue= -this.endValue.getTime());"number"===typeof this.startValue&&("number"===typeof this.endValue&&this.endValue=navigator.userAgent.search("MSIE")&&U(a._zoomButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers);J(this._zoomButton,"mouseout",function(){d||(U(a._zoomButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&U(a._zoomButton.childNodes[0],{WebkitFilter:"invert(0%)", -filter:"invert(0%)"}))},this.allDOMEventHandlers)}this._resetButton?(U(this._resetButton,{borderRight:this.toolbar.buttonBorderThickness+"px solid "+this.toolbar.buttonBorderColor,backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor}),this._resetButton.title=this._cultureInfo.resetText):(d=!1,ua(this._resetButton=document.createElement("button")),va(this,this._resetButton,"reset"),this._resetButton.style.borderRight=(this.exportEnabled?this.toolbar.buttonBorderThickness:0)+"px solid "+ -this.toolbar.buttonBorderColor,this._toolBar.appendChild(this._resetButton),J(this._resetButton,"touchstart",function(a){d=!0},this.allDOMEventHandlers),J(this._resetButton,"click",function(){a.toolTip.hide();a.toolTip&&a.toolTip.enabled&&a.toolTip.dispatchEvent("hidden",{chart:a,toolTip:a.toolTip},a.toolTip);a.zoomEnabled||a.panEnabled?(a.zoomEnabled=!0,a.panEnabled=!1,va(a,a._zoomButton,"pan"),a._defaultCursor="default",a.overlaidCanvas.style.cursor=a._defaultCursor):(a.zoomEnabled=!1,a.panEnabled= -!1);if(a.sessionVariables.axisX)for(var b=0;b=navigator.userAgent.search("MSIE")&&U(a._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"});ua(a._zoomButton,a._resetButton);a.stockChart&&(a.stockChart._rangeEventParameter={stockChart:a.stockChart,source:"chart",index:a.stockChart.charts.indexOf(a),minimum:null, -maximum:null});a._dispatchRangeEvent("rangeChanging","reset");a.stockChart&&(a.stockChart._rangeEventParameter.type="rangeChanging",a.stockChart.dispatchEvent("rangeChanging",a.stockChart._rangeEventParameter,a.stockChart));a.render();a.syncCharts&&a.syncCharts(null,null);a._dispatchRangeEvent("rangeChanged","reset");a.stockChart&&(a.stockChart._rangeEventParameter.type="rangeChanged",a.stockChart.dispatchEvent("rangeChanged",a.stockChart._rangeEventParameter,a.stockChart))},this.allDOMEventHandlers), -J(this._resetButton,"mousemove",function(){d||(U(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColorOnHover,color:a.toolbar.fontColorOnHover,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&U(a._resetButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers),J(this._resetButton,"mouseout",function(){d||(U(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:"0.4s",WebkitTransition:"0.4s"}), -0>=navigator.userAgent.search("MSIE")&&U(a._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},this.allDOMEventHandlers),this.overlaidCanvas.style.cursor=a._defaultCursor);this.zoomEnabled||this.panEnabled||(this._zoomButton?(a._zoomButton.getAttribute("state")===a._cultureInfo.zoomText?(this.panEnabled=!0,this.zoomEnabled=!1):(this.zoomEnabled=!0,this.panEnabled=!1),La(a._zoomButton,a._resetButton)):(this.zoomEnabled=!0,this.panEnabled=!1))}else this.panEnabled=this.zoomEnabled= -!1;hb(this);"none"!==this._toolBar.style.display&&this._zoomButton&&(this.panEnabled?va(a,a._zoomButton,"zoom"):va(a,a._zoomButton,"pan"),a._resetButton.getAttribute("state")!==a._cultureInfo.resetText&&va(a,a._resetButton,"reset"));this.options.toolTip&&this.toolTip.options!==this.options.toolTip&&(this.toolTip.options=this.options.toolTip);for(var c in this.toolTip.options)this.toolTip.options.hasOwnProperty(c)&&this.toolTip.updateOption(c)};n.prototype._updateSize=function(){var a;a=[this.canvas, -this.overlaidCanvas,this._eventManager.ghostCanvas];var d=0,c=0;this.options.width?d=this.width:this.width=d=0b.linkedDataSeriesIndex||b.linkedDataSeriesIndex>=this.options.data.length||"number"!==typeof b.linkedDataSeriesIndex||"error"===this.options.data[b.linkedDataSeriesIndex].type)&&(b.linkedDataSeriesIndex=null);null===b.name&& -(b.name="DataSeries "+a);null===b.color?1a&&"undefined"!==typeof B.startTimePercent?a>=B.startTimePercent&&B.animationCallback(B.easingFunction(a-B.startTimePercent,0,1,1-B.startTimePercent),B): -B.animationCallback(B.easingFunction(a,0,1,1),B);m.dispatchEvent("dataAnimationIterationEnd",{chart:m})},function(){c=[];for(var a=0;aa.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f=!1,l=0;lc.max&&(c.max=b);ed.max&&"number"===typeof e&&(d.max=e);if(0r&&(r=1/r);c.minDiff>r&&1!==r&&(c.minDiff=r)}else r=b-t.dataPoints[B-1].x,0>r&&(r*=-1),c.minDiff>r&&0!==r&&(c.minDiff=r);null!==e&&null!==t.dataPoints[B-1].y&&(a.axisY.logarithmic?(r=e/t.dataPoints[B-1].y,1>r&&(r=1/r),d.minDiff>r&&1!==r&&(d.minDiff=r)):(r=e-t.dataPoints[B-1].y,0>r&&(r*=-1),d.minDiff>r&&0!==r&&(d.minDiff=r)))}if(bg&& -!m)m=!0;else if(b>g&&m)continue;t.dataPoints[B].label&&(a.axisX.labels[b]=t.dataPoints[B].label);bc.viewPortMax&&(c.viewPortMax=b);null===e?c.viewPortMin===b&&pd.viewPortMax&&"number"===typeof e&&(d.viewPortMax=e))}}t.axisX.valueType=t.xValueType=f?"dateTime":"number"}};n.prototype._processStackedPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var d= -a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f=!1,l=[],t=[],B=Infinity,k=-Infinity,m=0;mc.max&&(c.max=b);if(0y&&(y=1/y);c.minDiff>y&&1!==y&&(c.minDiff=y)}else y=b-p.dataPoints[q-1].x,0>y&&(y*=-1),c.minDiff>y&&0!==y&&(c.minDiff=y);null!==e&&null!==p.dataPoints[q-1].y&&(a.axisY.logarithmic?0y&&(y=1/y),d.minDiff>y&&1!==y&&(d.minDiff=y)):(y=e-p.dataPoints[q-1].y,0>y&&(y*=-1),d.minDiff>y&&0!==y&&(d.minDiff=y)))}if(bu&&!r)r=!0;else if(b>u&&r)continue;p.dataPoints[q].label&&(a.axisX.labels[b]=p.dataPoints[q].label);bc.viewPortMax&&(c.viewPortMax=b);null===p.dataPoints[q].y?c.viewPortMin===b&&hd.max&&(d.max=a),qc.viewPortMax|| -(ad.viewPortMax&&(d.viewPortMax=a)));for(q in t)t.hasOwnProperty(q)&&!isNaN(q)&&(a=t[q],ad.max&&(d.max=Math.max(a,k)),qc.viewPortMax||(ad.viewPortMax&&(d.viewPortMax=Math.max(a,k))))}};n.prototype._processStacked100PlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f=!1,l=!1,t=!1,B=[],k=0;kc.max&&(c.max=b);if(0u&&(u=1/u);c.minDiff>u&&1!==u&&(c.minDiff=u)}else u=b-m.dataPoints[p-1].x,0>u&&(u*=-1),c.minDiff>u&&0!==u&&(c.minDiff=u);s(e)||null===m.dataPoints[p-1].y||(a.axisY.logarithmic?0u&&(u=1/u),d.minDiff>u&&1!==u&&(d.minDiff=u)):(u=e-m.dataPoints[p-1].y,0>u&&(u*=-1),d.minDiff>u&&0!==u&&(d.minDiff=u)))}if(bn&&!g)g=!0;else if(b>n&&g)continue;m.dataPoints[p].label&&(a.axisX.labels[b]=m.dataPoints[p].label); -bc.viewPortMax&&(c.viewPortMax=b);null===e?c.viewPortMin===b&&re&&(t=!0),B[b]=B[b]?B[b]+Math.abs(e):Math.abs(e))}}m.axisX.valueType=m.xValueType=f?"dateTime":"number"}a.axisY.logarithmic?(d.max=s(d.viewPortMax)?99*Math.pow(a.axisY.logarithmBase,-0.05):Math.max(d.viewPortMax,99*Math.pow(a.axisY.logarithmBase,-0.05)),d.min= -s(d.viewPortMin)?1:Math.min(d.viewPortMin,1)):l&&!t?(d.max=s(d.viewPortMax)?99:Math.max(d.viewPortMax,99),d.min=s(d.viewPortMin)?1:Math.min(d.viewPortMin,1)):l&&t?(d.max=s(d.viewPortMax)?99:Math.max(d.viewPortMax,99),d.min=s(d.viewPortMin)?-99:Math.min(d.viewPortMin,-99)):!l&&t&&(d.max=s(d.viewPortMax)?-1:Math.max(d.viewPortMax,-1),d.min=s(d.viewPortMin)?-99:Math.min(d.viewPortMin,-99));d.viewPortMin=d.min;d.viewPortMax=d.max;a.dataPointYSums=B}};n.prototype._processMultiYPlotUnit=function(a){if(a.dataSeriesIndexes&& -!(1>a.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f,l,t=!1,B=0;Bc.max&&(c.max=b);fd.max&&(d.max=l);0r&&(r=1/r),c.minDiff>r&&1!==r&&(c.minDiff=r)):(r=b-k.dataPoints[m-1].x,0>r&&(r*=-1),c.minDiff>r&&0!==r&&(c.minDiff=r)),e&&(null!==e[0]&&k.dataPoints[m-1].y&&null!== -k.dataPoints[m-1].y[0])&&(a.axisY.logarithmic?(r=e[0]/k.dataPoints[m-1].y[0],1>r&&(r=1/r),d.minDiff>r&&1!==r&&(d.minDiff=r)):(r=e[0]-k.dataPoints[m-1].y[0],0>r&&(r*=-1),d.minDiff>r&&0!==r&&(d.minDiff=r))));if(!(bu&&!q)q=!0;else if(b>u&&q)continue;k.dataPoints[m].label&&(a.axisX.labels[b]=k.dataPoints[m].label);bc.viewPortMax&&(c.viewPortMax=b);if(c.viewPortMin===b&&e)for(y=0;yd.viewPortMax&&(d.viewPortMax=l))}}k.axisX.valueType=k.xValueType=t?"dateTime":"number"}};n.prototype._processSpecificPlotUnit=function(a){if("waterfall"===a.type&&a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var d=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,f=!1,l=0;lc.max&&(c.max=b),t.dataPointEOs[B].cumulativeSumd.max&&(d.max=t.dataPointEOs[B].cumulativeSum),0p&&(p=1/p),c.minDiff>p&&1!==p&&(c.minDiff=p)):(p=b-t.dataPoints[B-1].x,0>p&& -(p*=-1),c.minDiff>p&&0!==p&&(c.minDiff=p)),null!==e&&null!==t.dataPoints[B-1].y&&(a.axisY.logarithmic?(e=t.dataPointEOs[B].cumulativeSum/t.dataPointEOs[B-1].cumulativeSum,1>e&&(e=1/e),d.minDiff>e&&1!==e&&(d.minDiff=e)):(e=t.dataPointEOs[B].cumulativeSum-t.dataPointEOs[B-1].cumulativeSum,0>e&&(e*=-1),d.minDiff>e&&0!==e&&(d.minDiff=e)))),!(bg&&!m)m=!0;else if(b>g&&m)continue;t.dataPoints[B].label&&(a.axisX.labels[b]=t.dataPoints[B].label);bc.viewPortMax&&(c.viewPortMax=b);0d.viewPortMax&&(d.viewPortMax=t.dataPointEOs[B-1].cumulativeSum));t.dataPointEOs[B].cumulativeSumd.viewPortMax&&(d.viewPortMax=t.dataPointEOs[B].cumulativeSum)}t.axisX.valueType=t.xValueType=f?"dateTime":"number"}}; -n.prototype.calculateAutoBreaks=function(){function a(a,b,c,e){if(e)return c=Math.pow(Math.min(c*a/b,b/a),0.2),1>=c&&(c=Math.pow(1>a?1/a:Math.min(b/a,a),0.25)),{startValue:a*c,endValue:b/c};c=0.2*Math.min(c-b+a,b-a);0>=c&&(c=0.25*Math.min(b-a,Math.abs(a)));return{startValue:a+c,endValue:b-c}}function d(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){var b=a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks,c=a.axisY.scaleBreaks&&a.axisY.scaleBreaks.autoCalculate&& -1<=a.axisY.scaleBreaks.maxNumberOfAutoBreaks;if(b||c)for(var d=a.axisY.dataInfo,f=a.axisX.dataInfo,g,k=f.min,l=f.max,m=d.min,p=d.max,f=f._dataRanges,d=d._dataRanges,q,t=0,B=0;Bh.dataPoints.length))for(t=0;tf[q].max&&(f[q].max=g)),c){var n=(p+1-m)*Math.max(parseFloat(a.axisY.scaleBreaks.collapsibleThreshold)||10,10)/100;if((g="waterfall"===a.type?h.dataPointEOs[t].cumulativeSum:h.dataPoints[t].y)&&g.length)for(var w=0;wd[q].max&&(d[q].max=g[w]);else s(g)||(q=Math.floor((g-m)/n),gd[q].max&&(d[q].max=g))}}}}function c(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)&&a.axisX.scaleBreaks&& -a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks)for(var b=a.axisX.dataInfo,c=b.min,d=b.max,f=b._dataRanges,g,k=0,l=0;lm.dataPoints.length))for(k=0;kf[g].max&&(f[g].max= -b)}}for(var b,e=this,f=!1,l=0;lm[g].max&&(m[g].max=p)}delete this._axes[l].dataInfo.dataPointYPositiveSums}if(this._axes[l].dataInfo.dataPointYNegativeSums){q= -this._axes[l].dataInfo.dataPointYNegativeSums;m=k;for(t in q)q.hasOwnProperty(t)&&!isNaN(t)&&(p=-1*q[t],s(p)||(g=Math.floor((p-B)/b),pm[g].max&&(m[g].max=p)));delete this._axes[l].dataInfo.dataPointYNegativeSums}for(t=0;tb&&f.push({diff:p,start:m,end:B});break}else t++;if(this._axes[l].scaleBreaks.customBreaks)for(t=0;t=e.x1&&(a<=e.x2&&d>=e.y1&&d<=e.y2)&&(b=e.id)}return b};n.prototype.getAutoFontSize=mb;n.prototype.resetOverlayedCanvas= -function(){this.overlaidCanvasCtx.clearRect(0,0,this.width,this.height)};n.prototype.clearCanvas=lb;n.prototype.attachEvent=function(a){this._events.push(a)};n.prototype._touchEventHandler=function(a){if(a.changedTouches&&this.interactivityEnabled){var d=[],c=a.changedTouches,b=c?c[0]:a,e=null;switch(a.type){case "touchstart":case "MSPointerDown":d=["mousemove","mousedown"];this._lastTouchData=Oa(b);this._lastTouchData.time=new Date;break;case "touchmove":case "MSPointerMove":d=["mousemove"];break; -case "touchend":case "MSPointerUp":var f=this._lastTouchData&&this._lastTouchData.time?new Date-this._lastTouchData.time:0,d="touchstart"===this._lastTouchEventType||"MSPointerDown"===this._lastTouchEventType||300>f?["mouseup","click"]:["mouseup"];break;default:return}if(!(c&&1f)this._lastTouchData.scroll=!0}catch(t){}this._lastTouchEventType= -a.type;if(this._lastTouchData.scroll&&this.zoomEnabled)this.isDrag&&this.resetOverlayedCanvas(),this.isDrag=!1;else for(c=0;c=e.x1&&d.x<=e.x2&&d.y>=e.y1&&d.y<=e.y2){b[c].call(b.context,d.x,d.y);"mousedown"===c&&!0===b.capture?(n.capturedEventParam=b,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.documentElement.addEventListener("mouseup",this._mouseEventHandler,!1)):"mouseup"===c&&(b.chart.overlaidCanvas.releaseCapture? -b.chart.overlaidCanvas.releaseCapture():document.documentElement.removeEventListener("mouseup",this._mouseEventHandler,!1));break}else b=null;a.target.style.cursor=b&&b.cursor?b.cursor:this._defaultCursor}c=this.plotArea;if(d.xc.x2||d.yc.y2){this.toolTip&&this.toolTip.enabled?(this.toolTip.hide(),this.toolTip.dispatchEvent("hidden",{chart:this,toolTip:this.toolTip},this.toolTip)):this.resetOverlayedCanvas();for(f=0;fc.maximum&&(f=c.viewportMaximum/c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum/f,c.sessionVariables.newViewportMaximum=c.viewportMaximum/f,l=!0):c.viewportMinimumc.maximum&&(f=c.viewportMaximum-c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum-f,c.sessionVariables.newViewportMaximum=c.viewportMaximum-f,l=!0);else if((!e||2Math.abs(c)&&(this.panEnabled||this.zoomEnabled)){this.toolTip.hide();this.toolTip&&this.toolTip.enabled&&this.toolTip.dispatchEvent("hidden",{chart:this,toolTip:this.toolTip},this.toolTip);for(var t=0;tg)var r=g,g=q,q=r;if(p.scaleBreaks)for(r=0;!f&&r=g;if(isFinite(p.dataInfo.minDiff))if(r=p.getApparentDifference(q,g,null,!0),!(f||!(this.panEnabled&&p.scaleBreaks&&p.scaleBreaks._appliedBreaks.length)&& -(p.logarithmic&&rp.maximum))B.push(p),m.push({val1:q,val2:g}),t=!0;else if(!e){t=!1;break}}return{isValid:t,axesWithValidRange:B,axesRanges:m}};n.prototype.preparePlotArea=function(){var a=this.plotArea;!w&&(0c.lineCoordinates.x2?d.x2:c.lineCoordinates.x2;a.y2=d.y2>d.y1?d.y2:c.lineCoordinates.y2;a.width=a.x2-a.x1;a.height=a.y2-a.y1}this.axisY2&&0c.lineCoordinates.x2? -d.x2:c.lineCoordinates.x2,a.y2=d.y2>d.y1?d.y2:c.lineCoordinates.y2,a.width=a.x2-a.x1,a.height=a.y2-a.y1)}else d=this.layoutManager.getFreeSpace(),a.x1=d.x1,a.x2=d.x2,a.y1=d.y1,a.y2=d.y2,a.width=d.width,a.height=d.height;w||(a.canvas.width=a.width,a.canvas.height=a.height,a.canvas.style.left=a.x1+"px",a.canvas.style.top=a.y1+"px",(0c.x2||m.point.yc.y2+1)continue}else if("rangearea"===p||"rangesplinearea"===p){if(m.dataPoint.xe.viewportMaximum||Math.max.apply(null,m.dataPoint.y) -f.viewportMaximum)continue}else if(0<=p.indexOf("line")||0<=p.indexOf("area")||0<=p.indexOf("bubble")||0<=p.indexOf("scatter")){if(m.dataPoint.xe.viewportMaximum||m.dataPoint.yf.viewportMaximum)continue}else if(0<=p.indexOf("column")||"waterfall"===p||"error"===p&&!m.axisSwapped){if(m.dataPoint.xe.viewportMaximum||m.bounds.y1>c.y2||m.bounds.y2e.viewportMaximum||m.bounds.x1>c.x2||m.bounds.x2e.viewportMaximum||Math.max.apply(null,m.dataPoint.y)f.viewportMaximum)continue}else if(m.dataPoint.xe.viewportMaximum)continue;l=t=2;"horizontal"===C?(B=h.width,k=h.height):(k=h.width,B=h.height);if("normal"=== -this.plotInfo.axisPlacement){if(0<=p.indexOf("line")||0<=p.indexOf("area"))z="auto",t=4;else if(0<=p.indexOf("stacked"))"auto"===z&&(z="inside");else if("bubble"===p||"scatter"===p)z="inside";q=m.point.x-("horizontal"===C?B/2:B/2-r/2);"inside"!==z?(e=c.y1,f=c.y2,0m.point.y)):(g=m.point.y+r/2+t+b,g>f-k&&(g="auto"===z?Math.min(m.point.y,f)+r/2-k-t:f+r/2-k,x=gf-k-t&&("bubble"===p||"scatter"===p)&&(g=Math.min(m.point.y+t,c.y2-k-t))),g=Math.min(g,f))}else 0<=p.indexOf("line")||0<=p.indexOf("area")|| -0<=p.indexOf("scatter")?(z="auto",l=4):0<=p.indexOf("stacked")?"auto"===z&&(z="inside"):"bubble"===p&&(z="inside"),g=m.point.y+r/2-k/2+t,"inside"!==z?(e=c.x1,f=c.x2,0>v?(q=m.point.x-("horizontal"===C?B:B-r/2)-l-b,qm.point.x)):(q=m.point.x+("horizontal"===C?0:r/2)+l+b,q>f-B-l-b&&(q="auto"===z?Math.min(m.point.x,f)-("horizontal"===C?B:B/2)-l:f-B-l,x=qv?Math.max(m.bounds.x1,c.x1)+r/2+l:Math.min(m.bounds.x2,c.x2)-B/2-l+("horizontal"===C?0:r/2):(Math.max(m.bounds.x1,c.x1)+Math.min(m.bounds.x2,c.x2))/2+("horizontal"===C?0:r/2),q=0>v?Math.max(m.point.x,b)-("horizontal"===C?B/2:0):Math.min(m.point.x,b)-B/2,q=Math.max(q,e));"vertical"===C&&(g+=k-r/2);h.x=q;h.y=g;h.render(!0);y&&("inside"!==z&&(0>p.indexOf("bar")&&("error"!==p||!m.axisSwapped)&&m.point.x>c.x1&&m.point.xp.indexOf("column")&&("error"!==p||m.axisSwapped)&&m.point.y>c.y1&& -m.point.y=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var e=this.plotArea;c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();for(var f=[],l,t=0;ta.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!C)))if("number"!==typeof m[u].y)0m[u].y===a.axisY.reversed?1:-1,color:r})}c.stroke();w&&b.stroke()}}$.drawMarkers(f);w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop", -a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),b.beginPath());c.restore();c.beginPath();return{source:d,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};n.prototype.renderStepLine=function(a){var d= -a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var e=this.plotArea;c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();for(var f=[],l,t=0;ta.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!C)))if("number"!==typeof m[u].y)0< -u&&!(k.connectNullData||C||n)&&(c.stroke(),w&&b.stroke()),C=!0;else{var D=s;y=a.axisX.convertValueToPixel(y);s=a.axisY.convertValueToPixel(m[u].y);var A=k.dataPointIds[u];this._eventManager.objectMap[A]={id:A,objectType:"dataPoint",dataSeriesIndex:B,dataPointIndex:u,x1:y,y1:s};n||C?(!n&&k.connectNullData?(c.setLineDash&&(k.options.nullDataLineDashType||p===k.lineDashType&&k.lineDashType!==k.nullDataLineDashType)&&(c.stroke(),c.beginPath(),c.moveTo(l.x,l.y),p=k.nullDataLineDashType,c.setLineDash(q)), -c.lineTo(y,D),c.lineTo(y,s),w&&(b.lineTo(y,D),b.lineTo(y,s))):(c.beginPath(),c.moveTo(y,s),w&&(b.beginPath(),b.moveTo(y,s))),C=n=!1):(c.lineTo(y,D),w&&b.lineTo(y,D),c.lineTo(y,s),w&&b.lineTo(y,s),0==u%500&&(c.stroke(),c.beginPath(),c.moveTo(y,s),w&&(b.stroke(),b.beginPath(),b.moveTo(y,s))));l={x:y,y:s};um[u].y===a.axisY.reversed?1:-1,color:r})}c.stroke(); -w&&b.stroke()}}$.drawMarkers(f);w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),b.beginPath());c.restore();c.beginPath();return{source:d,dest:this.plotArea.ctx, -animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};n.prototype.renderSpline=function(a){function d(a){a=v(a,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx;b.save(); -var f=this.plotArea;b.beginPath();b.rect(f.x1,f.y1,f.width,f.height);b.clip();for(var l=[],t=0;ta.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!y)))if("number"!==typeof m[n].y)0m[n].y===a.axisY.reversed?1:-1,color:r});y=!1}d(s)}$.drawMarkers(l);w&&(c.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(f.x1,f.y1,f.width,f.height),e.beginPath());b.restore();b.beginPath();return{source:c,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear, -animationBase:0}}};n.prototype.renderColumn=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=0,l,t,B,k=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,m=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width, -0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.dataPointWidth=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&f>m&&(f=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,m));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&mm&&(p=m);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(m=0;ma.axisX.dataInfo.viewPortMax)&&"number"===typeof r[f].y){l=a.axisX.convertValueToPixel(B);t=a.axisY.convertValueToPixel(r[f].y);l=a.axisX.reversed?l+a.plotType.totalDataSeries*p/2-(a.previousDataSeriesCount+m)*p<<0:l-a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+m)*p<<0;var n=a.axisX.reversed?l-p<<0:l+p<<0,u;0<=r[f].y?u=k:(u=t,t=k);t>u&&(b=t,t=u,u=b);b=r[f].color?r[f].color:g._colorSet[f%g._colorSet.length];ea(c,l,t,n,u,b,0,null,h&&0<=r[f].y, -0>r[f].y&&h,!1,!1,g.fillOpacity);b=g.dataPointIds[f];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:f,x1:l,y1:t,x2:n,y2:u};b=P(b);w&&ea(this._eventManager.ghostCtx,l,t,n,u,b,0,null,!1,!1,!1,!1);(r[f].indexLabel||g.indexLabel||r[f].indexLabelFormatter||g.indexLabelFormatter)&&this._indexLabels.push({chartType:"column",dataPoint:r[f],dataSeries:g,point:{x:l+(n-l)/2,y:0>r[f].y===a.axisY.reversed?t:u},direction:0>r[f].y===a.axisY.reversed?1:-1,bounds:{x1:l, -y1:Math.min(t,u),x2:n,y2:Math.max(t,u)},color:b})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore(); -return{source:d,dest:this.plotArea.ctx,animationCallback:K.yScaleAnimation,easingFunction:K.easing.easeOutQuart,animationBase:ka.axisY.bounds.y2?a.axisY.bounds.y2:k}}};n.prototype.renderStackedColumn=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=[],l=[],t=[],B=[],k=0,m,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth? -this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;m=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0;var g=a.axisX.dataInfo.minDiff;isFinite(g)||(g=0.3*Math.abs(a.axisX.range));g=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(g)/Math.log(a.axisX.range):Math.abs(g)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>m&&(k=Math.min(this.options.dataPointWidth? -this.dataPointWidth:Infinity,m));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&mm&&(g=m);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var r=0;ra.axisX.dataInfo.viewPortMax)&&"number"===typeof u[k].y){m=a.axisX.convertValueToPixel(b);var z=m-a.plotType.plotUnits.length*g/2+a.index*g<<0,C=z+g<<0,D;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=u[k].y)B[b]=u[k].y+(B[b]?B[b]:0),D=a.axisY.convertValueToPixel(B[b]),p="undefined"!==typeof l[b]?l[b]:q,l[b]=D;else if(p=a.axisY.convertValueToPixel(u[k].y),0<=u[k].y){var A="undefined"!==typeof f[b]?f[b]:0;p-=A;D=q-A;f[b]=A+(D-p)}else A=l[b]?l[b]:0,D=p+A,p=q+A,l[b]=A+(D-p);b=u[k].color?u[k].color:n._colorSet[k%n._colorSet.length];ea(c,z,p,C,D,b,0,null,s&&0<=u[k].y,0>u[k].y&&s,!1, -!1,n.fillOpacity);b=n.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:k,x1:z,y1:p,x2:C,y2:D};b=P(b);w&&ea(this._eventManager.ghostCtx,z,p,C,D,b,0,null,!1,!1,!1,!1);(u[k].indexLabel||n.indexLabel||u[k].indexLabelFormatter||n.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn",dataPoint:u[k],dataSeries:n,point:{x:m,y:0<=u[k].y?p:D},direction:0>u[k].y===a.axisY.reversed?1:-1,bounds:{x1:z,y1:Math.min(p,D),x2:C,y2:Math.max(p, -D)},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx, -animationCallback:K.yScaleAnimation,easingFunction:K.easing.easeOutQuart,animationBase:qa.axisY.bounds.y2?a.axisY.bounds.y2:q}}};n.prototype.renderStackedColumn100=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=[],l=[],t=[],B=[],k=0,m,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth: -this.options.dataPointWidth?this.dataPointWidth:1;m=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0;var g=a.axisX.dataInfo.minDiff;isFinite(g)||(g=0.3*Math.abs(a.axisX.range));g=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(g)/Math.log(a.axisX.range):Math.abs(g)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>m&&(k=Math.min(this.options.dataPointWidth? -this.dataPointWidth:Infinity,m));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&mm&&(g=m);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var r=0;ra.axisX.dataInfo.viewPortMax)&&"number"===typeof u[k].y){m=a.axisX.convertValueToPixel(b);p=0!==a.dataPointYSums[b]?100*(u[k].y/a.dataPointYSums[b]):0;var z=m-a.plotType.plotUnits.length*g/2+a.index*g<<0,C=z+g<<0,D;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=t[b])continue;p=a.axisY.convertValueToPixel(t[b]);D=f[b]?f[b]:q;f[b]=p}else if(a.axisY.scaleBreaks&&0=u[k].y)B[b]=p+("undefined"!==typeof B[b]?B[b]:0),D=a.axisY.convertValueToPixel(B[b]),p=l[b]?l[b]:q,l[b]=D;else if(p=a.axisY.convertValueToPixel(p),0<=u[k].y){var A="undefined"!==typeof f[b]?f[b]:0;p-=A;D=q-A;a.dataSeriesIndexes.length-1===r&&1>=Math.abs(e.y1-p)&&(p=e.y1);f[b]=A+(D-p)}else A="undefined"!==typeof l[b]? -l[b]:0,D=p+A,p=q+A,a.dataSeriesIndexes.length-1===r&&1>=Math.abs(e.y2-D)&&(D=e.y2),l[b]=A+(D-p);b=u[k].color?u[k].color:n._colorSet[k%n._colorSet.length];ea(c,z,p,C,D,b,0,null,s&&0<=u[k].y,0>u[k].y&&s,!1,!1,n.fillOpacity);b=n.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:k,x1:z,y1:p,x2:C,y2:D};b=P(b);w&&ea(this._eventManager.ghostCtx,z,p,C,D,b,0,null,!1,!1,!1,!1);(u[k].indexLabel||n.indexLabel||u[k].indexLabelFormatter||n.indexLabelFormatter)&& -this._indexLabels.push({chartType:"stackedColumn100",dataPoint:u[k],dataSeries:n,point:{x:m,y:0<=u[k].y?p:D},direction:0>u[k].y===a.axisY.reversed?1:-1,bounds:{x1:z,y1:Math.min(p,D),x2:C,y2:Math.max(p,D)},color:b})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&& -this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.yScaleAnimation,easingFunction:K.easing.easeOutQuart,animationBase:qa.axisY.bounds.y2?a.axisY.bounds.y2:q}}};n.prototype.renderBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b= -null,e=this.plotArea,f=0,l,t,B,k=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,m=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.options.dataPointWidth? -this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&f>m&&(f=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,m));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&mm&&(p=m);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height); -c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(m=0;ma.axisX.dataInfo.viewPortMax)&&"number"===typeof r[f].y){t=a.axisX.convertValueToPixel(B); -l=a.axisY.convertValueToPixel(r[f].y);t=a.axisX.reversed?t+a.plotType.totalDataSeries*p/2-(a.previousDataSeriesCount+m)*p<<0:t-a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+m)*p<<0;var n=a.axisX.reversed?t-p<<0:t+p<<0,u;0<=r[f].y?u=k:(u=l,l=k);b=r[f].color?r[f].color:g._colorSet[f%g._colorSet.length];ea(c,u,t,l,n,b,0,null,h,!1,!1,!1,g.fillOpacity);b=g.dataPointIds[f];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:f,x1:u,y1:t,x2:l,y2:n};b= -P(b);w&&ea(this._eventManager.ghostCtx,u,t,l,n,b,0,null,!1,!1,!1,!1);(r[f].indexLabel||g.indexLabel||r[f].indexLabelFormatter||g.indexLabelFormatter)&&this._indexLabels.push({chartType:"bar",dataPoint:r[f],dataSeries:g,point:{x:0<=r[f].y?l:u,y:t+(n-t)/2},direction:0>r[f].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(u,l),y1:t,x2:Math.max(u,l),y2:n},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas, -0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.xScaleAnimation,easingFunction:K.easing.easeOutQuart,animationBase:ka.axisY.bounds.x2?a.axisY.bounds.x2: -k}}};n.prototype.renderStackedBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=[],l=[],t=[],B=[],k=0,m,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;p=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<< -0;var g=a.axisX.dataInfo.minDiff;isFinite(g)||(g=0.3*Math.abs(a.axisX.range));g=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(g)/Math.log(a.axisX.range):Math.abs(g)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>p&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,p));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&pp&&(g=p);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var r=0;ra.axisX.dataInfo.viewPortMax)&&"number"===typeof u[k].y){p=a.axisX.convertValueToPixel(b);var z=p-a.plotType.plotUnits.length*g/2+a.index*g<<0,C=z+g<<0,D;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=u[k].y)B[b]=u[k].y+(B[b]?B[b]:0),m=l[b]? -l[b]:q,l[b]=D=a.axisY.convertValueToPixel(B[b]);else if(m=a.axisY.convertValueToPixel(u[k].y),0<=u[k].y){var A=f[b]?f[b]:0;D=q+A;m+=A;f[b]=A+(m-D)}else A=l[b]?l[b]:0,D=m-A,m=q-A,l[b]=A+(m-D);b=u[k].color?u[k].color:n._colorSet[k%n._colorSet.length];ea(c,D,z,m,C,b,0,null,s,!1,!1,!1,n.fillOpacity);b=n.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:k,x1:D,y1:z,x2:m,y2:C};b=P(b);w&&ea(this._eventManager.ghostCtx,D,z,m,C,b,0,null,!1,!1,!1, -!1);(u[k].indexLabel||n.indexLabel||u[k].indexLabelFormatter||n.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar",dataPoint:u[k],dataSeries:n,point:{x:0<=u[k].y?m:D,y:p},direction:0>u[k].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(D,m),y1:z,x2:Math.max(D,m),y2:C},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&& -c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.xScaleAnimation,easingFunction:K.easing.easeOutQuart,animationBase:qa.axisY.bounds.x2?a.axisY.bounds.x2:q}}};n.prototype.renderStackedBar100=function(a){var d= -a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=[],l=[],t=[],B=[],k=0,m,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;p=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0;var g=a.axisX.dataInfo.minDiff;isFinite(g)|| -(g=0.3*Math.abs(a.axisX.range));g=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(g)/Math.log(a.axisX.range):Math.abs(g)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>p&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,p));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&pp&&(g=p);c.save();w&&this._eventManager.ghostCtx.save(); -c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var r=0;ra.axisX.dataInfo.viewPortMax)&& -"number"===typeof u[k].y){p=a.axisX.convertValueToPixel(b);var z;z=0!==a.dataPointYSums[b]?100*(u[k].y/a.dataPointYSums[b]):0;var C=p-a.plotType.plotUnits.length*g/2+a.index*g<<0,D=C+g<<0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=t[b])continue;z=f[b]?f[b]:q;f[b]=m=a.axisY.convertValueToPixel(t[b])}else if(a.axisY.scaleBreaks&&0=u[k].y)B[b]=z+(B[b]?B[b]:0),m=l[b]?l[b]: -q,l[b]=z=a.axisY.convertValueToPixel(B[b]);else if(m=a.axisY.convertValueToPixel(z),0<=u[k].y){var A=f[b]?f[b]:0;z=q+A;m+=A;a.dataSeriesIndexes.length-1===r&&1>=Math.abs(e.x2-m)&&(m=e.x2);f[b]=A+(m-z)}else A=l[b]?l[b]:0,z=m-A,m=q-A,a.dataSeriesIndexes.length-1===r&&1>=Math.abs(e.x1-z)&&(z=e.x1),l[b]=A+(m-z);b=u[k].color?u[k].color:n._colorSet[k%n._colorSet.length];ea(c,z,C,m,D,b,0,null,s,!1,!1,!1,n.fillOpacity);b=n.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:h, -dataPointIndex:k,x1:z,y1:C,x2:m,y2:D};b=P(b);w&&ea(this._eventManager.ghostCtx,z,C,m,D,b,0,null,!1,!1,!1,!1);(u[k].indexLabel||n.indexLabel||u[k].indexLabelFormatter||n.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar100",dataPoint:u[k],dataSeries:n,point:{x:0<=u[k].y?m:z,y:p},direction:0>u[k].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(z,m),y1:C,x2:Math.max(z,m),y2:D},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop", -a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.xScaleAnimation,easingFunction:K.easing.easeOutQuart,animationBase:qa.axisY.bounds.x2?a.axisY.bounds.x2:q}}};n.prototype.renderArea=function(a){var d,c;function b(){D&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?C=z:0>a.axisY.viewportMaximum?C=t.y1:0=a.dataSeriesIndexes.length)){var l=this._eventManager.ghostCtx,t=a.axisY.lineCoordinates,B=[],k=this.plotArea,m;f.save();w&&l.save();f.beginPath();f.rect(k.x1,k.y1,k.width,k.height);f.clip();w&&(l.beginPath(),l.rect(k.x1,k.y1,k.width,k.height),l.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax&&(!g.connectNullData||!ja)))if("number"!==typeof r[h].y)g.connectNullData||(ja||d)||b(),ja=!0;else{n=a.axisX.convertValueToPixel(s);u=a.axisY.convertValueToPixel(r[h].y);d||ja?(!d&&g.connectNullData?(f.setLineDash&&(g.options.nullDataLineDashType||c===g.lineDashType&&g.lineDashType!==g.nullDataLineDashType)&&(d=n,c=u,n=m.x,u=m.y,b(),f.moveTo(m.x,m.y),n=d,u=c,D=m,c=g.nullDataLineDashType,f.setLineDash(Q)),f.lineTo(n,u),w&&l.lineTo(n,u)): -(f.beginPath(),f.moveTo(n,u),w&&(l.beginPath(),l.moveTo(n,u)),D={x:n,y:u}),ja=d=!1):(f.lineTo(n,u),w&&l.lineTo(n,u),0==h%250&&b());m={x:n,y:u};hr[h].y===a.axisY.reversed?1:-1,color:A})}b();$.drawMarkers(B)}}w&&(e.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),f.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&f.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&f.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),f.clearRect(k.x1,k.y1,k.width,k.height),this._eventManager.ghostCtx.restore());f.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear, -animationBase:0}}};n.prototype.renderSplineArea=function(a){function d(){var c=v(s,2);if(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum? -n=h:0>a.axisY.viewportMaximum?n=f.y1:0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,f=a.axisY.lineCoordinates,l=[],t=this.plotArea;b.save();w&&e.save();b.beginPath();b.rect(t.x1, -t.y1,t.width,t.height);b.clip();w&&(e.beginPath(),e.rect(t.x1,t.y1,t.width,t.height),e.clip());for(var B=0;Ba.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!r)))if("number"!==typeof p[q].y)0 -p[q].y===a.axisY.reversed?1:-1,color:z});r=!1}d();$.drawMarkers(l)}}w&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(t.x1,t.y1,t.width,t.height),this._eventManager.ghostCtx.restore()); -b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};n.prototype.renderStepArea=function(a){var d,c;function b(){D&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?C=z:0>a.axisY.viewportMaximum?C=t.y1:0=a.dataSeriesIndexes.length)){var l=this._eventManager.ghostCtx,t=a.axisY.lineCoordinates,B=[],k=this.plotArea,m;f.save();w&&l.save();f.beginPath();f.rect(k.x1,k.y1,k.width,k.height);f.clip();w&&(l.beginPath(),l.rect(k.x1,k.y1,k.width,k.height),l.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax&&(!g.connectNullData||!c))){var Y=u;"number"!==typeof r[h].y?(g.connectNullData||(c||d)||b(),c=!0):(n=a.axisX.convertValueToPixel(s),u=a.axisY.convertValueToPixel(r[h].y),d||c?(!d&&g.connectNullData?(f.setLineDash&&(g.options.nullDataLineDashType||Q===g.lineDashType&&g.lineDashType!==g.nullDataLineDashType)&&(d=n,c=u,n=m.x,u=m.y,b(), -f.moveTo(m.x,m.y),n=d,u=c,D=m,Q=g.nullDataLineDashType,f.setLineDash(aa)),f.lineTo(n,Y),f.lineTo(n,u),w&&(l.lineTo(n,Y),l.lineTo(n,u))):(f.beginPath(),f.moveTo(n,u),w&&(l.beginPath(),l.moveTo(n,u)),D={x:n,y:u}),c=d=!1):(f.lineTo(n,Y),w&&l.lineTo(n,Y),f.lineTo(n,u),w&&l.lineTo(n,u),0==h%250&&b()),m={x:n,y:u},hr[h].y===a.axisY.reversed?1:-1,color:A}))}b();$.drawMarkers(B)}}w&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),f.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&f.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&f.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),f.clearRect(k.x1, -k.y1,k.width,k.height),this._eventManager.ghostCtx.restore());f.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};n.prototype.renderStackedArea=function(a){function d(){if(!(1>k.length)){for(0=a.dataSeriesIndexes.length)){var e=null,f=null,l=[],t=this.plotArea,h=[],k=[],m=[],p=[],q=0,g,r,n=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),s=this._eventManager.ghostCtx,u,y,z;w&&s.beginPath();b.save();w&&s.save();b.beginPath();b.rect(t.x1,t.y1,t.width,t.height);b.clip();w&&(s.beginPath(),s.rect(t.x1,t.y1,t.width,t.height),s.clip());for(var e=[],C=0;Ca.axisX.dataInfo.viewPortMax&&(!A.connectNullData||!Y)))if("number"!==typeof fa.y)A.connectNullData||(Y||y)||d(),Y=!0;else{g=a.axisX.convertValueToPixel(f);var ma=h[f]?h[f]:0;if(a.axisY.logarithmic|| -a.axisY.scaleBreaks&&0=p[f]&&a.axisY.logarithmic)continue;r=a.axisY.convertValueToPixel(p[f])}else r=a.axisY.convertValueToPixel(fa.y),r-=ma;k.push({x:g,y:n-ma});h[f]=n-r;y||Y?(!y&&A.connectNullData?(b.setLineDash&&(A.options.nullDataLineDashType||z===A.lineDashType&&A.lineDashType!==A.nullDataLineDashType)&&(y=k.pop(),z=k[k.length-1],d(),b.moveTo(u.x,u.y),k.push(z),k.push(y),z=A.nullDataLineDashType,b.setLineDash(aa)),b.lineTo(g, -r),w&&s.lineTo(g,r)):(b.beginPath(),b.moveTo(g,r),w&&(s.beginPath(),s.moveTo(g,r))),Y=y=!1):(b.lineTo(g,r),w&&s.lineTo(g,r),0==q%250&&(d(),b.moveTo(g,r),w&&s.moveTo(g,r),k.push({x:g,y:n-ma})));u={x:g,y:r};qv[q].y===a.axisY.reversed?1:-1,color:e})}}d();b.moveTo(g,r);w&&s.moveTo(g,r)}delete A.dataPointIndexes}$.drawMarkers(l);w&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height), -this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(t.x1,t.y1,t.width,t.height),s.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};n.prototype.renderStackedArea100=function(a){function d(){for(0=a.dataSeriesIndexes.length)){var e=null,f=null,l=this.plotArea,t=[],h=[],k=[],m=[],p=[],q=0,g,r,n,s,u,y=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),z=this._eventManager.ghostCtx;b.save();w&&z.save();b.beginPath();b.rect(l.x1,l.y1,l.width,l.height);b.clip();w&&(z.beginPath(),z.rect(l.x1,l.y1,l.width,l.height),z.clip()); -for(var e=[],C=0;Ca.axisX.dataInfo.viewPortMax&&(!A.connectNullData||!Y)))if("number"!==typeof fa.y)A.connectNullData|| -(Y||s)||d(),Y=!0;else{var ma;ma=0!==a.dataPointYSums[f]?100*(fa.y/a.dataPointYSums[f]):0;g=a.axisX.convertValueToPixel(f);var ba=h[f]?h[f]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=p[f]&&a.axisY.logarithmic)continue;r=a.axisY.convertValueToPixel(p[f])}else r=a.axisY.convertValueToPixel(ma),r-=ba;k.push({x:g,y:y-ba});h[f]=y-r;s||Y?(!s&&A.connectNullData?(b.setLineDash&&(A.options.nullDataLineDashType||u===A.lineDashType&& -A.lineDashType!==A.nullDataLineDashType)&&(s=k.pop(),u=k[k.length-1],d(),b.moveTo(n.x,n.y),k.push(u),k.push(s),u=A.nullDataLineDashType,b.setLineDash(aa)),b.lineTo(g,r),w&&z.lineTo(g,r)):(b.beginPath(),b.moveTo(g,r),w&&(z.beginPath(),z.moveTo(g,r))),Y=s=!1):(b.lineTo(g,r),w&&z.lineTo(g,r),0==q%250&&(d(),b.moveTo(g,r),w&&z.moveTo(g,r),k.push({x:g,y:y-ba})));n={x:g,y:r};qx[q].y===a.axisY.reversed?1:-1,color:e})}}d();b.moveTo(g,r);w&&z.moveTo(g,r)}delete A.dataPointIndexes}$.drawMarkers(t);w&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation= -"source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(l.x1,l.y1,l.width,l.height),z.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};n.prototype.renderBubble=function(a){var d= -a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,e=0,f,l;c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var t=-Infinity,h=Infinity,k=0;ka.axisX.dataInfo.viewPortMax||"undefined"===typeof q[e].z||(g=q[e].z,g>t&&(t=g),ga.axisX.dataInfo.viewPortMax)&&"number"===typeof q[e].y){f=a.axisX.convertValueToPixel(f);l=a.axisY.convertValueToPixel(q[e].y);var g=q[e].z,s=2*Math.max(Math.sqrt((t===h?n/2:r+(n-r)/(t-h)*(g-h))/Math.PI)<<0,1),g=p.getMarkerProperties(e,c);g.size=s;c.globalAlpha=p.fillOpacity;$.drawMarker(f,l,c,g.type,g.size,g.color,g.borderColor,g.borderThickness);c.globalAlpha=1;var u=p.dataPointIds[e];this._eventManager.objectMap[u]={id:u,objectType:"dataPoint",dataSeriesIndex:m,dataPointIndex:e,x1:f,y1:l,size:s}; -s=P(u);w&&$.drawMarker(f,l,this._eventManager.ghostCtx,g.type,g.size,s,s,g.borderThickness);(q[e].indexLabel||p.indexLabel||q[e].indexLabelFormatter||p.indexLabelFormatter)&&this._indexLabels.push({chartType:"bubble",dataPoint:q[e],dataSeries:p,point:{x:f,y:l},direction:1,bounds:{x1:f-g.size/2,y1:l-g.size/2,x2:f+g.size/2,y2:l+g.size/2},color:null})}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas, -0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad,animationBase:0}}};n.prototype.renderScatter=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx, -c=w?this._preRenderCtx:d;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,e=0,f,l;c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var t=0;ta.axisX.dataInfo.viewPortMax)&&"number"===typeof m[e].y){f=a.axisX.convertValueToPixel(f);l=a.axisY.convertValueToPixel(m[e].y);var g=k.getMarkerProperties(e,f,l,c);c.globalAlpha=k.fillOpacity;$.drawMarker(g.x,g.y,g.ctx,g.type,g.size,g.color,g.borderColor,g.borderThickness);c.globalAlpha=1;Math.sqrt((p-f)*(p-f)+(q-l)*(q-l))Math.min(this.plotArea.width, -this.plotArea.height)||(p=k.dataPointIds[e],this._eventManager.objectMap[p]={id:p,objectType:"dataPoint",dataSeriesIndex:h,dataPointIndex:e,x1:f,y1:l},p=P(p),w&&$.drawMarker(g.x,g.y,this._eventManager.ghostCtx,g.type,g.size,p,p,g.borderThickness),(m[e].indexLabel||k.indexLabel||m[e].indexLabelFormatter||k.indexLabelFormatter)&&this._indexLabels.push({chartType:"scatter",dataPoint:m[e],dataSeries:k,point:{x:f,y:l},direction:1,bounds:{x1:f-g.size/2,y1:l-g.size/2,x2:f+g.size/2,y2:l+g.size/2},color:null}), -p=f,q=l)}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx, -animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad,animationBase:0}}};n.prototype.renderCandlestick=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e=null,f=null,l=this.plotArea,t=0,h,k,m,p,q,g,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,f=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth? -this.dataPointWidth:0.015*this.width,r=a.axisX.dataInfo.minDiff;isFinite(r)||(r=0.3*Math.abs(a.axisX.range));r=this.options.dataPointWidth?this.dataPointWidth:0.7*l.width*(a.axisX.logarithmic?Math.log(r)/Math.log(a.axisX.range):Math.abs(r)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&e>f&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,f));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ff&&(r=f);c.save();w&&b.save();c.beginPath();c.rect(l.x1,l.y1,l.width,l.height);c.clip();w&&(b.beginPath(),b.rect(l.x1,l.y1,l.width,l.height),b.clip());for(var n=0;na.axisX.dataInfo.viewPortMax)&&!s(y[t].y)&&y[t].y.length&&"number"===typeof y[t].y[0]&& -"number"===typeof y[t].y[1]&&"number"===typeof y[t].y[2]&&"number"===typeof y[t].y[3]){h=a.axisX.convertValueToPixel(g);k=a.axisY.convertValueToPixel(y[t].y[0]);m=a.axisY.convertValueToPixel(y[t].y[1]);p=a.axisY.convertValueToPixel(y[t].y[2]);q=a.axisY.convertValueToPixel(y[t].y[3]);var C=h-r/2<<0,D=C+r<<0,f=u.options.fallingColor?u.fallingColor:u._colorSet[0],e=y[t].color?y[t].color:u._colorSet[0],A=Math.round(Math.max(1,0.15*r)),x=0===A%2?0:0.5,E=u.dataPointIds[t];this._eventManager.objectMap[E]= -{id:E,objectType:"dataPoint",dataSeriesIndex:v,dataPointIndex:t,x1:C,y1:k,x2:D,y2:m,x3:h,y3:p,x4:h,y4:q,borderThickness:A,color:e};c.strokeStyle=e;c.beginPath();c.lineWidth=A;b.lineWidth=Math.max(A,4);"candlestick"===u.type?(c.moveTo(h-x,m),c.lineTo(h-x,Math.min(k,q)),c.stroke(),c.moveTo(h-x,Math.max(k,q)),c.lineTo(h-x,p),c.stroke(),ea(c,C,Math.min(k,q),D,Math.max(k,q),y[t].y[0]<=y[t].y[3]?u.risingColor:f,A,e,z,z,!1,!1,u.fillOpacity),w&&(e=P(E),b.strokeStyle=e,b.moveTo(h-x,m),b.lineTo(h-x,Math.min(k, -q)),b.stroke(),b.moveTo(h-x,Math.max(k,q)),b.lineTo(h-x,p),b.stroke(),ea(b,C,Math.min(k,q),D,Math.max(k,q),e,0,null,!1,!1,!1,!1))):"ohlc"===u.type&&(c.moveTo(h-x,m),c.lineTo(h-x,p),c.stroke(),c.beginPath(),c.moveTo(h,k),c.lineTo(C,k),c.stroke(),c.beginPath(),c.moveTo(h,q),c.lineTo(D,q),c.stroke(),w&&(e=P(E),b.strokeStyle=e,b.moveTo(h-x,m),b.lineTo(h-x,p),b.stroke(),b.beginPath(),b.moveTo(h,k),b.lineTo(C,k),b.stroke(),b.beginPath(),b.moveTo(h,q),b.lineTo(D,q),b.stroke()));(y[t].indexLabel||u.indexLabel|| -y[t].indexLabelFormatter||u.indexLabelFormatter)&&this._indexLabels.push({chartType:u.type,dataPoint:y[t],dataSeries:u,point:{x:C+(D-C)/2,y:a.axisY.reversed?p:m},direction:1,bounds:{x1:C,y1:Math.min(m,p),x2:D,y2:Math.max(m,p)},color:e})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height), -this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(l.x1,l.y1,l.width,l.height),b.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad,animationBase:0}}};n.prototype.renderBoxAndWhisker=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e=null,f=this.plotArea, -l=0,t,h,k,m,p,q,g,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,l=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.015*this.width,r=a.axisX.dataInfo.minDiff;isFinite(r)||(r=0.3*Math.abs(a.axisX.range));r=this.options.dataPointWidth?this.dataPointWidth:0.7*f.width*(a.axisX.logarithmic?Math.log(r)/Math.log(a.axisX.range):Math.abs(r)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&e> -l&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ll&&(r=l);c.save();w&&b.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();w&&(b.beginPath(),b.rect(f.x1,f.y1,f.width,f.height),b.clip());for(var n=!1,n=!!a.axisY.reversed,v=0;va.axisX.dataInfo.viewPortMax)&&!s(z[l].y)&&z[l].y.length&&"number"===typeof z[l].y[0]&&"number"===typeof z[l].y[1]&&"number"===typeof z[l].y[2]&&"number"===typeof z[l].y[3]&&"number"===typeof z[l].y[4]&&5===z[l].y.length){t=a.axisX.convertValueToPixel(g);h=a.axisY.convertValueToPixel(z[l].y[0]);k=a.axisY.convertValueToPixel(z[l].y[1]);m=a.axisY.convertValueToPixel(z[l].y[2]); -p=a.axisY.convertValueToPixel(z[l].y[3]);q=a.axisY.convertValueToPixel(z[l].y[4]);var D=t-r/2<<0,A=t+r/2<<0,e=z[l].color?z[l].color:y._colorSet[0],x=Math.round(Math.max(1,0.15*r)),E=0===x%2?0:0.5,Q=z[l].whiskerColor?z[l].whiskerColor:z[l].color?y.whiskerColor?y.whiskerColor:z[l].color:y.whiskerColor?y.whiskerColor:e,aa="number"===typeof z[l].whiskerThickness?z[l].whiskerThickness:"number"===typeof y.options.whiskerThickness?y.whiskerThickness:x,F=z[l].whiskerDashType?z[l].whiskerDashType:y.whiskerDashType, -Y=s(z[l].whiskerLength)?s(y.options.whiskerLength)?r:y.whiskerLength:z[l].whiskerLength,Y="number"===typeof Y?0>=Y?0:Y>=r?r:Y:"string"===typeof Y?parseInt(Y)*r/100>r?r:parseInt(Y)*r/100:r,fa=1===Math.round(aa)%2?0.5:0,ma=z[l].stemColor?z[l].stemColor:z[l].color?y.stemColor?y.stemColor:z[l].color:y.stemColor?y.stemColor:e,ba="number"===typeof z[l].stemThickness?z[l].stemThickness:"number"===typeof y.options.stemThickness?y.stemThickness:x,G=1===Math.round(ba)%2?0.5:0,J=z[l].stemDashType?z[l].stemDashType: -y.stemDashType,H=z[l].lineColor?z[l].lineColor:z[l].color?y.lineColor?y.lineColor:z[l].color:y.lineColor?y.lineColor:e,M="number"===typeof z[l].lineThickness?z[l].lineThickness:"number"===typeof y.options.lineThickness?y.lineThickness:x,S=z[l].lineDashType?z[l].lineDashType:y.lineDashType,L=1===Math.round(M)%2?0.5:0,R=y.upperBoxColor,xa=y.lowerBoxColor,sa=s(y.options.fillOpacity)?1:y.fillOpacity,O=y.dataPointIds[l];this._eventManager.objectMap[O]={id:O,objectType:"dataPoint",dataSeriesIndex:u,dataPointIndex:l, -x1:D,y1:h,x2:A,y2:k,x3:t,y3:m,x4:t,y4:p,y5:q,borderThickness:x,color:e,stemThickness:ba,stemColor:ma,whiskerThickness:aa,whiskerLength:Y,whiskerColor:Q,lineThickness:M,lineColor:H};c.save();0=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=0,l,t,h,f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth: -1;l=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.03*this.width;var k=a.axisX.dataInfo.minDiff;isFinite(k)||(k=0.3*Math.abs(a.axisX.range));k=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(k)/Math.log(a.axisX.range):Math.abs(k)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&f>l&&(f=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&& -(this.dataPointMinWidth&&ll&&(k=l);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var m=0;ma.axisX.dataInfo.viewPortMax)&&!s(g[f].y)&&g[f].y.length&&"number"===typeof g[f].y[0]&&"number"===typeof g[f].y[1]){b=a.axisX.convertValueToPixel(h);l=a.axisY.convertValueToPixel(g[f].y[0]);t=a.axisY.convertValueToPixel(g[f].y[1]);var n=a.axisX.reversed?b+a.plotType.totalDataSeries*k/2-(a.previousDataSeriesCount+m)*k<<0:b-a.plotType.totalDataSeries*k/2+(a.previousDataSeriesCount+ -m)*k<<0,v=a.axisX.reversed?n-k<<0:n+k<<0,b=g[f].color?g[f].color:q._colorSet[f%q._colorSet.length];if(l>t){var u=l;l=t;t=u}u=q.dataPointIds[f];this._eventManager.objectMap[u]={id:u,objectType:"dataPoint",dataSeriesIndex:p,dataPointIndex:f,x1:n,y1:l,x2:v,y2:t};ea(c,n,l,v,t,b,0,b,r,r,!1,!1,q.fillOpacity);b=P(u);w&&ea(this._eventManager.ghostCtx,n,l,v,t,b,0,null,!1,!1,!1,!1);if(g[f].indexLabel||q.indexLabel||g[f].indexLabelFormatter||q.indexLabelFormatter)this._indexLabels.push({chartType:"rangeColumn", -dataPoint:g[f],dataSeries:q,indexKeyword:0,point:{x:n+(v-n)/2,y:g[f].y[1]>=g[f].y[0]?t:l},direction:g[f].y[1]>=g[f].y[0]?-1:1,bounds:{x1:n,y1:Math.min(l,t),x2:v,y2:Math.max(l,t)},color:b}),this._indexLabels.push({chartType:"rangeColumn",dataPoint:g[f],dataSeries:q,indexKeyword:1,point:{x:n+(v-n)/2,y:g[f].y[1]>=g[f].y[0]?l:t},direction:g[f].y[1]>=g[f].y[0]?1:-1,bounds:{x1:n,y1:Math.min(l,t),x2:v,y2:Math.max(l,t)},color:b})}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation= -"source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad,animationBase:0}}};n.prototype.renderError= -function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx:d,b=a.axisY._position?"left"===a.axisY._position||"right"===a.axisY._position?!1:!0:!1;if(!(0>=a.dataSeriesIndexes.length)){var e=null,f=!1,l=this.plotArea,t=0,h,k,m,p,q,g,r,n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.range));c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(l.x1,l.y1,l.width,l.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(l.x1, -l.y1,l.width,l.height),this._eventManager.ghostCtx.clip());for(var v=0,u=0;ut&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,t));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&tt&&(u=t);if(0=Q.length?0:Q.length>=u?u:Q.length:"string"===typeof Q.length?parseInt(Q.length)*u/100>u?u:parseInt(Q.length)*u/100>u:u;Q.thickness="number"===typeof Q.thickness?0>Q.thickness?0:Math.round(Q.thickness):2;var aa={color:D[t].stemColor?D[t].stemColor:D[t].color?C.stemColor?C.stemColor:D[t].color:C.stemColor?C.stemColor:e,thickness:D[t].stemThickness?D[t].stemThickness:C.stemThickness,dashType:D[t].stemDashType? -D[t].stemDashType:C.stemDashType};aa.thickness="number"===typeof aa.thickness?0>aa.thickness?0:Math.round(aa.thickness):2;D[t].getTime?r=D[t].x.getTime():r=D[t].x;if(!(ra.axisX.dataInfo.viewPortMax)&&!s(D[t].y)&&D[t].y.length&&"number"===typeof D[t].y[0]&&"number"===typeof D[t].y[1]){var ja=a.axisX.convertValueToPixel(r);b?k=ja:h=ja;ja=a.axisY.convertValueToPixel(D[t].y[0]);b?m=ja:q=ja;ja=a.axisY.convertValueToPixel(D[t].y[1]);b?p=ja:g=ja;b?(q=a.axisX.reversed?k+(A? -v:1)*u/2-(A?E-1:0)*u<<0:k-(A?v:1)*u/2+(A?E-1:0)*u<<0,g=a.axisX.reversed?q-u<<0:q+u<<0):(m=a.axisX.reversed?h+(A?v:1)*u/2-(A?E-1:0)*u<<0:h-(A?v:1)*u/2+(A?E-1:0)*u<<0,p=a.axisX.reversed?m-u<<0:m+u<<0);!b&&q>g&&(ja=q,q=g,g=ja);b&&m>p&&(ja=m,m=p,p=ja);ja=C.dataPointIds[t];this._eventManager.objectMap[ja]={id:ja,objectType:"dataPoint",dataSeriesIndex:z,dataPointIndex:t,x1:Math.min(m,p),y1:Math.min(q,g),x2:Math.max(p,m),y2:Math.max(g,q),isXYSwapped:b,stemProperties:aa,whiskerProperties:Q};x(c,Math.min(m, -p),Math.min(q,g),Math.max(p,m),Math.max(g,q),e,Q,aa,b);w&&x(this._eventManager.ghostCtx,m,q,p,g,e,Q,aa,b);if(D[t].indexLabel||C.indexLabel||D[t].indexLabelFormatter||C.indexLabelFormatter)this._indexLabels.push({chartType:"error",dataPoint:D[t],dataSeries:C,indexKeyword:0,point:{x:b?D[t].y[1]>=D[t].y[0]?m:p:m+(p-m)/2,y:b?q+(g-q)/2:D[t].y[1]>=D[t].y[0]?g:q},direction:D[t].y[1]>=D[t].y[0]?-1:1,bounds:{x1:b?Math.min(m,p):m,y1:b?q:Math.min(q,g),x2:b?Math.max(m,p):p,y2:b?g:Math.max(q,g)},color:e,axisSwapped:b}), -this._indexLabels.push({chartType:"error",dataPoint:D[t],dataSeries:C,indexKeyword:1,point:{x:b?D[t].y[1]>=D[t].y[0]?p:m:m+(p-m)/2,y:b?q+(g-q)/2:D[t].y[1]>=D[t].y[0]?q:g},direction:D[t].y[1]>=D[t].y[0]?1:-1,bounds:{x1:b?Math.min(m,p):m,y1:b?q:Math.min(q,g),x2:b?Math.max(m,p):p,y2:b?g:Math.max(q,g)},color:e,axisSwapped:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height), -a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(l.x1,l.y1,l.width,l.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad,animationBase:0}}};n.prototype.renderRangeBar=function(a){var d=a.targetCanvasCtx||this.plotArea.ctx,c=w?this._preRenderCtx: -d;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,f=0,l,t,h,k,f=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;l=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0;var m=a.axisX.dataInfo.minDiff;isFinite(m)||(m=0.3*Math.abs(a.axisX.range));m=this.options.dataPointWidth?this.dataPointWidth:0.9* -(e.height*(a.axisX.logarithmic?Math.log(m)/Math.log(a.axisX.range):Math.abs(m)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&f>l&&(f=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ll&&(m=l);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(), -this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax)&&!s(r[f].y)&&r[f].y.length&&"number"===typeof r[f].y[0]&&"number"===typeof r[f].y[1]){l=a.axisY.convertValueToPixel(r[f].y[0]); -t=a.axisY.convertValueToPixel(r[f].y[1]);h=a.axisX.convertValueToPixel(k);h=a.axisX.reversed?h+a.plotType.totalDataSeries*m/2-(a.previousDataSeriesCount+p)*m<<0:h-a.plotType.totalDataSeries*m/2+(a.previousDataSeriesCount+p)*m<<0;var v=a.axisX.reversed?h-m<<0:h+m<<0;l>t&&(b=l,l=t,t=b);b=r[f].color?r[f].color:g._colorSet[f%g._colorSet.length];ea(c,l,h,t,v,b,0,null,n,!1,!1,!1,g.fillOpacity);b=g.dataPointIds[f];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:q,dataPointIndex:f, -x1:l,y1:h,x2:t,y2:v};b=P(b);w&&ea(this._eventManager.ghostCtx,l,h,t,v,b,0,null,!1,!1,!1,!1);if(r[f].indexLabel||g.indexLabel||r[f].indexLabelFormatter||g.indexLabelFormatter)this._indexLabels.push({chartType:"rangeBar",dataPoint:r[f],dataSeries:g,indexKeyword:0,point:{x:r[f].y[1]>=r[f].y[0]?l:t,y:h+(v-h)/2},direction:r[f].y[1]>=r[f].y[0]?-1:1,bounds:{x1:Math.min(l,t),y1:h,x2:Math.max(l,t),y2:v},color:b}),this._indexLabels.push({chartType:"rangeBar",dataPoint:r[f],dataSeries:g,indexKeyword:1,point:{x:r[f].y[1]>= -r[f].y[0]?t:l,y:h+(v-h)/2},direction:r[f].y[1]>=r[f].y[0]?1:-1,bounds:{x1:Math.min(l,t),y1:h,x2:Math.max(l,t),y2:v},color:b})}}}w&&(d.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1, -e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad,animationBase:0}}};n.prototype.renderRangeArea=function(a){function d(){if(y){for(var a=null,c=h.length-1;0<=c;c--)a=h[c],b.lineTo(a.x,a.y2),e.lineTo(a.x,a.y2);b.closePath();b.globalAlpha=m.fillOpacity;b.fill();b.globalAlpha=1;e.fill();if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,f=[],l=this.plotArea;b.save();w&&e.save();b.beginPath();b.rect(l.x1,l.y1,l.width,l.height);b.clip();w&&(e.beginPath(),e.rect(l.x1,l.y1,l.width,l.height),e.clip()); -for(var t=0;ta.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!Q)))if(null!==p[g].y&&p[g].y.length&&"number"===typeof p[g].y[0]&&"number"===typeof p[g].y[1]){r=a.axisX.convertValueToPixel(u);n=a.axisY.convertValueToPixel(p[g].y[0]);s=a.axisY.convertValueToPixel(p[g].y[1]);q||Q?(m.connectNullData&&!q?(b.setLineDash&&(m.options.nullDataLineDashType||A===m.lineDashType&& -m.lineDashType!==m.nullDataLineDashType)&&(h[h.length-1].newLineDashArray=E,A=m.nullDataLineDashType,b.setLineDash(x)),b.lineTo(r,n),w&&e.lineTo(r,n),h.push({x:r,y1:n,y2:s})):(b.beginPath(),b.moveTo(r,n),y={x:r,y:n},h=[],h.push({x:r,y1:n,y2:s}),w&&(e.beginPath(),e.moveTo(r,n))),Q=q=!1):(b.lineTo(r,n),h.push({x:r,y1:n,y2:s}),w&&e.lineTo(r,n),0==g%250&&d());u=m.dataPointIds[g];this._eventManager.objectMap[u]={id:u,objectType:"dataPoint",dataSeriesIndex:k,dataPointIndex:g,x1:r,y1:n,y2:s};gp[g].y[1]===a.axisY.reversed?-1:1,color:z}), -this._indexLabels.push({chartType:"rangeArea",dataPoint:p[g],dataSeries:m,indexKeyword:1,point:{x:r,y:s},direction:p[g].y[0]>p[g].y[1]===a.axisY.reversed?1:-1,color:z})}else Q||q||d(),Q=!0;d();$.drawMarkers(f)}}w&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),b.clearRect(l.x1,l.y1,l.width,l.height),this._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:K.xClipAnimation,easingFunction:K.easing.linear,animationBase:0}}};n.prototype.renderRangeSplineArea=function(a){function d(a,c){var d=v(s,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,f=[],l=this.plotArea;b.save();w&&e.save();b.beginPath();b.rect(l.x1,l.y1,l.width,l.height);b.clip();w&&(e.beginPath(),e.rect(l.x1,l.y1,l.width,l.height),e.clip());for(var h=0;ha.axisX.dataInfo.viewPortMax&&(!k.connectNullData|| -!g)))if(null!==m[p].y&&m[p].y.length&&"number"===typeof m[p].y[0]&&"number"===typeof m[p].y[1]){q=a.axisX.convertValueToPixel(q);g=a.axisY.convertValueToPixel(m[p].y[0]);r=a.axisY.convertValueToPixel(m[p].y[1]);var E=k.dataPointIds[p];this._eventManager.objectMap[E]={id:E,objectType:"dataPoint",dataSeriesIndex:n,dataPointIndex:p,x1:q,y1:g,y2:r};s[s.length]={x:q,y:g};x[x.length]={x:q,y:r};p=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx,e=null,f=this.plotArea,l=0,h,n,k,m,p=a.axisY.convertValueToPixel(a.axisY.logarithmic? -a.axisY.viewportMinimum:0),l=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;n=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0;var q=a.axisX.dataInfo.minDiff;isFinite(q)||(q=0.3*Math.abs(a.axisX.range));q=this.options.dataPointWidth?this.dataPointWidth:0.6*(f.width*(a.axisX.logarithmic?Math.log(q)/Math.log(a.axisX.range): -Math.abs(q)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&l>n&&(l=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,n));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&nn&&(q=n);c.save();w&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(f.x1,f.y1,f.width,f.height);c.clip();w&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(f.x1, -f.y1,f.width,f.height),this._eventManager.ghostCtx.clip());for(var g=0;gk&&(e=n,n=k,k=e);a.axisY.reversed&&(e=n,n=k,k=e);e=s.dataPointIds[l];this._eventManager.objectMap[e]={id:e,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:l,x1:h,y1:n,x2:F,y2:k};var Q=v[l].color?v[l].color:0v[l].y===a.axisY.reversed?1:-1,bounds:{x1:h,y1:Math.min(n,k),x2:F,y2:Math.max(n,k)},color:e})}}w&&(d.drawImage(this._preRenderCanvas,0, -0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(f.x1,f.y1,f.width,f.height),this._eventManager.ghostCtx.restore());c.restore();return{source:d,dest:this.plotArea.ctx,animationCallback:K.fadeInAnimation,easingFunction:K.easing.easeInQuad, -animationBase:0}}};var ha=function(a,d,c,b,e,f,l,h,n){if(!(0>c)){"undefined"===typeof h&&(h=1);if(!w){var k=Number((l%(2*Math.PI)).toFixed(8));Number((f%(2*Math.PI)).toFixed(8))===k&&(l-=1E-4)}a.save();a.globalAlpha=h;"pie"===e?(a.beginPath(),a.moveTo(d.x,d.y),a.arc(d.x,d.y,c,f,l,!1),a.fillStyle=b,a.strokeStyle="white",a.lineWidth=2,a.closePath(),a.fill()):"doughnut"===e&&(a.beginPath(),a.arc(d.x,d.y,c,f,l,!1),0<=n&&a.arc(d.x,d.y,n*c,l,f,!0),a.closePath(),a.fillStyle=b,a.strokeStyle="white",a.lineWidth= -2,a.fill());a.globalAlpha=1;a.restore()}};n.prototype.renderPie=function(a){function d(){if(k&&m){for(var a=0,b=0,c=0,d=0,e=0;eMath.PI/2-u&&h.midAngleh.midAngle)c=e;a++}else if(h.midAngle> -3*Math.PI/2-u&&h.midAngle<3*Math.PI/2+u){if(0===b||g[d].midAngle>h.midAngle)d=e;b++}h.hemisphere=f>Math.PI/2&&f<=3*Math.PI/2?"left":"right";h.indexLabelTextBlock=new ia(n.plotArea.ctx,{fontSize:h.indexLabelFontSize,fontFamily:h.indexLabelFontFamily,fontColor:h.indexLabelFontColor,fontStyle:h.indexLabelFontStyle,fontWeight:h.indexLabelFontWeight,textAlign:h.indexLabelTextAlign,backgroundColor:h.indexLabelBackgroundColor,maxWidth:h.indexLabelMaxWidth,maxHeight:h.indexLabelWrap?5*h.indexLabelFontSize: -1.5*h.indexLabelFontSize,text:h.indexLabelText,padding:0,textBaseline:"top"});h.indexLabelTextBlock.measureText()}l=f=0;p=!1;for(e=0;eMath.PI/2-u&&h.midAngle3*Math.PI/2-u&&h.midAngle<3*Math.PI/2+u)&&(l<=b/2&&!p?(h.hemisphere="left",l++):(h.hemisphere="right",p=!0))}}function c(a){var b=n.plotArea.ctx;b.clearRect(q.x1, -q.y1,q.width,q.height);b.fillStyle=n.backgroundColor;b.fillRect(q.x1,q.y1,q.width,q.height);for(b=0;bc){var e=0.07*A*Math.cos(g[b].midAngle),f=0.07*A*Math.sin(g[b].midAngle),l=!1;if(m[b].exploded){if(1E-9a.indexLabelTextBlock.y?e-d:c-f}function e(a){for(var c=null,d=1;db(g[c],g[a])||("right"===g[a].hemisphere?g[c].indexLabelTextBlock.y>=g[a].indexLabelTextBlock.y:g[c].indexLabelTextBlock.y<=g[a].indexLabelTextBlock.y)))break;else c=null;return c}function f(a,c,d){d=(d||0)+1;if(1E3c&&p.indexLabelTextBlock.yh)return 0;var q=0,t=0,t=q=q=0;0>c?p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2>k&&p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2+ch&&(c=p.indexLabelTextBlock.y+p.indexLabelTextBlock.height/ -2+c-h);c=p.indexLabelTextBlock.y+c;k=0;k="right"===p.hemisphere?z.x+Math.sqrt(Math.pow(w,2)-Math.pow(c-z.y,2)):z.x-Math.sqrt(Math.pow(w,2)-Math.pow(c-z.y,2));t=z.x+A*Math.cos(p.midAngle);q=z.y+A*Math.sin(p.midAngle);q=Math.sqrt(Math.pow(k-t,2)+Math.pow(c-q,2));t=Math.acos(A/w);q=Math.acos((w*w+A*A-q*q)/(2*A*w));c=qb(g[k],g[a])||("right"===g[a].hemisphere?g[k].indexLabelTextBlock.y<=g[a].indexLabelTextBlock.y:g[k].indexLabelTextBlock.y>=g[a].indexLabelTextBlock.y)))break;else k=null;t=k;q=e(a);h=k=0;0>c?(h="right"===p.hemisphere?t:q,l=c,null!==h&&(t=-c,c=p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2-(g[h].indexLabelTextBlock.y+g[h].indexLabelTextBlock.height/2),c-t+k.toFixed(y)&&(l=c>r?-(c-r):-(t-(h-k)))))):0r?c-r:t-(k-h)))));l&&(d=p.indexLabelTextBlock.y+l,c=0,c="right"===p.hemisphere?z.x+Math.sqrt(Math.pow(w,2)-Math.pow(d-z.y,2)):z.x-Math.sqrt(Math.pow(w,2)-Math.pow(d-z.y,2)),p.midAngle>Math.PI/2-u&&p.midAnglek.indexLabelTextBlock.x?c=k.indexLabelTextBlock.x-15:"right"===p.hemisphere&&("left"===a.hemisphere&&c3*Math.PI/2-u&&p.midAngle<3*Math.PI/2+u&&(k=(a-1+g.length)%g.length,k=g[k],a=g[(a+1+g.length)%g.length],"right"===p.hemisphere&&"left"===k.hemisphere&&ca.indexLabelTextBlock.x)&&(c=a.indexLabelTextBlock.x- -15)),p.indexLabelTextBlock.y=d,p.indexLabelTextBlock.x=c,p.indexLabelAngle=Math.atan2(p.indexLabelTextBlock.y-z.y,p.indexLabelTextBlock.x-z.x))}return l}function l(){var a=n.plotArea.ctx;a.fillStyle="grey";a.strokeStyle="grey";a.font="16px Arial";a.textBaseline="middle";for(var c=a=0,d=0,l=!0,c=0;10>c&&(1>c||0C){for(var x=s=0,D=0;Ds?h.indexLabelText="":h.indexLabelTextBlock.maxWidth=0.85*s,0.3*h.indexLabelTextBlock.maxWidthd&&(d=u)),u=u=0,0d&&(d=u)));var H=function(a, -b,c){for(var d=[],e=0;d.push(g[b]),b!==c;b=(b+1+m.length)%m.length);d.sort(function(a,b){return a.y-b.y});for(b=0;bC){q=t.indexLabelTextBlock.x;var n=t.indexLabelTextBlock.y-t.indexLabelTextBlock.height/ -2,r=t.indexLabelTextBlock.y+t.indexLabelTextBlock.height/2,s=h.indexLabelTextBlock.y-h.indexLabelTextBlock.height/2,u=h.indexLabelTextBlock.x+h.indexLabelTextBlock.width,B=h.indexLabelTextBlock.y+h.indexLabelTextBlock.height/2;q=t.indexLabelTextBlock.x+t.indexLabelTextBlock.widthu+p||n>B+p||ra&&(a=k),l!==a&&(c=l,d+=-C),0===k%Math.max(m.length/10,3)&&(f=!0)):f=!0;f&&(0=a.dataSeriesIndexes.length)){var k= -this.data[a.dataSeriesIndexes[0]],m=k.dataPoints,p=10,q=this.plotArea,g=k.dataPointEOs,r=2,w,v=1.3,u=20/180*Math.PI,y=6,z={x:(q.x2+q.x1)/2,y:(q.y2+q.y1)/2},C=0;a=!1;for(var x=0;xb&&(e=b,f=!0);var l=m[c].color?m[c].color:k._colorSet[c%k._colorSet.length];e>d&&ha(n.plotArea.ctx,g[c].center,g[c].radius,l,k.type,d,e,k.fillOpacity,g[c].percentInnerRadius);if(f)break}h();n.dispatchEvent("dataAnimationIterationEnd",{chart:n});1<=a&&n.dispatchEvent("dataAnimationEnd",{chart:n})},function(){n.disableToolTip=!1;n._animator.animate(0,n.animatedRender?500:0,function(a){c(a);h();n.dispatchEvent("dataAnimationIterationEnd",{chart:n})});n.dispatchEvent("dataAnimationEnd",{chart:n})})}}}; -var pa=function(a,d,c,b){"undefined"===typeof c&&(c=1);0>=Math.round(d.y4-d.y1)||(a.save(),a.globalAlpha=c,a.beginPath(),a.moveTo(Math.round(d.x1),Math.round(d.y1)),a.lineTo(Math.round(d.x2),Math.round(d.y2)),a.lineTo(Math.round(d.x3),Math.round(d.y3)),a.lineTo(Math.round(d.x4),Math.round(d.y4)),"undefined"!==d.x5&&(a.lineTo(Math.round(d.x5),Math.round(d.y5)),a.lineTo(Math.round(d.x6),Math.round(d.y6))),a.closePath(),a.fillStyle=b?b:d.color,a.fill(),a.globalAplha=1,a.restore())};n.prototype.renderFunnel= -function(a){function d(){for(var a=0,b=[],c=0;cp?(p=c,l=(b+p)*(e-h)/2,a-=l,m=e-h,h+=e-h,m+=0==p?0:a/p,h+=a/p,l=!0):(m=(Math.abs(V)*b-Math.sqrt(p))/2,p=b-2*m/Math.abs(V),h+=m,h>e&&(h-=m,p=c,l=(b+p)*(e-h)/2,a-=l,m=e-h,h+=e-h,m+=a/p,h+=a/p,l=!0),b=p)),d.push(m);return d}function b(){if(u&&y){for(var a,b,c,d,e,f,k,l,h,m,p,q,t,n,r,B=[],v=[],z={percent:null,total:null},C=null,A=0;AB[A]&&(B[A]=A!==ca?u.reversed?O[A].x3-O[A].x4:O[A].x2-O[A].x1:O[A].x2-O[A].x1,B[A]/=2));t=b.indexLabelMaxWidth?b.indexLabelMaxWidth: -u.options.indexLabelMaxWidth?u.indexLabelMaxWidth:B[A];if(t>B[A]||0>t)t=B[A];v[A]="inside"===u.indexLabelPlacement?O[A].height:!1;z=x.getPercentAndTotal(u,b);if(u.indexLabelFormatter||b.indexLabelFormatter)C={chart:x.options,dataSeries:u,dataPoint:b,total:z.total,percent:z.percent};b=b.indexLabelFormatter?b.indexLabelFormatter(C):b.indexLabel?x.replaceKeywordsWithValue(b.indexLabel,b,u,A):u.indexLabelFormatter?u.indexLabelFormatter(C):u.indexLabel?x.replaceKeywordsWithValue(u.indexLabel,b,u,A):b.label? -b.label:"";0>=m&&(m=0);1E3>t&&1E3-tk?k:u.indexLabelMaxWidth:k,l=I.length-1;0<=l;l--){g=y[I[l].id];c=I[l];d=c.textBlock;b=(a=q(l)b.y&&(e=!0);c=g.indexLabelMaxWidth||k;if(c>k||0>c)c=k;f.push(c)}if(e)for(l=I.length-1;0<=l;l--)a=O[l],I[l].textBlock.maxWidth=f[f.length-(l+1)],I[l].textBlock.measureText(),I[l].textBlock.x=M-k,c=I[l].textBlock.heightna+C&&(I[l].textBlock.y=na+C-I[l].height),I[l].textBlock.ysa+C&&(I[l].textBlock.y=sa+C-I[l].height))}function f(){var a, -b,c,d;if("inside"!==u.indexLabelPlacement)for(var e=0;exa?g(c).x2+1:(a.x2+a.x3)/2+1:(a.x2+a.x3)/2+1:"undefined"!==typeof a.x5?cna+C&&(I[e].textBlock.y=na+C-I[e].height),I[e].textBlock.ysa+C&&(I[e].textBlock.y=sa+C-I[e].height)));else for(e=0;e=c?(b=e!=ca?(a.x4+a.x3)/2-d/2:(a.x5+a.x4)/2-d/2,c=e!=ca?(a.y1+a.y3)/2-c/2:(a.y1+a.y4)/2-c/2,I[e].textBlock.x=b,I[e].textBlock.y=c):I[e].isDirty=!0)}function l(){function a(b,c){var d;if(0>b||b>=I.length)return 0;var e,f=I[b].textBlock;if(0>c){c*=-1;e= -p(b);d=h(e,b);if(d>=c)return f.y-=c,c;if(0==b)return 0=c)return f.y+=c,c;if(b==O.length-1)return 0e)&&(l=q(t),!(l>=I.length-1)&&I[t].textBlock.y+I[t].height+da>I[l].textBlock.y&&(I[t].textBlock.y=I[t].textBlock.y+ -I[t].height-e>e-I[t].textBlock.y?e+1:e-I[t].height-1))}for(l=O.length-1;0e&&(e=0,I[e].isDirty))break;if(I[l].textBlock.y=f){f=0;k+=I[f].height;break}e=p(f);if(0>e){f=0;k+=I[f].height;break}}if(f!=l){g=I[f].textBlock.y;a-=g;a=k-a;g=c(a,d,f);break}}}return g}function c(a,b,d){var e=[],f=0,g=0;for(a=Math.abs(a);d<= -b;d++)e.push(O[d]);e.sort(function(a,b){return a.height-b.height});for(d=0;d+l.y.toFixed(6))&&(d=g.y+d+da-l.y, -e=a(r,-d),ea?u.reversed?sa-C:na-C:I[a].textBlock.y+I[a].height+da)}function n(a,b,c){var d,e,g,l=[],h=C,p=[];-1!==b&&(0<=X.indexOf(b)?(e=X.indexOf(b),X.splice(e,1)):(X.push(b),X=X.sort(function(a,b){return a-b})));if(0===X.length)l=ha;else{e=C*(1!=X.length||0!=X[0]&&X[0]!=O.length-1?2:1)/k();for(var q=0;qp&&(p*=-1),c.y1+=b-p[d],c.y2+=b-p[d],c.y3+=b-p[d],c.y4+=b-p[d],c.y5&&(c.y5+=b-p[d],c.y6+=b-p[d]),p[d]= -b}};a._animator.animate(0,c,function(c){var d=a.plotArea.ctx||a.ctx;ga=!0;d.clearRect(z.x1,z.y1,z.x2-z.x1,z.y2-z.y1);d.fillStyle=a.backgroundColor;d.fillRect(z.x1,z.y1,z.width,z.height);t.changeSection(c,b);var e={};e.dataSeries=u;e.dataPoint=u.reversed?u.dataPoints[y.length-1-b]:u.dataPoints[b];e.index=u.reversed?y.length-1-b:b;a.toolTip.highlightObjects([e]);for(e=0;ea){b=O[c];break}return b?(a=b.y6?a>b.y6?b.x3+(b.x4-b.x3)/(b.y4-b.y3)*(a-b.y3):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2),{x1:a,x2:a}):-1}function r(a){for(var b=0;b=a.dataSeriesIndexes.length)){for(var u=this.data[a.dataSeriesIndexes[0]],y=u.dataPoints,z=this.plotArea,C=0.025*z.width,D=0.01*z.width,A=0,E=z.height-2*C,F=Math.min(z.width-2*D,2.8*z.height),J=!1,H=0;HE?ba=E:0>=ba&&(ba=0),G>a?G=a-0.5:0>=G&&(G=0)):"pyramid"===u.type&&(G=ba=0,u.reversed=u.reversed?!1:!0);var D=H+a/2,W=H,T=H+a,na=u.reversed?P:Y,L=D-G/2,$=D+G/2,xa=u.reversed?Y+ba:P-ba,sa=u.reversed?Y:P;a=[];var D=[],O=[],F=[],Z=Y,ca,V=(xa-na)/(L-W),ea=-V,H="area"===(u.valueRepresents?u.valueRepresents:"height")?c():d();if(-1!==H){if(u.reversed)for(F.push(Z), -G=H.length-1;0a&&(A=a));for(G=0;G
Please right click on the image and save it to your device
"),d.document.close()}}};n.prototype.print=function(){var a=this.exportChart({toDataURL:!0}),d=document.createElement("iframe"); -d.setAttribute("class","canvasjs-chart-print-frame");U(d,{position:"absolute",width:"100%",border:"0px",margin:"0px 0px 0px 0px",padding:"0px 0px 0px 0px"});d.style.height=this.height+"px";this._canvasJSContainer.appendChild(d);var c=this,b=d.contentWindow||d.contentDocument.document||d.contentDocument;b.document.open();b.document.write('\n');b.document.body&&b.document.body.style&&(b.document.body.style.margin="0px 0px 0px 0px",b.document.body.style.padding= -"0px 0px 0px 0px");b.document.close();setTimeout(function(){b.focus();b.print();setTimeout(function(){c._canvasJSContainer.removeChild(d)},1E3)},500)};n.prototype.getPercentAndTotal=function(a,d){var c=null,b=null,e=c=null;if(0<=a.type.indexOf("stacked"))b=0,c=d.x.getTime?d.x.getTime():d.x,c in a.plotUnit.yTotals&&(b=a.plotUnit.yTotals[c],c=a.plotUnit.yAbsTotals[c],e=isNaN(d.y)?0:0===c?0:100*(d.y/c));else if("pie"===a.type||"doughnut"===a.type||"funnel"===a.type||"pyramid"===a.type){for(c=b=0;c=l||"undefined"===typeof l||0>=v||"undefined"===typeof v)){if("horizontal"===this.orientation){q.textBlock=new ia(this.ctx,{x:0,y:0,maxWidth:v,maxHeight:this.itemWrap?l:this.lineHeight,angle:0,text:q.text,horizontalAlign:"left",fontSize:this.fontSize, -fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"});q.textBlock.measureText();null!==this.itemWidth&&(q.textBlock.width=this.itemWidth-(w+h+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0)));if(!p||p.width+Math.round(q.textBlock.width+w+h+(0===p.width?0:this.horizontalSpacing)+("line"===q.chartType||"spline"===q.chartType||"stepLine"===q.chartType?2*0.1*this.lineHeight:0))>f)p= -{items:[],width:0},k.push(p),this.height+=g,g=0;g=Math.max(g,q.textBlock.height)}else q.textBlock=new ia(this.ctx,{x:0,y:0,maxWidth:z,maxHeight:!0===this.itemWrap?l:1.5*this.fontSize,angle:0,text:q.text,horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"}),q.textBlock.measureText(),null!==this.itemWidth&&(q.textBlock.width=this.itemWidth-(w+h+("line"===q.chartType||"spline"===q.chartType|| -"stepLine"===q.chartType?2*0.1*this.lineHeight:0))),this.height>0,0),this.dataPoints.length):0):(m=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,m= -0>0,0),this.dataPoints.length):0));for(;;){f=0a?b.x/a:a/b.x:Math.abs(b.x-a);pm-e&&m+e>=this.dataPoints.length)break;-1===l?(e++,l=1):l=-1}return d||(c.dataPoint.x.getTime?c.dataPoint.x.getTime():c.dataPoint.x)!==(a.getTime? -a.getTime():a)?d&&null!==c.dataPoint?c:null:c};H.prototype.getDataPointAtXY=function(a,d,c){if(!this.dataPoints||0===this.dataPoints.length||athis.chart.plotArea.x2||dthis.chart.plotArea.y2)return null;c=c||!1;var b=[],e=0,f=0,l=1,h=!1,n=Infinity,k=0,m=0,p=0;if("none"!==this.chart.plotInfo.axisPlacement)if(p=(this.chart.axisX[0]?this.chart.axisX[0]:this.chart.axisX2[0]).getXValueAt({x:a,y:d}),this.axisX.logarithmic)var q=Math.log(this.dataPoints[this.dataPoints.length- -1].x/this.dataPoints[0].x),p=1>0,0),this.dataPoints.length):0;else q=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,p=0>0,0),this.dataPoints.length):0;for(;;){f=0= -q.x1&&(a<=q.x2&&d>=q.y1&&d<=q.y2)&&(b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y1-d),Math.abs(q.y2-d))}),h=!0);break;case "line":case "stepLine":case "spline":case "area":case "stepArea":case "stackedArea":case "stackedArea100":case "splineArea":case "scatter":var s=la("markerSize",g,this)||4,w=c?20:s,r=Math.sqrt(Math.pow(q.x1-a,2)+Math.pow(q.y1-d,2));r<=w&&b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:r});q= -Math.abs(q.x1-a);q<=n?n=q:0w&&(r=Math.atan2(d-s.y,a-s.x),0>r&&(r+=2*Math.PI),r=Number(((180*(r/Math.PI)%360+360)%360).toFixed(12)),s=Number(((180*(q.startAngle/Math.PI)%360+360)%360).toFixed(12)),w=Number(((180*(q.endAngle/Math.PI)%360+360)%360).toFixed(12)),0===w&&1=w&&0!==g.y&&(w+=360,rs&&rr.y1&&dr.y6?(f=r.x6+(r.x5-r.x6)/(r.y5-r.y6)*(d-r.y6),r=r.x3+(r.x4-r.x3)/(r.y4-r.y3)*(d-r.y3)):(f=r.x1+(r.x6-r.x1)/(r.y6-r.y1)*(d-r.y1),r=r.x2+(r.x3-r.x2)/(r.y3-r.y2)*(d-r.y2)):(f=r.x1+(r.x4-r.x1)/(r.y4-r.y1)*(d-r.y1),r=r.x2+(r.x3-r.x2)/(r.y3-r.y2)*(d-r.y2)),a>f&&a= -q.x1-q.borderThickness/2&&a<=q.x2+q.borderThickness/2&&d>=q.y4-q.borderThickness/2&&d<=q.y1+q.borderThickness/2||Math.abs(q.x2-a+q.x1-a)=q.y1&&d<=q.y4)b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y2-d),Math.abs(q.y3-d))}),h=!0;break;case "candlestick":if(a>=q.x1-q.borderThickness/2&&a<=q.x2+q.borderThickness/2&&d>=q.y2-q.borderThickness/2&&d<=q.y3+q.borderThickness/2||Math.abs(q.x2-a+q.x1-a)=q.y1&&d<=q.y4)b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y2-d),Math.abs(q.y3-d))}),h=!0;break;case "ohlc":if(Math.abs(q.x2-a+q.x1-a)=q.y2&&d<=q.y3||a>=q.x1&&a<=(q.x2+q.x1)/2&&d>=q.y1-q.borderThickness/2&&d<=q.y1+q.borderThickness/2||a>=(q.x1+q.x2)/2&&a<=q.x2&&d>=q.y4-q.borderThickness/2&&d<=q.y4+q.borderThickness/2)b.push({dataPoint:g,dataPointIndex:f,dataSeries:this,distance:Math.min(Math.abs(q.x1-a), -Math.abs(q.x2-a),Math.abs(q.y2-d),Math.abs(q.y3-d))}),h=!0}if(h||1E3p-e&&p+e>=this.dataPoints.length)break;-1===l?(e++,l=1):l=-1}a=null;for(d=0;dp[g].endValue;g++);a=g=p[g].startValue&&c<=p[g].endValue;m=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:m,label:this.labels[m]?this.labels[m]:null}):"axisX"===this.type&&this.labels[m]?this.labels[m]:da(m,this.valueFormatString,this.chart._cultureInfo),a=new ia(this.ctx,{x:0,y:0,maxWidth:f,maxHeight:l,angle:this.labelAngle,text:this.prefix+a+this.suffix,backgroundColor:this.labelBackgroundColor, -borderColor:this.labelBorderColor,cornerRadius:this.labelCornerRadius,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle",borderThickness:0}),this._labels.push({position:m,textBlock:a,effectiveHeight:null}))}g=q;for(c=this.intervalStartPosition;c<=e;c=parseFloat(1E-12>this.interval?this.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase, -this.interval):c+this.interval:(this.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase,this.interval):c+this.interval).toFixed(12))){for(;gp[g].endValue;g++);a=g=p[g].startValue&&c<=p[g].endValue;m=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:m,label:this.labels[m]?this.labels[m]:null}):"axisX"===this.type&&this.labels[m]?this.labels[m]:da(m,this.valueFormatString,this.chart._cultureInfo),a=new ia(this.ctx,{x:0, -y:0,maxWidth:f,maxHeight:l,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle"}),this._labels.push({position:m,textBlock:a,effectiveHeight:null}))}}else for(this.intervalStartPosition= -this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval),e=Wa(new Date(this.viewportMaximum),this.interval,this.intervalType),g=q,c=this.intervalStartPosition;cp[g].endValue;g++);m=a;a=g=p[g].startValue&&a<=p[g].endValue;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:new Date(m),label:this.labels[m]?this.labels[m]:null}):"axisX"===this.type&&this.labels[m]? -this.labels[m]:Ba(m,this.valueFormatString,this.chart._cultureInfo),a=new ia(this.ctx,{x:0,y:0,maxWidth:f,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,maxHeight:l,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle, -textBaseline:"middle"}),this._labels.push({position:m,textBlock:a,effectiveHeight:null,breaksLabelType:void 0}))}if("bottom"===this._position||"top"===this._position)h=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.width*Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.width/(this.logarithmic&&this.equidistantInterval? -Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*R[this.intervalType+"Duration"]*this.interval,f="undefined"===typeof this.options.labelMaxWidth?0.5*this.chart.width>>0:this.options.labelMaxWidth,this.chart.panEnabled||(l="undefined"===typeof this.options.labelWrap||this.labelWrap?0.8*this.chart.height>>0:1.5*this.labelFontSize);else if("left"===this._position||"right"===this._position)h=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.height* -Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.height/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*R[this.intervalType+"Duration"]*this.interval,this.chart.panEnabled||(f="undefined"===typeof this.options.labelMaxWidth?0.3*this.chart.width>>0:this.options.labelMaxWidth),l="undefined"=== -typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize;for(b=0;bthis.labelAngle?this.labelAngle-=180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360)),"bottom"===this._position|| -"top"===this._position)if(f=0.9*h>>0,q=0,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=f;this.sessionVariables.labelMaxHeight=l;this.sessionVariables.labelAngle=this.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;cq&&(v=c,q=m.width)}c=0;for(c=this.intervalStartPosition>0>2*f&&(this.sessionVariables.labelAngle=-25)):(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>f?-25:this.sessionVariables.labelAngle):s(this.options.labelMaxWidth)? -(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxHeight=l,this.sessionVariables.labelMaxWidth=f,d&&r.width+d.width>>0>2*f&&(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=m)):(this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>f?-25:this.sessionVariables.labelAngle,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight=l,this.sessionVariables.labelWrap=this.labelWrap);else{if(s(this.options.labelWrap))if(!s(this.options.labelMaxWidth))this.options.labelMaxWidth< -f?(this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight=b):(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight=l);else if(!s(d))if(b=r.width+d.width>>0,g=this.labelFontSize,qp&&(p=b-2*f,b>=2*f&&b<2.2*f?(this.sessionVariables.labelMaxWidth=f,s(this.options.labelFontSize)&&12=2.2*f&&b<2.8*f?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=m,this.sessionVariables.labelFontSize=g):b>=2.8*f&&b<3.2*f?(this.sessionVariables.labelMaxWidth=Math.max(f,q),this.sessionVariables.labelWrap=!0,s(this.options.labelFontSize)&&12=3.2*f&&b<3.6*f?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=m,this.sessionVariables.labelFontSize=this.labelFontSize):b>3.6*f&&b<5*f?(s(this.options.labelFontSize)&&125*f&&(this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=f,this.sessionVariables.labelFontSize=g,this.sessionVariables.labelMaxHeight=l,this.sessionVariables.labelAngle=this.labelAngle));else if(v===c&&(0===v&&q+this._labels[v+1].textBlock.measureText().width-2*f>p||v===this._labels.length-1&&q+this._labels[v-1].textBlock.measureText().width-2*f>p||0p&& -q+this._labels[v-1].textBlock.measureText().width-2*f>p))p=0===v?q+this._labels[v+1].textBlock.measureText().width-2*f:q+this._labels[v-1].textBlock.measureText().width-2*f,this.sessionVariables.labelFontSize=s(this.options.labelFontSize)?g:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=m;else if(0===p)for(this.sessionVariables.labelFontSize=s(this.options.labelFontSize)?g:this.options.labelFontSize,this.sessionVariables.labelWrap= -!0,b=0;b>0>2*f&&(this.sessionVariables.labelAngle=-25))}else(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxHeight=0===this.labelAngle?l:Math.min((b-f*Math.cos(Math.PI/ -180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)),b),m=0!=this.labelAngle?(k-(n+a.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)):f,this.sessionVariables.labelMaxHeight=this.labelWrap?(k-m*Math.sin(Math.PI/180*Math.abs(this.labelAngle)))/Math.cos(Math.PI/180*Math.abs(this.labelAngle)):1.5*this.labelFontSize,s(this.options.labelWrap))?s(this.options.labelWrap)&&(this.labelWrap&&!s(this.options.labelMaxWidth)? -(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:m,this.sessionVariables.labelMaxHeight=l):(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxWidth=m,this.sessionVariables.labelMaxHeight=b<0.9*h?0.9*h:b,this.sessionVariables.labelWrap=this.labelWrap)):(this.options.labelWrap?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth? -this.options.labelMaxWidth:m):(s(this.options.labelMaxWidth),this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:m,this.sessionVariables.labelWrap=this.labelWrap),this.sessionVariables.labelMaxHeight=l)}for(b=0;b>0:this.options.labelMaxWidth,l="undefined"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=f;this.sessionVariables.labelMaxHeight=l;this.sessionVariables.labelAngle=s(this.sessionVariables.labelAngle)? -0:this.sessionVariables.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;c>0,h-2*l>q&&(q=h-2*l,h>=2*l&&h<2.4*l?(s(this.options.labelFontSize)&&12=2.4*l&&h<2.8*l?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelFontSize=this.labelFontSize,this.sessionVariables.labelWrap=!0):h>=2.8*l&&h<3.2*l?(this.sessionVariables.labelMaxHeight=l,this.sessionVariables.labelWrap=!0,s(this.options.labelFontSize)&&12=3.2*l&&h<3.6*l?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelFontSize=this.labelFontSize):h>3.6*l&&h<10*l?(s(this.options.labelFontSize)&&1210*l&&h<50*l&&(s(this.options.labelFontSize)&&12>0:1.5*this.labelFontSize; -if("left"===this._position||"right"===this._position)s(f.options.labelWrap)&&!s(this.sessionVariables.stripLineLabelMaxHeight)?x=this.sessionVariables.stripLineLabelMaxHeight:this.sessionVariables.stripLineLabelMaxHeight=x=f.labelWrap?0.8*this.chart.width>>0:1.5*this.labelFontSize;s(f.labelBackgroundColor)&&(f.labelBackgroundColor="#EEEEEE")}else l="bottom"===this._position||"top"===this._position?0.9*this.chart.width>>0:0.9*this.chart.height>>0,x=s(f.options.labelWrap)||f.labelWrap?"bottom"===this._position|| -"top"===this._position?0.8*this.chart.width>>0:0.8*this.chart.height>>0:1.5*this.labelFontSize,s(f.labelBackgroundColor)&&(s(f.startValue)&&0!==f.startValue?f.labelBackgroundColor=w?"transparent":null:f.labelBackgroundColor="#EEEEEE");a=new ia(this.ctx,{x:0,y:0,backgroundColor:f.labelBackgroundColor,borderColor:f.labelBorderColor,borderThickness:f.labelBorderThickness,cornerRadius:f.labelCornerRadius,maxWidth:f.options.labelMaxWidth?f.options.labelMaxWidth:l,maxHeight:x,angle:this.labelAngle,text:f.labelFormatter? -f.labelFormatter({chart:this.chart,axis:this,stripLine:f}):f.label,textAlign:this.labelTextAlign,fontSize:"outside"===f.labelPlacement?f.options.labelFontSize?f.labelFontSize:this.labelFontSize:f.labelFontSize,fontFamily:"outside"===f.labelPlacement?f.options.labelFontFamily?f.labelFontFamily:this.labelFontFamily:f.labelFontFamily,fontWeight:"outside"===f.labelPlacement?f.options.labelFontWeight?f.labelFontWeight:this.labelFontWeight:f.labelFontWeight,fontColor:f.labelFontColor||f.color,fontStyle:"outside"=== -f.labelPlacement?f.options.labelFontStyle?f.labelFontStyle:this.fontWeight:f.labelFontStyle,textBaseline:"middle"});this._stripLineLabels.push({position:f.value,textBlock:a,effectiveHeight:null,stripLine:f})}};E.prototype.createLabelsAndCalculateWidth=function(){var a=0,d=0;this._labels=[];this._stripLineLabels=[];var c=this.chart.isNavigator?0:5;if("left"===this._position||"right"===this._position){this.createLabels();if("inside"!=this.labelPlacement||"inside"===this.labelPlacement&&0=this.viewportMinimum&&this._stripLineLabels[d].stripLine.value<=this.viewportMaximum)&& -(b=this._stripLineLabels[d].textBlock,e=b.measureText(),f=0===this.labelAngle?e.width:e.width*Math.cos(Math.PI/180*Math.abs(this.labelAngle))+(e.height-b.fontSize/2)*Math.sin(Math.PI/180*Math.abs(this.labelAngle)),a=this.viewportMinimum&&this._stripLineLabels[c].stripLine.value<=this.viewportMaximum)&&(d=this._stripLineLabels[c].textBlock,e=d.measureText(),f=0===this.labelAngle?e.height:e.width*Math.sin(Math.PI/180*Math.abs(this.labelAngle))+(e.height-d.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)),aq[g].viewportMaximum);w++)r[w].endValue=q[g].viewPortMinimum&&(q[g].scaleBreaks.lastBreakIndex=w));for(var v=w=0,u=0,y=0,z=0,x=0,D=0,A,E,F=h=0,H,J,K,r=H=J=K=!1,g=0;g -w;){var G=0,S=0,U=0,X=0,W=e=0,L=0,Z=0,T=0,V=0,O=0,$=0;if(c&&0m.width-p?m.width-p:f.x2-$-Z);if(a&&0m.width-p?m.width-p:f.x2-$-Z),a[g]._labels&&1n&&(h+=0a[g].labelAngle?A-vn&&(h=E+u/2-n-$),A-va[g].labelAngle&&0m.width-p?m.width-p:f.x2-$-Z),d[g].lineCoordinates.width=Math.abs(n-l),d[g]._labels&&1w;){T=X=S=U=Z=L=W=e=R=P=G=V=0;if(a&&0m.width-10?m.width-10:f.x2-T-W),c[g].labelAutoFit&&!s(y)&&(0c[g].labelAngle?Math.max(l,y):0===c[g].labelAngle?Math.max(l,y/2):l),0b[g].chart.width-10?b[g].chart.width-10:f.x2-T-W),b[g]&&b[g].labelAutoFit&&!s(x)&&(0c[g].chart.height?c[g].chart.height:f.y2),c[g].lineCoordinates.y1=h-(p[g]+c[g].margin+V),c[g].lineCoordinates.y2=h-(p[g]+c[g].margin+V),"inside"===c[g].labelPlacement&&0m.height-Math.max(L,10)?m.height-Math.max(L,10):f.y2-U):f.y2>m.height-Math.max(L,10)?m.height-Math.max(L,10):f.y2;if(c&&0c[L].labelAngle?Math.max(n,y):0===c[L].labelAngle?Math.max(n,y/2):n,l= -0>c[L].labelAngle||0===c[L].labelAngle?n-X:l);if(b&&0m.height-Math.max(L,10)?m.height-Math.max(L,10):f.y2-U):f.y2>m.height-Math.max(L,10)?m.height-Math.max(L,10):f.y2;if(c&&0c[L].labelAngle?Math.max(n,y):0===c[L].labelAngle?Math.max(n,y/2):n,l=0>c[L].labelAngle||0===c[L].labelAngle?n-T:l);if(b&&0d[f].spacing?0:Math.abs(d[f].spacing/c),this.logarithmic&&(d[f].size=Math.pow(this.logarithmBase,d[f].size))};E.prototype.calculateBreaksInPixels=function(){if(!(this.scaleBreaks&&0>=this.scaleBreaks._appliedBreaks.length)){var a= -this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];a.length&&(this.scaleBreaks.firstBreakIndex=this.scaleBreaks.lastBreakIndex=null);for(var d=0;dthis.conversionParameters.maximum);d++)a[d].endValue=this.conversionParameters.minimum&&(a[d].startPixel=this.convertValueToPixel(a[d].startValue),this.scaleBreaks.lastBreakIndex=d),a[d].endValue<=this.conversionParameters.maximum&& -(a[d].endPixel=this.convertValueToPixel(a[d].endValue)))}};E.prototype.renderLabelsTicksAndTitle=function(){var a=this,d=!1,c=0,b=0,e=1,f=0;0!==this.labelAngle&&360!==this.labelAngle&&(e=1.2);if("undefined"===typeof this.options.interval){if("bottom"===this._position||"top"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],e=0!==this.labelAngle&&360!==this.labelAngle?1:1.2,l,h=this.viewportMaximum,n=this.lineCoordinates.width/Math.log(this.range),k=this._labels.length- -1;0<=k;k--){p=this._labels[k];if(p.positionthis.viewportMaximum||!(k===this._labels.length-1||lthis.lineCoordinates.width*e&&this.labelAutoFit&&(d=!0)}if("left"===this._position||"right"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],m,h=this.viewportMaximum,n=this.lineCoordinates.height/Math.log(this.range),k=this._labels.length-1;0<=k;k--){p=this._labels[k];if(p.positionthis.viewportMaximum||!(k===this._labels.length-1||mthis.lineCoordinates.height*e&&this.labelAutoFit&&(d=!0)}}this.logarithmic&&(!this.equidistantInterval&& -this.labelAutoFit)&&this._labels.sort(function(a,b){return a.position-b.position});var k=0,p,q;if("bottom"===this._position){for(k=0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<< -0),this.ctx.lineTo(b,q.y+this.tickLength<<0),this.ctx.stroke()),d&&0!==f++%2&&this.labelAutoFit||(0===p.textBlock.angle?(q.x-=p.textBlock.width/2,q.y="inside"===this.labelPlacement?q.y-(("inside"===this.tickPlacement?this.tickLength:0)+p.textBlock.height-p.textBlock.fontSize/2):q.y+("inside"===this.tickPlacement?0:this.tickLength)+p.textBlock.fontSize/2+5):(q.x="inside"===this.labelPlacement?0>this.labelAngle?q.x:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):q.x-(0>this.labelAngle?p.textBlock.width* -Math.cos(Math.PI/180*this.labelAngle):0),q.y="inside"===this.labelPlacement?0>this.labelAngle?q.y-("inside"===this.tickPlacement?this.tickLength:0)-5:q.y-("inside"===this.tickPlacement?this.tickLength:0)-Math.abs(p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)+5):q.y+("inside"===this.tickPlacement?0:this.tickLength)+Math.abs(0>this.labelAngle?p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5)),p.textBlock.x=q.x,p.textBlock.y=q.y));"inside"===this.tickPlacement&&this.chart.addEventListener("dataAnimationEnd", -function(){for(k=0;ka.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b,q.y-a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+ -this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y2-this._titleTextBlock.height-3,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("top"===this._position){for(k=0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle= -this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<<0),this.ctx.lineTo(b,q.y-this.tickLength<<0),this.ctx.stroke()),d&&0!==f++%2&&this.labelAutoFit||(0===p.textBlock.angle?(q.x-=p.textBlock.width/2,q.y="inside"===this.labelPlacement?q.y+this.labelFontSize/2+("inside"===this.tickPlacement?this.tickLength:0)+5:q.y-(("inside"===this.tickPlacement?0:this.tickLength)+p.textBlock.height-p.textBlock.fontSize/2)):(q.x="inside"===this.labelPlacement?0< -this.labelAngle?q.x:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):q.x+(p.textBlock.height-this.labelFontSize)*Math.sin(Math.PI/180*this.labelAngle)-(0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle= -a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b,q.y+a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y1+1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("left"===this._position){for(k= -0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x-this.tickLength<<0,b),this.ctx.stroke()),d&&0!==f++%2&&this.labelAutoFit||(0===this.labelAngle?(p.textBlock.y= -q.y,p.textBlock.x="inside"===this.labelPlacement?q.x+("inside"===this.tickPlacement?this.tickLength:0)+5:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-("inside"===this.tickPlacement?0:this.tickLength)-5):(p.textBlock.y="inside"===this.labelPlacement?q.y:q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle),p.textBlock.x="inside"===this.labelPlacement?q.x+("inside"===this.tickPlacement?this.tickLength:0)+5:0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth= -a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<0,b);a.ctx.lineTo(q.x+a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x1+1,this._titleTextBlock.y=this.lineCoordinates.height/2+this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("right"=== -this._position){for(k=0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x+this.tickLength<<0,b),this.ctx.stroke()),d&&0!==f++%2&&this.labelAutoFit||(0===this.labelAngle? -(p.textBlock.y=q.y,p.textBlock.x="inside"===this.labelPlacement?q.x-p.textBlock.width-("inside"===this.tickPlacement?this.tickLength:0)-5:q.x+("inside"===this.tickPlacement?0:this.tickLength)+5):(p.textBlock.y="inside"===this.labelPlacement?q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle):0>this.labelAngle?q.y:q.y-(p.textBlock.height-p.textBlock.fontSize/2-5)*Math.cos(Math.PI/180*this.labelAngle),p.textBlock.x="inside"===this.labelPlacement?q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)- -("inside"===this.tickPlacement?this.tickLength:0)-5:0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position), -a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<0,b);a.ctx.lineTo(q.x-a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x2-1,this._titleTextBlock.y=this.lineCoordinates.height/2-this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}f= -0;if("inside"===this.labelPlacement)this.chart.addEventListener("dataAnimationEnd",function(){for(k=0;ka.viewportMaximum||d&&0!==f++%2&&a.labelAutoFit)||(a.ctx.save(),a.ctx.beginPath(),p.textBlock.render(!0),a.ctx.restore())},this);else for(k=0;kthis.viewportMaximum||d&&0!==f++%2&&this.labelAutoFit)||p.textBlock.render(!0)};E.prototype.renderInterlacedColors= -function(){var a=this.chart.plotArea.ctx,d,c,b=this.chart.plotArea,e=0;d=!0;if(("bottom"===this._position||"top"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(Math.min(c.x,d.x),b.y1,Math.abs(c.x-d.x),Math.abs(b.y1-b.y2)),d=!1): -d=!0;else if(("left"===this._position||"right"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(b.x1,Math.min(c.y,d.y),Math.abs(b.x1-b.x2),Math.abs(d.y-c.y)),d=!1):d=!0;a.beginPath()};E.prototype.renderStripLinesOfThicknessType=function(a){if(this.stripLines&& -0this.viewportMaximum||s(k.value)||isNaN(this.range))||"value"===a&&(k.startValue<=this.viewportMinimum&&k.endValue<=this.viewportMinimum||k.startValue>=this.viewportMaximum&&k.endValue>=this.viewportMaximum||s(k.startValue)||s(k.endValue)||isNaN(this.range))||h.push(k))}for(b=0;bthis.viewportMaximum||isNaN(this.range))){a=this.getPixelCoordinatesOnAxis(c.position);if("outside"===c.stripLine.labelPlacement)if(k&&(this.ctx.strokeStyle=k.color,"pixel"===k._thicknessType&&(this.ctx.lineWidth=k.thickness)),"bottom"===this._position){var m=1===this.ctx.lineWidth%2?(a.x<<0)+0.5:a.x<<0;this.ctx.beginPath();this.ctx.moveTo(m,a.y<<0);this.ctx.lineTo(m,a.y+this.tickLength<<0);this.ctx.stroke(); -0===this.labelAngle?(a.x-=c.textBlock.width/2,a.y+=this.tickLength+c.textBlock.fontSize/2+5):(a.x-=0>this.labelAngle?c.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,a.y+=this.tickLength+Math.abs(0>this.labelAngle?c.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5))}else"top"===this._position?(m=1===this.ctx.lineWidth%2?(a.x<<0)+0.5:a.x<<0,this.ctx.beginPath(),this.ctx.moveTo(m,a.y<<0),this.ctx.lineTo(m,a.y-this.tickLength<<0),this.ctx.stroke(),0===this.labelAngle?(a.x-=c.textBlock.width/ -2,a.y-=this.tickLength+c.textBlock.height-c.textBlock.fontSize/2):(a.x+=(c.textBlock.height-this.tickLength-this.labelFontSize/2)*Math.sin(Math.PI/180*this.labelAngle)-(0this.labelAngle?a.y:a.y-(c.textBlock.height-c.textBlock.fontSize/2-5)*Math.cos(Math.PI/180*this.labelAngle),a.x=0this.chart.plotArea.x1?s(k.startValue)?a.x-=c.textBlock.height-c.textBlock.fontSize/2:a.x-=c.textBlock.height/2-c.textBlock.fontSize/2+3:(c.textBlock.angle=90,s(k.startValue)?a.x+=c.textBlock.height-c.textBlock.fontSize/2:a.x+=c.textBlock.height/2-c.textBlock.fontSize/2+3),a.y=-90===c.textBlock.angle? -"near"===c.stripLine.labelAlign?this.chart.plotArea.y2-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y1+c.textBlock.width+3:"near"===c.stripLine.labelAlign?this.chart.plotArea.y2-c.textBlock.width-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y1+3):"top"===this._position?(c.textBlock.maxWidth=this.options.stripLines[b].labelMaxWidth?this.options.stripLines[b].labelMaxWidth: -this.chart.plotArea.height-3,c.textBlock.measureText(),a.x-c.textBlock.height>this.chart.plotArea.x1?s(k.startValue)?a.x-=c.textBlock.height-c.textBlock.fontSize/2:a.x-=c.textBlock.height/2-c.textBlock.fontSize/2+3:(c.textBlock.angle=90,s(k.startValue)?a.x+=c.textBlock.height-c.textBlock.fontSize/2:a.x+=c.textBlock.height/2-c.textBlock.fontSize/2+3),a.y=-90===c.textBlock.angle?"near"===c.stripLine.labelAlign?this.chart.plotArea.y1+c.textBlock.width+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+ -this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y2-3:"near"===c.stripLine.labelAlign?this.chart.plotArea.y1+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y2-c.textBlock.width-3):"left"===this._position?(c.textBlock.maxWidth=this.options.stripLines[b].labelMaxWidth?this.options.stripLines[b].labelMaxWidth:this.chart.plotArea.width-3,c.textBlock.angle=0,c.textBlock.measureText(),a.y-c.textBlock.height>this.chart.plotArea.y1? -s(k.startValue)?a.y-=c.textBlock.height-c.textBlock.fontSize/2:a.y-=c.textBlock.height/2-c.textBlock.fontSize+3:a.y-c.textBlock.heightthis.chart.plotArea.y1?s(k.startValue)?a.y-=c.textBlock.height-c.textBlock.fontSize/2:a.y-=c.textBlock.height/2-c.textBlock.fontSize/2-3:a.y-c.textBlock.heightthis.viewportMaximum||isNaN(this.range))||a[d].render(this.maskCtx);this.maskCtx.restore()}};E.prototype.renderCrosshair=function(a,d){isFinite(this.minimum)&&isFinite(this.maximum)&&(this.crosshair.render(a,d),this.crosshair.dispatchEvent("updated",{chart:this.chart,crosshair:this.options,axis:this,value:this.crosshair.value},this))};E.prototype.showCrosshair=function(a){s(a)||(athis.viewportMaximum)||("top"===this._position||"bottom"===this._position?this.crosshair.render(this.convertValueToPixel(a), -null,a):this.crosshair.render(null,this.convertValueToPixel(a),a))};E.prototype.renderGrid=function(){if(this.gridThickness&&0this.viewportMaximum|| -this._labels[b].breaksLabelType)||(a.beginPath(),d=this.getPixelCoordinatesOnAxis(this._labels[b].position),d=1===a.lineWidth%2?(d.x<<0)+0.5:d.x<<0,a.moveTo(d,c.y1<<0),a.lineTo(d,c.y2<<0),a.stroke());else if("left"===this._position||"right"===this._position)for(var b=0;bthis.viewportMaximum||this._labels[b].breaksLabelType)||(a.beginPath(),d=this.getPixelCoordinatesOnAxis(this._labels[b].position),d= -1===a.lineWidth%2?(d.y<<0)+0.5:d.y<<0,a.moveTo(c.x1<<0,d),a.lineTo(c.x2<<0,d),a.stroke());a.restore()}};E.prototype.renderAxisLine=function(){var a=this.chart.ctx,d=w?this.chart._preRenderCtx:a,c=Math.ceil(this.tickThickness/(this.reversed?-2:2)),b=Math.ceil(this.tickThickness/(this.reversed?2:-2)),e,f;d.save();if("bottom"===this._position||"top"===this._position){if(this.lineThickness){this.reversed?(e=this.lineCoordinates.x2,f=this.lineCoordinates.x1):(e=this.lineCoordinates.x1,f=this.lineCoordinates.x2); -d.lineWidth=this.lineThickness;d.strokeStyle=this.lineColor?this.lineColor:"black";d.setLineDash&&d.setLineDash(N(this.lineDashType,this.lineThickness));var l=1===this.lineThickness%2?(this.lineCoordinates.y1<<0)+0.5:this.lineCoordinates.y1<<0;d.beginPath();if(this.scaleBreaks&&!s(this.scaleBreaks.firstBreakIndex))if(s(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+b;else for(var h=this.scaleBreaks.firstBreakIndex;h<=this.scaleBreaks.lastBreakIndex;h++)d.moveTo(e, -l),d.lineTo(this.scaleBreaks._appliedBreaks[h].startPixel+c,l),e=this.scaleBreaks._appliedBreaks[h].endPixel+b;e&&(d.moveTo(e,l),d.lineTo(f,l));d.stroke()}}else if(("left"===this._position||"right"===this._position)&&this.lineThickness){this.reversed?(e=this.lineCoordinates.y1,f=this.lineCoordinates.y2):(e=this.lineCoordinates.y2,f=this.lineCoordinates.y1);d.lineWidth=this.lineThickness;d.strokeStyle=this.lineColor;d.setLineDash&&d.setLineDash(N(this.lineDashType,this.lineThickness));l=1===this.lineThickness% -2?(this.lineCoordinates.x1<<0)+0.5:this.lineCoordinates.x1<<0;d.beginPath();if(this.scaleBreaks&&!s(this.scaleBreaks.firstBreakIndex))if(s(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+c;else for(h=this.scaleBreaks.firstBreakIndex;h<=this.scaleBreaks.lastBreakIndex;h++)d.moveTo(l,e),d.lineTo(l,this.scaleBreaks._appliedBreaks[h].startPixel+b),e=this.scaleBreaks._appliedBreaks[h].endPixel+c;e&&(d.moveTo(l,e),d.lineTo(l,f));d.stroke()}w&& -(a.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),this.chart._breaksCanvasCtx&&this.chart._breaksCanvasCtx.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),d.clearRect(0,0,this.chart.width,this.chart.height));d.restore()};E.prototype.getPixelCoordinatesOnAxis=function(a){var d={};if("bottom"===this._position||"top"===this._position)d.x=this.convertValueToPixel(a),d.y=this.lineCoordinates.y1;if("left"===this._position||"right"===this._position)d.y= -this.convertValueToPixel(a),d.x=this.lineCoordinates.x2;return d};E.prototype.convertPixelToValue=function(a){if("undefined"===typeof a)return null;var d=0,c=0,b,d=!0,e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[],c="number"===typeof a?a:"left"===this._position||"right"===this._position?a.y:a.x;if(this.logarithmic){a=b=Math.pow(this.logarithmBase,(c-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit);if(c<=this.conversionParameters.reference===("left"===this._position|| -"right"===this._position)!==this.reversed)for(c=0;ce[c].startValue/this.conversionParameters.minimum){b/=e[c].startValue/this.conversionParameters.minimum;if(be[c].startValue/e[c- -1].endValue){b/=e[c].startValue/e[c-1].endValue;if(bthis.conversionParameters.minimum))if(d)if(e[c].endValue>this.conversionParameters.minimum){if(1 -e[c].startValue){a=Math.pow(e[c].endValue/e[c].startValue,Math.log(b)/Math.log(e[c].size));break}else a*=e[c].startValue/this.conversionParameters.minimum*Math.pow(e[c].size,Math.log(e[c].startValue/this.conversionParameters.minimum)/Math.log(e[c].endValue/e[c].startValue))*b,b*=Math.pow(e[c].size,Math.log(this.conversionParameters.minimum/e[c].startValue)/Math.log(e[c].endValue/e[c].startValue));d=!1}else if(b1/e[c].size){a*=Math.pow(e[c].endValue/e[c].startValue,1>=e[c].size?1:Math.log(b)/Math.log(e[c].size))*b;break}else a/=e[c].endValue/e[c].startValue/e[c].size;b*=e[c].size;d=!1}else break;else if(b1/e[c].size){a*=Math.pow(e[c].endValue/e[c].startValue,1>=e[c].size?1:Math.log(b)/Math.log(e[c].size))*b;break}else a/=e[c].endValue/e[c].startValue/e[c].size;b*=e[c].size}else break;d=a*this.viewportMinimum}else{a=b=(c-this.conversionParameters.reference)/ -this.conversionParameters.pixelPerUnit;if(c<=this.conversionParameters.reference===("left"===this._position||"right"===this._position)!==this.reversed)for(c=0;c=e[c].size?0:b*(e[c].endValue-e[c].startValue)/e[c].size;break}else a+=e[c].endValue-this.conversionParameters.minimum- -e[c].size*(e[c].endValue-this.conversionParameters.minimum)/(e[c].endValue-e[c].startValue),b-=e[c].size*(e[c].endValue-this.conversionParameters.minimum)/(e[c].endValue-e[c].startValue);d=!1}else if(b>e[c].startValue-this.conversionParameters.minimum){b-=e[c].startValue-this.conversionParameters.minimum;if(be[c].startValue-e[c- -1].endValue){b-=e[c].startValue-e[c-1].endValue;if(bthis.conversionParameters.minimum))if(d)if(e[c].endValue>this.conversionParameters.minimum)if(e[c].size&&this.conversionParameters.minimum+b*(e[c].endValue-e[c].startValue)/e[c].size>e[c].startValue){a=0>=e[c].size?0:b*(e[c].endValue-e[c].startValue)/ -e[c].size;break}else a+=e[c].startValue-this.conversionParameters.minimum+e[c].size*(this.conversionParameters.minimum-e[c].startValue)/(e[c].endValue-e[c].startValue),b+=e[c].size*(this.conversionParameters.minimum-e[c].startValue)/(e[c].endValue-e[c].startValue),d=!1;else if(b-1*e[c].size){a+=(e[c].endValue-e[c].startValue)*(0===e[c].size?1:b/e[c].size)+b;break}else a-=e[c].endValue-e[c].startValue- -e[c].size;b+=e[c].size;d=!1}else break;else if(b-1*e[c].size){a+=(e[c].endValue-e[c].startValue)*(0===e[c].size?1:b/e[c].size)+b;break}else a-=e[c].endValue-e[c].startValue-e[c].size;b+=e[c].size}else break;d=this.conversionParameters.minimum+a}return d};E.prototype.convertValueToPixel=function(a){a=this.getApparentDifference(this.conversionParameters.minimum,a,a);return this.logarithmic?this.conversionParameters.reference+ -this.conversionParameters.pixelPerUnit*Math.log(a/this.conversionParameters.minimum)/this.conversionParameters.lnLogarithmBase+0.5<<0:"axisX"===this.type?this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5<<0:this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5};E.prototype.getApparentDifference=function(a,d,c,b){var e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[]; -if(this.logarithmic){c=s(c)?d/a:c;for(var f=0;fe[f].endValue||(a<=e[f].startValue&&d>=e[f].endValue?c=c/e[f].endValue*e[f].startValue*e[f].size:a>=e[f].startValue&&d>=e[f].endValue?c=c/e[f].endValue*a*Math.pow(e[f].size,Math.log(e[f].endValue/a)/Math.log(e[f].endValue/e[f].startValue)):a<=e[f].startValue&&d<=e[f].endValue?c=c/d*e[f].startValue*Math.pow(e[f].size,Math.log(d/e[f].startValue)/Math.log(e[f].endValue/e[f].startValue)):!b&&(a>e[f].startValue&&de[f].endValue||(a<=e[f].startValue&&d>=e[f].endValue?c=c-e[f].endValue+e[f].startValue+e[f].size:a>e[f].startValue&&d>=e[f].endValue?c=c-e[f].endValue+a+e[f].size*(e[f].endValue-a)/(e[f].endValue-e[f].startValue):a<=e[f].startValue&&de[f].startValue&& -da[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<=a[e].endValue?c=0:this.viewportMinimum<=a[e].startValue&& -this.viewportMaximum>=a[e].endValue?(b=b/a[e].endValue*a[e].startValue,c=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b/a[e].endValue*this.viewportMinimum,c=0a[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<=a[e].endValue?c=0:this.viewportMinimum<=a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b-a[e].endValue+a[e].startValue,c=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b-a[e].endValue+this.viewportMinimum,c=0this.maxWidth?8:6);var a=Math.max(b,Math.floor(this.maxWidth/a)),e,f,h,b=0;!s(this.options.viewportMinimum)&&(!s(this.options.viewportMaximum)&&this.options.viewportMinimum>=this.options.viewportMaximum)&&(this.viewportMinimum=this.viewportMaximum=null); -if(s(this.options.viewportMinimum)&&!s(this.sessionVariables.newViewportMinimum)&&!isNaN(this.sessionVariables.newViewportMinimum))this.viewportMinimum=this.sessionVariables.newViewportMinimum;else if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(s(this.options.viewportMaximum)&&!s(this.sessionVariables.newViewportMaximum)&&!isNaN(this.sessionVariables.newViewportMaximum))this.viewportMaximum=this.sessionVariables.newViewportMaximum;else if(null===this.viewportMaximum|| -isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(b=0;b=this.scaleBreaks._appliedBreaks[b].startValue||!s(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[b].startValue||!s(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[b].startValue)&&(!s(this.sessionVariables.newViewportMaximum)&& -this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue||!s(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[b].endValue||!s(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue)){this.scaleBreaks._appliedBreaks.splice(b,1);break}if("axisX"===this.type){if(this.dataSeries&&0f?(b=Math.min(0.01*Math.abs(this.getApparentDifference(f,e,null,!0)),5),0<=f?e=f-b:f=isFinite(e)?e+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(e,f,null,!0)),0.05),0!==f&&(f+=b),0!==e&&(e-= -b)),h=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1f&&(f=0));b=this.getApparentDifference(isNaN(this.viewportMinimum)||null===this.viewportMinimum?e:this.viewportMinimum,isNaN(this.viewportMaximum)||null===this.viewportMaximum?f:this.viewportMaximum,null,!0);if("axisX"===this.type&&c){this.intervalType|| -(b/1<=a?(this.interval=1,this.intervalType="millisecond"):b/2<=a?(this.interval=2,this.intervalType="millisecond"):b/5<=a?(this.interval=5,this.intervalType="millisecond"):b/10<=a?(this.interval=10,this.intervalType="millisecond"):b/20<=a?(this.interval=20,this.intervalType="millisecond"):b/50<=a?(this.interval=50,this.intervalType="millisecond"):b/100<=a?(this.interval=100,this.intervalType="millisecond"):b/200<=a?(this.interval=200,this.intervalType="millisecond"):b/250<=a?(this.interval=250,this.intervalType= -"millisecond"):b/300<=a?(this.interval=300,this.intervalType="millisecond"):b/400<=a?(this.interval=400,this.intervalType="millisecond"):b/500<=a?(this.interval=500,this.intervalType="millisecond"):b/(1*R.secondDuration)<=a?(this.interval=1,this.intervalType="second"):b/(2*R.secondDuration)<=a?(this.interval=2,this.intervalType="second"):b/(5*R.secondDuration)<=a?(this.interval=5,this.intervalType="second"):b/(10*R.secondDuration)<=a?(this.interval=10,this.intervalType="second"):b/(15*R.secondDuration)<= -a?(this.interval=15,this.intervalType="second"):b/(20*R.secondDuration)<=a?(this.interval=20,this.intervalType="second"):b/(30*R.secondDuration)<=a?(this.interval=30,this.intervalType="second"):b/(1*R.minuteDuration)<=a?(this.interval=1,this.intervalType="minute"):b/(2*R.minuteDuration)<=a?(this.interval=2,this.intervalType="minute"):b/(5*R.minuteDuration)<=a?(this.interval=5,this.intervalType="minute"):b/(10*R.minuteDuration)<=a?(this.interval=10,this.intervalType="minute"):b/(15*R.minuteDuration)<= -a?(this.interval=15,this.intervalType="minute"):b/(20*R.minuteDuration)<=a?(this.interval=20,this.intervalType="minute"):b/(30*R.minuteDuration)<=a?(this.interval=30,this.intervalType="minute"):b/(1*R.hourDuration)<=a?(this.interval=1,this.intervalType="hour"):b/(2*R.hourDuration)<=a?(this.interval=2,this.intervalType="hour"):b/(3*R.hourDuration)<=a?(this.interval=3,this.intervalType="hour"):b/(6*R.hourDuration)<=a?(this.interval=6,this.intervalType="hour"):b/(1*R.dayDuration)<=a?(this.interval=1, -this.intervalType="day"):b/(2*R.dayDuration)<=a?(this.interval=2,this.intervalType="day"):b/(4*R.dayDuration)<=a?(this.interval=4,this.intervalType="day"):b/(1*R.weekDuration)<=a?(this.interval=1,this.intervalType="week"):b/(2*R.weekDuration)<=a?(this.interval=2,this.intervalType="week"):b/(3*R.weekDuration)<=a?(this.interval=3,this.intervalType="week"):b/(1*R.monthDuration)<=a?(this.interval=1,this.intervalType="month"):b/(2*R.monthDuration)<=a?(this.interval=2,this.intervalType="month"):b/(3*R.monthDuration)<= -a?(this.interval=3,this.intervalType="month"):b/(6*R.monthDuration)<=a?(this.interval=6,this.intervalType="month"):(this.interval=b/(1*R.yearDuration)<=a?1:b/(2*R.yearDuration)<=a?2:b/(4*R.yearDuration)<=a?4:Math.floor(E.getNiceNumber(b/(a-1),!0)/R.yearDuration),this.intervalType="year"));if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=e-h/2;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=f+h/2;d?this.autoValueFormatString="MMM DD YYYY HH:mm": -"year"===this.intervalType?this.autoValueFormatString="YYYY":"month"===this.intervalType?this.autoValueFormatString="MMM YYYY":"week"===this.intervalType?this.autoValueFormatString="MMM DD YYYY":"day"===this.intervalType?this.autoValueFormatString="MMM DD YYYY":"hour"===this.intervalType?this.autoValueFormatString="hh:mm TT":"minute"===this.intervalType?this.autoValueFormatString="hh:mm TT":"second"===this.intervalType?this.autoValueFormatString="hh:mm:ss TT":"millisecond"===this.intervalType&&(this.autoValueFormatString= -"fff'ms'");this.valueFormatString||(this.valueFormatString=this.autoValueFormatString)}else{this.intervalType="number";b=E.getNiceNumber(b,!1);this.interval=this.options&&0f?(b=Math.min(0.01*Math.abs(this.getApparentDifference(f, -e,null,!0)),5),0<=f?e=f-b:f=isFinite(e)?e+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(e,f,null,!0)),0.05),0!==f&&(f+=b),0!==e&&(e-=b)):(f="undefined"===typeof this.options.interval?-Infinity:this.options.interval,e="undefined"!==typeof this.options.interval||isFinite(this.dataInfo.minDiff)?0:Infinity),h=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1f&&(f=0)),Math.abs(this.getApparentDifference(e,f,null,!0)),"axisX"===this.type&&c){this.valueType="dateTime";if(null===this.minimum||isNaN(this.minimum))this.minimum=e-h/2,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum);if(null===this.maximum||isNaN(this.maximum))this.maximum=f+h/2,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum|| -isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)}else this.intervalType=this.valueType="number",null===this.minimum&&(this.minimum="axisX"===this.type?e-h/2:Math.floor(e/this.interval)*this.interval,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum)),null===this.maximum&&(this.maximum="axisX"===this.type?f+h/2:Math.ceil(f/this.interval)* -this.interval,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)),0===this.maximum&&0===this.minimum&&(0===this.options.minimum?this.maximum+=10:0===this.options.maximum&&(this.minimum-=10));s(this.sessionVariables.newViewportMinimum)&&(this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum));s(this.sessionVariables.newViewportMaximum)&&(this.viewportMaximum=Math.min(this.viewportMaximum, -this.maximum));this.range=this.viewportMaximum-this.viewportMinimum;this.intervalStartPosition="axisX"===this.type&&c?this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval):Math.floor((this.viewportMinimum+0.2*this.interval)/this.interval)*this.interval;this.valueFormatString||(this.valueFormatString=E.generateValueFormatString(this.range,2))}};E.prototype.calculateLogarithmicAxisParameters=function(){var a=this.chart.layoutManager.getFreeSpace(),d=Math.log(this.logarithmBase), -c;"bottom"===this._position||"top"===this._position?(this.maxWidth=a.width,this.maxHeight=a.height):(this.maxWidth=a.height,this.maxHeight=a.width);var a="axisX"===this.type?500>this.maxWidth?7:Math.max(7,Math.floor(this.maxWidth/100)):Math.max(Math.floor(this.maxWidth/50),3),b,e,f,h;h=1;if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(h= -0;h=this.scaleBreaks._appliedBreaks[h].startValue||!s(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[h].startValue||!s(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[h].startValue)&&(!s(this.sessionVariables.newViewportMaximum)&&this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[h].endValue|| -!s(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[h].endValue||!s(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[h].endValue)){this.scaleBreaks._appliedBreaks.splice(h,1);break}"axisX"===this.type?(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,e=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,1===e/b&&(h=Math.pow(this.logarithmBase,"undefined"===typeof this.options.interval? -0.4:this.options.interval),e*=h,b/=h),f=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/b>this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,e=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,0>=b&&!isFinite(e)?(e="undefined"===typeof this.options.interval?0:this.options.interval,b=1):0>=b?b=e:isFinite(e)||(e=b),1===b&&1===e?(e*=this.logarithmBase- -1/this.logarithmBase,b=1):1===e/b?(h=Math.min(e*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),e*=h,b/=h):b>e?(h=Math.min(b/e*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),1<=e?b=e/h:e=b*h):(h=Math.min(e/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==e&&(e*=h),1!==b&&(b/=h)),f=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/b>this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null=== -this.viewportMinimum||isNaN(this.viewportMinimum))&&1e&&(e=1));h=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?e:this.viewportMaximum)/(isNaN(this.viewportMinimum)||null===this.viewportMinimum?b:this.viewportMinimum);var n=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?e:this.viewportMaximum)-(isNaN(this.viewportMinimum)||null===this.viewportMinimum?b:this.viewportMinimum);this.intervalType= -"number";h=Math.pow(this.logarithmBase,E.getNiceNumber(Math.abs(Math.log(h)/d),!1));this.options&&0this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(b=null!==this.minimum? -this.minimum:this.dataInfo.min,e=null!==this.maximum?this.maximum:this.dataInfo.max,isFinite(b)||isFinite(e)?1===b&&1===e?(e*=this.logarithmBase,b/=this.logarithmBase):1===e/b?(h=Math.pow(this.logarithmBase,this.interval),e*=h,b/=h):b>e?(h=Math.min(0.01*(b/e),5),1<=e?b=e/h:e=b*h):(h=Math.min(e/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==e&&(e*=h),1!==b&&(b/=h)):(e="undefined"===typeof this.options.interval?0:this.options.interval,b=1),f=Infinity!==this.dataInfo.minDiff? -this.dataInfo.minDiff:e/b>this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.minimum||isNaN(this.minimum))&&1e&&(e=1)),this.intervalType="number",null===this.minimum&&(this.minimum="axisX"===this.type?b/Math.sqrt(f):Math.pow(this.logarithmBase,this.interval*Math.floor(Math.log(b)/d/this.interval)),s(null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)? -"undefined"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:this.sessionVariables.viewportMinimum)||(this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?"undefined"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:this.sessionVariables.viewportMinimum))),null===this.maximum&&(this.maximum="axisX"===this.type?e*Math.sqrt(f): -Math.pow(this.logarithmBase,this.interval*Math.ceil(Math.log(e)/d/this.interval)),s(null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?"undefined"===typeof this.sessionVariables.newViewportMaximum?0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum)||(this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?"undefined"===typeof this.sessionVariables.newViewportMaximum? -0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum))),1===this.maximum&&1===this.minimum&&(1===this.options.minimum?this.maximum*=this.logarithmBase-1/this.logarithmBase:1===this.options.maximum&&(this.minimum/=this.logarithmBase-1/this.logarithmBase));this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum);this.viewportMaximum=Math.min(this.viewportMaximum,this.maximum);this.viewportMinimum>this.viewportMaximum&&(!this.options.viewportMinimum&&!this.options.minimum|| -this.options.viewportMaximum||this.options.maximum?this.options.viewportMinimum||this.options.minimum||!this.options.viewportMaximum&&!this.options.maximum||(this.viewportMinimum=this.minimum=(this.options.viewportMaximum||this.options.maximum)/Math.pow(this.logarithmBase,2*Math.ceil(this.interval))):this.viewportMaximum=this.maximum=this.options.viewportMinimum||this.options.minimum);b=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(d*this.interval)+0.2)*this.interval);this.range= -this.viewportMaximum/this.viewportMinimum;this.noTicks=a;if(!this.options.interval&&this.rangethis.viewportMaximum||3>a?2:3)){for(d=Math.floor(this.viewportMinimum/c+0.5)*c;dthis.interval&&(this.interval=c,b=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(d*this.interval)+0.2)*this.interval))), -this.equidistantInterval=!0,this.intervalStartPosition=b;if(!this.valueFormatString&&(this.valueFormatString="#,##0.##",1>this.viewportMinimum)){d=Math.floor(Math.abs(Math.log(this.viewportMinimum)/Math.LN10))+2;if(isNaN(d)||!isFinite(d))d=2;if(2a&&(b+=Math.floor(Math.abs(Math.log(a)/Math.LN10)),isNaN(b)||!isFinite(b))&&(b=d);for(var e=0;ec?1>=b?1:5>=b?5:10:Math.max(Math.floor(b),1);return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))};E.getNiceNumber=function(a,d){var c=Math.floor(Math.log(a)/Math.LN10),b=a/Math.pow(10,c),b=d?1.5>b?1:3>b?2:7>b?5:10:1>=b?1:2>=b?2:5>=b?5:10;return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))};E.prototype.getLabelStartPoint=function(){var a=R[this.intervalType+"Duration"]*this.interval,a= -new Date(Math.floor(this.viewportMinimum/a)*a);if("millisecond"!==this.intervalType)if("second"===this.intervalType)0=a||"bottom"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(b,n),this.ctx.lineTo(h,n),this.ctx.lineTo(h,e);else if("wavy"===this.type){s=b;k=e;f=0.5;m=(n-k)/a/3;for(var q=0;q=a||"right"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(h,e),this.ctx.lineTo(h,n),this.ctx.lineTo(b,n);else if("wavy"===this.type){s=b;k=e;f=0.5;m=(h-s)/a/3;for(q=0;q=d.axisY[b].viewportMinimum&&a<=d.axisY[b].viewportMaximum?a:null);else if("top"===this.parent._position)for(b=0;b=d.axisY2[b].viewportMinimum&& -a<=d.axisY2[b].viewportMaximum?a:null);else if("left"===this.parent._position)for(b=0;b=d.axisX[b].viewportMinimum&&a<=d.axisX[b].viewportMaximum?a:null);else{if("right"===this.parent._position)for(b=0;b=d.axisX2[b].viewportMinimum&&a<=d.axisX2[b].viewportMaximum?a:null)}else if("bottom"===this.parent._position)for(b=0;b=d.axisX[b].viewportMinimum&&a<=d.axisX[b].viewportMaximum?a:null);else if("top"===this.parent._position)for(b=0;b=d.axisX2[b].viewportMinimum&&a<=d.axisX2[b].viewportMaximum?a:null);else if("left"===this.parent._position)for(b=0;b=d.axisY[b].viewportMinimum&&a<=d.axisY[b].viewportMaximum?a:null);else if("right"=== -this.parent._position)for(b=0;b=d.axisY2[b].viewportMinimum&&a<=d.axisY2[b].viewportMaximum?a:null);for(b=0;b=d.axisX[b].viewportMinimum&&a<=d.axisX[b].viewportMaximum)&&(d.axisX[b].showCrosshair(a),d.axisX[b].crosshair._updatedValue=a,this===d.axisX[b].crosshair&&(c=!0));for(b=0;b=d.axisX2[b].viewportMinimum&&a<=d.axisX2[b].viewportMaximum)&&(d.axisX2[b].showCrosshair(a),d.axisX2[b].crosshair._updatedValue=a,this===d.axisX2[b].crosshair&&(c=!0));for(b=0;b=d.axisY[b].viewportMinimum&&a<=d.axisY[b].viewportMaximum)&&(d.axisY[b].showCrosshair(a),d.axisY[b].crosshair._updatedValue=a,this===d.axisY[b].crosshair&& -(c=!0));for(b=0;b=d.axisY2[b].viewportMinimum&&a<=d.axisY2[b].viewportMaximum)&&(d.axisY2[b].showCrosshair(a),d.axisY2[b].crosshair._updatedValue=a,this===d.axisY2[b].crosshair&&(c=!0));this.chart.toolTip&&this.chart.toolTip._entries&&this.chart.toolTip.highlightObjects(this.chart.toolTip._entries);return c};ca.prototype.hide=function(){this.chart.resetOverlayedCanvas();this.chart.renderCrosshairs(this.parent); -this._hidden=!0};ca.prototype.render=function(a,d,c){var b,e,f,h,n=null,w=null,k=null,m="";if(!this.valueFormatString)if("dateTime"===this.parent.valueType)this.valueFormatString=this.parent.valueFormatString;else{var p=0,p="xySwapped"===this.chart.plotInfo.axisPlacement?50this.parent.range?2:Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0):50this.parent.range?2:10>this.parent.range?1:0);this.valueFormatString=E.generateValueFormatString(this.parent.range,p)}var k=null===this.opacity?1:this.opacity,p=Math.abs("pixel"===this._thicknessType?this.thickness:this.parent.conversionParameters.pixelPerUnit*this.thickness),q=this.chart.overlaidCanvasCtx,g=q.globalAlpha;q.globalAlpha=k;q.beginPath();q.strokeStyle=this.color;q.lineWidth=p;q.save();this.labelFontSize=Math.abs(s(this.options.labelFontSize)?this.parent.labelFontSize: -this.labelFontSize);this.labelMaxWidth=s(this.options.labelMaxWidth)?0.3*this.chart.width:this.labelMaxWidth;this.labelMaxHeight=s(this.options.labelWrap)||this.labelWrap?0.3*this.chart.height:2*this.labelFontSize;0this.chart.bounds.x2?k.x=this.chart.bounds.x2-k.width:k.xthis.chart.bounds.y2?k.y=this.chart.bounds.y2-k.height:k.ythis.chart.bounds.y2&&(k.y=this.chart.bounds.y2- -k.measureText().height+k.fontSize/2);"left"===this.parent._position?k.x=this.parent.lineCoordinates.x2-k.measureText().width:"right"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}}else if("bottom"===this.parent._position||"top"===this.parent._position){r=this.parent.convertPixelToValue({x:a});for(x=0;xthis.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width);k.xthis.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2);"left"===this.parent._position?k.x=this.parent.lineCoordinates.x2-k.measureText().width:"right"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}m=null;if("bottom"===this.parent._position||"top"===this.parent._position)"top"===this.parent._position&&k.y-k.fontSize/2this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.height+k.fontSize/2+2),b>=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMaximum:this.parent.viewportMinimum)&&e<=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMinimum:this.parent.viewportMaximum)&&(0this.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.measureText().width),h>=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMinimum:this.parent.viewportMaximum)&&f<=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMaximum:this.parent.viewportMinimum)&&(0this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2);"left"===this.parent._position?k.x=this.parent.lineCoordinates.x1-k.measureText().width: -"right"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}else{if("bottom"===this.parent._position||"top"===this.parent._position)k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:c?c:this.parent.convertPixelToValue(a)}):s(this.options.label)?da(c?c:this.parent.convertPixelToValue(a),this.valueFormatString,this.chart._cultureInfo):this.label,k.x=b-k.measureText().width/2,k.x+k.width>this.chart.bounds.x2&&(k.x=this.chart.bounds.x2- -k.width),k.xthis.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width);k.xthis.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2),"left"===this.parent._position?k.x=this.parent.lineCoordinates.x2- -k.measureText().width:"right"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2);"left"===this.parent._position&&k.xthis.chart.bounds.x2?k.x=this.chart.bounds.x2-k.measureText().width:"top"===this.parent._position&&k.y-k.fontSize/2 -this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.height+k.fontSize/2+2);0(new Date).getTime()-this._lastUpdated||(this._lastUpdated=(new Date).getTime(),this.chart.resetOverlayedCanvas(),this._updateToolTip(a,d))};W.prototype._updateToolTip=function(a,d,c){c="undefined"===typeof c? -!0:c;this.container||this._initialize();this.enabled||this.hide();if(!this.chart.disableToolTip){if("undefined"===typeof a||"undefined"===typeof d){if(isNaN(this._prevX)||isNaN(this._prevY))return;a=this._prevX;d=this._prevY}else this._prevX=a,this._prevY=d;var b=null,e=null,f=[],h=0;if(this.shared&&this.enabled&&"none"!==this.chart.plotInfo.axisPlacement){if("xySwapped"===this.chart.plotInfo.axisPlacement){var n=[];if(this.chart.axisX)for(var v=0;vk.dataSeries.axisY.viewportMaximum&&c++;c-k.dataPoint.y.length&&f.push(k)}else"column"=== -e.type||"bar"===e.type?0>k.dataPoint.y?0>k.dataSeries.axisY.viewportMinimum&&k.dataSeries.axisY.viewportMaximum>=k.dataPoint.y&&f.push(k):k.dataSeries.axisY.viewportMinimum<=k.dataPoint.y&&0<=k.dataSeries.axisY.viewportMaximum&&f.push(k):"bubble"===e.type?(c=this.chart._eventManager.objectMap[e.dataPointIds[k.index]].size/2,k.dataPoint.y>=k.dataSeries.axisY.viewportMinimum-c&&k.dataPoint.y<=k.dataSeries.axisY.viewportMaximum+c&&f.push(k)):"waterfall"===e.type?(c=0,k.cumulativeSumYStartValuek.dataSeries.axisY.viewportMaximum&&c++,k.cumulativeSumk.dataSeries.axisY.viewportMaximum&&c++,2>c&&-2=k.dataSeries.axisY.viewportMinimum&&k.dataPoint.y<=k.dataSeries.axisY.viewportMaximum)&&f.push(k);else f.push(k)}}if(0a&&(a+=this.container.clientWidth+20);a+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(a=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));d=1!==f.length||this.shared||"line"!==f[0].dataSeries.type&&"stepLine"!==f[0].dataSeries.type&&"spline"!==f[0].dataSeries.type&&"area"!==f[0].dataSeries.type&&"stepArea"!== -f[0].dataSeries.type&&"splineArea"!==f[0].dataSeries.type?"bar"===f[0].dataSeries.type||"rangeBar"===f[0].dataSeries.type||"stackedBar"===f[0].dataSeries.type||"stackedBar100"===f[0].dataSeries.type?f[0].dataSeries.axisX.convertValueToPixel(f[0].dataPoint.x):d:f[0].dataSeries.axisY.convertValueToPixel(f[0].dataPoint.y);d=-d+10;0":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y}",n=c.axisXIndex):"bubble"===c.type?(this.chart.axisX&&1< -this.chart.axisX.length&&(f+=n!=c.axisXIndex?c.axisX.title?c.axisX.title+"
":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y},   {z}"):"rangeColumn"===c.type||"rangeBar"===c.type||"rangeArea"===c.type||"rangeSplineArea"===c.type||"error"===c.type?(this.chart.axisX&&1": -"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y[0]}, {y[1]}"):"candlestick"===c.type||"ohlc"===c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content: -"{name}:
Open:   {y[0]}
High:    {y[1]}
Low:   {y[2]}
Close:   {y[3]}"):"boxAndWhisker"===c.type&&(this.chart.axisX&&1":"X:{axisXIndex}
":""),f+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:
Minimum:   {y[0]}
Q1:               {y[1]}
Q2:               {y[4]}
Q3:               {y[2]}
Maximum:  {y[3]}"), -null===d&&(d=""),!0===this.reversed?(d=this.chart.replaceKeywordsWithValue(f,b,c,e)+d,h"+d)):(d+=this.chart.replaceKeywordsWithValue(f,b,c,e),h")));null!==d&&(d=s+d)}else{c=a[0].dataSeries;b=a[0].dataPoint;e=a[0].index;if(null===b.toolTipContent||"undefined"===typeof b.toolTipContent&&null===c.options.toolTipContent)return null;"line"===c.type||"stepLine"===c.type||"spline"===c.type||"area"===c.type||"stepArea"===c.type||"splineArea"===c.type||"column"=== -c.type||"bar"===c.type||"scatter"===c.type||"stackedColumn"===c.type||"stackedColumn100"===c.type||"stackedBar"===c.type||"stackedBar100"===c.type||"stackedArea"===c.type||"stackedArea100"===c.type||"waterfall"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+":  {y}":"bubble"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&& -"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+":  {y},   {z}":"pie"===c.type||"doughnut"===c.type||"funnel"===c.type||"pyramid"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.name?"{name}:  ":b.label?"{label}:  ":"")+"{y}":"rangeColumn"===c.type||"rangeBar"===c.type||"rangeArea"===c.type||"rangeSplineArea"=== -c.type||"error"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+" :  {y[0]},  {y[1]}":"candlestick"===c.type||"ohlc"===c.type?f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+"
Open:   {y[0]}
High:    {y[1]}
Low:     {y[2]}
Close:   {y[3]}": -"boxAndWhisker"===c.type&&(f=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+"
Minimum:   {y[0]}
Q1:               {y[1]}
Q2:               {y[4]}
Q3:               {y[2]}
Maximum:  {y[3]}"); -null===d&&(d="");d+=this.chart.replaceKeywordsWithValue(f,b,c,e)}return d};W.prototype.enableAnimation=function(){if(!this.container.style.WebkitTransition){var a=this.getContainerTransition(this.containerTransitionDuration);this.container.style.WebkitTransition=a;this.container.style.MsTransition=a;this.container.style.transition=a;this.container.style.MozTransition=this.mozContainerTransition}};W.prototype.disableAnimation=function(){this.container.style.WebkitTransition&&(this.container.style.WebkitTransition= -"",this.container.style.MozTransition="",this.container.style.MsTransition="",this.container.style.transition="")};W.prototype.hide=function(a){this.container&&(this.container.style.display="none",this.currentSeriesIndex=-1,this._prevY=this._prevX=NaN,("undefined"===typeof a||a)&&this.chart.resetOverlayedCanvas())};W.prototype.show=function(a,d,c){this._updateToolTip(a,d,"undefined"===typeof c?!1:c)};W.prototype.showAtIndex=function(a,d){};W.prototype.showAtX=function(a,d){if(!this.enabled)return!1; -this.chart.clearedOverlayedCanvas=null;var c,b,e,f=[];e=!1;d=!s(d)&&0<=d&&db.dataSeries.axisX.viewportMaximum||b.dataPoint.yb.dataSeries.axisY.viewportMaximum)e=!0;else{e=!1;break}if(e)return this.hide(),!1;this.highlightObjects(f);this._entries=f;h="";h=this.getToolTipInnerHTML({entries:f});if(null!==h){this.contentDiv.innerHTML=h;if(this.isToolTipDefinedInData&&s(this.options.content)&&s(this.options.contentFormatter))for(b=this.contentDiv.getElementsByTagName("span"),h=0,e=this.reversed?f.length-1:0;hc&&(c+=this.container.clientWidth+20);c+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(c=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));f=1!==f.length||this.shared||"line"!==f[0].dataSeries.type&&"stepLine"!==f[0].dataSeries.type&&"spline"!==f[0].dataSeries.type&&"area"!==f[0].dataSeries.type&&"stepArea"!==f[0].dataSeries.type&&"splineArea"!==f[0].dataSeries.type?"bar"===f[0].dataSeries.type|| -"rangeBar"===f[0].dataSeries.type||"stackedBar"===f[0].dataSeries.type||"stackedBar100"===f[0].dataSeries.type?f[0].dataSeries.axisX.convertValueToPixel(f[0].dataPoint.x):f[0].dataSeries.axisY.convertValueToPixel(f[0].dataPoint.y):f[0].dataSeries.axisY.convertValueToPixel(f[0].dataPoint.y);f=-f+10;0 -b&&a.push(d),d.animationCallback(b),1<=b&&d.onComplete)d.onComplete();this.animations=a;0g;g++)for(var e=0;3>e;e++){for(var f=0,d=0;3>d;d++)f+=a[g][d]*b[d][e];c[g][e]=f}return c}function P(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit=a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX= -a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.globalAlpha=a.globalAlpha;b.font=a.font;b.textAlign=a.textAlign;b.textBaseline=a.textBaseline;b.arcScaleX_=a.arcScaleX_;b.arcScaleY_=a.arcScaleY_;b.lineScale_=a.lineScale_}function Q(a){var b=a.indexOf("(",3),c=a.indexOf(")",b+1),b=a.substring(b+1,c).split(",");if(4!=b.length||"a"!=a.charAt(3))b[3]=1;return b}function E(a,b,c){return Math.min(c,Math.max(b,a))}function F(a,b,c){0>c&&c++;16*c?a+6*(b-a)*c: -1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a}function G(a){if(a in H)return H[a];var b,c=1;a=String(a);if("#"==a.charAt(0))b=a;else if(/^rgb/.test(a)){c=Q(a);b="#";for(var g,e=0;3>e;e++)g=-1!=c[e].indexOf("%")?Math.floor(255*(parseFloat(c[e])/100)):+c[e],b+=v[E(g,0,255)];c=+c[3]}else if(/^hsl/.test(a)){e=c=Q(a);b=parseFloat(e[0])/360%360;0>b&&b++;g=E(parseFloat(e[1])/100,0,1);e=E(parseFloat(e[2])/100,0,1);if(0==g)g=e=b=e;else{var f=0.5>e?e*(1+g):e+g-e*g,d=2*e-f;g=F(d,f,b+1/3);e=F(d,f,b);b=F(d,f,b-1/3)}b="#"+ -v[Math.floor(255*g)]+v[Math.floor(255*e)]+v[Math.floor(255*b)];c=c[3]}else b=Z[a]||a;return H[a]={color:b,alpha:c}}function C(a){this.m_=D();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.fillStyle=this.strokeStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=1*q;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=a;var b="width:"+a.clientWidth+"px;height:"+a.clientHeight+"px;overflow:hidden;position:absolute", -c=a.ownerDocument.createElement("div");c.style.cssText=b;a.appendChild(c);b=c.cloneNode(!1);b.style.backgroundColor="red";b.style.filter="alpha(opacity=0)";a.appendChild(b);this.element_=c;this.lineScale_=this.arcScaleY_=this.arcScaleX_=1}function R(a,b,c,g){a.currentPath_.push({type:"bezierCurveTo",cp1x:b.x,cp1y:b.y,cp2x:c.x,cp2y:c.y,x:g.x,y:g.y});a.currentX_=g.x;a.currentY_=g.y}function S(a,b){var c=G(a.strokeStyle),g=c.color,c=c.alpha*a.globalAlpha,e=a.lineScale_*a.lineWidth;1>e&&(c*=e);b.push("')}function T(a,b,c,g){var e=a.fillStyle,f=a.arcScaleX_,d=a.arcScaleY_,k=g.x-c.x,n=g.y-c.y;if(e instanceof w){var h=0,l=g=0,u=0,m=1;if("gradient"==e.type_){h=e.x1_/f;c=e.y1_/d;var p=s(a,e.x0_/f,e.y0_/d),h=s(a,h,c),h=180*Math.atan2(h.x-p.x,h.y-p.y)/Math.PI;0>h&&(h+=360);1E-6>h&&(h=0)}else p=s(a,e.x0_,e.y0_),g=(p.x-c.x)/k,l=(p.y-c.y)/n,k/=f*q, -n/=d*q,m=x.max(k,n),u=2*e.r0_/m,m=2*e.r1_/m-u;f=e.colors_;f.sort(function(a,b){return a.offset-b.offset});d=f.length;p=f[0].color;c=f[d-1].color;k=f[0].alpha*a.globalAlpha;a=f[d-1].alpha*a.globalAlpha;for(var n=[],r=0;r')}else e instanceof -I?k&&n&&b.push("'):(e=G(a.fillStyle),b.push(''))}function s(a,b,c){a=a.m_;return{x:q*(b*a[0][0]+c*a[1][0]+a[2][0])-r,y:q*(b*a[0][1]+c*a[1][1]+a[2][1])-r}}function z(a,b,c){isFinite(b[0][0])&&(isFinite(b[0][1])&&isFinite(b[1][0])&&isFinite(b[1][1])&&isFinite(b[2][0])&&isFinite(b[2][1]))&&(a.m_=b,c&&(a.lineScale_=aa(ba(b[0][0]*b[1][1]-b[0][1]* -b[1][0]))))}function w(a){this.type_=a;this.r1_=this.y1_=this.x1_=this.r0_=this.y0_=this.x0_=0;this.colors_=[]}function I(a,b){if(!a||1!=a.nodeType||"IMG"!=a.tagName)throw new A("TYPE_MISMATCH_ERR");if("complete"!=a.readyState)throw new A("INVALID_STATE_ERR");switch(b){case "repeat":case null:case "":this.repetition_="repeat";break;case "repeat-x":case "repeat-y":case "no-repeat":this.repetition_=b;break;default:throw new A("SYNTAX_ERR");}this.src_=a.src;this.width_=a.width;this.height_=a.height} -function A(a){this.code=this[a];this.message=a+": DOM Exception "+this.code}var x=Math,k=x.round,J=x.sin,K=x.cos,ba=x.abs,aa=x.sqrt,q=10,r=q/2;navigator.userAgent.match(/MSIE ([\d.]+)?/);var M=Array.prototype.slice;O(document);var U={init:function(a){a=a||document;a.createElement("canvas");a.attachEvent("onreadystatechange",W(this.init_,this,a))},init_:function(a){a=a.getElementsByTagName("canvas");for(var b=0;bd;d++)for(var B=0;16>B;B++)v[16*d+B]=d.toString(16)+B.toString(16);var Z={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC", -bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000", -darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082", -ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA", -mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5", -peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"}, -H={},L={},$={butt:"flat",round:"round"},d=C.prototype;d.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null);this.element_.innerHTML=""};d.beginPath=function(){this.currentPath_=[]};d.moveTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"moveTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.lineTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"lineTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.bezierCurveTo= -function(a,b,c,g,e,f){e=s(this,e,f);a=s(this,a,b);c=s(this,c,g);R(this,a,c,e)};d.quadraticCurveTo=function(a,b,c,g){a=s(this,a,b);c=s(this,c,g);g={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)};R(this,g,{x:g.x+(c.x-this.currentX_)/3,y:g.y+(c.y-this.currentY_)/3},c)};d.arc=function(a,b,c,g,e,f){c*=q;var d=f?"at":"wa",k=a+K(g)*c-r,n=b+J(g)*c-r;g=a+K(e)*c-r;e=b+J(e)*c-r;k!=g||f||(k+=0.125);a=s(this,a,b);k=s(this,k,n);g=s(this,g,e);this.currentPath_.push({type:d, -x:a.x,y:a.y,radius:c,xStart:k.x,yStart:k.y,xEnd:g.x,yEnd:g.y})};d.rect=function(a,b,c,g){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath()};d.strokeRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath();this.stroke();this.currentPath_=e};d.fillRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+ -c,b+g);this.lineTo(a,b+g);this.closePath();this.fill();this.currentPath_=e};d.createLinearGradient=function(a,b,c,g){var e=new w("gradient");e.x0_=a;e.y0_=b;e.x1_=c;e.y1_=g;return e};d.createRadialGradient=function(a,b,c,g,e,f){var d=new w("gradientradial");d.x0_=a;d.y0_=b;d.r0_=c;d.x1_=g;d.y1_=e;d.r1_=f;return d};d.drawImage=function(a,b){var c,g,e,d,r,y,n,h;e=a.runtimeStyle.width;d=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var l=a.width,u=a.height;a.runtimeStyle.width= -e;a.runtimeStyle.height=d;if(3==arguments.length)c=arguments[1],g=arguments[2],r=y=0,n=e=l,h=d=u;else if(5==arguments.length)c=arguments[1],g=arguments[2],e=arguments[3],d=arguments[4],r=y=0,n=l,h=u;else if(9==arguments.length)r=arguments[1],y=arguments[2],n=arguments[3],h=arguments[4],c=arguments[5],g=arguments[6],e=arguments[7],d=arguments[8];else throw Error("Invalid number of arguments");var m=s(this,c,g),p=[];p.push(" ','","");this.element_.insertAdjacentHTML("BeforeEnd",p.join(""))};d.stroke=function(a){var b=[];b.push("d.x)d.x=f.x;if(null==c.y||f.yd.y)d.y=f.y}}b.push(' ">');a?T(this,b,c,d):S(this,b);b.push("");this.element_.insertAdjacentHTML("beforeEnd",b.join(""))};d.fill=function(){this.stroke(!0)};d.closePath=function(){this.currentPath_.push({type:"close"})};d.save=function(){var a= -{};P(this,a);this.aStack_.push(a);this.mStack_.push(this.m_);this.m_=t(D(),this.m_)};d.restore=function(){this.aStack_.length&&(P(this.aStack_.pop(),this),this.m_=this.mStack_.pop())};d.translate=function(a,b){z(this,t([[1,0,0],[0,1,0],[a,b,1]],this.m_),!1)};d.rotate=function(a){var b=K(a);a=J(a);z(this,t([[b,a,0],[-a,b,0],[0,0,1]],this.m_),!1)};d.scale=function(a,b){this.arcScaleX_*=a;this.arcScaleY_*=b;z(this,t([[a,0,0],[0,b,0],[0,0,1]],this.m_),!0)};d.transform=function(a,b,c,d,e,f){z(this,t([[a, -b,0],[c,d,0],[e,f,1]],this.m_),!0)};d.setTransform=function(a,b,c,d,e,f){z(this,[[a,b,0],[c,d,0],[e,f,1]],!0)};d.drawText_=function(a,b,c,d,e){var f=this.m_;d=0;var r=1E3,t=0,n=[],h;h=this.font;if(L[h])h=L[h];else{var l=document.createElement("div").style;try{l.font=h}catch(u){}h=L[h]={style:l.fontStyle||"normal",variant:l.fontVariant||"normal",weight:l.fontWeight||"normal",size:l.fontSize||10,family:l.fontFamily||"sans-serif"}}var l=h,m=this.element_;h={};for(var p in l)h[p]=l[p];p=parseFloat(m.currentStyle.fontSize); -m=parseFloat(l.size);"number"==typeof l.size?h.size=l.size:-1!=l.size.indexOf("px")?h.size=m:-1!=l.size.indexOf("em")?h.size=p*m:-1!=l.size.indexOf("%")?h.size=p/100*m:-1!=l.size.indexOf("pt")?h.size=m/0.75:h.size=p;h.size*=0.981;p=h.style+" "+h.variant+" "+h.weight+" "+h.size+"px "+h.family;m=this.element_.currentStyle;l=this.textAlign.toLowerCase();switch(l){case "left":case "center":case "right":break;case "end":l="ltr"==m.direction?"right":"left";break;case "start":l="rtl"==m.direction?"right": -"left";break;default:l="left"}switch(this.textBaseline){case "hanging":case "top":t=h.size/1.75;break;case "middle":break;default:case null:case "alphabetic":case "ideographic":case "bottom":t=-h.size/2.25}switch(l){case "right":d=1E3;r=0.05;break;case "center":d=r=500}b=s(this,b+0,c+t);n.push('');e?S(this,n):T(this,n,{x:-d,y:0}, -{x:r,y:h.size});e=f[0][0].toFixed(3)+","+f[1][0].toFixed(3)+","+f[0][1].toFixed(3)+","+f[1][1].toFixed(3)+",0,0";b=k(b.x/q)+","+k(b.y/q);n.push('','','');this.element_.insertAdjacentHTML("beforeEnd",n.join(""))};d.fillText=function(a,b,c,d){this.drawText_(a,b,c,d,!1)};d.strokeText=function(a, -b,c,d){this.drawText_(a,b,c,d,!0)};d.measureText=function(a){this.textMeasureEl_||(this.element_.insertAdjacentHTML("beforeEnd",''),this.textMeasureEl_=this.element_.lastChild);var b=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(b.createTextNode(a));return{width:this.textMeasureEl_.offsetWidth}};d.clip=function(){}; -d.arcTo=function(){};d.createPattern=function(a,b){return new I(a,b)};w.prototype.addColorStop=function(a,b){b=G(b);this.colors_.push({offset:a,color:b.color,alpha:b.alpha})};d=A.prototype=Error();d.INDEX_SIZE_ERR=1;d.DOMSTRING_SIZE_ERR=2;d.HIERARCHY_REQUEST_ERR=3;d.WRONG_DOCUMENT_ERR=4;d.INVALID_CHARACTER_ERR=5;d.NO_DATA_ALLOWED_ERR=6;d.NO_MODIFICATION_ALLOWED_ERR=7;d.NOT_FOUND_ERR=8;d.NOT_SUPPORTED_ERR=9;d.INUSE_ATTRIBUTE_ERR=10;d.INVALID_STATE_ERR=11;d.SYNTAX_ERR=12;d.INVALID_MODIFICATION_ERR= -13;d.NAMESPACE_ERR=14;d.INVALID_ACCESS_ERR=15;d.VALIDATION_ERR=16;d.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=U;CanvasRenderingContext2D=C;CanvasGradient=w;CanvasPattern=I;DOMException=A}(); -/*eslint-enable*/ -/*jshint ignore:end*/ \ No newline at end of file diff --git a/src/libs/chart_libs/canvasjs.react.js b/src/libs/chart_libs/canvasjs.react.js deleted file mode 100644 index 757870c5..00000000 --- a/src/libs/chart_libs/canvasjs.react.js +++ /dev/null @@ -1,60 +0,0 @@ -/* -CanvasJS React Charts - https://canvasjs.com/ -Copyright 2022 fenopix - ---------------------- License Information -------------------- -CanvasJS is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details. -https://canvasjs.com/license/ - -*/ - -var React = require('react'); -var CanvasJS = require('./canvasjs.min'); -CanvasJS = CanvasJS.Chart ? CanvasJS : window.CanvasJS; - -class CanvasJSChart extends React.Component { - static _cjsContainerId = 0 - constructor(props) { - super(props); - this.options = props.options ? props.options : {}; - this.containerProps = props.containerProps ? { ...props.containerProps } : { width: "100%", position: "relative" }; - this.containerProps.height = props.containerProps && props.containerProps.height ? props.containerProps.height : this.options.height ? this.options.height + "px" : "400px"; - this.chartContainerId = "canvasjs-react-chart-container-" + CanvasJSChart._cjsContainerId++; - } - componentDidMount() { - //Create Chart and Render - this.chart = new CanvasJS.Chart(this.chartContainerId, this.options); - this.chart.render(); - - if (this.props.onRef) - this.props.onRef(this.chart); - } - shouldComponentUpdate(nextProps, nextState) { - //Check if Chart-options has changed and determine if component has to be updated - return !(nextProps.options === this.options); - } - componentDidUpdate() { - //Update Chart Options & Render - this.chart.options = this.props.options; - this.chart.render(); - } - componentWillUnmount() { - //Destroy chart and remove reference - if (this.chart) - this.chart.destroy(); - - if (this.props.onRef) - this.props.onRef(undefined); - } - render() { - //return React.createElement('div', { id: this.chartContainerId, style: this.containerProps }); - return
- } -} - -var CanvasJSReact = { - CanvasJSChart: CanvasJSChart, - CanvasJS: CanvasJS -}; - -export default CanvasJSReact; \ No newline at end of file diff --git a/src/libs/chart_libs/canvasjs.stock.min.js b/src/libs/chart_libs/canvasjs.stock.min.js deleted file mode 100644 index d5628ee0..00000000 --- a/src/libs/chart_libs/canvasjs.stock.min.js +++ /dev/null @@ -1,1148 +0,0 @@ -/* - CanvasJS HTML5 & JavaScript StockCharts - v1.6.3 GA - https://canvasjs.com/ - Copyright 2022 fenopix - - --------------------- License Information -------------------- - CanvasJS is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details. - https://canvasjs.com/license/ - -*/ -/*eslint-disable*/ -/*jshint ignore:start*/ -(function(){function ia(l,A){l.prototype=ob(A.prototype);l.prototype.constructor=l;l.base=A.prototype}function ob(l){function A(){}A.prototype=l;return new A}function bb(l,A,g){"millisecond"===g?l.setMilliseconds(l.getMilliseconds()+1*A):"second"===g?l.setSeconds(l.getSeconds()+1*A):"minute"===g?l.setMinutes(l.getMinutes()+1*A):"hour"===g?l.setHours(l.getHours()+1*A):"day"===g?l.setDate(l.getDate()+1*A):"week"===g?l.setDate(l.getDate()+7*A):"month"===g?l.setMonth(l.getMonth()+1*A):"year"===g&&l.setFullYear(l.getFullYear()+ -1*A);return l}function pa(l,A){var g=!1;0>l&&(g=!0,l*=-1);l=""+l;for(A=A?A:1;l.length
Please right click on the image and save it to your device
"),A.document.close()}}}function R(l){var A=((l&16711680)>>16).toString(16),g=((l&65280)>>8).toString(16);l=((l&255)>>0).toString(16);A=2>A.length?"0"+A:A;g=2>g.length?"0"+g:g;l=2>l.length?"0"+l:l;return"#"+A+g+l}function pb(l,A){var g=this.length>>>0,u=Number(A)||0,u=0>u?Math.ceil(u):Math.floor(u);for(0>u&&(u+=g);u=(new Date).getTime()-l._dropDownCloseTime.getTime()||(l._dropdownMenu.style.display="block",l._menuButton.blur(),l._dropdownMenu.focus())},l.allDOMEventHandlers,!0);D(l._menuButton,"mousemove",function(){A||(O(l._menuButton,{backgroundColor:l.toolbar.itemBackgroundColorOnHover,color:l.toolbar.fontColorOnHover}),0>=navigator.userAgent.search("MSIE")&& -O(l._menuButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},l.allDOMEventHandlers,!0);D(l._menuButton,"mouseout",function(){A||(O(l._menuButton,{backgroundColor:l.toolbar.itemBackgroundColor,color:l.toolbar.fontColor}),0>=navigator.userAgent.search("MSIE")&&O(l._menuButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},l.allDOMEventHandlers,!0)}if(l.exportEnabled&&l._dropdownMenu){O(l._dropdownMenu,{backgroundColor:l.toolbar.itemBackgroundColor,color:l.toolbar.fontColor}); -for(var g=l._dropdownMenu.childNodes,L=[l._cultureInfo.printText,l._cultureInfo.saveJPGText,l._cultureInfo.savePNGText],F=0;Fg;g++)if(l[g]!==l[g+4]|l[g]!==l[g+8]|l[g]!==l[g+12]){A=!1;break}return A?l[0]<<16|l[1]<<8|l[2]:0}function ra(l,A,g){return l in A?A[l]:g[l]}function Sa(l,A,g){if(u&&jb){var L=l.getContext("2d");Ta=L.webkitBackingStorePixelRatio||L.mozBackingStorePixelRatio||L.msBackingStorePixelRatio||L.oBackingStorePixelRatio||L.backingStorePixelRatio||1;la=Xa/Ta;l.width=A*la;l.height=g*la; -Xa!==Ta&&(l.style.width=A+"px",l.style.height=g+"px",L.scale(la,la))}else l.width=A,l.height=g}function sb(l){if(!tb){var A=!1,g=!1;"undefined"===typeof ea.Chart.creditHref?(l.creditHref=va("iuuqr;..b`ow`rkr/bnl."),l.creditText=va("B`ow`rKR/bnl")):(A=l.updateOption("creditText"),g=l.updateOption("creditHref"));if(l.creditHref&&l.creditText){l._creditLink||(l._creditLink=document.createElement("a"),l._creditLink.setAttribute("class","canvasjs-chart-credit"),l._creditLink.setAttribute("title","JavaScript Charts"), -O(l._creditLink,{outline:"none",margin:"0px",position:"absolute",right:"2px",top:l.height-14+"px",color:"dimgrey",textDecoration:"none",fontSize:"11px",fontFamily:"Calibri, Lucida Grande, Lucida Sans Unicode, Arial, sans-serif"}),l._creditLink.setAttribute("tabIndex",-1),l._creditLink.setAttribute("target","_blank"));if(0===l.renderCount||A||g)l._creditLink.setAttribute("href",l.creditHref),l._creditLink.innerHTML=l.creditText;l._creditLink&&l.creditHref&&l.creditText?(l._creditLink.parentElement|| -l._canvasJSContainer.appendChild(l._creditLink),l._creditLink.style.top=l.height-14+"px"):l._creditLink.parentElement&&l._canvasJSContainer.removeChild(l._creditLink)}}}function sa(l,A){La&&(this.canvasCount|=0,window.console.log(++this.canvasCount));var g=document.createElement("canvas");g.setAttribute("class","canvasjs-chart-canvas");Sa(g,l,A);u||"undefined"===typeof G_vmlCanvasManager||G_vmlCanvasManager.initElement(g);return g}function O(l,g){for(var u in g)l.style[u]=g[u]}function Ba(l,g,u){g.getAttribute("state")|| -(g.style.backgroundColor=l.toolbar.itemBackgroundColor,g.style.color=l.toolbar.fontColor,g.style.border="none",O(g,{WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"}));g.getAttribute("state")!==u&&(g.setAttribute("state",u),g.setAttribute("type","button"),O(g,{padding:"5px 12px",cursor:"pointer","float":"left",width:"40px",height:"25px",outline:"0px",verticalAlign:"baseline",lineHeight:"0"}),g.setAttribute("title",l._cultureInfo[u+"Text"]),g.innerHTML=""+l._cultureInfo[u+"Text"]+"",O(g.childNodes[0],{height:"95%",pointerEvents:"none"}))}function Ra(){for(var l=null,g=0;gf?"a":"p";case "tt":return 12>f?"am":"pm";case "T":return 12>f?"A":"P";case "TT":return 12>f?"AM":"PM";case "K":return d?"UTC":(String(s).match(ja)|| -[""]).pop().replace(z,"");case "z":return(0l?!0:!1;L&&(l*=-1);var F=u?u.decimalSeparator:".",s=u?u.digitGroupSeparator:",",z="";g=String(g);var z=1,D=u="",G=-1,N=[],I=[],Q=0,M=0,R=0,d=!1, -q=0,D=g.match(/"[^"]*"|'[^']*'|[eE][+-]*[0]+|[,]+[.]|\u2030|./g);g=null;for(var x=0;D&&xG)G=x;else{if("%"===g)z*=100;else if("\u2030"===g){z*=1E3;continue}else if(","===g[0]&&"."===g[g.length-1]){z/=Math.pow(1E3,g.length-1);G=x+g.length-1;continue}else"E"!==g[0]&&"e"!==g[0]||"0"!==g[g.length-1]||(d=!0);0>G?(N.push(g),"#"===g||"0"===g?Q++:","===g&&R++):(I.push(g),"#"!==g&&"0"!==g||M++)}d&&(g=Math.floor(l),D=-Math.floor(Math.log(l)/Math.LN10+1),q=0===l?0:0===g?-(Q+ -D):String(g).length-Q,z/=Math.pow(10,q));0>G&&(G=x);z=(l*z).toFixed(M);g=z.split(".");z=(g[0]+"").split("");l=(g[1]+"").split("");z&&"0"===z[0]&&z.shift();for(d=D=x=M=G=0;0q?g.replace("+","").replace("-",""):g.replace("-",""),u+=g.replace(/[0]+/,function(a){return pa(q,a.length)}));s="";for(N=!1;0q?g.replace("+","").replace("-",""):g.replace("-",""),s+=g.replace(/[0]+/,function(a){return pa(q,a.length)}));u+=(N?F:"")+s;return L?"-"+u:u},Aa=function(g){var u=0,Z=0;g=g||window.event;g.offsetX||0===g.offsetX?(u=g.offsetX,Z=g.offsetY):g.layerX||0==g.layerX?(u=g.layerX,Z=g.layerY):(u=g.pageX-g.target.offsetLeft,Z=g.pageY-g.target.offsetTop);return{x:u,y:Z}},jb=!0,Xa=window.devicePixelRatio|| -1,Ta=1,la=jb?Xa/Ta:1,ba=function(g,u,Z,s,F,D,z,G,I,N,Q,M,R){"undefined"===typeof R&&(R=1);z=z||0;G=G||"black";var O=15u)F=G-1;else break}s>u&&1G&&(z=u.pop(),D-=z.height,F=I)}this._wrappedText={lines:u,width:F,height:D};this.width=F+(this.leftPadding+this.rightPadding);this.height=D+(this.topPadding+this.bottomPadding);this.ctx.font=s};oa.prototype._getFontString=function(){var g;g=""+(this.fontStyle?this.fontStyle+" ": -"");g+=this.fontWeight?this.fontWeight+" ":"";g+=this.fontSize?this.fontSize+"px ":"";var A=this.fontFamily?this.fontFamily+"":"";!u&&A&&(A=A.split(",")[0],"'"!==A[0]&&'"'!==A[0]&&(A="'"+A+"'"));return g+=A};ia(Va,aa);ia(Ha,aa);Ha.prototype.setLayout=function(){if(this.text){var u=this.dockInsidePlotArea?this.chart.plotArea:this.chart,A=u.layoutManager.getFreeSpace(),s=A.x1,D=A.y1,F=0,G=0,z=this.chart._menuButton&&this.chart.exportEnabled&&"top"===this.verticalAlign?22:0,I,O;"top"===this.verticalAlign|| -"bottom"===this.verticalAlign?(null===this.maxWidth&&(this.maxWidth=A.width-4-z*("center"===this.horizontalAlign?2:1)),G=0.5*A.height-this.margin-2,F=0):"center"===this.verticalAlign&&("left"===this.horizontalAlign||"right"===this.horizontalAlign?(null===this.maxWidth&&(this.maxWidth=A.height-4),G=0.5*A.width-this.margin-2):"center"===this.horizontalAlign&&(null===this.maxWidth&&(this.maxWidth=A.width-4),G=0.5*A.height-4));var N;g(this.padding)||"number"!==typeof this.padding?g(this.padding)||"object"!== -typeof this.padding||(N=this.padding.top?this.padding.top:this.padding.bottom?this.padding.bottom:0,N+=this.padding.bottom?this.padding.bottom:this.padding.top?this.padding.top:0):N=2*this.padding;this.wrap||(G=Math.min(G,1.5*this.fontSize+N));G=new oa(this.ctx,{fontSize:this.fontSize,fontFamily:this.fontFamily,fontColor:this.fontColor,fontStyle:this.fontStyle,fontWeight:this.fontWeight,horizontalAlign:this.horizontalAlign,verticalAlign:this.verticalAlign,borderColor:this.borderColor,borderThickness:this.borderThickness, -backgroundColor:this.backgroundColor,maxWidth:this.maxWidth,maxHeight:G,cornerRadius:this.cornerRadius,text:this.text,padding:this.padding,textBaseline:"top"});N=G.measureText();"top"===this.verticalAlign||"bottom"===this.verticalAlign?("top"===this.verticalAlign?(D=A.y1+2,O="top"):"bottom"===this.verticalAlign&&(D=A.y2-2-N.height,O="bottom"),"left"===this.horizontalAlign?s=A.x1+2:"center"===this.horizontalAlign?s=A.x1+A.width/2-N.width/2:"right"===this.horizontalAlign&&(s=A.x2-2-N.width-z),I=this.horizontalAlign, -this.width=N.width,this.height=N.height):"center"===this.verticalAlign&&("left"===this.horizontalAlign?(s=A.x1+2,D=A.y2-2-(this.maxWidth/2-N.width/2),F=-90,O="left",this.width=N.height,this.height=N.width):"right"===this.horizontalAlign?(s=A.x2-2,D=A.y1+2+(this.maxWidth/2-N.width/2),F=90,O="right",this.width=N.height,this.height=N.width):"center"===this.horizontalAlign&&(D=u.y1+(u.height/2-N.height/2),s=u.x1+(u.width/2-N.width/2),O="center",this.width=N.width,this.height=N.height),I="center");G.x= -s;G.y=D;G.angle=F;G.horizontalAlign=I;this._textBlock=G;u.layoutManager.registerSpace(O,{width:this.width+("left"===O||"right"===O?this.margin+2:0),height:this.height+("top"===O||"bottom"===O?this.margin+2:0)});this.bounds={x1:s,y1:D,x2:s+this.width,y2:D+this.height};this.ctx.textBaseline="top"}};Ha.prototype.render=function(){this._textBlock&&this._textBlock.render(!0)};ia(Ma,aa);Ma.prototype.setLayout=Ha.prototype.setLayout;Ma.prototype.render=Ha.prototype.render;Za.prototype.get=function(g,u){var s= -null;0a[h].x&&0d?{x:a[g].x+d/3,y:a[g].y+b/3}:{x:a[g].x,y:a[g].y+b/9};g=e;h=0===g?0:g-1;C=g===a.length-1?g:g+1;b=Math.abs((a[C].x-a[h].x)/(0===a[g].x-a[h].x?0.01:a[g].x-a[h].x))*(f-1)/2+1;d=(a[C].x-a[h].x)/b;b=(a[C].y-a[h].y)/b;c[c.length]=a[g].x>a[h].x&&0d?{x:a[g].x-d/3,y:a[g].y-b/3}:{x:a[g].x,y:a[g].y-b/9};c[c.length]=a[e]}return c}function L(a,f,c,b,e,h,C,g,d,m){var n=0;m?(C.color=h,g.color=h): -m=1;n=d?Math.abs(e-c):Math.abs(b-f);n=0this.labelAngle?this.labelAngle-=180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360);this.options.scaleBreaks&&(this.scaleBreaks=new M(this.chart,this.options.scaleBreaks,++this.chart._eventManager.lastObjectId, -this));this.stripLines=[];if(this.options.stripLines&&0=this._appliedBreaks[a+1].startValue&&(this._appliedBreaks[a].endValue=Math.max(this._appliedBreaks[a].endValue,this._appliedBreaks[a+1].endValue),window.console&&window.console.log("CanvasJS Error: Breaks "+a+" and "+(a+1)+" are overlapping."),this._appliedBreaks.splice(a,2),a--)}}function Y(a,f,c,b,e,h){Y.base.constructor.call(this,"Break",f,c,b,h);this.id=e;this.chart=a;this.ctx=this.chart.ctx;this.scaleBreaks=h;this.optionsName= -f;this.isOptionsInArray=!0;this.type=c.type?this.type:h.type;this.fillOpacity=g(c.fillOpacity)?h.fillOpacity:this.fillOpacity;this.lineThickness=g(c.lineThickness)?h.lineThickness:this.lineThickness;this.color=c.color?this.color:h.color;this.lineColor=c.lineColor?this.lineColor:h.lineColor;this.lineDashType=c.lineDashType?this.lineDashType:h.lineDashType;!g(this.startValue)&&this.startValue.getTime&&(this.startValue=this.startValue.getTime());!g(this.endValue)&&this.endValue.getTime&&(this.endValue= -this.endValue.getTime());"number"===typeof this.startValue&&("number"===typeof this.endValue&&this.endValue=navigator.userAgent.search("MSIE")&&O(a._zoomButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers);D(this._zoomButton,"mouseout",function(){f||(O(a._zoomButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&O(a._zoomButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},this.allDOMEventHandlers)}this._resetButton? -(O(this._resetButton,{borderRight:this.toolbar.buttonBorderThickness+"px solid "+this.toolbar.buttonBorderColor,backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor}),this._resetButton.title=this._cultureInfo.resetText):(f=!1,ya(this._resetButton=document.createElement("button")),Ba(this,this._resetButton,"reset"),this._resetButton.style.borderRight=(this.exportEnabled?this.toolbar.buttonBorderThickness:0)+"px solid "+this.toolbar.buttonBorderColor,this._toolBar.appendChild(this._resetButton), -D(this._resetButton,"touchstart",function(a){f=!0},this.allDOMEventHandlers),D(this._resetButton,"click",function(){a.toolTip.hide();a.toolTip&&a.toolTip.enabled&&a.toolTip.dispatchEvent("hidden",{chart:a,toolTip:a.toolTip},a.toolTip);a.zoomEnabled||a.panEnabled?(a.zoomEnabled=!0,a.panEnabled=!1,Ba(a,a._zoomButton,"pan"),a._defaultCursor="default",a.overlaidCanvas.style.cursor=a._defaultCursor):(a.zoomEnabled=!1,a.panEnabled=!1);if(a.sessionVariables.axisX)for(var b=0;b=navigator.userAgent.search("MSIE")&&O(a._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"});ya(a._zoomButton,a._resetButton);a.stockChart&&(a.stockChart._rangeEventParameter={stockChart:a.stockChart,source:"chart",index:a.stockChart.charts.indexOf(a),minimum:null,maximum:null});a._dispatchRangeEvent("rangeChanging","reset");a.stockChart&&(a.stockChart._rangeEventParameter.type="rangeChanging", -a.stockChart.dispatchEvent("rangeChanging",a.stockChart._rangeEventParameter,a.stockChart));a.render();a.syncCharts&&a.syncCharts(null,null);a._dispatchRangeEvent("rangeChanged","reset");a.stockChart&&(a.stockChart._rangeEventParameter.type="rangeChanged",a.stockChart.dispatchEvent("rangeChanged",a.stockChart._rangeEventParameter,a.stockChart))},this.allDOMEventHandlers),D(this._resetButton,"mousemove",function(){f||(O(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColorOnHover,color:a.toolbar.fontColorOnHover, -transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&O(a._resetButton.childNodes[0],{WebkitFilter:"invert(100%)",filter:"invert(100%)"}))},this.allDOMEventHandlers),D(this._resetButton,"mouseout",function(){f||(O(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:"0.4s",WebkitTransition:"0.4s"}),0>=navigator.userAgent.search("MSIE")&&O(a._resetButton.childNodes[0],{WebkitFilter:"invert(0%)",filter:"invert(0%)"}))},this.allDOMEventHandlers), -this.overlaidCanvas.style.cursor=a._defaultCursor);this.zoomEnabled||this.panEnabled||(this._zoomButton?(a._zoomButton.getAttribute("state")===a._cultureInfo.zoomText?(this.panEnabled=!0,this.zoomEnabled=!1):(this.zoomEnabled=!0,this.panEnabled=!1),Ra(a._zoomButton,a._resetButton)):(this.zoomEnabled=!0,this.panEnabled=!1))}else this.panEnabled=this.zoomEnabled=!1;hb(this);"none"!==this._toolBar.style.display&&this._zoomButton&&(this.panEnabled?Ba(a,a._zoomButton,"zoom"):Ba(a,a._zoomButton,"pan"), -a._resetButton.getAttribute("state")!==a._cultureInfo.resetText&&Ba(a,a._resetButton,"reset"));this.options.toolTip&&this.toolTip.options!==this.options.toolTip&&(this.toolTip.options=this.options.toolTip);for(var c in this.toolTip.options)this.toolTip.options.hasOwnProperty(c)&&this.toolTip.updateOption(c)};s.prototype._updateSize=function(){return lb.call(this,[this.canvas,this.overlaidCanvas,this._eventManager.ghostCanvas])};s.prototype._initialize=function(){this.isNavigator=g(this.parent)||g(this.parent._defaultsKey)|| -"Navigator"!==this.parent._defaultsKey?!1:!0;this._animator?this._animator.cancelAllAnimations():this._animator=new ma(this);this.removeAllEventListeners();this.disableToolTip=!1;this._axes=[];this.funnelPyramidClickHandler=this.pieDoughnutClickHandler=null;this._updateOptions();this.animatedRender=u&&this.animationEnabled&&0===this.renderCount;this._updateSize();this.clearCanvas();this.ctx.beginPath();this.axisX=[];this.axisX2=[];this.axisY=[];this.axisY2=[];this._indexLabels=[];this._dataInRenderedOrder= -[];this._events=[];this._eventManager&&this._eventManager.reset();this.plotInfo={axisPlacement:null,plotTypes:[]};this.layoutManager=new Ka(0,0,this.width,this.height,this.isNavigator?0:2);this.plotArea.layoutManager&&this.plotArea.layoutManager.reset();this.data=[];this.title=null;this.subtitles=[];var a=0,f=null;if(this.options.data){for(var c=0;cb.linkedDataSeriesIndex||b.linkedDataSeriesIndex>=this.options.data.length||"number"!==typeof b.linkedDataSeriesIndex||"error"===this.options.data[b.linkedDataSeriesIndex].type)&&(b.linkedDataSeriesIndex=null);null===b.name&&(b.name="DataSeries "+a);null===b.color?1a&&"undefined"!==typeof d.startTimePercent?a>=d.startTimePercent&&d.animationCallback(d.easingFunction(a-d.startTimePercent,0,1,1-d.startTimePercent),d): -d.animationCallback(d.easingFunction(a,0,1,1),d);n.dispatchEvent("dataAnimationIterationEnd",{chart:n})},function(){c=[];for(var a=0;aa.dataSeriesIndexes.length))for(var f=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,h=!1,C=0;Cc.max&&(c.max=b);ef.max&&"number"===typeof e&&(f.max=e);if(0w&&(w=1/w);c.minDiff>w&&1!==w&&(c.minDiff=w)}else w=b-g.dataPoints[d-1].x,0>w&&(w*=-1),c.minDiff>w&&0!==w&&(c.minDiff=w);null!==e&&null!==g.dataPoints[d-1].y&&(a.axisY.logarithmic?(w=e/g.dataPoints[d-1].y,1>w&&(w=1/w),f.minDiff>w&&1!==w&&(f.minDiff=w)):(w=e-g.dataPoints[d-1].y,0>w&&(w*=-1),f.minDiff>w&&0!==w&&(f.minDiff=w)))}if(bk&& -!n)n=!0;else if(b>k&&n)continue;g.dataPoints[d].label&&(a.axisX.labels[b]=g.dataPoints[d].label);bc.viewPortMax&&(c.viewPortMax=b);null===e?c.viewPortMin===b&&pf.viewPortMax&&"number"===typeof e&&(f.viewPortMax=e))}}g.axisX.valueType=g.xValueType=h?"dateTime":"number"}};s.prototype._processStackedPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var f= -a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,h=!1,C=[],d=[],K=Infinity,m=-Infinity,n=0;nc.max&&(c.max=b);if(0y&&(y=1/y);c.minDiff>y&&1!==y&&(c.minDiff=y)}else y=b-p.dataPoints[t-1].x,0>y&&(y*=-1),c.minDiff>y&&0!==y&&(c.minDiff=y);null!==e&&null!==p.dataPoints[t-1].y&&(a.axisY.logarithmic?0y&&(y=1/y),f.minDiff>y&&1!==y&&(f.minDiff=y)):(y=e-p.dataPoints[t-1].y,0>y&&(y*=-1),f.minDiff>y&&0!==y&&(f.minDiff=y)))}if(bv&&!w)w=!0;else if(b>v&&w)continue;p.dataPoints[t].label&&(a.axisX.labels[b]=p.dataPoints[t].label);bc.viewPortMax&&(c.viewPortMax=b);null===p.dataPoints[t].y?c.viewPortMin===b&&xf.max&&(f.max=a),tc.viewPortMax|| -(af.viewPortMax&&(f.viewPortMax=a)));for(t in d)d.hasOwnProperty(t)&&!isNaN(t)&&(a=d[t],af.max&&(f.max=Math.max(a,m)),tc.viewPortMax||(af.viewPortMax&&(f.viewPortMax=Math.max(a,m))))}};s.prototype._processStacked100PlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var f=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,h=!1,C=!1,d=!1,K=[],m=0;mc.max&&(c.max=b);if(0v&&(v=1/v);c.minDiff>v&&1!==v&&(c.minDiff=v)}else v=b-n.dataPoints[p-1].x,0>v&&(v*=-1),c.minDiff>v&&0!==v&&(c.minDiff=v);g(e)||null===n.dataPoints[p-1].y||(a.axisY.logarithmic?0v&&(v=1/v),f.minDiff>v&&1!==v&&(f.minDiff=v)):(v=e-n.dataPoints[p-1].y,0>v&&(v*=-1),f.minDiff>v&&0!==v&&(f.minDiff=v)))}if(bu&&!k)k=!0;else if(b>u&&k)continue;n.dataPoints[p].label&&(a.axisX.labels[b]=n.dataPoints[p].label); -bc.viewPortMax&&(c.viewPortMax=b);null===e?c.viewPortMin===b&&we&&(d=!0),K[b]=K[b]?K[b]+Math.abs(e):Math.abs(e))}}n.axisX.valueType=n.xValueType=h?"dateTime":"number"}a.axisY.logarithmic?(f.max=g(f.viewPortMax)?99*Math.pow(a.axisY.logarithmBase,-0.05):Math.max(f.viewPortMax,99*Math.pow(a.axisY.logarithmBase,-0.05)),f.min= -g(f.viewPortMin)?1:Math.min(f.viewPortMin,1)):C&&!d?(f.max=g(f.viewPortMax)?99:Math.max(f.viewPortMax,99),f.min=g(f.viewPortMin)?1:Math.min(f.viewPortMin,1)):C&&d?(f.max=g(f.viewPortMax)?99:Math.max(f.viewPortMax,99),f.min=g(f.viewPortMin)?-99:Math.min(f.viewPortMin,-99)):!C&&d&&(f.max=g(f.viewPortMax)?-1:Math.max(f.viewPortMax,-1),f.min=g(f.viewPortMin)?-99:Math.min(f.viewPortMin,-99));f.viewPortMin=f.min;f.viewPortMax=f.max;a.dataPointYSums=K}};s.prototype._processMultiYPlotUnit=function(a){if(a.dataSeriesIndexes&& -!(1>a.dataSeriesIndexes.length))for(var f=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,h,C,g=!1,d=0;dc.max&&(c.max=b);hf.max&&(f.max=C);0w&&(w=1/w),c.minDiff>w&&1!==w&&(c.minDiff=w)):(w=b-m.dataPoints[n-1].x,0>w&&(w*=-1),c.minDiff>w&&0!==w&&(c.minDiff=w)),e&&(null!==e[0]&&m.dataPoints[n-1].y&&null!== -m.dataPoints[n-1].y[0])&&(a.axisY.logarithmic?(w=e[0]/m.dataPoints[n-1].y[0],1>w&&(w=1/w),f.minDiff>w&&1!==w&&(f.minDiff=w)):(w=e[0]-m.dataPoints[n-1].y[0],0>w&&(w*=-1),f.minDiff>w&&0!==w&&(f.minDiff=w))));if(!(bv&&!t)t=!0;else if(b>v&&t)continue;m.dataPoints[n].label&&(a.axisX.labels[b]=m.dataPoints[n].label);bc.viewPortMax&&(c.viewPortMax=b);if(c.viewPortMin===b&&e)for(y=0;yf.viewPortMax&&(f.viewPortMax=C))}}m.axisX.valueType=m.xValueType=g?"dateTime":"number"}};s.prototype._processSpecificPlotUnit=function(a){if("waterfall"===a.type&&a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var f=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,h=!1,C=0;Cc.max&&(c.max=b),g.dataPointEOs[d].cumulativeSumf.max&&(f.max=g.dataPointEOs[d].cumulativeSum),0p&&(p=1/p),c.minDiff>p&&1!==p&&(c.minDiff=p)):(p=b-g.dataPoints[d-1].x,0>p&& -(p*=-1),c.minDiff>p&&0!==p&&(c.minDiff=p)),null!==e&&null!==g.dataPoints[d-1].y&&(a.axisY.logarithmic?(e=g.dataPointEOs[d].cumulativeSum/g.dataPointEOs[d-1].cumulativeSum,1>e&&(e=1/e),f.minDiff>e&&1!==e&&(f.minDiff=e)):(e=g.dataPointEOs[d].cumulativeSum-g.dataPointEOs[d-1].cumulativeSum,0>e&&(e*=-1),f.minDiff>e&&0!==e&&(f.minDiff=e)))),!(bk&&!n)n=!0;else if(b>k&&n)continue;g.dataPoints[d].label&&(a.axisX.labels[b]=g.dataPoints[d].label);bc.viewPortMax&&(c.viewPortMax=b);0f.viewPortMax&&(f.viewPortMax=g.dataPointEOs[d-1].cumulativeSum));g.dataPointEOs[d].cumulativeSumf.viewPortMax&&(f.viewPortMax=g.dataPointEOs[d].cumulativeSum)}g.axisX.valueType=g.xValueType=h?"dateTime":"number"}}; -s.prototype.calculateAutoBreaks=function(){function a(a,b,c,f){if(f)return c=Math.pow(Math.min(c*a/b,b/a),0.2),1>=c&&(c=Math.pow(1>a?1/a:Math.min(b/a,a),0.25)),{startValue:a*c,endValue:b/c};c=0.2*Math.min(c-b+a,b-a);0>=c&&(c=0.25*Math.min(b-a,Math.abs(a)));return{startValue:a+c,endValue:b-c}}function f(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){var b=a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks,c=a.axisY.scaleBreaks&&a.axisY.scaleBreaks.autoCalculate&& -1<=a.axisY.scaleBreaks.maxNumberOfAutoBreaks;if(b||c)for(var f=a.axisY.dataInfo,h=a.axisX.dataInfo,k,C=h.min,m=h.max,d=f.min,n=f.max,h=h._dataRanges,f=f._dataRanges,p,t=0,wa=0;wax.dataPoints.length))for(t=0;th[p].max&&(h[p].max=k)),c){var K=(n+1-d)*Math.max(parseFloat(a.axisY.scaleBreaks.collapsibleThreshold)||10,10)/100;if((k="waterfall"===a.type?x.dataPointEOs[t].cumulativeSum:x.dataPoints[t].y)&&k.length)for(var u=0;uf[p].max&&(f[p].max=k[u]);else g(k)||(p=Math.floor((k-d)/K),kf[p].max&&(f[p].max=k))}}}}function c(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)&& -a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks)for(var b=a.axisX.dataInfo,c=b.min,f=b.max,h=b._dataRanges,k,C=0,m=0;mg.dataPoints.length))for(C=0;Ch[k].max&&(h[k].max=b)}}for(var b,e=this,h=!1,C=0;Cn[k].max&&(n[k].max=p)}delete this._axes[C].dataInfo.dataPointYPositiveSums}if(this._axes[C].dataInfo.dataPointYNegativeSums){t= -this._axes[C].dataInfo.dataPointYNegativeSums;n=m;for(d in t)t.hasOwnProperty(d)&&!isNaN(d)&&(p=-1*t[d],g(p)||(k=Math.floor((p-x)/b),pn[k].max&&(n[k].max=p)));delete this._axes[C].dataInfo.dataPointYNegativeSums}for(d=0;db&&h.push({diff:p,start:n,end:x});break}else d++;if(this._axes[C].scaleBreaks.customBreaks)for(d=0;d=e.x1&&(a<=e.x2&&f>=e.y1&&f<=e.y2)&&(b=e.id)}return b};s.prototype.getAutoFontSize=nb;s.prototype.resetOverlayedCanvas= -function(){this.overlaidCanvasCtx.clearRect(0,0,this.width,this.height)};s.prototype.clearCanvas=mb;s.prototype.attachEvent=function(a){this._events.push(a)};s.prototype._touchEventHandler=function(a){if(a.changedTouches&&this.interactivityEnabled){var f=[],c=a.changedTouches,b=c?c[0]:a,e=null;switch(a.type){case "touchstart":case "MSPointerDown":f=["mousemove","mousedown"];this._lastTouchData=Aa(b);this._lastTouchData.time=new Date;break;case "touchmove":case "MSPointerMove":f=["mousemove"];break; -case "touchend":case "MSPointerUp":var h=this._lastTouchData&&this._lastTouchData.time?new Date-this._lastTouchData.time:0,f="touchstart"===this._lastTouchEventType||"MSPointerDown"===this._lastTouchEventType||300>h?["mouseup","click"]:["mouseup"];break;default:return}if(!(c&&1h)this._lastTouchData.scroll=!0}catch(d){}this._lastTouchEventType= -a.type;if(this._lastTouchData.scroll&&this.zoomEnabled)this.isDrag&&this.resetOverlayedCanvas(),this.isDrag=!1;else for(c=0;c=e.x1&&f.x<=e.x2&&f.y>=e.y1&&f.y<=e.y2){b[c].call(b.context,f.x,f.y);"mousedown"===c&&!0===b.capture?(s.capturedEventParam=b,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.documentElement.addEventListener("mouseup",this._mouseEventHandler,!1)):"mouseup"===c&&(b.chart.overlaidCanvas.releaseCapture? -b.chart.overlaidCanvas.releaseCapture():document.documentElement.removeEventListener("mouseup",this._mouseEventHandler,!1));break}else b=null;a.target.style.cursor=b&&b.cursor?b.cursor:this._defaultCursor}c=this.plotArea;if(f.xc.x2||f.yc.y2){this.toolTip&&this.toolTip.enabled?(this.toolTip.hide(),this.toolTip.dispatchEvent("hidden",{chart:this,toolTip:this.toolTip},this.toolTip)):this.resetOverlayedCanvas();for(h=0;hc.maximum&&(h=c.viewportMaximum/c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum/h,c.sessionVariables.newViewportMaximum=c.viewportMaximum/h,C=!0):c.viewportMinimumc.maximum&&(h=c.viewportMaximum-c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum-h,c.sessionVariables.newViewportMaximum=c.viewportMaximum-h,C=!0);else if((!e||2Math.abs(c)&&(this.panEnabled||this.zoomEnabled)){this.toolTip.hide();this.toolTip&&this.toolTip.enabled&&this.toolTip.dispatchEvent("hidden",{chart:this,toolTip:this.toolTip},this.toolTip);for(var g=0;gk)var w=k,k=t,t=w;if(p.scaleBreaks)for(w=0;!h&&w=k;if(isFinite(p.dataInfo.minDiff))if(w=p.getApparentDifference(t,k,null,!0),!(h||!(this.panEnabled&&p.scaleBreaks&&p.scaleBreaks._appliedBreaks.length)&& -(p.logarithmic&&wp.maximum))x.push(p),n.push({val1:t,val2:k}),d=!0;else if(!e){d=!1;break}}return{isValid:d,axesWithValidRange:x,axesRanges:n}};s.prototype.preparePlotArea=function(){var a=this.plotArea;!u&&(0c.lineCoordinates.x2?f.x2:c.lineCoordinates.x2;a.y2=f.y2>f.y1?f.y2:c.lineCoordinates.y2;a.width=a.x2-a.x1;a.height=a.y2-a.y1}this.axisY2&&0c.lineCoordinates.x2? -f.x2:c.lineCoordinates.x2,a.y2=f.y2>f.y1?f.y2:c.lineCoordinates.y2,a.width=a.x2-a.x1,a.height=a.y2-a.y1)}else f=this.layoutManager.getFreeSpace(),a.x1=f.x1,a.x2=f.x2,a.y1=f.y1,a.y2=f.y2,a.width=f.width,a.height=f.height;u||(a.canvas.width=a.width,a.canvas.height=a.height,a.canvas.style.left=a.x1+"px",a.canvas.style.top=a.y1+"px",(0c.x2||n.point.yc.y2+1)continue}else if("rangearea"===p||"rangesplinearea"===p){if(n.dataPoint.xe.viewportMaximum||Math.max.apply(null,n.dataPoint.y) -h.viewportMaximum)continue}else if(0<=p.indexOf("line")||0<=p.indexOf("area")||0<=p.indexOf("bubble")||0<=p.indexOf("scatter")){if(n.dataPoint.xe.viewportMaximum||n.dataPoint.yh.viewportMaximum)continue}else if(0<=p.indexOf("column")||"waterfall"===p||"error"===p&&!n.axisSwapped){if(n.dataPoint.xe.viewportMaximum||n.bounds.y1>c.y2||n.bounds.y2e.viewportMaximum||n.bounds.x1>c.x2||n.bounds.x2e.viewportMaximum||Math.max.apply(null,n.dataPoint.y)h.viewportMaximum)continue}else if(n.dataPoint.xe.viewportMaximum)continue;C=d=2;"horizontal"===q?(K=r.width,m=r.height):(m=r.width,K=r.height);if("normal"=== -this.plotInfo.axisPlacement){if(0<=p.indexOf("line")||0<=p.indexOf("area"))l="auto",d=4;else if(0<=p.indexOf("stacked"))"auto"===l&&(l="inside");else if("bubble"===p||"scatter"===p)l="inside";t=n.point.x-("horizontal"===q?K/2:K/2-w/2);"inside"!==l?(e=c.y1,h=c.y2,0n.point.y)):(k=n.point.y+w/2+d+b,k>h-m&&(k="auto"===l?Math.min(n.point.y,h)+w/2-m-d:h+w/2-m,A=kh-m-d&&("bubble"===p||"scatter"===p)&&(k=Math.min(n.point.y+d,c.y2-m-d))),k=Math.min(k,h))}else 0<=p.indexOf("line")||0<=p.indexOf("area")|| -0<=p.indexOf("scatter")?(l="auto",C=4):0<=p.indexOf("stacked")?"auto"===l&&(l="inside"):"bubble"===p&&(l="inside"),k=n.point.y+w/2-m/2+d,"inside"!==l?(e=c.x1,h=c.x2,0>z?(t=n.point.x-("horizontal"===q?K:K-w/2)-C-b,tn.point.x)):(t=n.point.x+("horizontal"===q?0:w/2)+C+b,t>h-K-C-b&&(t="auto"===l?Math.min(n.point.x,h)-("horizontal"===q?K:K/2)-C:h-K-C,A=tz?Math.max(n.bounds.x1,c.x1)+w/2+C:Math.min(n.bounds.x2,c.x2)-K/2-C+("horizontal"===q?0:w/2):(Math.max(n.bounds.x1,c.x1)+Math.min(n.bounds.x2,c.x2))/2+("horizontal"===q?0:w/2),t=0>z?Math.max(n.point.x,b)-("horizontal"===q?K/2:0):Math.min(n.point.x,b)-K/2,t=Math.max(t,e));"vertical"===q&&(k+=m-w/2);r.x=t;r.y=k;r.render(!0);y&&("inside"!==l&&(0>p.indexOf("bar")&&("error"!==p||!n.axisSwapped)&&n.point.x>c.x1&&n.point.xp.indexOf("column")&&("error"!==p||n.axisSwapped)&&n.point.y>c.y1&& -n.point.y=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var e=this.plotArea;c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();for(var h=[],g,d=0;da.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!s)))if("number"!==typeof n[v].y)0n[v].y===a.axisY.reversed?1:-1,color:w})}c.stroke();u&&b.stroke()}}r.drawMarkers(h);u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation= -"source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),b.beginPath());c.restore();c.beginPath();return{source:f,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear,animationBase:0}}};s.prototype.renderStepLine= -function(a){var f=a.targetCanvasCtx||this.plotArea.ctx,c=u?this._preRenderCtx:f;if(!(0>=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var e=this.plotArea;c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();for(var h=[],g,d=0;da.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!s)))if("number"!==typeof n[v].y)0< -v&&!(m.connectNullData||s||ha)&&(c.stroke(),u&&b.stroke()),s=!0;else{var E=q;y=a.axisX.convertValueToPixel(y);q=a.axisY.convertValueToPixel(n[v].y);var B=m.dataPointIds[v];this._eventManager.objectMap[B]={id:B,objectType:"dataPoint",dataSeriesIndex:K,dataPointIndex:v,x1:y,y1:q};ha||s?(!ha&&m.connectNullData?(c.setLineDash&&(m.options.nullDataLineDashType||p===m.lineDashType&&m.lineDashType!==m.nullDataLineDashType)&&(c.stroke(),c.beginPath(),c.moveTo(g.x,g.y),p=m.nullDataLineDashType,c.setLineDash(t)), -c.lineTo(y,E),c.lineTo(y,q),u&&(b.lineTo(y,E),b.lineTo(y,q))):(c.beginPath(),c.moveTo(y,q),u&&(b.beginPath(),b.moveTo(y,q))),s=ha=!1):(c.lineTo(y,E),u&&b.lineTo(y,E),c.lineTo(y,q),u&&b.lineTo(y,q),0==v%500&&(c.stroke(),c.beginPath(),c.moveTo(y,q),u&&(b.stroke(),b.beginPath(),b.moveTo(y,q))));g={x:y,y:q};vn[v].y===a.axisY.reversed?1:-1,color:w})}c.stroke(); -u&&b.stroke()}}r.drawMarkers(h);u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),b.beginPath());c.restore();c.beginPath();return{source:f,dest:this.plotArea.ctx, -animationCallback:x.xClipAnimation,easingFunction:x.easing.linear,animationBase:0}}};s.prototype.renderSpline=function(a){function f(a){a=G(a,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx;b.save(); -var h=this.plotArea;b.beginPath();b.rect(h.x1,h.y1,h.width,h.height);b.clip();for(var g=[],d=0;da.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!y)))if("number"!==typeof n[ha].y)0n[ha].y===a.axisY.reversed?1:-1,color:w});y=!1}f(q)}r.drawMarkers(g); -u&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(h.x1,h.y1,h.width,h.height),e.beginPath());b.restore();b.beginPath();return{source:c,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation, -easingFunction:x.easing.linear,animationBase:0}}};s.prototype.renderColumn=function(a){var f=a.targetCanvasCtx||this.plotArea.ctx,c=u?this._preRenderCtx:f;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=0,g,d,K,m=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,n=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth: -Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.dataPointWidth=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&h>n&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,n));!this.dataPointMaxWidth&&(this.dataPointMinWidth&& -nn&&(p=n);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(n=0;na.axisX.dataInfo.viewPortMax)&&"number"===typeof w[h].y){g=a.axisX.convertValueToPixel(K);d=a.axisY.convertValueToPixel(w[h].y);g=a.axisX.reversed?g+a.plotType.totalDataSeries*p/2-(a.previousDataSeriesCount+n)*p<<0:g-a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+n)*p<<0;var r=a.axisX.reversed?g-p<<0:g+p<<0,v;0<=w[h].y?v=m:(v=d,d=m);d>v&&(b=d,d=v,v=b);b=w[h].color?w[h].color:k._colorSet[h%k._colorSet.length]; -ba(c,g,d,r,v,b,0,null,l&&0<=w[h].y,0>w[h].y&&l,!1,!1,k.fillOpacity);b=k.dataPointIds[h];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:t,dataPointIndex:h,x1:g,y1:d,x2:r,y2:v};b=R(b);u&&ba(this._eventManager.ghostCtx,g,d,r,v,b,0,null,!1,!1,!1,!1);(w[h].indexLabel||k.indexLabel||w[h].indexLabelFormatter||k.indexLabelFormatter)&&this._indexLabels.push({chartType:"column",dataPoint:w[h],dataSeries:k,point:{x:g+(r-g)/2,y:0>w[h].y===a.axisY.reversed?d:v},direction:0>w[h].y=== -a.axisY.reversed?1:-1,bounds:{x1:g,y1:Math.min(d,v),x2:r,y2:Math.max(d,v)},color:b})}}u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore()); -c.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:x.yScaleAnimation,easingFunction:x.easing.easeOutQuart,animationBase:ma.axisY.bounds.y2?a.axisY.bounds.y2:m}}};s.prototype.renderStackedColumn=function(a){var f=a.targetCanvasCtx||this.plotArea.ctx,c=u?this._preRenderCtx:f;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=[],g=[],d=[],K=[],m=0,n,p,t=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),m= -this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;n=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0;var k=a.axisX.dataInfo.minDiff;isFinite(k)||(k=0.3*Math.abs(a.axisX.range));k=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(k)/Math.log(a.axisX.range):Math.abs(k)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&& -m>n&&(m=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,n));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&nn&&(k=n);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var w=0;wa.axisX.dataInfo.viewPortMax)&&"number"===typeof v[m].y){n=a.axisX.convertValueToPixel(b);var s=n-a.plotType.plotUnits.length*k/2+a.index*k<<0,T=s+k<<0,E;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=v[m].y)K[b]=v[m].y+(K[b]?K[b]:0),E=a.axisY.convertValueToPixel(K[b]),p="undefined"!==typeof g[b]?g[b]:t,g[b]=E;else if(p=a.axisY.convertValueToPixel(v[m].y),0<=v[m].y){var B="undefined"!==typeof h[b]?h[b]:0;p-=B;E=t-B;h[b]=B+(E-p)}else B=g[b]?g[b]:0,E=p+B,p=t+B,g[b]=B+(E-p);b=v[m].color?v[m].color:r._colorSet[m%r._colorSet.length]; -ba(c,s,p,T,E,b,0,null,q&&0<=v[m].y,0>v[m].y&&q,!1,!1,r.fillOpacity);b=r.dataPointIds[m];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:l,dataPointIndex:m,x1:s,y1:p,x2:T,y2:E};b=R(b);u&&ba(this._eventManager.ghostCtx,s,p,T,E,b,0,null,!1,!1,!1,!1);(v[m].indexLabel||r.indexLabel||v[m].indexLabelFormatter||r.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedColumn",dataPoint:v[m],dataSeries:r,point:{x:n,y:0<=v[m].y?p:E},direction:0>v[m].y===a.axisY.reversed? -1:-1,bounds:{x1:s,y1:Math.min(p,E),x2:T,y2:Math.max(p,E)},color:b})}}}u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore()); -c.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:x.yScaleAnimation,easingFunction:x.easing.easeOutQuart,animationBase:ta.axisY.bounds.y2?a.axisY.bounds.y2:t}}};s.prototype.renderStackedColumn100=function(a){var f=a.targetCanvasCtx||this.plotArea.ctx,c=u?this._preRenderCtx:f;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=[],g=[],d=[],K=[],m=0,n,p,t=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0), -m=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;n=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0;var k=a.axisX.dataInfo.minDiff;isFinite(k)||(k=0.3*Math.abs(a.axisX.range));k=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(k)/Math.log(a.axisX.range):Math.abs(k)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&& -m>n&&(m=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,n));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&nn&&(k=n);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var w=0;wa.axisX.dataInfo.viewPortMax)&&"number"===typeof v[m].y){n=a.axisX.convertValueToPixel(b);p=0!==a.dataPointYSums[b]?100*(v[m].y/a.dataPointYSums[b]):0;var s=n-a.plotType.plotUnits.length*k/2+a.index*k<<0,T=s+k<<0,E;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=d[b])continue;p=a.axisY.convertValueToPixel(d[b]);E=h[b]?h[b]:t;h[b]=p}else if(a.axisY.scaleBreaks&&0=v[m].y)K[b]=p+("undefined"!==typeof K[b]?K[b]:0),E=a.axisY.convertValueToPixel(K[b]),p=g[b]?g[b]:t,g[b]=E;else if(p=a.axisY.convertValueToPixel(p),0<=v[m].y){var B="undefined"!==typeof h[b]?h[b]:0;p-=B;E=t-B;a.dataSeriesIndexes.length-1===w&&1>=Math.abs(e.y1-p)&&(p=e.y1);h[b]=B+(E-p)}else B="undefined"!== -typeof g[b]?g[b]:0,E=p+B,p=t+B,a.dataSeriesIndexes.length-1===w&&1>=Math.abs(e.y2-E)&&(E=e.y2),g[b]=B+(E-p);b=v[m].color?v[m].color:l._colorSet[m%l._colorSet.length];ba(c,s,p,T,E,b,0,null,q&&0<=v[m].y,0>v[m].y&&q,!1,!1,l.fillOpacity);b=l.dataPointIds[m];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:m,x1:s,y1:p,x2:T,y2:E};b=R(b);u&&ba(this._eventManager.ghostCtx,s,p,T,E,b,0,null,!1,!1,!1,!1);(v[m].indexLabel||l.indexLabel||v[m].indexLabelFormatter||l.indexLabelFormatter)&& -this._indexLabels.push({chartType:"stackedColumn100",dataPoint:v[m],dataSeries:l,point:{x:n,y:0<=v[m].y?p:E},direction:0>v[m].y===a.axisY.reversed?1:-1,bounds:{x1:s,y1:Math.min(p,E),x2:T,y2:Math.max(p,E)},color:b})}}u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&& -this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:x.yScaleAnimation,easingFunction:x.easing.easeOutQuart,animationBase:ta.axisY.bounds.y2?a.axisY.bounds.y2:t}}};s.prototype.renderBar=function(a){var f=a.targetCanvasCtx||this.plotArea.ctx,c=u?this._preRenderCtx:f;if(!(0>=a.dataSeriesIndexes.length)){var b= -null,e=this.plotArea,h=0,g,d,K,m=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,n=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.options.dataPointWidth? -this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&h>n&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,n));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&nn&&(p=n);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height); -c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(n=0;na.axisX.dataInfo.viewPortMax)&&"number"===typeof w[h].y){d=a.axisX.convertValueToPixel(K); -g=a.axisY.convertValueToPixel(w[h].y);d=a.axisX.reversed?d+a.plotType.totalDataSeries*p/2-(a.previousDataSeriesCount+n)*p<<0:d-a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+n)*p<<0;var r=a.axisX.reversed?d-p<<0:d+p<<0,v;0<=w[h].y?v=m:(v=g,g=m);b=w[h].color?w[h].color:k._colorSet[h%k._colorSet.length];ba(c,v,d,g,r,b,0,null,l,!1,!1,!1,k.fillOpacity);b=k.dataPointIds[h];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:t,dataPointIndex:h,x1:v,y1:d,x2:g,y2:r};b= -R(b);u&&ba(this._eventManager.ghostCtx,v,d,g,r,b,0,null,!1,!1,!1,!1);(w[h].indexLabel||k.indexLabel||w[h].indexLabelFormatter||k.indexLabelFormatter)&&this._indexLabels.push({chartType:"bar",dataPoint:w[h],dataSeries:k,point:{x:0<=w[h].y?g:v,y:d+(r-d)/2},direction:0>w[h].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(v,g),y1:d,x2:Math.max(v,g),y2:r},color:b})}}}u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas, -0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:x.xScaleAnimation,easingFunction:x.easing.easeOutQuart,animationBase:ma.axisY.bounds.x2?a.axisY.bounds.x2: -m}}};s.prototype.renderStackedBar=function(a){var f=a.targetCanvasCtx||this.plotArea.ctx,c=u?this._preRenderCtx:f;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=[],g=[],d=[],K=[],m=0,n,p,t=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),m=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;p=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<< -0;var k=a.axisX.dataInfo.minDiff;isFinite(k)||(k=0.3*Math.abs(a.axisX.range));k=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(k)/Math.log(a.axisX.range):Math.abs(k)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&m>p&&(m=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,p));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&pp&&(k=p);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var w=0;wa.axisX.dataInfo.viewPortMax)&&"number"===typeof v[m].y){p=a.axisX.convertValueToPixel(b);var s=p-a.plotType.plotUnits.length*k/2+a.index*k<<0,T=s+k<<0,E;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=v[m].y)K[b]=v[m].y+(K[b]?K[b]:0),n=g[b]? -g[b]:t,g[b]=E=a.axisY.convertValueToPixel(K[b]);else if(n=a.axisY.convertValueToPixel(v[m].y),0<=v[m].y){var B=h[b]?h[b]:0;E=t+B;n+=B;h[b]=B+(n-E)}else B=g[b]?g[b]:0,E=n-B,n=t-B,g[b]=B+(n-E);b=v[m].color?v[m].color:l._colorSet[m%l._colorSet.length];ba(c,E,s,n,T,b,0,null,q,!1,!1,!1,l.fillOpacity);b=l.dataPointIds[m];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:r,dataPointIndex:m,x1:E,y1:s,x2:n,y2:T};b=R(b);u&&ba(this._eventManager.ghostCtx,E,s,n,T,b,0,null,!1,!1,!1, -!1);(v[m].indexLabel||l.indexLabel||v[m].indexLabelFormatter||l.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar",dataPoint:v[m],dataSeries:l,point:{x:0<=v[m].y?n:E,y:p},direction:0>v[m].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(E,n),y1:s,x2:Math.max(E,n),y2:T},color:b})}}}u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&& -c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:x.xScaleAnimation,easingFunction:x.easing.easeOutQuart,animationBase:ta.axisY.bounds.x2?a.axisY.bounds.x2:t}}};s.prototype.renderStackedBar100=function(a){var f= -a.targetCanvasCtx||this.plotArea.ctx,c=u?this._preRenderCtx:f;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=[],g=[],d=[],K=[],m=0,n,p,t=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),m=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;p=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0;var k=a.axisX.dataInfo.minDiff;isFinite(k)|| -(k=0.3*Math.abs(a.axisX.range));k=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(k)/Math.log(a.axisX.range):Math.abs(k)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&m>p&&(m=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,p));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&pp&&(k=p);c.save();u&&this._eventManager.ghostCtx.save(); -c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var w=0;wa.axisX.dataInfo.viewPortMax)&& -"number"===typeof v[m].y){p=a.axisX.convertValueToPixel(b);var s;s=0!==a.dataPointYSums[b]?100*(v[m].y/a.dataPointYSums[b]):0;var T=p-a.plotType.plotUnits.length*k/2+a.index*k<<0,E=T+k<<0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=d[b])continue;s=h[b]?h[b]:t;h[b]=n=a.axisY.convertValueToPixel(d[b])}else if(a.axisY.scaleBreaks&&0=v[m].y)K[b]=s+(K[b]?K[b]:0),n=g[b]?g[b]: -t,g[b]=s=a.axisY.convertValueToPixel(K[b]);else if(n=a.axisY.convertValueToPixel(s),0<=v[m].y){var B=h[b]?h[b]:0;s=t+B;n+=B;a.dataSeriesIndexes.length-1===w&&1>=Math.abs(e.x2-n)&&(n=e.x2);h[b]=B+(n-s)}else B=g[b]?g[b]:0,s=n-B,n=t-B,a.dataSeriesIndexes.length-1===w&&1>=Math.abs(e.x1-s)&&(s=e.x1),g[b]=B+(n-s);b=v[m].color?v[m].color:r._colorSet[m%r._colorSet.length];ba(c,s,T,n,E,b,0,null,q,!1,!1,!1,r.fillOpacity);b=r.dataPointIds[m];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:l, -dataPointIndex:m,x1:s,y1:T,x2:n,y2:E};b=R(b);u&&ba(this._eventManager.ghostCtx,s,T,n,E,b,0,null,!1,!1,!1,!1);(v[m].indexLabel||r.indexLabel||v[m].indexLabelFormatter||r.indexLabelFormatter)&&this._indexLabels.push({chartType:"stackedBar100",dataPoint:v[m],dataSeries:r,point:{x:0<=v[m].y?n:s,y:p},direction:0>v[m].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(s,n),y1:T,x2:Math.max(s,n),y2:E},color:b})}}}u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop", -a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:x.xScaleAnimation,easingFunction:x.easing.easeOutQuart,animationBase:ta.axisY.bounds.x2?a.axisY.bounds.x2:t}}};s.prototype.renderArea=function(a){var f,c;function b(){E&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?T=s:0>a.axisY.viewportMaximum?T=d.y1:0=a.dataSeriesIndexes.length)){var g=this._eventManager.ghostCtx,d=a.axisY.lineCoordinates,K=[],m=this.plotArea,n;h.save();u&&g.save();h.beginPath();h.rect(m.x1,m.y1,m.width,m.height);h.clip();u&&(g.beginPath(),g.rect(m.x1,m.y1,m.width,m.height),g.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!ga)))if("number"!==typeof w[l].y)k.connectNullData||(ga||f)||b(),ga=!0;else{q=a.axisX.convertValueToPixel(y);v=a.axisY.convertValueToPixel(w[l].y);f||ga?(!f&&k.connectNullData?(h.setLineDash&&(k.options.nullDataLineDashType||c===k.lineDashType&&k.lineDashType!==k.nullDataLineDashType)&&(f=q,c=v,q=n.x,v=n.y,b(),h.moveTo(n.x,n.y),q=f,v=c,E=n,c=k.nullDataLineDashType,h.setLineDash(P)),h.lineTo(q,v),u&&g.lineTo(q,v)): -(h.beginPath(),h.moveTo(q,v),u&&(g.beginPath(),g.moveTo(q,v)),E={x:q,y:v}),ga=f=!1):(h.lineTo(q,v),u&&g.lineTo(q,v),0==l%250&&b());n={x:q,y:v};lw[l].y===a.axisY.reversed?1:-1,color:B})}b();r.drawMarkers(K)}}u&&(e.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),h.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&h.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&h.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),h.clearRect(m.x1,m.y1,m.width,m.height),this._eventManager.ghostCtx.restore());h.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear, -animationBase:0}}};s.prototype.renderSplineArea=function(a){function f(){var c=G(y,2);if(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum? -q=l:0>a.axisY.viewportMaximum?q=h.y1:0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,h=a.axisY.lineCoordinates,g=[],d=this.plotArea;b.save();u&&e.save();b.beginPath();b.rect(d.x1, -d.y1,d.width,d.height);b.clip();u&&(e.beginPath(),e.rect(d.x1,d.y1,d.width,d.height),e.clip());for(var K=0;Ka.axisX.dataInfo.viewPortMax&&(!n.connectNullData||!w)))if("number"!==typeof p[t].y)0 -p[t].y===a.axisY.reversed?1:-1,color:s});w=!1}f();r.drawMarkers(g)}}u&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.restore()); -b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear,animationBase:0}}};s.prototype.renderStepArea=function(a){var f,c;function b(){E&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?T=s:0>a.axisY.viewportMaximum?T=d.y1:0=a.dataSeriesIndexes.length)){var g=this._eventManager.ghostCtx,d=a.axisY.lineCoordinates,K=[],m=this.plotArea,n;h.save();u&&g.save();h.beginPath();h.rect(m.x1,m.y1,m.width,m.height);h.clip();u&&(g.beginPath(),g.rect(m.x1,m.y1,m.width,m.height),g.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!c))){var ca=v;"number"!==typeof w[l].y?(k.connectNullData||(c||f)||b(),c=!0):(q=a.axisX.convertValueToPixel(y),v=a.axisY.convertValueToPixel(w[l].y),f||c?(!f&&k.connectNullData?(h.setLineDash&&(k.options.nullDataLineDashType||P===k.lineDashType&&k.lineDashType!==k.nullDataLineDashType)&&(f=q,c=v,q=n.x,v=n.y, -b(),h.moveTo(n.x,n.y),q=f,v=c,E=n,P=k.nullDataLineDashType,h.setLineDash(da)),h.lineTo(q,ca),h.lineTo(q,v),u&&(g.lineTo(q,ca),g.lineTo(q,v))):(h.beginPath(),h.moveTo(q,v),u&&(g.beginPath(),g.moveTo(q,v)),E={x:q,y:v}),c=f=!1):(h.lineTo(q,ca),u&&g.lineTo(q,ca),h.lineTo(q,v),u&&g.lineTo(q,v),0==l%250&&b()),n={x:q,y:v},lw[l].y===a.axisY.reversed?1:-1,color:B}))}b();r.drawMarkers(K)}}u&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),h.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&h.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&h.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),h.clearRect(m.x1, -m.y1,m.width,m.height),this._eventManager.ghostCtx.restore());h.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear,animationBase:0}}};s.prototype.renderStackedArea=function(a){function f(){if(!(1>m.length)){for(0=a.dataSeriesIndexes.length)){var e=null,h=null,g=[],d=this.plotArea,K=[],m=[],n=[],p=[],t=0,k,w,l=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),q=this._eventManager.ghostCtx,v,y,s;u&&q.beginPath();b.save();u&&q.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();u&&(q.beginPath(),q.rect(d.x1,d.y1,d.width,d.height),q.clip());for(var e=[],T=0;Ta.axisX.dataInfo.viewPortMax&&(!B.connectNullData||!ca)))if("number"!==typeof na.y)B.connectNullData||(ca||y)||f(),ca=!0;else{k=a.axisX.convertValueToPixel(h);var ua=K[h]?K[h]:0;if(a.axisY.logarithmic|| -a.axisY.scaleBreaks&&0=p[h]&&a.axisY.logarithmic)continue;w=a.axisY.convertValueToPixel(p[h])}else w=a.axisY.convertValueToPixel(na.y),w-=ua;m.push({x:k,y:l-ua});K[h]=l-w;y||ca?(!y&&B.connectNullData?(b.setLineDash&&(B.options.nullDataLineDashType||s===B.lineDashType&&B.lineDashType!==B.nullDataLineDashType)&&(y=m.pop(),s=m[m.length-1],f(),b.moveTo(v.x,v.y),m.push(s),m.push(y),s=B.nullDataLineDashType,b.setLineDash(da)),b.lineTo(k, -w),u&&q.lineTo(k,w)):(b.beginPath(),b.moveTo(k,w),u&&(q.beginPath(),q.moveTo(k,w))),ca=y=!1):(b.lineTo(k,w),u&&q.lineTo(k,w),0==t%250&&(f(),b.moveTo(k,w),u&&q.moveTo(k,w),m.push({x:k,y:l-ua})));v={x:k,y:w};tz[t].y===a.axisY.reversed?1:-1,color:e})}}f();b.moveTo(k,w);u&&q.moveTo(k,w)}delete B.dataPointIndexes}r.drawMarkers(g);u&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height), -this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(d.x1,d.y1,d.width,d.height),q.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear,animationBase:0}}};s.prototype.renderStackedArea100=function(a){function f(){for(0=a.dataSeriesIndexes.length)){var e=null,h=null,g=this.plotArea,d=[],l=[],m=[],n=[],p=[],t=0,k,w,q,s,v,y=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),V=this._eventManager.ghostCtx;b.save();u&&V.save();b.beginPath();b.rect(g.x1,g.y1,g.width,g.height);b.clip();u&&(V.beginPath(),V.rect(g.x1,g.y1,g.width,g.height),V.clip()); -for(var e=[],T=0;Ta.axisX.dataInfo.viewPortMax&&(!B.connectNullData||!ca)))if("number"!==typeof na.y)B.connectNullData|| -(ca||s)||f(),ca=!0;else{var ua;ua=0!==a.dataPointYSums[h]?100*(na.y/a.dataPointYSums[h]):0;k=a.axisX.convertValueToPixel(h);var D=l[h]?l[h]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=p[h]&&a.axisY.logarithmic)continue;w=a.axisY.convertValueToPixel(p[h])}else w=a.axisY.convertValueToPixel(ua),w-=D;m.push({x:k,y:y-D});l[h]=y-w;s||ca?(!s&&B.connectNullData?(b.setLineDash&&(B.options.nullDataLineDashType||v===B.lineDashType&& -B.lineDashType!==B.nullDataLineDashType)&&(s=m.pop(),v=m[m.length-1],f(),b.moveTo(q.x,q.y),m.push(v),m.push(s),v=B.nullDataLineDashType,b.setLineDash(da)),b.lineTo(k,w),u&&V.lineTo(k,w)):(b.beginPath(),b.moveTo(k,w),u&&(V.beginPath(),V.moveTo(k,w))),ca=s=!1):(b.lineTo(k,w),u&&V.lineTo(k,w),0==t%250&&(f(),b.moveTo(k,w),u&&V.moveTo(k,w),m.push({x:k,y:y-D})));q={x:k,y:w};tz[t].y===a.axisY.reversed?1:-1,color:e})}}f();b.moveTo(k,w);u&&V.moveTo(k,w)}delete B.dataPointIndexes}r.drawMarkers(d);u&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation= -"source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(g.x1,g.y1,g.width,g.height),V.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear,animationBase:0}}};s.prototype.renderBubble=function(a){var f= -a.targetCanvasCtx||this.plotArea.ctx,c=u?this._preRenderCtx:f;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,e=0,h,g;c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var d=-Infinity,l=Infinity,m=0;ma.axisX.dataInfo.viewPortMax||"undefined"===typeof t[e].z||(k=t[e].z,k>d&&(d=k),ka.axisX.dataInfo.viewPortMax)&&"number"===typeof t[e].y){h=a.axisX.convertValueToPixel(h);g=a.axisY.convertValueToPixel(t[e].y);var k=t[e].z,s=2*Math.max(Math.sqrt((d===l?q/2:w+(q-w)/(d-l)*(k-l))/Math.PI)<<0,1),k=p.getMarkerProperties(e,c);k.size=s;c.globalAlpha=p.fillOpacity;r.drawMarker(h,g,c,k.type,k.size,k.color,k.borderColor,k.borderThickness);c.globalAlpha=1;var v=p.dataPointIds[e];this._eventManager.objectMap[v]={id:v,objectType:"dataPoint",dataSeriesIndex:n,dataPointIndex:e,x1:h,y1:g,size:s}; -s=R(v);u&&r.drawMarker(h,g,this._eventManager.ghostCtx,k.type,k.size,s,s,k.borderThickness);(t[e].indexLabel||p.indexLabel||t[e].indexLabelFormatter||p.indexLabelFormatter)&&this._indexLabels.push({chartType:"bubble",dataPoint:t[e],dataSeries:p,point:{x:h,y:g},direction:1,bounds:{x1:h-k.size/2,y1:g-k.size/2,x2:h+k.size/2,y2:g+k.size/2},color:null})}u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas, -0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());c.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad,animationBase:0}}};s.prototype.renderScatter=function(a){var f=a.targetCanvasCtx||this.plotArea.ctx, -c=u?this._preRenderCtx:f;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,e=0,h,g;c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var d=0;da.axisX.dataInfo.viewPortMax)&&"number"===typeof n[e].y){h=a.axisX.convertValueToPixel(h);g=a.axisY.convertValueToPixel(n[e].y);var k=m.getMarkerProperties(e,h,g,c);c.globalAlpha=m.fillOpacity;r.drawMarker(k.x,k.y,k.ctx,k.type,k.size,k.color,k.borderColor,k.borderThickness);c.globalAlpha=1;Math.sqrt((p-h)*(p-h)+(t-g)*(t-g))Math.min(this.plotArea.width, -this.plotArea.height)||(p=m.dataPointIds[e],this._eventManager.objectMap[p]={id:p,objectType:"dataPoint",dataSeriesIndex:l,dataPointIndex:e,x1:h,y1:g},p=R(p),u&&r.drawMarker(k.x,k.y,this._eventManager.ghostCtx,k.type,k.size,p,p,k.borderThickness),(n[e].indexLabel||m.indexLabel||n[e].indexLabelFormatter||m.indexLabelFormatter)&&this._indexLabels.push({chartType:"scatter",dataPoint:n[e],dataSeries:m,point:{x:h,y:g},direction:1,bounds:{x1:h-k.size/2,y1:g-k.size/2,x2:h+k.size/2,y2:g+k.size/2},color:null}), -p=h,t=g)}}}u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());c.restore();return{source:f,dest:this.plotArea.ctx, -animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad,animationBase:0}}};s.prototype.renderCandlestick=function(a){var f=a.targetCanvasCtx||this.plotArea.ctx,c=u?this._preRenderCtx:f,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e=null,h=null,d=this.plotArea,l=0,q,m,n,p,t,k,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,h=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth? -this.dataPointWidth:0.015*this.width,w=a.axisX.dataInfo.minDiff;isFinite(w)||(w=0.3*Math.abs(a.axisX.range));w=this.options.dataPointWidth?this.dataPointWidth:0.7*d.width*(a.axisX.logarithmic?Math.log(w)/Math.log(a.axisX.range):Math.abs(w)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&e>h&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(w=h);c.save();u&&b.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();u&&(b.beginPath(),b.rect(d.x1,d.y1,d.width,d.height),b.clip());for(var r=0;ra.axisX.dataInfo.viewPortMax)&&!g(y[l].y)&&y[l].y.length&&"number"===typeof y[l].y[0]&& -"number"===typeof y[l].y[1]&&"number"===typeof y[l].y[2]&&"number"===typeof y[l].y[3]){q=a.axisX.convertValueToPixel(k);m=a.axisY.convertValueToPixel(y[l].y[0]);n=a.axisY.convertValueToPixel(y[l].y[1]);p=a.axisY.convertValueToPixel(y[l].y[2]);t=a.axisY.convertValueToPixel(y[l].y[3]);var T=q-w/2<<0,E=T+w<<0,h=v.options.fallingColor?v.fallingColor:v._colorSet[0],e=y[l].color?y[l].color:v._colorSet[0],B=Math.round(Math.max(1,0.15*w)),z=0===B%2?0:0.5,A=v.dataPointIds[l];this._eventManager.objectMap[A]= -{id:A,objectType:"dataPoint",dataSeriesIndex:s,dataPointIndex:l,x1:T,y1:m,x2:E,y2:n,x3:q,y3:p,x4:q,y4:t,borderThickness:B,color:e};c.strokeStyle=e;c.beginPath();c.lineWidth=B;b.lineWidth=Math.max(B,4);"candlestick"===v.type?(c.moveTo(q-z,n),c.lineTo(q-z,Math.min(m,t)),c.stroke(),c.moveTo(q-z,Math.max(m,t)),c.lineTo(q-z,p),c.stroke(),ba(c,T,Math.min(m,t),E,Math.max(m,t),y[l].y[0]<=y[l].y[3]?v.risingColor:h,B,e,V,V,!1,!1,v.fillOpacity),u&&(e=R(A),b.strokeStyle=e,b.moveTo(q-z,n),b.lineTo(q-z,Math.min(m, -t)),b.stroke(),b.moveTo(q-z,Math.max(m,t)),b.lineTo(q-z,p),b.stroke(),ba(b,T,Math.min(m,t),E,Math.max(m,t),e,0,null,!1,!1,!1,!1))):"ohlc"===v.type&&(c.moveTo(q-z,n),c.lineTo(q-z,p),c.stroke(),c.beginPath(),c.moveTo(q,m),c.lineTo(T,m),c.stroke(),c.beginPath(),c.moveTo(q,t),c.lineTo(E,t),c.stroke(),u&&(e=R(A),b.strokeStyle=e,b.moveTo(q-z,n),b.lineTo(q-z,p),b.stroke(),b.beginPath(),b.moveTo(q,m),b.lineTo(T,m),b.stroke(),b.beginPath(),b.moveTo(q,t),b.lineTo(E,t),b.stroke()));(y[l].indexLabel||v.indexLabel|| -y[l].indexLabelFormatter||v.indexLabelFormatter)&&this._indexLabels.push({chartType:v.type,dataPoint:y[l],dataSeries:v,point:{x:T+(E-T)/2,y:a.axisY.reversed?p:n},direction:1,bounds:{x1:T,y1:Math.min(n,p),x2:E,y2:Math.max(n,p)},color:e})}}u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height), -this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(d.x1,d.y1,d.width,d.height),b.restore());c.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad,animationBase:0}}};s.prototype.renderBoxAndWhisker=function(a){var f=a.targetCanvasCtx||this.plotArea.ctx,c=u?this._preRenderCtx:f,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e=null,h=this.plotArea, -d=0,l,q,m,n,p,t,k,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,d=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.015*this.width,w=a.axisX.dataInfo.minDiff;isFinite(w)||(w=0.3*Math.abs(a.axisX.range));w=this.options.dataPointWidth?this.dataPointWidth:0.7*h.width*(a.axisX.logarithmic?Math.log(w)/Math.log(a.axisX.range):Math.abs(w)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&e> -d&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,d));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&dd&&(w=d);c.save();u&&b.save();c.beginPath();c.rect(h.x1,h.y1,h.width,h.height);c.clip();u&&(b.beginPath(),b.rect(h.x1,h.y1,h.width,h.height),b.clip());for(var r=!1,r=!!a.axisY.reversed,s=0;sa.axisX.dataInfo.viewPortMax)&&!g(V[d].y)&&V[d].y.length&&"number"===typeof V[d].y[0]&&"number"===typeof V[d].y[1]&&"number"===typeof V[d].y[2]&&"number"===typeof V[d].y[3]&&"number"===typeof V[d].y[4]&&5===V[d].y.length){l=a.axisX.convertValueToPixel(k);q=a.axisY.convertValueToPixel(V[d].y[0]);m=a.axisY.convertValueToPixel(V[d].y[1]);n=a.axisY.convertValueToPixel(V[d].y[2]); -p=a.axisY.convertValueToPixel(V[d].y[3]);t=a.axisY.convertValueToPixel(V[d].y[4]);var E=l-w/2<<0,B=l+w/2<<0,e=V[d].color?V[d].color:y._colorSet[0],A=Math.round(Math.max(1,0.15*w)),D=0===A%2?0:0.5,P=V[d].whiskerColor?V[d].whiskerColor:V[d].color?y.whiskerColor?y.whiskerColor:V[d].color:y.whiskerColor?y.whiskerColor:e,da="number"===typeof V[d].whiskerThickness?V[d].whiskerThickness:"number"===typeof y.options.whiskerThickness?y.whiskerThickness:A,ga=V[d].whiskerDashType?V[d].whiskerDashType:y.whiskerDashType, -ca=g(V[d].whiskerLength)?g(y.options.whiskerLength)?w:y.whiskerLength:V[d].whiskerLength,ca="number"===typeof ca?0>=ca?0:ca>=w?w:ca:"string"===typeof ca?parseInt(ca)*w/100>w?w:parseInt(ca)*w/100:w,na=1===Math.round(da)%2?0.5:0,ua=V[d].stemColor?V[d].stemColor:V[d].color?y.stemColor?y.stemColor:V[d].color:y.stemColor?y.stemColor:e,F="number"===typeof V[d].stemThickness?V[d].stemThickness:"number"===typeof y.options.stemThickness?y.stemThickness:A,H=1===Math.round(F)%2?0.5:0,G=V[d].stemDashType?V[d].stemDashType: -y.stemDashType,L=V[d].lineColor?V[d].lineColor:V[d].color?y.lineColor?y.lineColor:V[d].color:y.lineColor?y.lineColor:e,I="number"===typeof V[d].lineThickness?V[d].lineThickness:"number"===typeof y.options.lineThickness?y.lineThickness:A,O=V[d].lineDashType?V[d].lineDashType:y.lineDashType,S=1===Math.round(I)%2?0.5:0,Z=y.upperBoxColor,N=y.lowerBoxColor,M=g(y.options.fillOpacity)?1:y.fillOpacity,U=y.dataPointIds[d];this._eventManager.objectMap[U]={id:U,objectType:"dataPoint",dataSeriesIndex:v,dataPointIndex:d, -x1:E,y1:q,x2:B,y2:m,x3:l,y3:n,x4:l,y4:p,y5:t,borderThickness:A,color:e,stemThickness:F,stemColor:ua,whiskerThickness:da,whiskerLength:ca,whiskerColor:P,lineThickness:I,lineColor:L};c.save();0=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=0,d,l,q,h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth: -1;d=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.03*this.width;var m=a.axisX.dataInfo.minDiff;isFinite(m)||(m=0.3*Math.abs(a.axisX.range));m=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(m)/Math.log(a.axisX.range):Math.abs(m)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&h>d&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,d));!this.dataPointMaxWidth&& -(this.dataPointMinWidth&&dd&&(m=d);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var n=0;na.axisX.dataInfo.viewPortMax)&&!g(k[h].y)&&k[h].y.length&&"number"===typeof k[h].y[0]&&"number"===typeof k[h].y[1]){b=a.axisX.convertValueToPixel(q);d=a.axisY.convertValueToPixel(k[h].y[0]);l=a.axisY.convertValueToPixel(k[h].y[1]);var r=a.axisX.reversed?b+a.plotType.totalDataSeries*m/2-(a.previousDataSeriesCount+n)*m<<0:b-a.plotType.totalDataSeries*m/2+(a.previousDataSeriesCount+ -n)*m<<0,s=a.axisX.reversed?r-m<<0:r+m<<0,b=k[h].color?k[h].color:t._colorSet[h%t._colorSet.length];if(d>l){var v=d;d=l;l=v}v=t.dataPointIds[h];this._eventManager.objectMap[v]={id:v,objectType:"dataPoint",dataSeriesIndex:p,dataPointIndex:h,x1:r,y1:d,x2:s,y2:l};ba(c,r,d,s,l,b,0,b,w,w,!1,!1,t.fillOpacity);b=R(v);u&&ba(this._eventManager.ghostCtx,r,d,s,l,b,0,null,!1,!1,!1,!1);if(k[h].indexLabel||t.indexLabel||k[h].indexLabelFormatter||t.indexLabelFormatter)this._indexLabels.push({chartType:"rangeColumn", -dataPoint:k[h],dataSeries:t,indexKeyword:0,point:{x:r+(s-r)/2,y:k[h].y[1]>=k[h].y[0]?l:d},direction:k[h].y[1]>=k[h].y[0]?-1:1,bounds:{x1:r,y1:Math.min(d,l),x2:s,y2:Math.max(d,l)},color:b}),this._indexLabels.push({chartType:"rangeColumn",dataPoint:k[h],dataSeries:t,indexKeyword:1,point:{x:r+(s-r)/2,y:k[h].y[1]>=k[h].y[0]?d:l},direction:k[h].y[1]>=k[h].y[0]?1:-1,bounds:{x1:r,y1:Math.min(d,l),x2:s,y2:Math.max(d,l)},color:b})}}u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation= -"source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad,animationBase:0}}};s.prototype.renderError= -function(a){var f=a.targetCanvasCtx||this.plotArea.ctx,c=u?this._preRenderCtx:f,b=a.axisY._position?"left"===a.axisY._position||"right"===a.axisY._position?!1:!0:!1;if(!(0>=a.dataSeriesIndexes.length)){var e=null,h=!1,d=this.plotArea,l=0,q,m,n,p,t,k,w,r=a.axisX.dataInfo.minDiff;isFinite(r)||(r=0.3*Math.abs(a.axisX.range));c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(d.x1,d.y1,d.width,d.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(d.x1, -d.y1,d.width,d.height),this._eventManager.ghostCtx.clip());for(var s=0,v=0;vl&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ll&&(v=l);if(0=P.length?0:P.length>=v?v:P.length:"string"===typeof P.length?parseInt(P.length)*v/100>v?v:parseInt(P.length)*v/100>v:v;P.thickness="number"===typeof P.thickness?0>P.thickness?0:Math.round(P.thickness):2;var da={color:E[l].stemColor?E[l].stemColor:E[l].color?z.stemColor?z.stemColor:E[l].color:z.stemColor?z.stemColor:e,thickness:E[l].stemThickness?E[l].stemThickness:z.stemThickness,dashType:E[l].stemDashType? -E[l].stemDashType:z.stemDashType};da.thickness="number"===typeof da.thickness?0>da.thickness?0:Math.round(da.thickness):2;E[l].getTime?w=E[l].x.getTime():w=E[l].x;if(!(wa.axisX.dataInfo.viewPortMax)&&!g(E[l].y)&&E[l].y.length&&"number"===typeof E[l].y[0]&&"number"===typeof E[l].y[1]){var ga=a.axisX.convertValueToPixel(w);b?m=ga:q=ga;ga=a.axisY.convertValueToPixel(E[l].y[0]);b?n=ga:t=ga;ga=a.axisY.convertValueToPixel(E[l].y[1]);b?p=ga:k=ga;b?(t=a.axisX.reversed?m+(B? -s:1)*v/2-(B?A-1:0)*v<<0:m-(B?s:1)*v/2+(B?A-1:0)*v<<0,k=a.axisX.reversed?t-v<<0:t+v<<0):(n=a.axisX.reversed?q+(B?s:1)*v/2-(B?A-1:0)*v<<0:q-(B?s:1)*v/2+(B?A-1:0)*v<<0,p=a.axisX.reversed?n-v<<0:n+v<<0);!b&&t>k&&(ga=t,t=k,k=ga);b&&n>p&&(ga=n,n=p,p=ga);ga=z.dataPointIds[l];this._eventManager.objectMap[ga]={id:ga,objectType:"dataPoint",dataSeriesIndex:V,dataPointIndex:l,x1:Math.min(n,p),y1:Math.min(t,k),x2:Math.max(p,n),y2:Math.max(k,t),isXYSwapped:b,stemProperties:da,whiskerProperties:P};L(c,Math.min(n, -p),Math.min(t,k),Math.max(p,n),Math.max(k,t),e,P,da,b);u&&L(this._eventManager.ghostCtx,n,t,p,k,e,P,da,b);if(E[l].indexLabel||z.indexLabel||E[l].indexLabelFormatter||z.indexLabelFormatter)this._indexLabels.push({chartType:"error",dataPoint:E[l],dataSeries:z,indexKeyword:0,point:{x:b?E[l].y[1]>=E[l].y[0]?n:p:n+(p-n)/2,y:b?t+(k-t)/2:E[l].y[1]>=E[l].y[0]?k:t},direction:E[l].y[1]>=E[l].y[0]?-1:1,bounds:{x1:b?Math.min(n,p):n,y1:b?t:Math.min(t,k),x2:b?Math.max(n,p):p,y2:b?k:Math.max(t,k)},color:e,axisSwapped:b}), -this._indexLabels.push({chartType:"error",dataPoint:E[l],dataSeries:z,indexKeyword:1,point:{x:b?E[l].y[1]>=E[l].y[0]?p:n:n+(p-n)/2,y:b?t+(k-t)/2:E[l].y[1]>=E[l].y[0]?t:k},direction:E[l].y[1]>=E[l].y[0]?1:-1,bounds:{x1:b?Math.min(n,p):n,y1:b?t:Math.min(t,k),x2:b?Math.max(n,p):p,y2:b?k:Math.max(t,k)},color:e,axisSwapped:b})}}}u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height), -a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.restore());c.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad,animationBase:0}}};s.prototype.renderRangeBar=function(a){var f=a.targetCanvasCtx||this.plotArea.ctx,c=u?this._preRenderCtx: -f;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=0,d,l,q,m,h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;d=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0;var n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.range));n=this.options.dataPointWidth?this.dataPointWidth:0.9* -(e.height*(a.axisX.logarithmic?Math.log(n)/Math.log(a.axisX.range):Math.abs(n)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&h>d&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,d));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&dd&&(n=d);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();u&&(this._eventManager.ghostCtx.beginPath(), -this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax)&&!g(w[h].y)&&w[h].y.length&&"number"===typeof w[h].y[0]&&"number"===typeof w[h].y[1]){d=a.axisY.convertValueToPixel(w[h].y[0]); -l=a.axisY.convertValueToPixel(w[h].y[1]);q=a.axisX.convertValueToPixel(m);q=a.axisX.reversed?q+a.plotType.totalDataSeries*n/2-(a.previousDataSeriesCount+p)*n<<0:q-a.plotType.totalDataSeries*n/2+(a.previousDataSeriesCount+p)*n<<0;var s=a.axisX.reversed?q-n<<0:q+n<<0;d>l&&(b=d,d=l,l=b);b=w[h].color?w[h].color:k._colorSet[h%k._colorSet.length];ba(c,d,q,l,s,b,0,null,r,!1,!1,!1,k.fillOpacity);b=k.dataPointIds[h];this._eventManager.objectMap[b]={id:b,objectType:"dataPoint",dataSeriesIndex:t,dataPointIndex:h, -x1:d,y1:q,x2:l,y2:s};b=R(b);u&&ba(this._eventManager.ghostCtx,d,q,l,s,b,0,null,!1,!1,!1,!1);if(w[h].indexLabel||k.indexLabel||w[h].indexLabelFormatter||k.indexLabelFormatter)this._indexLabels.push({chartType:"rangeBar",dataPoint:w[h],dataSeries:k,indexKeyword:0,point:{x:w[h].y[1]>=w[h].y[0]?d:l,y:q+(s-q)/2},direction:w[h].y[1]>=w[h].y[0]?-1:1,bounds:{x1:Math.min(d,l),y1:q,x2:Math.max(d,l),y2:s},color:b}),this._indexLabels.push({chartType:"rangeBar",dataPoint:w[h],dataSeries:k,indexKeyword:1,point:{x:w[h].y[1]>= -w[h].y[0]?l:d,y:q+(s-q)/2},direction:w[h].y[1]>=w[h].y[0]?1:-1,bounds:{x1:Math.min(d,l),y1:q,x2:Math.max(d,l),y2:s},color:b})}}}u&&(f.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1, -e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad,animationBase:0}}};s.prototype.renderRangeArea=function(a){function f(){if(y){for(var a=null,c=l.length-1;0<=c;c--)a=l[c],b.lineTo(a.x,a.y2),e.lineTo(a.x,a.y2);b.closePath();b.globalAlpha=n.fillOpacity;b.fill();b.globalAlpha=1;e.fill();if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,h=[],g=this.plotArea;b.save();u&&e.save();b.beginPath();b.rect(g.x1,g.y1,g.width,g.height);b.clip();u&&(e.beginPath(),e.rect(g.x1,g.y1,g.width,g.height),e.clip()); -for(var d=0;da.axisX.dataInfo.viewPortMax&&(!n.connectNullData||!P)))if(null!==p[k].y&&p[k].y.length&&"number"===typeof p[k].y[0]&&"number"===typeof p[k].y[1]){w=a.axisX.convertValueToPixel(v);q=a.axisY.convertValueToPixel(p[k].y[0]);s=a.axisY.convertValueToPixel(p[k].y[1]);t||P?(n.connectNullData&&!t?(b.setLineDash&&(n.options.nullDataLineDashType||B===n.lineDashType&& -n.lineDashType!==n.nullDataLineDashType)&&(l[l.length-1].newLineDashArray=F,B=n.nullDataLineDashType,b.setLineDash(D)),b.lineTo(w,q),u&&e.lineTo(w,q),l.push({x:w,y1:q,y2:s})):(b.beginPath(),b.moveTo(w,q),y={x:w,y:q},l=[],l.push({x:w,y1:q,y2:s}),u&&(e.beginPath(),e.moveTo(w,q))),P=t=!1):(b.lineTo(w,q),l.push({x:w,y1:q,y2:s}),u&&e.lineTo(w,q),0==k%250&&f());v=n.dataPointIds[k];this._eventManager.objectMap[v]={id:v,objectType:"dataPoint",dataSeriesIndex:m,dataPointIndex:k,x1:w,y1:q,y2:s};kp[k].y[1]===a.axisY.reversed?-1: -1,color:z}),this._indexLabels.push({chartType:"rangeArea",dataPoint:p[k],dataSeries:n,indexKeyword:1,point:{x:w,y:s},direction:p[k].y[0]>p[k].y[1]===a.axisY.reversed?1:-1,color:z})}else P||t||f(),P=!0;f();r.drawMarkers(h)}}u&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&& -this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(g.x1,g.y1,g.width,g.height),this._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:x.xClipAnimation,easingFunction:x.easing.linear,animationBase:0}}};s.prototype.renderRangeSplineArea=function(a){function f(a,c){var f=G(q,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,h=[],g=this.plotArea;b.save();u&&e.save();b.beginPath();b.rect(g.x1,g.y1,g.width,g.height);b.clip();u&&(e.beginPath(),e.rect(g.x1,g.y1,g.width,g.height),e.clip());for(var d=0;da.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!k)))if(null!==n[p].y&&n[p].y.length&&"number"===typeof n[p].y[0]&&"number"===typeof n[p].y[1]){t=a.axisX.convertValueToPixel(t);k=a.axisY.convertValueToPixel(n[p].y[0]);w=a.axisY.convertValueToPixel(n[p].y[1]);var D=m.dataPointIds[p];this._eventManager.objectMap[D]={id:D,objectType:"dataPoint",dataSeriesIndex:l,dataPointIndex:p,x1:t,y1:k,y2:w};q[q.length]={x:t,y:k};s[s.length]={x:t,y:w};p=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx, -e=null,h=this.plotArea,g=0,d,l,m,n,p=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),g=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;l=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0;var t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth? -this.dataPointWidth:0.6*(h.width*(a.axisX.logarithmic?Math.log(t)/Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&g>l&&(g=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,l));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ll&&(t=l);c.save();u&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(h.x1,h.y1,h.width,h.height); -c.clip();u&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(h.x1,h.y1,h.width,h.height),this._eventManager.ghostCtx.clip());for(var k=0;km&&(e=l,l=m,m=e);a.axisY.reversed&&(e=l,l=m,m=e);e=q.dataPointIds[g];this._eventManager.objectMap[e]={id:e,objectType:"dataPoint",dataSeriesIndex:w,dataPointIndex:g,x1:d,y1:l,x2:F,y2:m};var P=r[g].color?r[g].color:0r[g].y===a.axisY.reversed?1:-1,bounds:{x1:d,y1:Math.min(l,m),x2:F,y2:Math.max(l,m)},color:e})}}u&&(f.drawImage(this._preRenderCanvas, -0,0,this.width,this.height),c.globalCompositeOperation="source-atop",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(h.x1,h.y1,h.width,h.height),this._eventManager.ghostCtx.restore());c.restore();return{source:f,dest:this.plotArea.ctx,animationCallback:x.fadeInAnimation,easingFunction:x.easing.easeInQuad, -animationBase:0}}};var d=function(a,f,c,b,e,h,g,d,l){if(!(0>c)){"undefined"===typeof d&&(d=1);if(!u){var m=Number((g%(2*Math.PI)).toFixed(8));Number((h%(2*Math.PI)).toFixed(8))===m&&(g-=1E-4)}a.save();a.globalAlpha=d;"pie"===e?(a.beginPath(),a.moveTo(f.x,f.y),a.arc(f.x,f.y,c,h,g,!1),a.fillStyle=b,a.strokeStyle="white",a.lineWidth=2,a.closePath(),a.fill()):"doughnut"===e&&(a.beginPath(),a.arc(f.x,f.y,c,h,g,!1),0<=l&&a.arc(f.x,f.y,l*c,g,h,!0),a.closePath(),a.fillStyle=b,a.strokeStyle="white",a.lineWidth= -2,a.fill());a.globalAlpha=1;a.restore()}};s.prototype.renderPie=function(a){function f(){if(m&&n){for(var a=0,b=0,c=0,f=0,e=0;eMath.PI/2-v&&p.midAnglep.midAngle)c=e;a++}else if(p.midAngle> -3*Math.PI/2-v&&p.midAngle<3*Math.PI/2+v){if(0===b||k[f].midAngle>p.midAngle)f=e;b++}p.hemisphere=h>Math.PI/2&&h<=3*Math.PI/2?"left":"right";p.indexLabelTextBlock=new oa(x.plotArea.ctx,{fontSize:p.indexLabelFontSize,fontFamily:p.indexLabelFontFamily,fontColor:p.indexLabelFontColor,fontStyle:p.indexLabelFontStyle,fontWeight:p.indexLabelFontWeight,textAlign:p.indexLabelTextAlign,backgroundColor:p.indexLabelBackgroundColor,maxWidth:p.indexLabelMaxWidth,maxHeight:p.indexLabelWrap?5*p.indexLabelFontSize: -1.5*p.indexLabelFontSize,text:p.indexLabelText,padding:0,textBaseline:"top"});p.indexLabelTextBlock.measureText()}d=h=0;l=!1;for(e=0;eMath.PI/2-v&&p.midAngle3*Math.PI/2-v&&p.midAngle<3*Math.PI/2+v)&&(d<=b/2&&!l?(p.hemisphere="left",d++):(p.hemisphere="right",l=!0))}}function c(a){var b=x.plotArea.ctx;b.clearRect(t.x1, -t.y1,t.width,t.height);b.fillStyle=x.backgroundColor;b.fillRect(t.x1,t.y1,t.width,t.height);for(b=0;bc){var e=0.07*B*Math.cos(k[b].midAngle),h=0.07*B*Math.sin(k[b].midAngle),g=!1;if(n[b].exploded){if(1E-9a.indexLabelTextBlock.y?e-f:c-h}function e(a){for(var c=null,f=1;fb(k[c],k[a])||("right"===k[a].hemisphere?k[c].indexLabelTextBlock.y>=k[a].indexLabelTextBlock.y:k[c].indexLabelTextBlock.y<=k[a].indexLabelTextBlock.y)))break;else c=null;return c}function h(a,c,f){f=(f||0)+1;if(1E3c&&p.indexLabelTextBlock.ym)return 0;var t=0,l=0,l=t=t=0;0>c?p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2>d&&p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2+cm&&(c=p.indexLabelTextBlock.y+p.indexLabelTextBlock.height/ -2+c-m);c=p.indexLabelTextBlock.y+c;d=0;d="right"===p.hemisphere?z.x+Math.sqrt(Math.pow(r,2)-Math.pow(c-z.y,2)):z.x-Math.sqrt(Math.pow(r,2)-Math.pow(c-z.y,2));l=z.x+B*Math.cos(p.midAngle);t=z.y+B*Math.sin(p.midAngle);t=Math.sqrt(Math.pow(d-l,2)+Math.pow(c-t,2));l=Math.acos(B/r);t=Math.acos((r*r+B*B-t*t)/(2*B*r));c=tb(k[d],k[a])||("right"===k[a].hemisphere?k[d].indexLabelTextBlock.y<=k[a].indexLabelTextBlock.y:k[d].indexLabelTextBlock.y>=k[a].indexLabelTextBlock.y)))break;else d=null;l=d;t=e(a);m=d=0;0>c?(m="right"===p.hemisphere?l:t,g=c,null!==m&&(l=-c,c=p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2-(k[m].indexLabelTextBlock.y+k[m].indexLabelTextBlock.height/2),c-l+d.toFixed(s)&&(g=c>w?-(c-w):-(l-(m-d)))))):0w?c-w:l-(d-m)))));g&&(f=p.indexLabelTextBlock.y+g,c=0,c="right"===p.hemisphere?z.x+Math.sqrt(Math.pow(r,2)-Math.pow(f-z.y,2)):z.x-Math.sqrt(Math.pow(r,2)-Math.pow(f-z.y,2)),p.midAngle>Math.PI/2-v&&p.midAngled.indexLabelTextBlock.x?c=d.indexLabelTextBlock.x-15:"right"===p.hemisphere&&("left"===a.hemisphere&&c3*Math.PI/2-v&&p.midAngle<3*Math.PI/2+v&&(d=(a-1+k.length)%k.length,d=k[d],a=k[(a+1+k.length)%k.length],"right"===p.hemisphere&&"left"===d.hemisphere&&ca.indexLabelTextBlock.x)&&(c=a.indexLabelTextBlock.x- -15)),p.indexLabelTextBlock.y=f,p.indexLabelTextBlock.x=c,p.indexLabelAngle=Math.atan2(p.indexLabelTextBlock.y-z.y,p.indexLabelTextBlock.x-z.x))}return g}function l(){var a=x.plotArea.ctx;a.fillStyle="grey";a.strokeStyle="grey";a.font="16px Arial";a.textBaseline="middle";for(var c=a=0,f=0,g=!0,c=0;10>c&&(1>c||0wa){for(var E=q=0,A=0;Aq?d.indexLabelText="":d.indexLabelTextBlock.maxWidth=0.85*q,0.3*d.indexLabelTextBlock.maxWidthf&&(f=v)),v=v=0,0f&&(f=v)));var G=function(a,b,c){for(var f=[],e=0;f.push(k[b]),b!==c;b=(b+1+n.length)%n.length);f.sort(function(a,b){return a.y-b.y});for(b=0;bwa){t=C.indexLabelTextBlock.x;var l=C.indexLabelTextBlock.y- -C.indexLabelTextBlock.height/2,q=C.indexLabelTextBlock.y+C.indexLabelTextBlock.height/2,w=m.indexLabelTextBlock.y-m.indexLabelTextBlock.height/2,x=m.indexLabelTextBlock.x+m.indexLabelTextBlock.width,v=m.indexLabelTextBlock.y+m.indexLabelTextBlock.height/2;t=C.indexLabelTextBlock.x+C.indexLabelTextBlock.widthx+p||l>v+p||qa&&(a=d),g!==a&&(c=g,f+=-wa),0===d%Math.max(n.length/10,3)&&(h=!0)):h=!0;h&&(0=a.dataSeriesIndexes.length)){var m=this.data[a.dataSeriesIndexes[0]],n=m.dataPoints,p=10,t=this.plotArea,k=m.dataPointEOs,w=2,r,u=1.3,v=20/180*Math.PI,s=6,z={x:(t.x2+t.x1)/2,y:(t.y2+t.y1)/2},A=0;a=!1;for(var E=0;Eb&&(e=b,h=!0);var g=n[c].color?n[c].color:m._colorSet[c%m._colorSet.length];e>f&&d(x.plotArea.ctx,k[c].center,k[c].radius,g,m.type,f,e,m.fillOpacity,k[c].percentInnerRadius);if(h)break}q();x.dispatchEvent("dataAnimationIterationEnd",{chart:x});1<=a&&x.dispatchEvent("dataAnimationEnd",{chart:x})},function(){x.disableToolTip=!1;x._animator.animate(0,x.animatedRender?500:0,function(a){c(a);q();x.dispatchEvent("dataAnimationIterationEnd", -{chart:x})});x.dispatchEvent("dataAnimationEnd",{chart:x})})}}};var q=function(a,f,c,b){"undefined"===typeof c&&(c=1);0>=Math.round(f.y4-f.y1)||(a.save(),a.globalAlpha=c,a.beginPath(),a.moveTo(Math.round(f.x1),Math.round(f.y1)),a.lineTo(Math.round(f.x2),Math.round(f.y2)),a.lineTo(Math.round(f.x3),Math.round(f.y3)),a.lineTo(Math.round(f.x4),Math.round(f.y4)),"undefined"!==f.x5&&(a.lineTo(Math.round(f.x5),Math.round(f.y5)),a.lineTo(Math.round(f.x6),Math.round(f.y6))),a.closePath(),a.fillStyle=b?b:f.color, -a.fill(),a.globalAplha=1,a.restore())};s.prototype.renderFunnel=function(a){function f(){for(var a=0,b=[],c=0;cn?(n=c,g=(b+n)*(e-m)/2,a-=g,p=e-m,m+=e-m,p+=0==n?0:a/n,m+=a/n,g=!0):(p=(Math.abs(ia)*b-Math.sqrt(n))/2,n=b-2*p/Math.abs(ia),m+=p,m>e&&(m-=p,n=c,g=(b+n)*(e-m)/2,a-=g,p=e-m,m+=e-m,p+=a/n,m+=a/n,g=!0),b=n)),f.push(p);return f}function b(){if(v&&y){for(var a,b,c,f,e,h,d,m,p,n,t,l,C, -q,w,x=[],r=[],s={percent:null,total:null},K=null,B=0;Bx[B]&&(x[B]=B!==ea?v.reversed?U[B].x3-U[B].x4:U[B].x2-U[B].x1: -U[B].x2-U[B].x1,x[B]/=2));C=b.indexLabelMaxWidth?b.indexLabelMaxWidth:v.options.indexLabelMaxWidth?v.indexLabelMaxWidth:x[B];if(C>x[B]||0>C)C=x[B];r[B]="inside"===v.indexLabelPlacement?U[B].height:!1;s=z.getPercentAndTotal(v,b);if(v.indexLabelFormatter||b.indexLabelFormatter)K={chart:z.options,dataSeries:v,dataPoint:b,total:s.total,percent:s.percent};b=b.indexLabelFormatter?b.indexLabelFormatter(K):b.indexLabel?z.replaceKeywordsWithValue(b.indexLabel,b,v,B):v.indexLabelFormatter?v.indexLabelFormatter(K): -v.indexLabel?z.replaceKeywordsWithValue(v.indexLabel,b,v,B):b.label?b.label:"";0>=n&&(n=0);1E3>C&&1E3-Ck?k:v.indexLabelMaxWidth:k,g=J.length-1;0<=g;g--){d=y[J[g].id];c=J[g];f=c.textBlock;b=(a=t(g)b.y&&(e=!0);c=d.indexLabelMaxWidth||k;if(c>k||0>c)c=k;h.push(c)}if(e)for(g=J.length-1;0<=g;g--)a=U[g],J[g].textBlock.maxWidth=h[h.length-(g+1)],J[g].textBlock.measureText(),J[g].textBlock.x=L-k,c=J[g].textBlock.height< -J[g].textBlock.maxHeight?J[g].textBlock.height:J[g].textBlock.maxHeight,e=J[g].textBlock.widthW+D&&(J[g].textBlock.y=W+D-J[g].height),J[g].textBlock.y<$-D&&(J[g].textBlock.y=$-D)):(J[g].textBlock.y$+D&&(J[g].textBlock.y= -$+D-J[g].height))}function h(){var a,b,c,f;if("inside"!==v.indexLabelPlacement)for(var e=0;eba?k(c).x2+1:(a.x2+a.x3)/2+1:(a.x2+a.x3)/2+1:"undefined"!==typeof a.x5?cW+D&&(J[e].textBlock.y=W+D-J[e].height), -J[e].textBlock.y<$-D&&(J[e].textBlock.y=$-D)):(J[e].textBlock.y$+D&&(J[e].textBlock.y=$+D-J[e].height)));else for(e=0;e=c?(b=e!=ea?(a.x4+a.x3)/2-f/2:(a.x5+a.x4)/2-f/2,c=e!=ea?(a.y1+a.y3)/2-c/2:(a.y1+a.y4)/2-c/2,J[e].textBlock.x=b,J[e].textBlock.y=c):J[e].isDirty=!0)}function d(){function a(b,c){var f;if(0>b||b>=J.length)return 0;var e, -h=J[b].textBlock;if(0>c){c*=-1;e=p(b);f=l(e,b);if(f>=c)return h.y-=c,c;if(0==b)return 0=c)return h.y+=c,c;if(b==U.length-1)return 0e)&&(d=t(l),!(d>=J.length-1)&&J[l].textBlock.y+J[l].height+la>J[d].textBlock.y&& -(J[l].textBlock.y=J[l].textBlock.y+J[l].height-e>e-J[l].textBlock.y?e+1:e-J[l].height-1))}for(d=U.length-1;0e&&(e=0,J[e].isDirty))break;if(J[d].textBlock.y=h){h=0;k+=J[h].height;break}e=p(h);if(0>e){h=0;k+=J[h].height;break}}if(h!=d){g=J[h].textBlock.y;a-=g;a=k-a;g=c(a,f,h);break}}}return g}function c(a, -b,f){var e=[],h=0,g=0;for(a=Math.abs(a);f<=b;f++)e.push(U[f]);e.sort(function(a,b){return a.height-b.height});for(f=0;f+m.y.toFixed(6))&&(f=g.y+f+la-m.y,e=a(w,-f),ea?v.reversed?$-D:W-D:J[a].textBlock.y+J[a].height+la)}function r(a,b,c){var f,e,g,k=[],d=D,p=[];-1!==b&&(0<=fa.indexOf(b)?(e=fa.indexOf(b),fa.splice(e,1)):(fa.push(b),fa=fa.sort(function(a,b){return a-b})));if(0===fa.length)k=pa;else{e=D*(1!=fa.length||0!=fa[0]&&fa[0]!=U.length-1?2:1)/m();for(var t=0;tp&&(p*=-1),c.y1+=b-p[f],c.y2+= -b-p[f],c.y3+=b-p[f],c.y4+=b-p[f],c.y5&&(c.y5+=b-p[f],c.y6+=b-p[f]),p[f]=b}};a._animator.animate(0,c,function(c){var f=a.plotArea.ctx||a.ctx;qa=!0;f.clearRect(A.x1,A.y1,A.x2-A.x1,A.y2-A.y1);f.fillStyle=a.backgroundColor;f.fillRect(A.x1,A.y1,A.width,A.height);l.changeSection(c,b);var e={};e.dataSeries=v;e.dataPoint=v.reversed?v.dataPoints[y.length-1-b]:v.dataPoints[b];e.index=v.reversed?y.length-1-b:b;a.toolTip.highlightObjects([e]);for(e=0;ea){b=U[c];break}return b?(a=b.y6?a>b.y6?b.x3+(b.x4-b.x3)/(b.y4-b.y3)*(a-b.y3):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2),{x1:a,x2:a}):-1}function w(a){for(var b=0;b=a.dataSeriesIndexes.length)){for(var v=this.data[a.dataSeriesIndexes[0]],y=v.dataPoints,A=this.plotArea,D=0.025*A.width,E=0.01*A.width,B=0,F=A.height-2*D,G=Math.min(A.width-2*E,2.8*A.height),P=!1,I=0;IF?M=F:0>=M&&(M=0),H>a?H=a-0.5:0>=H&&(H=0)):"pyramid"===v.type&&(H=M=0,v.reversed=v.reversed?!1:!0);var E=I+a/2,aa=I,Y=I+a,W=v.reversed?Z:O,S=E-H/2,ja=E+H/2,ba=v.reversed?O+M:Z-M,$=v.reversed?O:Z;a=[];var E=[],U=[],G=[],X=O,ea,ia=(ba-W)/(S-aa),ma=-ia,I="area"=== -(v.valueRepresents?v.valueRepresents:"height")?c():f();if(-1!==I){if(v.reversed)for(G.push(X),H=I.length-1;0a&&(B=a));for(H=0;H\n');b.document.body&&b.document.body.style&&(b.document.body.style.margin="0px 0px 0px 0px",b.document.body.style.padding="0px 0px 0px 0px");b.document.close();setTimeout(function(){b.focus();b.print();setTimeout(function(){c._canvasJSContainer.removeChild(f)},1E3)},500)};s.prototype.getPercentAndTotal=function(a,f){var c=null, -b=null,e=c=null;if(0<=a.type.indexOf("stacked"))b=0,c=f.x.getTime?f.x.getTime():f.x,c in a.plotUnit.yTotals&&(b=a.plotUnit.yTotals[c],c=a.plotUnit.yAbsTotals[c],e=isNaN(f.y)?0:0===c?0:100*(f.y/c));else if("pie"===a.type||"doughnut"===a.type||"funnel"===a.type||"pyramid"===a.type){for(c=b=0;c=d||"undefined"===typeof d||0>=r||"undefined"===typeof r)){if("horizontal"===this.orientation){t.textBlock=new oa(this.ctx,{x:0,y:0,maxWidth:r,maxHeight:this.itemWrap?d:this.lineHeight,angle:0,text:t.text,horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"});t.textBlock.measureText();null!==this.itemWidth&&(t.textBlock.width= -this.itemWidth-(x+l+("line"===t.chartType||"spline"===t.chartType||"stepLine"===t.chartType?2*0.1*this.lineHeight:0)));if(!p||p.width+Math.round(t.textBlock.width+x+l+(0===p.width?0:this.horizontalSpacing)+("line"===t.chartType||"spline"===t.chartType||"stepLine"===t.chartType?2*0.1*this.lineHeight:0))>h)p={items:[],width:0},m.push(p),this.height+=k,k=0;k=Math.max(k,t.textBlock.height)}else t.textBlock=new oa(this.ctx,{x:0,y:0,maxWidth:s,maxHeight:!0===this.itemWrap?d:1.5*this.fontSize,angle:0,text:t.text, -horizontalAlign:"left",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:"middle"}),t.textBlock.measureText(),null!==this.itemWidth&&(t.textBlock.width=this.itemWidth-(x+l+("line"===t.chartType||"spline"===t.chartType||"stepLine"===t.chartType?2*0.1*this.lineHeight:0))),this.height>0,0),this.dataPoints.length):0):(n=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,n=0>0,0),this.dataPoints.length):0));for(;;){h=0a?b.x/a:a/b.x:Math.abs(b.x-a);pn-e&&n+e>=this.dataPoints.length)break;-1===g?(e++,g=1):g=-1}return f||(c.dataPoint.x.getTime?c.dataPoint.x.getTime():c.dataPoint.x)!==(a.getTime?a.getTime():a)?f&&null!==c.dataPoint?c:null:c};I.prototype.getDataPointAtXY=function(a,f,c){if(!this.dataPoints||0===this.dataPoints.length||athis.chart.plotArea.x2||fthis.chart.plotArea.y2)return null;c=c||!1;var b=[],e=0,h=0,g=1,d=!1,l=Infinity,m=0,n=0,p=0;if("none"!==this.chart.plotInfo.axisPlacement)if(p=(this.chart.axisX[0]?this.chart.axisX[0]:this.chart.axisX2[0]).getXValueAt({x:a,y:f}),this.axisX.logarithmic)var t=Math.log(this.dataPoints[this.dataPoints.length-1].x/this.dataPoints[0].x),p=1>0,0),this.dataPoints.length): -0;else t=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,p=0>0,0),this.dataPoints.length):0;for(;;){h=0= -t.x1&&(a<=t.x2&&f>=t.y1&&f<=t.y2)&&(b.push({dataPoint:k,dataPointIndex:h,dataSeries:this,distance:Math.min(Math.abs(t.x1-a),Math.abs(t.x2-a),Math.abs(t.y1-f),Math.abs(t.y2-f))}),d=!0);break;case "line":case "stepLine":case "spline":case "area":case "stepArea":case "stackedArea":case "stackedArea100":case "splineArea":case "scatter":var x=ra("markerSize",k,this)||4,r=c?20:x,q=Math.sqrt(Math.pow(t.x1-a,2)+Math.pow(t.y1-f,2));q<=r&&b.push({dataPoint:k,dataPointIndex:h,dataSeries:this,distance:q});t= -Math.abs(t.x1-a);t<=l?l=t:0r&&(q=Math.atan2(f-x.y,a-x.x),0>q&&(q+=2*Math.PI),q=Number(((180*(q/Math.PI)%360+360)%360).toFixed(12)),x=Number(((180*(t.startAngle/Math.PI)%360+360)%360).toFixed(12)),r=Number(((180*(t.endAngle/Math.PI)%360+360)%360).toFixed(12)),0===r&&1=r&&0!==k.y&&(r+=360,qx&&qq.y1&&fq.y6?(h=q.x6+(q.x5-q.x6)/(q.y5-q.y6)*(f-q.y6),q=q.x3+(q.x4-q.x3)/(q.y4-q.y3)*(f-q.y3)):(h=q.x1+(q.x6-q.x1)/(q.y6-q.y1)*(f-q.y1),q=q.x2+(q.x3-q.x2)/(q.y3-q.y2)*(f-q.y2)):(h=q.x1+(q.x4-q.x1)/(q.y4-q.y1)*(f-q.y1),q=q.x2+(q.x3-q.x2)/(q.y3-q.y2)*(f-q.y2)),a>h&&a= -t.x1-t.borderThickness/2&&a<=t.x2+t.borderThickness/2&&f>=t.y4-t.borderThickness/2&&f<=t.y1+t.borderThickness/2||Math.abs(t.x2-a+t.x1-a)=t.y1&&f<=t.y4)b.push({dataPoint:k,dataPointIndex:h,dataSeries:this,distance:Math.min(Math.abs(t.x1-a),Math.abs(t.x2-a),Math.abs(t.y2-f),Math.abs(t.y3-f))}),d=!0;break;case "candlestick":if(a>=t.x1-t.borderThickness/2&&a<=t.x2+t.borderThickness/2&&f>=t.y2-t.borderThickness/2&&f<=t.y3+t.borderThickness/2||Math.abs(t.x2-a+t.x1-a)=t.y1&&f<=t.y4)b.push({dataPoint:k,dataPointIndex:h,dataSeries:this,distance:Math.min(Math.abs(t.x1-a),Math.abs(t.x2-a),Math.abs(t.y2-f),Math.abs(t.y3-f))}),d=!0;break;case "ohlc":if(Math.abs(t.x2-a+t.x1-a)=t.y2&&f<=t.y3||a>=t.x1&&a<=(t.x2+t.x1)/2&&f>=t.y1-t.borderThickness/2&&f<=t.y1+t.borderThickness/2||a>=(t.x1+t.x2)/2&&a<=t.x2&&f>=t.y4-t.borderThickness/2&&f<=t.y4+t.borderThickness/2)b.push({dataPoint:k,dataPointIndex:h,dataSeries:this,distance:Math.min(Math.abs(t.x1-a), -Math.abs(t.x2-a),Math.abs(t.y2-f),Math.abs(t.y3-f))}),d=!0}if(d||1E3p-e&&p+e>=this.dataPoints.length)break;-1===g?(e++,g=1):g=-1}a=null;for(f=0;fp[k].endValue;k++);a=k=p[k].startValue&&c<=p[k].endValue;n=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:n,label:this.labels[n]?this.labels[n]:null}):"axisX"===this.type&&this.labels[n]?this.labels[n]:$(n,this.valueFormatString,this.chart._cultureInfo),a=new oa(this.ctx,{x:0,y:0,maxWidth:h,maxHeight:d,angle:this.labelAngle,text:this.prefix+a+this.suffix,backgroundColor:this.labelBackgroundColor, -borderColor:this.labelBorderColor,cornerRadius:this.labelCornerRadius,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle",borderThickness:0}),this._labels.push({position:n,textBlock:a,effectiveHeight:null}))}k=t;for(c=this.intervalStartPosition;c<=e;c=parseFloat(1E-12>this.interval?this.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase, -this.interval):c+this.interval:(this.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase,this.interval):c+this.interval).toFixed(12))){for(;kp[k].endValue;k++);a=k=p[k].startValue&&c<=p[k].endValue;n=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:n,label:this.labels[n]?this.labels[n]:null}):"axisX"===this.type&&this.labels[n]?this.labels[n]:$(n,this.valueFormatString,this.chart._cultureInfo),a=new oa(this.ctx,{x:0, -y:0,maxWidth:h,maxHeight:d,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:"middle"}),this._labels.push({position:n,textBlock:a,effectiveHeight:null}))}}else for(this.intervalStartPosition= -this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval),e=bb(new Date(this.viewportMaximum),this.interval,this.intervalType),k=t,c=this.intervalStartPosition;cp[k].endValue;k++);n=a;a=k=p[k].startValue&&a<=p[k].endValue;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:new Date(n),label:this.labels[n]?this.labels[n]:null}):"axisX"===this.type&&this.labels[n]? -this.labels[n]:fa(n,this.valueFormatString,this.chart._cultureInfo),a=new oa(this.ctx,{x:0,y:0,maxWidth:h,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,maxHeight:d,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle, -textBaseline:"middle"}),this._labels.push({position:n,textBlock:a,effectiveHeight:null,breaksLabelType:void 0}))}if("bottom"===this._position||"top"===this._position)l=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.width*Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.width/(this.logarithmic&&this.equidistantInterval? -Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*W[this.intervalType+"Duration"]*this.interval,h="undefined"===typeof this.options.labelMaxWidth?0.5*this.chart.width>>0:this.options.labelMaxWidth,this.chart.panEnabled||(d="undefined"===typeof this.options.labelWrap||this.labelWrap?0.8*this.chart.height>>0:1.5*this.labelFontSize);else if("left"===this._position||"right"===this._position)l=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.height* -Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.height/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*W[this.intervalType+"Duration"]*this.interval,this.chart.panEnabled||(h="undefined"===typeof this.options.labelMaxWidth?0.3*this.chart.width>>0:this.options.labelMaxWidth),d="undefined"=== -typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize;for(b=0;bthis.labelAngle?this.labelAngle-=180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360)),"bottom"===this._position|| -"top"===this._position)if(h=0.9*l>>0,t=0,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=h;this.sessionVariables.labelMaxHeight=d;this.sessionVariables.labelAngle=this.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;ct&&(r=c,t=n.width)}c=0;for(c=this.intervalStartPosition>0>2*h&&(this.sessionVariables.labelAngle=-25)):(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>h?-25:this.sessionVariables.labelAngle):g(this.options.labelMaxWidth)? -(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelMaxWidth=h,f&&x.width+f.width>>0>2*h&&(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=n)):(this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>h?-25:this.sessionVariables.labelAngle,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelWrap=this.labelWrap);else{if(g(this.options.labelWrap))if(!g(this.options.labelMaxWidth))this.options.labelMaxWidth< -h?(this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight=b):(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight=d);else if(!g(f))if(b=x.width+f.width>>0,k=this.labelFontSize,tp&&(p=b-2*h,b>=2*h&&b<2.2*h?(this.sessionVariables.labelMaxWidth=h,g(this.options.labelFontSize)&&12=2.2*h&&b<2.8*h?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=n,this.sessionVariables.labelFontSize=k):b>=2.8*h&&b<3.2*h?(this.sessionVariables.labelMaxWidth=Math.max(h,t),this.sessionVariables.labelWrap=!0,g(this.options.labelFontSize)&&12=3.2*h&&b<3.6*h?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=n,this.sessionVariables.labelFontSize=this.labelFontSize):b>3.6*h&&b<5*h?(g(this.options.labelFontSize)&&125*h&&(this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=h,this.sessionVariables.labelFontSize=k,this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelAngle=this.labelAngle));else if(r===c&&(0===r&&t+this._labels[r+1].textBlock.measureText().width-2*h>p||r===this._labels.length-1&&t+this._labels[r-1].textBlock.measureText().width-2*h>p||0p&& -t+this._labels[r-1].textBlock.measureText().width-2*h>p))p=0===r?t+this._labels[r+1].textBlock.measureText().width-2*h:t+this._labels[r-1].textBlock.measureText().width-2*h,this.sessionVariables.labelFontSize=g(this.options.labelFontSize)?k:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=n;else if(0===p)for(this.sessionVariables.labelFontSize=g(this.options.labelFontSize)?k:this.options.labelFontSize,this.sessionVariables.labelWrap= -!0,b=0;b>0>2*h&&(this.sessionVariables.labelAngle=-25))}else(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxHeight=0===this.labelAngle?d:Math.min((b-h*Math.cos(Math.PI/ -180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)),b),n=0!=this.labelAngle?(m-(q+a.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)):h,this.sessionVariables.labelMaxHeight=this.labelWrap?(m-n*Math.sin(Math.PI/180*Math.abs(this.labelAngle)))/Math.cos(Math.PI/180*Math.abs(this.labelAngle)):1.5*this.labelFontSize,g(this.options.labelWrap))?g(this.options.labelWrap)&&(this.labelWrap&&!g(this.options.labelMaxWidth)? -(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:n,this.sessionVariables.labelMaxHeight=d):(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxWidth=n,this.sessionVariables.labelMaxHeight=b<0.9*l?0.9*l:b,this.sessionVariables.labelWrap=this.labelWrap)):(this.options.labelWrap?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth? -this.options.labelMaxWidth:n):(g(this.options.labelMaxWidth),this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:n,this.sessionVariables.labelWrap=this.labelWrap),this.sessionVariables.labelMaxHeight=d)}for(b=0;b>0:this.options.labelMaxWidth,d="undefined"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=h;this.sessionVariables.labelMaxHeight=d;this.sessionVariables.labelAngle=g(this.sessionVariables.labelAngle)? -0:this.sessionVariables.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;c>0,l-2*d>t&&(t=l-2*d,l>=2*d&&l<2.4*d?(g(this.options.labelFontSize)&&12=2.4*d&&l<2.8*d?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelFontSize=this.labelFontSize,this.sessionVariables.labelWrap=!0):l>=2.8*d&&l<3.2*d?(this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelWrap=!0,g(this.options.labelFontSize)&&12=3.2*d&&l<3.6*d?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelFontSize=this.labelFontSize):l>3.6*d&&l<10*d?(g(this.options.labelFontSize)&&1210*d&&l<50*d&&(g(this.options.labelFontSize)&&12>0:1.5*this.labelFontSize; -if("left"===this._position||"right"===this._position)g(h.options.labelWrap)&&!g(this.sessionVariables.stripLineLabelMaxHeight)?s=this.sessionVariables.stripLineLabelMaxHeight:this.sessionVariables.stripLineLabelMaxHeight=s=h.labelWrap?0.8*this.chart.width>>0:1.5*this.labelFontSize;g(h.labelBackgroundColor)&&(h.labelBackgroundColor="#EEEEEE")}else d="bottom"===this._position||"top"===this._position?0.9*this.chart.width>>0:0.9*this.chart.height>>0,s=g(h.options.labelWrap)||h.labelWrap?"bottom"===this._position|| -"top"===this._position?0.8*this.chart.width>>0:0.8*this.chart.height>>0:1.5*this.labelFontSize,g(h.labelBackgroundColor)&&(g(h.startValue)&&0!==h.startValue?h.labelBackgroundColor=u?"transparent":null:h.labelBackgroundColor="#EEEEEE");a=new oa(this.ctx,{x:0,y:0,backgroundColor:h.labelBackgroundColor,borderColor:h.labelBorderColor,borderThickness:h.labelBorderThickness,cornerRadius:h.labelCornerRadius,maxWidth:h.options.labelMaxWidth?h.options.labelMaxWidth:d,maxHeight:s,angle:this.labelAngle,text:h.labelFormatter? -h.labelFormatter({chart:this.chart,axis:this,stripLine:h}):h.label,textAlign:this.labelTextAlign,fontSize:"outside"===h.labelPlacement?h.options.labelFontSize?h.labelFontSize:this.labelFontSize:h.labelFontSize,fontFamily:"outside"===h.labelPlacement?h.options.labelFontFamily?h.labelFontFamily:this.labelFontFamily:h.labelFontFamily,fontWeight:"outside"===h.labelPlacement?h.options.labelFontWeight?h.labelFontWeight:this.labelFontWeight:h.labelFontWeight,fontColor:h.labelFontColor||h.color,fontStyle:"outside"=== -h.labelPlacement?h.options.labelFontStyle?h.labelFontStyle:this.fontWeight:h.labelFontStyle,textBaseline:"middle"});this._stripLineLabels.push({position:h.value,textBlock:a,effectiveHeight:null,stripLine:h})}};z.prototype.createLabelsAndCalculateWidth=function(){var a=0,f=0;this._labels=[];this._stripLineLabels=[];var c=this.chart.isNavigator?0:5;if("left"===this._position||"right"===this._position){this.createLabels();if("inside"!=this.labelPlacement||"inside"===this.labelPlacement&&0=this.viewportMinimum&&this._stripLineLabels[f].stripLine.value<=this.viewportMaximum)&& -(b=this._stripLineLabels[f].textBlock,e=b.measureText(),h=0===this.labelAngle?e.width:e.width*Math.cos(Math.PI/180*Math.abs(this.labelAngle))+(e.height-b.fontSize/2)*Math.sin(Math.PI/180*Math.abs(this.labelAngle)),a=this.viewportMinimum&&this._stripLineLabels[c].stripLine.value<=this.viewportMaximum)&&(f=this._stripLineLabels[c].textBlock,e=f.measureText(),h=0===this.labelAngle?e.height:e.width*Math.sin(Math.PI/180*Math.abs(this.labelAngle))+(e.height-f.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)),at[k].viewportMaximum);r++)x[r].endValue=t[k].viewPortMinimum&&(t[k].scaleBreaks.lastBreakIndex=r));for(var s=r=0,v=0,u=0,z=0,A=0,E=0,B,D,F=l=0,G,I,L,x=G=I=L=!1,k=0;k -r;){var H=0,R=0,Q=0,W=0,$=e=0,S=0,aa=0,X=0,Y=0,U=0,ba=0;if(c&&0n.width-p?n.width-p:h.x2-ba-aa);if(a&&0n.width-p?n.width-p:h.x2-ba-aa),a[k]._labels&&1q&&(l+=0a[k].labelAngle?B-sq&&(l=D+v/2-q-ba),B-sa[k].labelAngle&&0n.width-p?n.width-p:h.x2-ba-aa),f[k].lineCoordinates.width=Math.abs(q-d),f[k]._labels&&1r;){X=W=R=Q=aa=S=$=e=Z=M=H=Y=0;if(a&&0n.width-10?n.width-10:h.x2-X-$),c[k].labelAutoFit&&!g(u)&&(0c[k].labelAngle?Math.max(d,u):0===c[k].labelAngle?Math.max(d,u/2):d),0b[k].chart.width-10?b[k].chart.width-10:h.x2-X-$),b[k]&&b[k].labelAutoFit&&!g(A)&&(0c[k].chart.height?c[k].chart.height:h.y2),c[k].lineCoordinates.y1=l-(p[k]+c[k].margin+Y),c[k].lineCoordinates.y2=l-(p[k]+c[k].margin+Y),"inside"===c[k].labelPlacement&&0n.height-Math.max(S,10)?n.height-Math.max(S,10):h.y2-Q):h.y2>n.height-Math.max(S,10)?n.height-Math.max(S,10):h.y2;if(c&&0c[S].labelAngle?Math.max(q,u):0===c[S].labelAngle?Math.max(q,u/2):q,d= -0>c[S].labelAngle||0===c[S].labelAngle?q-W:d);if(b&&0n.height-Math.max(S,10)?n.height-Math.max(S,10):h.y2-Q):h.y2>n.height-Math.max(S,10)?n.height-Math.max(S,10):h.y2;if(c&&0c[S].labelAngle?Math.max(q,u):0===c[S].labelAngle?Math.max(q,u/2):q,d=0>c[S].labelAngle||0===c[S].labelAngle?q-X:d);if(b&&0f[h].spacing?0:Math.abs(f[h].spacing/c),this.logarithmic&&(f[h].size=Math.pow(this.logarithmBase,f[h].size))};z.prototype.calculateBreaksInPixels=function(){if(!(this.scaleBreaks&&0>=this.scaleBreaks._appliedBreaks.length)){var a= -this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];a.length&&(this.scaleBreaks.firstBreakIndex=this.scaleBreaks.lastBreakIndex=null);for(var f=0;fthis.conversionParameters.maximum);f++)a[f].endValue=this.conversionParameters.minimum&&(a[f].startPixel=this.convertValueToPixel(a[f].startValue),this.scaleBreaks.lastBreakIndex=f),a[f].endValue<=this.conversionParameters.maximum&& -(a[f].endPixel=this.convertValueToPixel(a[f].endValue)))}};z.prototype.renderLabelsTicksAndTitle=function(){var a=this,f=!1,c=0,b=0,e=1,h=0;0!==this.labelAngle&&360!==this.labelAngle&&(e=1.2);if("undefined"===typeof this.options.interval){if("bottom"===this._position||"top"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],e=0!==this.labelAngle&&360!==this.labelAngle?1:1.2,d,g=this.viewportMaximum,l=this.lineCoordinates.width/Math.log(this.range),m=this._labels.length- -1;0<=m;m--){p=this._labels[m];if(p.positionthis.viewportMaximum||!(m===this._labels.length-1||dthis.lineCoordinates.width*e&&this.labelAutoFit&&(f=!0)}if("left"===this._position||"right"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],n,g=this.viewportMaximum,l=this.lineCoordinates.height/Math.log(this.range),m=this._labels.length-1;0<=m;m--){p=this._labels[m];if(p.positionthis.viewportMaximum||!(m===this._labels.length-1||nthis.lineCoordinates.height*e&&this.labelAutoFit&&(f=!0)}}this.logarithmic&&(!this.equidistantInterval&& -this.labelAutoFit)&&this._labels.sort(function(a,b){return a.position-b.position});var m=0,p,q;if("bottom"===this._position){for(m=0;mthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<< -0),this.ctx.lineTo(b,q.y+this.tickLength<<0),this.ctx.stroke()),f&&0!==h++%2&&this.labelAutoFit||(0===p.textBlock.angle?(q.x-=p.textBlock.width/2,q.y="inside"===this.labelPlacement?q.y-(("inside"===this.tickPlacement?this.tickLength:0)+p.textBlock.height-p.textBlock.fontSize/2):q.y+("inside"===this.tickPlacement?0:this.tickLength)+p.textBlock.fontSize/2+5):(q.x="inside"===this.labelPlacement?0>this.labelAngle?q.x:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):q.x-(0>this.labelAngle?p.textBlock.width* -Math.cos(Math.PI/180*this.labelAngle):0),q.y="inside"===this.labelPlacement?0>this.labelAngle?q.y-("inside"===this.tickPlacement?this.tickLength:0)-5:q.y-("inside"===this.tickPlacement?this.tickLength:0)-Math.abs(p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)+5):q.y+("inside"===this.tickPlacement?0:this.tickLength)+Math.abs(0>this.labelAngle?p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5)),p.textBlock.x=q.x,p.textBlock.y=q.y));"inside"===this.tickPlacement&&this.chart.addEventListener("dataAnimationEnd", -function(){for(m=0;ma.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b,q.y-a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+ -this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y2-this._titleTextBlock.height-3,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("top"===this._position){for(m=0;mthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle= -this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<<0),this.ctx.lineTo(b,q.y-this.tickLength<<0),this.ctx.stroke()),f&&0!==h++%2&&this.labelAutoFit||(0===p.textBlock.angle?(q.x-=p.textBlock.width/2,q.y="inside"===this.labelPlacement?q.y+this.labelFontSize/2+("inside"===this.tickPlacement?this.tickLength:0)+5:q.y-(("inside"===this.tickPlacement?0:this.tickLength)+p.textBlock.height-p.textBlock.fontSize/2)):(q.x="inside"===this.labelPlacement?0< -this.labelAngle?q.x:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):q.x+(p.textBlock.height-this.labelFontSize)*Math.sin(Math.PI/180*this.labelAngle)-(0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle= -a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b,q.y+a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y1+1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("left"===this._position){for(m= -0;mthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x-this.tickLength<<0,b),this.ctx.stroke()),f&&0!==h++%2&&this.labelAutoFit||(0===this.labelAngle?(p.textBlock.y= -q.y,p.textBlock.x="inside"===this.labelPlacement?q.x+("inside"===this.tickPlacement?this.tickLength:0)+5:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-("inside"===this.tickPlacement?0:this.tickLength)-5):(p.textBlock.y="inside"===this.labelPlacement?q.y:q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle),p.textBlock.x="inside"===this.labelPlacement?q.x+("inside"===this.tickPlacement?this.tickLength:0)+5:0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth= -a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<0,b);a.ctx.lineTo(q.x+a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x1+1,this._titleTextBlock.y=this.lineCoordinates.height/2+this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if("right"=== -this._position){for(m=0;mthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&"inside"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x+this.tickLength<<0,b),this.ctx.stroke()),f&&0!==h++%2&&this.labelAutoFit||(0===this.labelAngle? -(p.textBlock.y=q.y,p.textBlock.x="inside"===this.labelPlacement?q.x-p.textBlock.width-("inside"===this.tickPlacement?this.tickLength:0)-5:q.x+("inside"===this.tickPlacement?0:this.tickLength)+5):(p.textBlock.y="inside"===this.labelPlacement?q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle):0>this.labelAngle?q.y:q.y-(p.textBlock.height-p.textBlock.fontSize/2-5)*Math.cos(Math.PI/180*this.labelAngle),p.textBlock.x="inside"===this.labelPlacement?q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)- -("inside"===this.tickPlacement?this.tickLength:0)-5:0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position), -a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<0,b);a.ctx.lineTo(q.x-a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x2-1,this._titleTextBlock.y=this.lineCoordinates.height/2-this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}h= -0;if("inside"===this.labelPlacement)this.chart.addEventListener("dataAnimationEnd",function(){for(m=0;ma.viewportMaximum||f&&0!==h++%2&&a.labelAutoFit)||(a.ctx.save(),a.ctx.beginPath(),p.textBlock.render(!0),a.ctx.restore())},this);else for(m=0;mthis.viewportMaximum||f&&0!==h++%2&&this.labelAutoFit)||p.textBlock.render(!0)};z.prototype.renderInterlacedColors= -function(){var a=this.chart.plotArea.ctx,f,c,b=this.chart.plotArea,e=0;f=!0;if(("bottom"===this._position||"top"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(Math.min(c.x,f.x),b.y1,Math.abs(c.x-f.x),Math.abs(b.y1-b.y2)),f=!1): -f=!0;else if(("left"===this._position||"right"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(b.x1,Math.min(c.y,f.y),Math.abs(b.x1-b.x2),Math.abs(f.y-c.y)),f=!1):f=!0;a.beginPath()};z.prototype.renderStripLinesOfThicknessType=function(a){if(this.stripLines&& -0this.viewportMaximum||g(m.value)||isNaN(this.range))||"value"===a&&(m.startValue<=this.viewportMinimum&&m.endValue<=this.viewportMinimum||m.startValue>=this.viewportMaximum&&m.endValue>=this.viewportMaximum||g(m.startValue)||g(m.endValue)||isNaN(this.range))||l.push(m))}for(b=0;bthis.viewportMaximum||isNaN(this.range))){a=this.getPixelCoordinatesOnAxis(c.position);if("outside"===c.stripLine.labelPlacement)if(m&&(this.ctx.strokeStyle=m.color,"pixel"===m._thicknessType&&(this.ctx.lineWidth=m.thickness)),"bottom"===this._position){var n=1===this.ctx.lineWidth%2?(a.x<<0)+0.5:a.x<<0;this.ctx.beginPath();this.ctx.moveTo(n,a.y<<0);this.ctx.lineTo(n,a.y+this.tickLength<<0);this.ctx.stroke(); -0===this.labelAngle?(a.x-=c.textBlock.width/2,a.y+=this.tickLength+c.textBlock.fontSize/2+5):(a.x-=0>this.labelAngle?c.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,a.y+=this.tickLength+Math.abs(0>this.labelAngle?c.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5))}else"top"===this._position?(n=1===this.ctx.lineWidth%2?(a.x<<0)+0.5:a.x<<0,this.ctx.beginPath(),this.ctx.moveTo(n,a.y<<0),this.ctx.lineTo(n,a.y-this.tickLength<<0),this.ctx.stroke(),0===this.labelAngle?(a.x-=c.textBlock.width/ -2,a.y-=this.tickLength+c.textBlock.height-c.textBlock.fontSize/2):(a.x+=(c.textBlock.height-this.tickLength-this.labelFontSize/2)*Math.sin(Math.PI/180*this.labelAngle)-(0this.labelAngle?a.y:a.y-(c.textBlock.height-c.textBlock.fontSize/2-5)*Math.cos(Math.PI/180*this.labelAngle),a.x=0this.chart.plotArea.x1?g(m.startValue)?a.x-=c.textBlock.height-c.textBlock.fontSize/2:a.x-=c.textBlock.height/2-c.textBlock.fontSize/2+3:(c.textBlock.angle=90,g(m.startValue)?a.x+=c.textBlock.height-c.textBlock.fontSize/2:a.x+=c.textBlock.height/2-c.textBlock.fontSize/2+3),a.y=-90===c.textBlock.angle? -"near"===c.stripLine.labelAlign?this.chart.plotArea.y2-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y1+c.textBlock.width+3:"near"===c.stripLine.labelAlign?this.chart.plotArea.y2-c.textBlock.width-3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y1+3):"top"===this._position?(c.textBlock.maxWidth=this.options.stripLines[b].labelMaxWidth?this.options.stripLines[b].labelMaxWidth: -this.chart.plotArea.height-3,c.textBlock.measureText(),a.x-c.textBlock.height>this.chart.plotArea.x1?g(m.startValue)?a.x-=c.textBlock.height-c.textBlock.fontSize/2:a.x-=c.textBlock.height/2-c.textBlock.fontSize/2+3:(c.textBlock.angle=90,g(m.startValue)?a.x+=c.textBlock.height-c.textBlock.fontSize/2:a.x+=c.textBlock.height/2-c.textBlock.fontSize/2+3),a.y=-90===c.textBlock.angle?"near"===c.stripLine.labelAlign?this.chart.plotArea.y1+c.textBlock.width+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+ -this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y2-3:"near"===c.stripLine.labelAlign?this.chart.plotArea.y1+3:"center"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y2-c.textBlock.width-3):"left"===this._position?(c.textBlock.maxWidth=this.options.stripLines[b].labelMaxWidth?this.options.stripLines[b].labelMaxWidth:this.chart.plotArea.width-3,c.textBlock.angle=0,c.textBlock.measureText(),a.y-c.textBlock.height>this.chart.plotArea.y1? -g(m.startValue)?a.y-=c.textBlock.height-c.textBlock.fontSize/2:a.y-=c.textBlock.height/2-c.textBlock.fontSize+3:a.y-c.textBlock.heightthis.chart.plotArea.y1?g(m.startValue)?a.y-=c.textBlock.height-c.textBlock.fontSize/2:a.y-=c.textBlock.height/2-c.textBlock.fontSize/2-3:a.y-c.textBlock.heightthis.viewportMaximum||isNaN(this.range))||a[f].render(this.maskCtx);this.maskCtx.restore()}};z.prototype.renderCrosshair=function(a,f){isFinite(this.minimum)&&isFinite(this.maximum)&&(this.crosshair.render(a,f),this.crosshair.dispatchEvent("updated",{chart:this.chart,crosshair:this.options,axis:this,value:this.crosshair.value},this))};z.prototype.showCrosshair=function(a){g(a)||(athis.viewportMaximum)||("top"===this._position||"bottom"===this._position?this.crosshair.render(this.convertValueToPixel(a), -null,a):this.crosshair.render(null,this.convertValueToPixel(a),a))};z.prototype.renderGrid=function(){if(this.gridThickness&&0this.viewportMaximum|| -this._labels[b].breaksLabelType)||(a.beginPath(),f=this.getPixelCoordinatesOnAxis(this._labels[b].position),f=1===a.lineWidth%2?(f.x<<0)+0.5:f.x<<0,a.moveTo(f,c.y1<<0),a.lineTo(f,c.y2<<0),a.stroke());else if("left"===this._position||"right"===this._position)for(var b=0;bthis.viewportMaximum||this._labels[b].breaksLabelType)||(a.beginPath(),f=this.getPixelCoordinatesOnAxis(this._labels[b].position),f= -1===a.lineWidth%2?(f.y<<0)+0.5:f.y<<0,a.moveTo(c.x1<<0,f),a.lineTo(c.x2<<0,f),a.stroke());a.restore()}};z.prototype.renderAxisLine=function(){var a=this.chart.ctx,f=u?this.chart._preRenderCtx:a,c=Math.ceil(this.tickThickness/(this.reversed?-2:2)),b=Math.ceil(this.tickThickness/(this.reversed?2:-2)),e,d;f.save();if("bottom"===this._position||"top"===this._position){if(this.lineThickness){this.reversed?(e=this.lineCoordinates.x2,d=this.lineCoordinates.x1):(e=this.lineCoordinates.x1,d=this.lineCoordinates.x2); -f.lineWidth=this.lineThickness;f.strokeStyle=this.lineColor?this.lineColor:"black";f.setLineDash&&f.setLineDash(Q(this.lineDashType,this.lineThickness));var q=1===this.lineThickness%2?(this.lineCoordinates.y1<<0)+0.5:this.lineCoordinates.y1<<0;f.beginPath();if(this.scaleBreaks&&!g(this.scaleBreaks.firstBreakIndex))if(g(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+b;else for(var l=this.scaleBreaks.firstBreakIndex;l<=this.scaleBreaks.lastBreakIndex;l++)f.moveTo(e, -q),f.lineTo(this.scaleBreaks._appliedBreaks[l].startPixel+c,q),e=this.scaleBreaks._appliedBreaks[l].endPixel+b;e&&(f.moveTo(e,q),f.lineTo(d,q));f.stroke()}}else if(("left"===this._position||"right"===this._position)&&this.lineThickness){this.reversed?(e=this.lineCoordinates.y1,d=this.lineCoordinates.y2):(e=this.lineCoordinates.y2,d=this.lineCoordinates.y1);f.lineWidth=this.lineThickness;f.strokeStyle=this.lineColor;f.setLineDash&&f.setLineDash(Q(this.lineDashType,this.lineThickness));q=1===this.lineThickness% -2?(this.lineCoordinates.x1<<0)+0.5:this.lineCoordinates.x1<<0;f.beginPath();if(this.scaleBreaks&&!g(this.scaleBreaks.firstBreakIndex))if(g(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+c;else for(l=this.scaleBreaks.firstBreakIndex;l<=this.scaleBreaks.lastBreakIndex;l++)f.moveTo(q,e),f.lineTo(q,this.scaleBreaks._appliedBreaks[l].startPixel+b),e=this.scaleBreaks._appliedBreaks[l].endPixel+c;e&&(f.moveTo(q,e),f.lineTo(q,d));f.stroke()}u&& -(a.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),this.chart._breaksCanvasCtx&&this.chart._breaksCanvasCtx.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),f.clearRect(0,0,this.chart.width,this.chart.height));f.restore()};z.prototype.getPixelCoordinatesOnAxis=function(a){var f={};if("bottom"===this._position||"top"===this._position)f.x=this.convertValueToPixel(a),f.y=this.lineCoordinates.y1;if("left"===this._position||"right"===this._position)f.y= -this.convertValueToPixel(a),f.x=this.lineCoordinates.x2;return f};z.prototype.convertPixelToValue=function(a){if("undefined"===typeof a)return null;var f=0,c=0,b,f=!0,e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[],c="number"===typeof a?a:"left"===this._position||"right"===this._position?a.y:a.x;if(this.logarithmic){a=b=Math.pow(this.logarithmBase,(c-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit);if(c<=this.conversionParameters.reference===("left"===this._position|| -"right"===this._position)!==this.reversed)for(c=0;ce[c].startValue/this.conversionParameters.minimum){b/=e[c].startValue/this.conversionParameters.minimum;if(be[c].startValue/e[c- -1].endValue){b/=e[c].startValue/e[c-1].endValue;if(bthis.conversionParameters.minimum))if(f)if(e[c].endValue>this.conversionParameters.minimum){if(1 -e[c].startValue){a=Math.pow(e[c].endValue/e[c].startValue,Math.log(b)/Math.log(e[c].size));break}else a*=e[c].startValue/this.conversionParameters.minimum*Math.pow(e[c].size,Math.log(e[c].startValue/this.conversionParameters.minimum)/Math.log(e[c].endValue/e[c].startValue))*b,b*=Math.pow(e[c].size,Math.log(this.conversionParameters.minimum/e[c].startValue)/Math.log(e[c].endValue/e[c].startValue));f=!1}else if(b1/e[c].size){a*=Math.pow(e[c].endValue/e[c].startValue,1>=e[c].size?1:Math.log(b)/Math.log(e[c].size))*b;break}else a/=e[c].endValue/e[c].startValue/e[c].size;b*=e[c].size;f=!1}else break;else if(b1/e[c].size){a*=Math.pow(e[c].endValue/e[c].startValue,1>=e[c].size?1:Math.log(b)/Math.log(e[c].size))*b;break}else a/=e[c].endValue/e[c].startValue/e[c].size;b*=e[c].size}else break;f=a*this.viewportMinimum}else{a=b=(c-this.conversionParameters.reference)/ -this.conversionParameters.pixelPerUnit;if(c<=this.conversionParameters.reference===("left"===this._position||"right"===this._position)!==this.reversed)for(c=0;c=e[c].size?0:b*(e[c].endValue-e[c].startValue)/e[c].size;break}else a+=e[c].endValue-this.conversionParameters.minimum- -e[c].size*(e[c].endValue-this.conversionParameters.minimum)/(e[c].endValue-e[c].startValue),b-=e[c].size*(e[c].endValue-this.conversionParameters.minimum)/(e[c].endValue-e[c].startValue);f=!1}else if(b>e[c].startValue-this.conversionParameters.minimum){b-=e[c].startValue-this.conversionParameters.minimum;if(be[c].startValue-e[c- -1].endValue){b-=e[c].startValue-e[c-1].endValue;if(bthis.conversionParameters.minimum))if(f)if(e[c].endValue>this.conversionParameters.minimum)if(e[c].size&&this.conversionParameters.minimum+b*(e[c].endValue-e[c].startValue)/e[c].size>e[c].startValue){a=0>=e[c].size?0:b*(e[c].endValue-e[c].startValue)/ -e[c].size;break}else a+=e[c].startValue-this.conversionParameters.minimum+e[c].size*(this.conversionParameters.minimum-e[c].startValue)/(e[c].endValue-e[c].startValue),b+=e[c].size*(this.conversionParameters.minimum-e[c].startValue)/(e[c].endValue-e[c].startValue),f=!1;else if(b-1*e[c].size){a+=(e[c].endValue-e[c].startValue)*(0===e[c].size?1:b/e[c].size)+b;break}else a-=e[c].endValue-e[c].startValue- -e[c].size;b+=e[c].size;f=!1}else break;else if(b-1*e[c].size){a+=(e[c].endValue-e[c].startValue)*(0===e[c].size?1:b/e[c].size)+b;break}else a-=e[c].endValue-e[c].startValue-e[c].size;b+=e[c].size}else break;f=this.conversionParameters.minimum+a}return f};z.prototype.convertValueToPixel=function(a){a=this.getApparentDifference(this.conversionParameters.minimum,a,a);return this.logarithmic?this.conversionParameters.reference+ -this.conversionParameters.pixelPerUnit*Math.log(a/this.conversionParameters.minimum)/this.conversionParameters.lnLogarithmBase+0.5<<0:"axisX"===this.type?this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5<<0:this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5};z.prototype.getApparentDifference=function(a,f,c,b){var e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[]; -if(this.logarithmic){c=g(c)?f/a:c;for(var d=0;de[d].endValue||(a<=e[d].startValue&&f>=e[d].endValue?c=c/e[d].endValue*e[d].startValue*e[d].size:a>=e[d].startValue&&f>=e[d].endValue?c=c/e[d].endValue*a*Math.pow(e[d].size,Math.log(e[d].endValue/a)/Math.log(e[d].endValue/e[d].startValue)):a<=e[d].startValue&&f<=e[d].endValue?c=c/f*e[d].startValue*Math.pow(e[d].size,Math.log(f/e[d].startValue)/Math.log(e[d].endValue/e[d].startValue)):!b&&(a>e[d].startValue&&fe[d].endValue||(a<=e[d].startValue&&f>=e[d].endValue?c=c-e[d].endValue+e[d].startValue+e[d].size:a>e[d].startValue&&f>=e[d].endValue?c=c-e[d].endValue+a+e[d].size*(e[d].endValue-a)/(e[d].endValue-e[d].startValue):a<=e[d].startValue&&fe[d].startValue&& -fa[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<=a[e].endValue?c=0:this.viewportMinimum<=a[e].startValue&& -this.viewportMaximum>=a[e].endValue?(b=b/a[e].endValue*a[e].startValue,c=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b/a[e].endValue*this.viewportMinimum,c=0a[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<=a[e].endValue?c=0:this.viewportMinimum<=a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b-a[e].endValue+a[e].startValue,c=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b-a[e].endValue+this.viewportMinimum,c=0this.maxWidth?8:6);var a=Math.max(b,Math.floor(this.maxWidth/a)),e,d,q,b=0;!g(this.options.viewportMinimum)&&(!g(this.options.viewportMaximum)&&this.options.viewportMinimum>=this.options.viewportMaximum)&&(this.viewportMinimum=this.viewportMaximum=null); -if(g(this.options.viewportMinimum)&&!g(this.sessionVariables.newViewportMinimum)&&!isNaN(this.sessionVariables.newViewportMinimum))this.viewportMinimum=this.sessionVariables.newViewportMinimum;else if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(g(this.options.viewportMaximum)&&!g(this.sessionVariables.newViewportMaximum)&&!isNaN(this.sessionVariables.newViewportMaximum))this.viewportMaximum=this.sessionVariables.newViewportMaximum;else if(null===this.viewportMaximum|| -isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(b=0;b=this.scaleBreaks._appliedBreaks[b].startValue||!g(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[b].startValue||!g(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[b].startValue)&&(!g(this.sessionVariables.newViewportMaximum)&& -this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue||!g(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[b].endValue||!g(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue)){this.scaleBreaks._appliedBreaks.splice(b,1);break}if("axisX"===this.type){if(this.dataSeries&&0d?(b=Math.min(0.01*Math.abs(this.getApparentDifference(d,e,null,!0)),5),0<=d?e=d-b:d=isFinite(e)?e+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(e,d,null,!0)),0.05),0!==d&&(d+=b),0!==e&&(e-= -b)),q=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1d&&(d=0));b=this.getApparentDifference(isNaN(this.viewportMinimum)||null===this.viewportMinimum?e:this.viewportMinimum,isNaN(this.viewportMaximum)||null===this.viewportMaximum?d:this.viewportMaximum,null,!0);if("axisX"===this.type&&c){this.intervalType|| -(b/1<=a?(this.interval=1,this.intervalType="millisecond"):b/2<=a?(this.interval=2,this.intervalType="millisecond"):b/5<=a?(this.interval=5,this.intervalType="millisecond"):b/10<=a?(this.interval=10,this.intervalType="millisecond"):b/20<=a?(this.interval=20,this.intervalType="millisecond"):b/50<=a?(this.interval=50,this.intervalType="millisecond"):b/100<=a?(this.interval=100,this.intervalType="millisecond"):b/200<=a?(this.interval=200,this.intervalType="millisecond"):b/250<=a?(this.interval=250,this.intervalType= -"millisecond"):b/300<=a?(this.interval=300,this.intervalType="millisecond"):b/400<=a?(this.interval=400,this.intervalType="millisecond"):b/500<=a?(this.interval=500,this.intervalType="millisecond"):b/(1*W.secondDuration)<=a?(this.interval=1,this.intervalType="second"):b/(2*W.secondDuration)<=a?(this.interval=2,this.intervalType="second"):b/(5*W.secondDuration)<=a?(this.interval=5,this.intervalType="second"):b/(10*W.secondDuration)<=a?(this.interval=10,this.intervalType="second"):b/(15*W.secondDuration)<= -a?(this.interval=15,this.intervalType="second"):b/(20*W.secondDuration)<=a?(this.interval=20,this.intervalType="second"):b/(30*W.secondDuration)<=a?(this.interval=30,this.intervalType="second"):b/(1*W.minuteDuration)<=a?(this.interval=1,this.intervalType="minute"):b/(2*W.minuteDuration)<=a?(this.interval=2,this.intervalType="minute"):b/(5*W.minuteDuration)<=a?(this.interval=5,this.intervalType="minute"):b/(10*W.minuteDuration)<=a?(this.interval=10,this.intervalType="minute"):b/(15*W.minuteDuration)<= -a?(this.interval=15,this.intervalType="minute"):b/(20*W.minuteDuration)<=a?(this.interval=20,this.intervalType="minute"):b/(30*W.minuteDuration)<=a?(this.interval=30,this.intervalType="minute"):b/(1*W.hourDuration)<=a?(this.interval=1,this.intervalType="hour"):b/(2*W.hourDuration)<=a?(this.interval=2,this.intervalType="hour"):b/(3*W.hourDuration)<=a?(this.interval=3,this.intervalType="hour"):b/(6*W.hourDuration)<=a?(this.interval=6,this.intervalType="hour"):b/(1*W.dayDuration)<=a?(this.interval=1, -this.intervalType="day"):b/(2*W.dayDuration)<=a?(this.interval=2,this.intervalType="day"):b/(4*W.dayDuration)<=a?(this.interval=4,this.intervalType="day"):b/(1*W.weekDuration)<=a?(this.interval=1,this.intervalType="week"):b/(2*W.weekDuration)<=a?(this.interval=2,this.intervalType="week"):b/(3*W.weekDuration)<=a?(this.interval=3,this.intervalType="week"):b/(1*W.monthDuration)<=a?(this.interval=1,this.intervalType="month"):b/(2*W.monthDuration)<=a?(this.interval=2,this.intervalType="month"):b/(3*W.monthDuration)<= -a?(this.interval=3,this.intervalType="month"):b/(6*W.monthDuration)<=a?(this.interval=6,this.intervalType="month"):(this.interval=b/(1*W.yearDuration)<=a?1:b/(2*W.yearDuration)<=a?2:b/(4*W.yearDuration)<=a?4:Math.floor(z.getNiceNumber(b/(a-1),!0)/W.yearDuration),this.intervalType="year"));if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=e-q/2;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=d+q/2;f?this.autoValueFormatString="MMM DD YYYY HH:mm": -"year"===this.intervalType?this.autoValueFormatString="YYYY":"month"===this.intervalType?this.autoValueFormatString="MMM YYYY":"week"===this.intervalType?this.autoValueFormatString="MMM DD YYYY":"day"===this.intervalType?this.autoValueFormatString="MMM DD YYYY":"hour"===this.intervalType?this.autoValueFormatString="hh:mm TT":"minute"===this.intervalType?this.autoValueFormatString="hh:mm TT":"second"===this.intervalType?this.autoValueFormatString="hh:mm:ss TT":"millisecond"===this.intervalType&&(this.autoValueFormatString= -"fff'ms'");this.valueFormatString||(this.valueFormatString=this.autoValueFormatString)}else{this.intervalType="number";b=z.getNiceNumber(b,!1);this.interval=this.options&&0d?(b=Math.min(0.01*Math.abs(this.getApparentDifference(d, -e,null,!0)),5),0<=d?e=d-b:d=isFinite(e)?e+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(e,d,null,!0)),0.05),0!==d&&(d+=b),0!==e&&(e-=b)):(d="undefined"===typeof this.options.interval?-Infinity:this.options.interval,e="undefined"!==typeof this.options.interval||isFinite(this.dataInfo.minDiff)?0:Infinity),q=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1d&&(d=0)),Math.abs(this.getApparentDifference(e,d,null,!0)),"axisX"===this.type&&c){this.valueType="dateTime";if(null===this.minimum||isNaN(this.minimum))this.minimum=e-q/2,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum);if(null===this.maximum||isNaN(this.maximum))this.maximum=d+q/2,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum|| -isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)}else this.intervalType=this.valueType="number",null===this.minimum&&(this.minimum="axisX"===this.type?e-q/2:Math.floor(e/this.interval)*this.interval,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum)),null===this.maximum&&(this.maximum="axisX"===this.type?d+q/2:Math.ceil(d/this.interval)* -this.interval,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)),0===this.maximum&&0===this.minimum&&(0===this.options.minimum?this.maximum+=10:0===this.options.maximum&&(this.minimum-=10));g(this.sessionVariables.newViewportMinimum)&&(this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum));g(this.sessionVariables.newViewportMaximum)&&(this.viewportMaximum=Math.min(this.viewportMaximum, -this.maximum));this.range=this.viewportMaximum-this.viewportMinimum;this.intervalStartPosition="axisX"===this.type&&c?this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval):Math.floor((this.viewportMinimum+0.2*this.interval)/this.interval)*this.interval;this.valueFormatString||(this.valueFormatString=z.generateValueFormatString(this.range,2))}};z.prototype.calculateLogarithmicAxisParameters=function(){var a=this.chart.layoutManager.getFreeSpace(),f=Math.log(this.logarithmBase), -c;"bottom"===this._position||"top"===this._position?(this.maxWidth=a.width,this.maxHeight=a.height):(this.maxWidth=a.height,this.maxHeight=a.width);var a="axisX"===this.type?500>this.maxWidth?7:Math.max(7,Math.floor(this.maxWidth/100)):Math.max(Math.floor(this.maxWidth/50),3),b,d,h,q;q=1;if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(q= -0;q=this.scaleBreaks._appliedBreaks[q].startValue||!g(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[q].startValue||!g(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[q].startValue)&&(!g(this.sessionVariables.newViewportMaximum)&&this.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[q].endValue|| -!g(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[q].endValue||!g(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[q].endValue)){this.scaleBreaks._appliedBreaks.splice(q,1);break}"axisX"===this.type?(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,d=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,1===d/b&&(q=Math.pow(this.logarithmBase,"undefined"===typeof this.options.interval? -0.4:this.options.interval),d*=q,b/=q),h=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:d/b>this.logarithmBase?d/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,d=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,0>=b&&!isFinite(d)?(d="undefined"===typeof this.options.interval?0:this.options.interval,b=1):0>=b?b=d:isFinite(d)||(d=b),1===b&&1===d?(d*=this.logarithmBase- -1/this.logarithmBase,b=1):1===d/b?(q=Math.min(d*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),d*=q,b/=q):b>d?(q=Math.min(b/d*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),1<=d?b=d/q:d=b*q):(q=Math.min(d/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==d&&(d*=q),1!==b&&(b/=q)),h=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:d/b>this.logarithmBase?d/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null=== -this.viewportMinimum||isNaN(this.viewportMinimum))&&1d&&(d=1));q=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?d:this.viewportMaximum)/(isNaN(this.viewportMinimum)||null===this.viewportMinimum?b:this.viewportMinimum);var l=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?d:this.viewportMaximum)-(isNaN(this.viewportMinimum)||null===this.viewportMinimum?b:this.viewportMinimum);this.intervalType= -"number";q=Math.pow(this.logarithmBase,z.getNiceNumber(Math.abs(Math.log(q)/f),!1));this.options&&0this.logarithmBase?d/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):"axisY"===this.type&&(b=null!==this.minimum? -this.minimum:this.dataInfo.min,d=null!==this.maximum?this.maximum:this.dataInfo.max,isFinite(b)||isFinite(d)?1===b&&1===d?(d*=this.logarithmBase,b/=this.logarithmBase):1===d/b?(q=Math.pow(this.logarithmBase,this.interval),d*=q,b/=q):b>d?(q=Math.min(0.01*(b/d),5),1<=d?b=d/q:d=b*q):(q=Math.min(d/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==d&&(d*=q),1!==b&&(b/=q)):(d="undefined"===typeof this.options.interval?0:this.options.interval,b=1),h=Infinity!==this.dataInfo.minDiff? -this.dataInfo.minDiff:d/b>this.logarithmBase?d/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.minimum||isNaN(this.minimum))&&1d&&(d=1)),this.intervalType="number",null===this.minimum&&(this.minimum="axisX"===this.type?b/Math.sqrt(h):Math.pow(this.logarithmBase,this.interval*Math.floor(Math.log(b)/f/this.interval)),g(null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)? -"undefined"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:this.sessionVariables.viewportMinimum)||(this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?"undefined"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:this.sessionVariables.viewportMinimum))),null===this.maximum&&(this.maximum="axisX"===this.type?d*Math.sqrt(h): -Math.pow(this.logarithmBase,this.interval*Math.ceil(Math.log(d)/f/this.interval)),g(null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?"undefined"===typeof this.sessionVariables.newViewportMaximum?0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum)||(this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?"undefined"===typeof this.sessionVariables.newViewportMaximum? -0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum))),1===this.maximum&&1===this.minimum&&(1===this.options.minimum?this.maximum*=this.logarithmBase-1/this.logarithmBase:1===this.options.maximum&&(this.minimum/=this.logarithmBase-1/this.logarithmBase));this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum);this.viewportMaximum=Math.min(this.viewportMaximum,this.maximum);this.viewportMinimum>this.viewportMaximum&&(!this.options.viewportMinimum&&!this.options.minimum|| -this.options.viewportMaximum||this.options.maximum?this.options.viewportMinimum||this.options.minimum||!this.options.viewportMaximum&&!this.options.maximum||(this.viewportMinimum=this.minimum=(this.options.viewportMaximum||this.options.maximum)/Math.pow(this.logarithmBase,2*Math.ceil(this.interval))):this.viewportMaximum=this.maximum=this.options.viewportMinimum||this.options.minimum);b=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(f*this.interval)+0.2)*this.interval);this.range= -this.viewportMaximum/this.viewportMinimum;this.noTicks=a;if(!this.options.interval&&this.rangethis.viewportMaximum||3>a?2:3)){for(f=Math.floor(this.viewportMinimum/c+0.5)*c;fthis.interval&&(this.interval=c,b=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(f*this.interval)+0.2)*this.interval))), -this.equidistantInterval=!0,this.intervalStartPosition=b;if(!this.valueFormatString&&(this.valueFormatString="#,##0.##",1>this.viewportMinimum)){f=Math.floor(Math.abs(Math.log(this.viewportMinimum)/Math.LN10))+2;if(isNaN(f)||!isFinite(f))f=2;if(2a&&(b+=Math.floor(Math.abs(Math.log(a)/Math.LN10)),isNaN(b)||!isFinite(b))&&(b=f);for(var d=0;dc?1>=b?1:5>=b?5:10:Math.max(Math.floor(b),1);return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))};z.getNiceNumber=function(a,f){var c=Math.floor(Math.log(a)/Math.LN10),b=a/Math.pow(10,c),b=f?1.5>b?1:3>b?2:7>b?5:10:1>=b?1:2>=b?2:5>=b?5:10;return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))};z.prototype.getLabelStartPoint=function(){var a=W[this.intervalType+"Duration"]*this.interval,a= -new Date(Math.floor(this.viewportMinimum/a)*a);if("millisecond"!==this.intervalType)if("second"===this.intervalType)0=a||"bottom"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(b,q),this.ctx.lineTo(g,q),this.ctx.lineTo(g,d);else if("wavy"===this.type){l=b;m=d;h=0.5;n=(q-m)/a/3;for(var t=0;t=a||"right"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(g,d),this.ctx.lineTo(g,q),this.ctx.lineTo(b,q);else if("wavy"===this.type){l=b;m=d;h=0.5;n=(g-l)/a/3;for(t=0;t=d.axisY[b].viewportMinimum&&a<=d.axisY[b].viewportMaximum?a:null);else if("top"===this.parent._position)for(b=0;b=d.axisY2[b].viewportMinimum&& -a<=d.axisY2[b].viewportMaximum?a:null);else if("left"===this.parent._position)for(b=0;b=d.axisX[b].viewportMinimum&&a<=d.axisX[b].viewportMaximum?a:null);else{if("right"===this.parent._position)for(b=0;b=d.axisX2[b].viewportMinimum&&a<=d.axisX2[b].viewportMaximum?a:null)}else if("bottom"===this.parent._position)for(b=0;b=d.axisX[b].viewportMinimum&&a<=d.axisX[b].viewportMaximum?a:null);else if("top"===this.parent._position)for(b=0;b=d.axisX2[b].viewportMinimum&&a<=d.axisX2[b].viewportMaximum?a:null);else if("left"===this.parent._position)for(b=0;b=d.axisY[b].viewportMinimum&&a<=d.axisY[b].viewportMaximum?a:null);else if("right"=== -this.parent._position)for(b=0;b=d.axisY2[b].viewportMinimum&&a<=d.axisY2[b].viewportMaximum?a:null);for(b=0;b=d.axisX[b].viewportMinimum&&a<=d.axisX[b].viewportMaximum)&&(d.axisX[b].showCrosshair(a),d.axisX[b].crosshair._updatedValue=a,this===d.axisX[b].crosshair&&(c=!0));for(b=0;b=d.axisX2[b].viewportMinimum&&a<=d.axisX2[b].viewportMaximum)&&(d.axisX2[b].showCrosshair(a),d.axisX2[b].crosshair._updatedValue=a,this===d.axisX2[b].crosshair&&(c=!0));for(b=0;b=d.axisY[b].viewportMinimum&&a<=d.axisY[b].viewportMaximum)&&(d.axisY[b].showCrosshair(a),d.axisY[b].crosshair._updatedValue=a,this===d.axisY[b].crosshair&& -(c=!0));for(b=0;b=d.axisY2[b].viewportMinimum&&a<=d.axisY2[b].viewportMaximum)&&(d.axisY2[b].showCrosshair(a),d.axisY2[b].crosshair._updatedValue=a,this===d.axisY2[b].crosshair&&(c=!0));this.chart.toolTip&&this.chart.toolTip._entries&&this.chart.toolTip.highlightObjects(this.chart.toolTip._entries);return c};X.prototype.hide=function(){this.chart.resetOverlayedCanvas();this.chart.renderCrosshairs(this.parent); -this._hidden=!0};X.prototype.render=function(a,d,c){var b,e,h,q,l=null,x=null,m=null,n="";if(!this.valueFormatString)if("dateTime"===this.parent.valueType)this.valueFormatString=this.parent.valueFormatString;else{var p=0,p="xySwapped"===this.chart.plotInfo.axisPlacement?50this.parent.range?2:Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0):50this.parent.range?2:10>this.parent.range?1:0);this.valueFormatString=z.generateValueFormatString(this.parent.range,p)}var m=null===this.opacity?1:this.opacity,p=Math.abs("pixel"===this._thicknessType?this.thickness:this.parent.conversionParameters.pixelPerUnit*this.thickness),t=this.chart.overlaidCanvasCtx,k=t.globalAlpha;t.globalAlpha=m;t.beginPath();t.strokeStyle=this.color;t.lineWidth=p;t.save();this.labelFontSize=Math.abs(g(this.options.labelFontSize)?this.parent.labelFontSize: -this.labelFontSize);this.labelMaxWidth=g(this.options.labelMaxWidth)?0.3*this.chart.width:this.labelMaxWidth;this.labelMaxHeight=g(this.options.labelWrap)||this.labelWrap?0.3*this.chart.height:2*this.labelFontSize;0this.chart.bounds.x2?m.x=this.chart.bounds.x2-m.width:m.xthis.chart.bounds.y2?m.y=this.chart.bounds.y2-m.height:m.ythis.chart.bounds.y2&&(m.y=this.chart.bounds.y2- -m.measureText().height+m.fontSize/2);"left"===this.parent._position?m.x=this.parent.lineCoordinates.x2-m.measureText().width:"right"===this.parent._position&&(m.x=this.parent.lineCoordinates.x2)}}else if("bottom"===this.parent._position||"top"===this.parent._position){r=this.parent.convertPixelToValue({x:a});for(u=0;uthis.chart.bounds.x2&&(m.x=this.chart.bounds.x2-m.width);m.xthis.chart.bounds.y2&&(m.y=this.chart.bounds.y2-m.measureText().height+m.fontSize/2);"left"===this.parent._position?m.x=this.parent.lineCoordinates.x2-m.measureText().width:"right"===this.parent._position&&(m.x=this.parent.lineCoordinates.x2)}n=null;if("bottom"===this.parent._position||"top"===this.parent._position)"top"===this.parent._position&&m.y-m.fontSize/2this.chart.bounds.y2&&(m.y=this.chart.bounds.y2-m.height+m.fontSize/2+2),b>=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMaximum:this.parent.viewportMinimum)&&e<=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMinimum:this.parent.viewportMaximum)&&(0this.chart.bounds.x2&&(m.x=this.chart.bounds.x2-m.measureText().width),q>=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMinimum:this.parent.viewportMaximum)&&h<=this.parent.convertValueToPixel(this.parent.reversed?this.parent.viewportMaximum:this.parent.viewportMinimum)&&(0this.chart.bounds.y2&&(m.y=this.chart.bounds.y2-m.measureText().height+m.fontSize/2);"left"===this.parent._position?m.x=this.parent.lineCoordinates.x1-m.measureText().width: -"right"===this.parent._position&&(m.x=this.parent.lineCoordinates.x2)}else{if("bottom"===this.parent._position||"top"===this.parent._position)m.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:c?c:this.parent.convertPixelToValue(a)}):g(this.options.label)?$(c?c:this.parent.convertPixelToValue(a),this.valueFormatString,this.chart._cultureInfo):this.label,m.x=b-m.measureText().width/2,m.x+m.width>this.chart.bounds.x2&&(m.x=this.chart.bounds.x2- -m.width),m.xthis.chart.bounds.x2&&(m.x=this.chart.bounds.x2-m.width);m.xthis.chart.bounds.y2&&(m.y=this.chart.bounds.y2-m.measureText().height+m.fontSize/2),"left"===this.parent._position?m.x=this.parent.lineCoordinates.x2- -m.measureText().width:"right"===this.parent._position&&(m.x=this.parent.lineCoordinates.x2);"left"===this.parent._position&&m.xthis.chart.bounds.x2?m.x=this.chart.bounds.x2-m.measureText().width:"top"===this.parent._position&&m.y-m.fontSize/2 -this.chart.bounds.y2&&(m.y=this.chart.bounds.y2-m.height+m.fontSize/2+2);0(new Date).getTime()-this._lastUpdated||(this._lastUpdated=(new Date).getTime(),this.chart.resetOverlayedCanvas(),this._updateToolTip(a,d))};qa.prototype._updateToolTip=function(a,d,c){c="undefined"===typeof c? -!0:c;this.container||this._initialize();this.enabled||this.hide();if(!this.chart.disableToolTip){if("undefined"===typeof a||"undefined"===typeof d){if(isNaN(this._prevX)||isNaN(this._prevY))return;a=this._prevX;d=this._prevY}else this._prevX=a,this._prevY=d;var b=null,e=null,h=[],q=0;if(this.shared&&this.enabled&&"none"!==this.chart.plotInfo.axisPlacement){if("xySwapped"===this.chart.plotInfo.axisPlacement){var l=[];if(this.chart.axisX)for(var r=0;rm.dataSeries.axisY.viewportMaximum&&c++;c-m.dataPoint.y.length&&h.push(m)}else"column"=== -e.type||"bar"===e.type?0>m.dataPoint.y?0>m.dataSeries.axisY.viewportMinimum&&m.dataSeries.axisY.viewportMaximum>=m.dataPoint.y&&h.push(m):m.dataSeries.axisY.viewportMinimum<=m.dataPoint.y&&0<=m.dataSeries.axisY.viewportMaximum&&h.push(m):"bubble"===e.type?(c=this.chart._eventManager.objectMap[e.dataPointIds[m.index]].size/2,m.dataPoint.y>=m.dataSeries.axisY.viewportMinimum-c&&m.dataPoint.y<=m.dataSeries.axisY.viewportMaximum+c&&h.push(m)):"waterfall"===e.type?(c=0,m.cumulativeSumYStartValuem.dataSeries.axisY.viewportMaximum&&c++,m.cumulativeSumm.dataSeries.axisY.viewportMaximum&&c++,2>c&&-2=m.dataSeries.axisY.viewportMinimum&&m.dataPoint.y<=m.dataSeries.axisY.viewportMaximum)&&h.push(m);else h.push(m)}}if(0a&&(a+=this.container.clientWidth+20);a+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(a=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));d=1!==h.length||this.shared||"line"!==h[0].dataSeries.type&&"stepLine"!==h[0].dataSeries.type&&"spline"!==h[0].dataSeries.type&&"area"!==h[0].dataSeries.type&&"stepArea"!== -h[0].dataSeries.type&&"splineArea"!==h[0].dataSeries.type?"bar"===h[0].dataSeries.type||"rangeBar"===h[0].dataSeries.type||"stackedBar"===h[0].dataSeries.type||"stackedBar100"===h[0].dataSeries.type?h[0].dataSeries.axisX.convertValueToPixel(h[0].dataPoint.x):d:h[0].dataSeries.axisY.convertValueToPixel(h[0].dataPoint.y);d=-d+10;0":"X:{axisXIndex}
":""),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y}",q=c.axisXIndex):"bubble"===c.type?(this.chart.axisX&&1< -this.chart.axisX.length&&(h+=q!=c.axisXIndex?c.axisX.title?c.axisX.title+"
":"X:{axisXIndex}
":""),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y},   {z}"):"rangeColumn"===c.type||"rangeBar"===c.type||"rangeArea"===c.type||"rangeSplineArea"===c.type||"error"===c.type?(this.chart.axisX&&1": -"X:{axisXIndex}
":""),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:  {y[0]}, {y[1]}"):"candlestick"===c.type||"ohlc"===c.type?(this.chart.axisX&&1":"X:{axisXIndex}
":""),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content: -"{name}:
Open:   {y[0]}
High:    {y[1]}
Low:   {y[2]}
Close:   {y[3]}"):"boxAndWhisker"===c.type&&(this.chart.axisX&&1":"X:{axisXIndex}
":""),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:"{name}:
Minimum:   {y[0]}
Q1:               {y[1]}
Q2:               {y[4]}
Q3:               {y[2]}
Maximum:  {y[3]}"), -null===d&&(d=""),!0===this.reversed?(d=this.chart.replaceKeywordsWithValue(h,b,c,e)+d,g"+d)):(d+=this.chart.replaceKeywordsWithValue(h,b,c,e),g")));null!==d&&(d=l+d)}else{c=a[0].dataSeries;b=a[0].dataPoint;e=a[0].index;if(null===b.toolTipContent||"undefined"===typeof b.toolTipContent&&null===c.options.toolTipContent)return null;"line"===c.type||"stepLine"===c.type||"spline"===c.type||"area"===c.type||"stepArea"===c.type||"splineArea"===c.type||"column"=== -c.type||"bar"===c.type||"scatter"===c.type||"stackedColumn"===c.type||"stackedColumn100"===c.type||"stackedBar"===c.type||"stackedBar100"===c.type||"stackedArea"===c.type||"stackedArea100"===c.type||"waterfall"===c.type?h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+":  {y}":"bubble"===c.type?h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&& -"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+":  {y},   {z}":"pie"===c.type||"doughnut"===c.type||"funnel"===c.type||"pyramid"===c.type?h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.name?"{name}:  ":b.label?"{label}:  ":"")+"{y}":"rangeColumn"===c.type||"rangeBar"===c.type||"rangeArea"===c.type||"rangeSplineArea"=== -c.type||"error"===c.type?h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+" :  {y[0]},  {y[1]}":"candlestick"===c.type||"ohlc"===c.type?h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+"
Open:   {y[0]}
High:    {y[1]}
Low:     {y[2]}
Close:   {y[3]}": -"boxAndWhisker"===c.type&&(h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&"function"!==typeof this.content?this.content:""+(b.label?"{label}":"{x}")+"
Minimum:   {y[0]}
Q1:               {y[1]}
Q2:               {y[4]}
Q3:               {y[2]}
Maximum:  {y[3]}"); -null===d&&(d="");d+=this.chart.replaceKeywordsWithValue(h,b,c,e)}return d};qa.prototype.enableAnimation=function(){if(!this.container.style.WebkitTransition){var a=this.getContainerTransition(this.containerTransitionDuration);this.container.style.WebkitTransition=a;this.container.style.MsTransition=a;this.container.style.transition=a;this.container.style.MozTransition=this.mozContainerTransition}};qa.prototype.disableAnimation=function(){this.container.style.WebkitTransition&&(this.container.style.WebkitTransition= -"",this.container.style.MozTransition="",this.container.style.MsTransition="",this.container.style.transition="")};qa.prototype.hide=function(a){this.container&&(this.container.style.display="none",this.currentSeriesIndex=-1,this._prevY=this._prevX=NaN,("undefined"===typeof a||a)&&this.chart.resetOverlayedCanvas())};qa.prototype.show=function(a,d,c){this._updateToolTip(a,d,"undefined"===typeof c?!1:c)};qa.prototype.showAtIndex=function(a,d){};qa.prototype.showAtX=function(a,d){if(!this.enabled)return!1; -this.chart.clearedOverlayedCanvas=null;var c,b,e,h=[];e=!1;d=!g(d)&&0<=d&&db.dataSeries.axisX.viewportMaximum||b.dataPoint.yb.dataSeries.axisY.viewportMaximum)e=!0;else{e=!1;break}if(e)return this.hide(),!1;this.highlightObjects(h);this._entries=h;q="";q=this.getToolTipInnerHTML({entries:h});if(null!==q){this.contentDiv.innerHTML=q;if(this.isToolTipDefinedInData&&g(this.options.content)&&g(this.options.contentFormatter))for(b=this.contentDiv.getElementsByTagName("span"),q=0,e=this.reversed?h.length-1:0;qc&&(c+=this.container.clientWidth+20);c+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(c=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));h=1!==h.length||this.shared||"line"!==h[0].dataSeries.type&&"stepLine"!==h[0].dataSeries.type&&"spline"!==h[0].dataSeries.type&&"area"!==h[0].dataSeries.type&&"stepArea"!==h[0].dataSeries.type&&"splineArea"!==h[0].dataSeries.type?"bar"===h[0].dataSeries.type|| -"rangeBar"===h[0].dataSeries.type||"stackedBar"===h[0].dataSeries.type||"stackedBar100"===h[0].dataSeries.type?h[0].dataSeries.axisX.convertValueToPixel(h[0].dataPoint.x):h[0].dataSeries.axisY.convertValueToPixel(h[0].dataPoint.y):h[0].dataSeries.axisY.convertValueToPixel(h[0].dataPoint.y);h=-h+10;0b&&a.push(d),d.animationCallback(b),1<=b&&d.onComplete)d.onComplete();this.animations=a;0(b?b.minimum:null)?Math.min(b?b.maximum:null,c):b?b.maximum:null:!g(c)&&c>(d?d.minimum:null)?Math.min(d?d.maximum:null,c):d?d.maximum:null;r.stockChart._rangeEventParameter={stockChart:r.stockChart,source:"inputFields",index:null,minimum:a,maximum:f};r.stockChart._rangeEventParameter.type="rangeChanging";r.stockChart.dispatchEvent("rangeChanging",r.stockChart._rangeEventParameter,r.stockChart);r.stockChart.sessionVariables._axisXMin=a;r.stockChart.sessionVariables._axisXMax= -f;r.stockChart._syncCharts(a,f);r.stockChart._rangeEventParameter.type="rangeChanged";r.stockChart.dispatchEvent("rangeChanged",r.stockChart._rangeEventParameter,r.stockChart);r.stockChart.rangeSelector&&r.stockChart.rangeSelector.resetRangeButtons()}},this.rangeSelector.stockChart.allDOMEventHandlers);D(this.elements[0],"keydown",function(a){if(r.enabled&&13===a.keyCode){var b="dateTime"===r.valueType?fa(r.startValue,"YYYY-MM-DD"):$(r.startValue,r.valueFormatString);this.value!=b&&gb(this,"change"); -this.blur();a.preventDefault&&a.preventDefault()}},this.rangeSelector.stockChart.allDOMEventHandlers);D(this.elements[1],"keydown",function(a){if(r.enabled&&13===a.keyCode){var b="dateTime"===r.valueType?fa(r.endValue,"YYYY-MM-DD"):$(r.endValue,r.valueFormatString);this.value!=b&&gb(this,"change");this.blur();a.preventDefault&&a.preventDefault()}},this.rangeSelector.stockChart.allDOMEventHandlers)}function X(d,q){X.base.constructor.call(this,"ButtonStyle","buttonStyle",q,null,d.rangeSelector);this.stockChart= -d;this.parent=this.rangeSelector=d.rangeSelector;this.options=g(q)||g(q.buttonStyle)?{}:q.buttonStyle;this.optionsName="buttonStyle"}function Y(d,q){Y.base.constructor.call(this,"Style","style",q,null,d.rangeSelector.inputFields);this.stockChart=d;this.parent=this.inputFields=d.rangeSelector.inputFields;this.options=g(q)||g(q.style)?{}:q.style;this.optionsName="style"}var ea=!0;ia(G,aa);G.prototype._updateOptions=function(){this.updateOption("width");this.updateOption("height");this.updateOption("theme"); -this.updateOption("colorSet")&&(this.selectedColorSet="undefined"!==typeof xa[this.colorSet]?xa[this.colorSet]:xa.colorSet1);this.updateOption("backgroundColor");this.backgroundColor||(this.backgroundColor="rgba(0,0,0,0)");this.updateOption("exportEnabled");this.updateOption("exportFileName");this.updateOption("creditHref");this.updateOption("creditHref");this.updateOption("culture");this._cultureInfo=new Na(this.options.culture);this.updateOption("animationEnabled");this.updateOption("animationDuration"); -this.updateOption("rangeChanging");this.updateOption("rangeChanged");this.toolbar=new Va(this,this.options.toolbar);hb(this)};G._supportedChartTypes=Da("line stepLine spline column area stepArea splineArea bubble scatter stackedColumn stackedColumn100 stackedArea stackedArea100 candlestick ohlc boxAndWhisker rangeColumn error rangeArea rangeSplineArea waterfall".split(" "));G.prototype._initialize=function(){this._updateOptions();this.animationEnabled=this.animationEnabled&&u;this._updateSize();this.clearCanvas(); -this.ctx.beginPath();var d,q=g(this.options.charts)?[]:this.options.charts;Da(q);for(var x=0;xq.indexOf(d.options)&&(this.charts.splice(x,1),d.destroy(),this._canvasJSContainer.removeChild(d.panel),x--);this.layoutManager=new Ka(0,0,this.width,this.height,2);this.plotArea.layoutManager&&this.plotArea.layoutManager.reset();this.title=null;this.subtitles=[];this.options.title&&(this.title=new I(this,this.options.title),this.title.setLayout());if(this.options.subtitles)for(x= -0;xthis._chartsPlotAreaX1&&(this._chartsPlotAreaX1=e.bounds.x1);this.navigator.width=this.navigator.chart.width=this.navigator.slider.fullWidth=this.navigator.options.width?this.navigator.options.width:this._chartsPlotAreaX2-this._chartsPlotAreaX1+e.bounds.x1;this.navigator.panel.style.left=this._chartsPlotAreaX1+ -this.layoutManager.getFreeSpace().x1-e.bounds.x1+"px";this.navigator.panel.style.width=this.navigator.chart.panel.style.width=this.navigator.options.width?this.navigator.options.width:this._chartsPlotAreaX2-this._chartsPlotAreaX1+e.bounds.x1+"px";this.navigator.chart.render(this.navigator._chartOptions);this.navigator.backgroundColor=this.navigator.chart.backgroundColor;this.navigator.animationEnabled=this.navigator.chart.animationEnabled;this.navigator.animationDuration=this.navigator.chart.animationDuration; -this.navigator.theme=this.navigator.chart.theme;this.navigator.axisX=this.navigator.chart.axisX;this.navigator.axisX2=this.navigator.chart.axisX2;this.navigator.axisY=this.navigator.chart.axisY;this.navigator.axisY2=this.navigator.chart.axisY2;this.navigator.data=this.navigator.chart.data}}r=x=null;c=0;f=a=null;for(d=0;dr&&(r=e.maximum);var h;this.navigator&&(this.navigator.chart&&ea)&&(h=this.navigator.chart.axisX&&0h.maximum)this._axisXMin=h.minimum;if(this._axisXMaxh.maximum)this._axisXMax=h.maximum}!g(h)&&h.reversed?this._syncCharts(this._axisXMax,this._axisXMin):this._syncCharts(this._axisXMin,this._axisXMax)};G.prototype.setChartsLayout=function(){var d,g,l=0,r=this.width;this.isPlotAreaSet=this.isDateTime=!1;for(var a=0;ac.lineCoordinates.x2?f.x2:c.lineCoordinates.x2}d.axisY2&&0c.lineCoordinates.x2?f.x2:c.lineCoordinates.x2)}for(f=0;f\n');r.document.body&&r.document.body.style&&(r.document.body.style.margin="0px 0px 0px 0px",r.document.body.style.padding="0px 0px 0px 0px");r.document.close();setTimeout(function(){r.focus();r.print();setTimeout(function(){l._canvasJSContainer.removeChild(g)},1E3)},500)};G.prototype.getObjectAtXY=function(d,l,s){s=null;if(!g(this.rangeSelector)){for(var r= -0;r=a.bounds.x1&&(d<=a.bounds.x2&&l>=a.bounds.y1&&l<=a.bounds.y2)&&(s=a.id)}for(r=0;r=a.bounds.x1&&(d<=a.bounds.x2&&l>=a.bounds.y1&&l<=a.bounds.y2)&&(s=a.id)}return s};G.prototype._touchEventHandler=function(d){if(d.changedTouches){var l=[],s=d.changedTouches,r=s?s[0]:d,a=null;switch(d.type){case "touchstart":case "MSPointerDown":l= -["mousemove","mousedown"];this._lastTouchData=Aa(r);this._lastTouchData.time=new Date;break;case "touchmove":case "MSPointerMove":l=["mousemove"];break;case "touchend":case "MSPointerUp":var f=this._lastTouchData&&this._lastTouchData.time?new Date-this._lastTouchData.time:0,l="touchstart"===this._lastTouchEventType||"MSPointerDown"===this._lastTouchEventType||300>f?["mouseup","click"]:["mouseup"];break;default:return}if(!(s&&1f)this._lastTouchData.scroll=!0}catch(b){}this._lastTouchEventType=d.type;if(this._lastTouchData&&this._lastTouchData.scroll)this.isDrag&&this.resetOverlayedCanvas(),this.isDrag=!1;else for(s=0;s=a.x1&&g.x<=a.x2&&g.y>=a.y1&&g.y<=a.y2){r[l].call(r.context,g.x,g.y);"mousedown"===l&&!0===r.capture?(Chart.capturedEventParam=r,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.documentElement.addEventListener("mouseup", -this._mouseEventHandler,!1)):"mouseup"===l&&(r.stockChart.overlaidCanvas.releaseCapture?r.stockChart.overlaidCanvas.releaseCapture():document.documentElement.removeEventListener("mouseup",this._mouseEventHandler,!1));break}else r=null;d.target.style.cursor=r&&r.cursor?r.cursor:this._defaultCursor}l=this.bounds;(g.xl.x2||g.yl.y2)&&this.resetOverlayedCanvas();!this.isDrag&&this._eventManager&&this._eventManager.mouseEventHandler(d)}};G.prototype.resetOverlayedCanvas=function(){this.overlaidCanvasCtx.clearRect(0, -0,this.width,this.height)};G.prototype.clearCanvas=mb;G.prototype.getAutoFontSize=nb;ia(I,Ha);ia(F,Ma);Ja.prototype.alignVerticalAxes=function(){if(!this.isNavigator&&this.stockChart){for(var d=this.sessionVariables.plotAreaBounds,g=this.stockChart._chartsPlotAreaX1-d.x1,d=d.x2-this.stockChart._chartsPlotAreaX2,l=0;lr){var s=Math.max(0,l+a),c=Math.min(r+a,d.navigator.width);r+a>d.navigator.width&&(r=r+a-d.navigator.width,s-=r);0>l+a&&(r=Math.abs(l+a),c+=r);d.stockChart._rangeEventParameter={stockChart:d.stockChart,source:"navigator",index:null,minimum:f.convertPixelToValue(s),maximum:f.convertPixelToValue(c)};d.stockChart.sessionVariables._axisXMin=f.convertPixelToValue(s);d.stockChart.sessionVariables._axisXMax=f.convertPixelToValue(c);d.navigator.dynamicUpdate? -(d.stockChart._rangeEventParameter.type="rangeChanging",d.stockChart.dispatchEvent("rangeChanging",d.stockChart._rangeEventParameter,d.stockChart),d.stockChart._syncCharts(f.convertPixelToValue(s),f.convertPixelToValue(c)),d.stockChart._rangeEventParameter.type="rangeChanged",d.stockChart.dispatchEvent("rangeChanged",d.stockChart._rangeEventParameter,d.stockChart)):d.navigator._updateSlider(d.stockChart.sessionVariables._axisXMin,d.stockChart.sessionVariables._axisXMax)}}},this.navigator.stockChart.allDOMEventHandlers); -D(this.navigator.panel,window.navigator.msPointerEnabled?"MSPointerDown":"touchstart",function(g){d.stockChart._touchEventHandler(g)},this.navigator.stockChart.allDOMEventHandlers);D(this.navigator.stockChart.container,"mousemove",function(l){var s=d.navigator.chart.axisX&&d.navigator.chart.axisX.length?d.navigator.chart.axisX[0]:d.navigator.chart.axisX2[0];if(!g(d.currentHandle)&&d.startPosition){d.navigator.chart.overlaidCanvas.style.cursor=d.navigator.chart.container.style.cursor=d.navigator.panel.style.cursor= -"ew-resize";var r;r=d.currentHandle===d.leftHandle?1:-1;var a=Aa(l);l=l.target||l.srcElement;a.x=l===d.currentHandle?a.x+(d.currentHandle.offsetLeft+d.currentHandle.clientWidth/2+d.panel.offsetLeft):l===d.mask||l===d.panel?a.x+d.panel.offsetLeft:l===d.rightHandle&&d.currentHandle===d.leftHandle?a.x+(d.rightHandle.offsetLeft+d.rightHandle.clientWidth/2+d.panel.offsetLeft):l===d.leftHandle&&d.currentHandle===d.rightHandle?a.x+d.panel.offsetLeft:a.x+("canvasjs-chart-toolbar"===l.parentElement.className? -l.offsetParent.offsetLeft+l.offsetLeft-d.stockChart._chartsPlotAreaX1:l.parentElement.parentElement.parentElement===d.navigator.panel?l.offsetLeft:l.offsetLeft-d.stockChart._chartsPlotAreaX1);var f=a.x-d.startPosition.x;if(0!==f){l=d.panel.offsetLeft;var c=d.panel.clientWidth;0d.startWidth?(l=0r&&(l=d.startLeft)); -l+c<=d._left+d.fullWidth&&(2l;l++)this.buttons.push(new N(this.stockChart,l));this.buttonLabels="1m 3m 6m YTD 1y All".split(" ")}this._wrapElements=!1;var s=this.stockChart.layoutManager.getFreeSpace(),r=s.x1,l=s.y1;this.width=this.options.width?this.width:s.width;g(this.buttonStyle.options.labelFontSize)&&(this.buttonStyle.labelFontSize=this.stockChart.getAutoFontSize(this.buttonStyle.labelFontSize));this.rangeButtonsWidth=0;this.buttonStyle.maxWidth=this.buttonStyle.options.maxWidth? -this.buttonStyle.options.maxWidth:this.stockChart.width/this.buttons.length;if(this.buttons&&0=this.stockChart.width&&(this.height=this.options.height?this.height:2*this.height, -this._wrapElements=!0);"bottom"===this.verticalAlign?(l=s.y2-this.height,d="bottom"):(l=s.y1,d="top");"left"===this.horizontalAlign?r=s.x1+2:"center"===this.horizontalAlign?r=s.x1+s.width/2-this.width/2:"right"===this.horizontalAlign&&(r=s.x2-2-this.width);this.stockChart.layoutManager.registerSpace(d,{width:this.width,height:this.height});this.bounds={x1:r,y1:l,x2:r+this.width,y2:l+this.height,width:this.width,height:this.height};for(l=0;lg;g++)for(var e=0;3>e;e++){for(var f=0,d=0;3>d;d++)f+=a[g][d]*b[d][e];c[g][e]=f}return c}function P(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit=a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX= -a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.globalAlpha=a.globalAlpha;b.font=a.font;b.textAlign=a.textAlign;b.textBaseline=a.textBaseline;b.arcScaleX_=a.arcScaleX_;b.arcScaleY_=a.arcScaleY_;b.lineScale_=a.lineScale_}function Q(a){var b=a.indexOf("(",3),c=a.indexOf(")",b+1),b=a.substring(b+1,c).split(",");if(4!=b.length||"a"!=a.charAt(3))b[3]=1;return b}function E(a,b,c){return Math.min(c,Math.max(b,a))}function F(a,b,c){0>c&&c++;16*c?a+6*(b-a)*c: -1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a}function G(a){if(a in H)return H[a];var b,c=1;a=String(a);if("#"==a.charAt(0))b=a;else if(/^rgb/.test(a)){c=Q(a);b="#";for(var g,e=0;3>e;e++)g=-1!=c[e].indexOf("%")?Math.floor(255*(parseFloat(c[e])/100)):+c[e],b+=v[E(g,0,255)];c=+c[3]}else if(/^hsl/.test(a)){e=c=Q(a);b=parseFloat(e[0])/360%360;0>b&&b++;g=E(parseFloat(e[1])/100,0,1);e=E(parseFloat(e[2])/100,0,1);if(0==g)g=e=b=e;else{var f=0.5>e?e*(1+g):e+g-e*g,d=2*e-f;g=F(d,f,b+1/3);e=F(d,f,b);b=F(d,f,b-1/3)}b="#"+ -v[Math.floor(255*g)]+v[Math.floor(255*e)]+v[Math.floor(255*b)];c=c[3]}else b=Z[a]||a;return H[a]={color:b,alpha:c}}function C(a){this.m_=D();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.fillStyle=this.strokeStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=1*q;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=a;var b="width:"+a.clientWidth+"px;height:"+a.clientHeight+"px;overflow:hidden;position:absolute", -c=a.ownerDocument.createElement("div");c.style.cssText=b;a.appendChild(c);b=c.cloneNode(!1);b.style.backgroundColor="red";b.style.filter="alpha(opacity=0)";a.appendChild(b);this.element_=c;this.lineScale_=this.arcScaleY_=this.arcScaleX_=1}function R(a,b,c,g){a.currentPath_.push({type:"bezierCurveTo",cp1x:b.x,cp1y:b.y,cp2x:c.x,cp2y:c.y,x:g.x,y:g.y});a.currentX_=g.x;a.currentY_=g.y}function S(a,b){var c=G(a.strokeStyle),g=c.color,c=c.alpha*a.globalAlpha,e=a.lineScale_*a.lineWidth;1>e&&(c*=e);b.push("')}function T(a,b,c,g){var e=a.fillStyle,f=a.arcScaleX_,d=a.arcScaleY_,k=g.x-c.x,n=g.y-c.y;if(e instanceof w){var h=0,l=g=0,u=0,m=1;if("gradient"==e.type_){h=e.x1_/f;c=e.y1_/d;var p=s(a,e.x0_/f,e.y0_/d),h=s(a,h,c),h=180*Math.atan2(h.x-p.x,h.y-p.y)/Math.PI;0>h&&(h+=360);1E-6>h&&(h=0)}else p=s(a,e.x0_,e.y0_),g=(p.x-c.x)/k,l=(p.y-c.y)/n,k/=f*q, -n/=d*q,m=x.max(k,n),u=2*e.r0_/m,m=2*e.r1_/m-u;f=e.colors_;f.sort(function(a,b){return a.offset-b.offset});d=f.length;p=f[0].color;c=f[d-1].color;k=f[0].alpha*a.globalAlpha;a=f[d-1].alpha*a.globalAlpha;for(var n=[],r=0;r')}else e instanceof -I?k&&n&&b.push("'):(e=G(a.fillStyle),b.push(''))}function s(a,b,c){a=a.m_;return{x:q*(b*a[0][0]+c*a[1][0]+a[2][0])-r,y:q*(b*a[0][1]+c*a[1][1]+a[2][1])-r}}function z(a,b,c){isFinite(b[0][0])&&(isFinite(b[0][1])&&isFinite(b[1][0])&&isFinite(b[1][1])&&isFinite(b[2][0])&&isFinite(b[2][1]))&&(a.m_=b,c&&(a.lineScale_=aa(ba(b[0][0]*b[1][1]-b[0][1]* -b[1][0]))))}function w(a){this.type_=a;this.r1_=this.y1_=this.x1_=this.r0_=this.y0_=this.x0_=0;this.colors_=[]}function I(a,b){if(!a||1!=a.nodeType||"IMG"!=a.tagName)throw new A("TYPE_MISMATCH_ERR");if("complete"!=a.readyState)throw new A("INVALID_STATE_ERR");switch(b){case "repeat":case null:case "":this.repetition_="repeat";break;case "repeat-x":case "repeat-y":case "no-repeat":this.repetition_=b;break;default:throw new A("SYNTAX_ERR");}this.src_=a.src;this.width_=a.width;this.height_=a.height} -function A(a){this.code=this[a];this.message=a+": DOM Exception "+this.code}var x=Math,k=x.round,J=x.sin,K=x.cos,ba=x.abs,aa=x.sqrt,q=10,r=q/2;navigator.userAgent.match(/MSIE ([\d.]+)?/);var M=Array.prototype.slice;O(document);var U={init:function(a){a=a||document;a.createElement("canvas");a.attachEvent("onreadystatechange",W(this.init_,this,a))},init_:function(a){a=a.getElementsByTagName("canvas");for(var b=0;bd;d++)for(var B=0;16>B;B++)v[16*d+B]=d.toString(16)+B.toString(16);var Z={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC", -bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000", -darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082", -ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA", -mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5", -peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"}, -H={},L={},$={butt:"flat",round:"round"},d=C.prototype;d.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null);this.element_.innerHTML=""};d.beginPath=function(){this.currentPath_=[]};d.moveTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"moveTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.lineTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:"lineTo",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.bezierCurveTo= -function(a,b,c,g,e,f){e=s(this,e,f);a=s(this,a,b);c=s(this,c,g);R(this,a,c,e)};d.quadraticCurveTo=function(a,b,c,g){a=s(this,a,b);c=s(this,c,g);g={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)};R(this,g,{x:g.x+(c.x-this.currentX_)/3,y:g.y+(c.y-this.currentY_)/3},c)};d.arc=function(a,b,c,g,e,f){c*=q;var d=f?"at":"wa",k=a+K(g)*c-r,n=b+J(g)*c-r;g=a+K(e)*c-r;e=b+J(e)*c-r;k!=g||f||(k+=0.125);a=s(this,a,b);k=s(this,k,n);g=s(this,g,e);this.currentPath_.push({type:d, -x:a.x,y:a.y,radius:c,xStart:k.x,yStart:k.y,xEnd:g.x,yEnd:g.y})};d.rect=function(a,b,c,g){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath()};d.strokeRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath();this.stroke();this.currentPath_=e};d.fillRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+ -c,b+g);this.lineTo(a,b+g);this.closePath();this.fill();this.currentPath_=e};d.createLinearGradient=function(a,b,c,g){var e=new w("gradient");e.x0_=a;e.y0_=b;e.x1_=c;e.y1_=g;return e};d.createRadialGradient=function(a,b,c,g,e,f){var d=new w("gradientradial");d.x0_=a;d.y0_=b;d.r0_=c;d.x1_=g;d.y1_=e;d.r1_=f;return d};d.drawImage=function(a,b){var c,g,e,d,r,y,n,h;e=a.runtimeStyle.width;d=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var l=a.width,u=a.height;a.runtimeStyle.width= -e;a.runtimeStyle.height=d;if(3==arguments.length)c=arguments[1],g=arguments[2],r=y=0,n=e=l,h=d=u;else if(5==arguments.length)c=arguments[1],g=arguments[2],e=arguments[3],d=arguments[4],r=y=0,n=l,h=u;else if(9==arguments.length)r=arguments[1],y=arguments[2],n=arguments[3],h=arguments[4],c=arguments[5],g=arguments[6],e=arguments[7],d=arguments[8];else throw Error("Invalid number of arguments");var m=s(this,c,g),p=[];p.push(" ','","");this.element_.insertAdjacentHTML("BeforeEnd",p.join(""))};d.stroke=function(a){var b=[];b.push("d.x)d.x=f.x;if(null==c.y||f.yd.y)d.y=f.y}}b.push(' ">');a?T(this,b,c,d):S(this,b);b.push("");this.element_.insertAdjacentHTML("beforeEnd",b.join(""))};d.fill=function(){this.stroke(!0)};d.closePath=function(){this.currentPath_.push({type:"close"})};d.save=function(){var a= -{};P(this,a);this.aStack_.push(a);this.mStack_.push(this.m_);this.m_=t(D(),this.m_)};d.restore=function(){this.aStack_.length&&(P(this.aStack_.pop(),this),this.m_=this.mStack_.pop())};d.translate=function(a,b){z(this,t([[1,0,0],[0,1,0],[a,b,1]],this.m_),!1)};d.rotate=function(a){var b=K(a);a=J(a);z(this,t([[b,a,0],[-a,b,0],[0,0,1]],this.m_),!1)};d.scale=function(a,b){this.arcScaleX_*=a;this.arcScaleY_*=b;z(this,t([[a,0,0],[0,b,0],[0,0,1]],this.m_),!0)};d.transform=function(a,b,c,d,e,f){z(this,t([[a, -b,0],[c,d,0],[e,f,1]],this.m_),!0)};d.setTransform=function(a,b,c,d,e,f){z(this,[[a,b,0],[c,d,0],[e,f,1]],!0)};d.drawText_=function(a,b,c,d,e){var f=this.m_;d=0;var r=1E3,t=0,n=[],h;h=this.font;if(L[h])h=L[h];else{var l=document.createElement("div").style;try{l.font=h}catch(u){}h=L[h]={style:l.fontStyle||"normal",variant:l.fontVariant||"normal",weight:l.fontWeight||"normal",size:l.fontSize||10,family:l.fontFamily||"sans-serif"}}var l=h,m=this.element_;h={};for(var p in l)h[p]=l[p];p=parseFloat(m.currentStyle.fontSize); -m=parseFloat(l.size);"number"==typeof l.size?h.size=l.size:-1!=l.size.indexOf("px")?h.size=m:-1!=l.size.indexOf("em")?h.size=p*m:-1!=l.size.indexOf("%")?h.size=p/100*m:-1!=l.size.indexOf("pt")?h.size=m/0.75:h.size=p;h.size*=0.981;p=h.style+" "+h.variant+" "+h.weight+" "+h.size+"px "+h.family;m=this.element_.currentStyle;l=this.textAlign.toLowerCase();switch(l){case "left":case "center":case "right":break;case "end":l="ltr"==m.direction?"right":"left";break;case "start":l="rtl"==m.direction?"right": -"left";break;default:l="left"}switch(this.textBaseline){case "hanging":case "top":t=h.size/1.75;break;case "middle":break;default:case null:case "alphabetic":case "ideographic":case "bottom":t=-h.size/2.25}switch(l){case "right":d=1E3;r=0.05;break;case "center":d=r=500}b=s(this,b+0,c+t);n.push('');e?S(this,n):T(this,n,{x:-d,y:0}, -{x:r,y:h.size});e=f[0][0].toFixed(3)+","+f[1][0].toFixed(3)+","+f[0][1].toFixed(3)+","+f[1][1].toFixed(3)+",0,0";b=k(b.x/q)+","+k(b.y/q);n.push('','','');this.element_.insertAdjacentHTML("beforeEnd",n.join(""))};d.fillText=function(a,b,c,d){this.drawText_(a,b,c,d,!1)};d.strokeText=function(a, -b,c,d){this.drawText_(a,b,c,d,!0)};d.measureText=function(a){this.textMeasureEl_||(this.element_.insertAdjacentHTML("beforeEnd",''),this.textMeasureEl_=this.element_.lastChild);var b=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(b.createTextNode(a));return{width:this.textMeasureEl_.offsetWidth}};d.clip=function(){}; -d.arcTo=function(){};d.createPattern=function(a,b){return new I(a,b)};w.prototype.addColorStop=function(a,b){b=G(b);this.colors_.push({offset:a,color:b.color,alpha:b.alpha})};d=A.prototype=Error();d.INDEX_SIZE_ERR=1;d.DOMSTRING_SIZE_ERR=2;d.HIERARCHY_REQUEST_ERR=3;d.WRONG_DOCUMENT_ERR=4;d.INVALID_CHARACTER_ERR=5;d.NO_DATA_ALLOWED_ERR=6;d.NO_MODIFICATION_ALLOWED_ERR=7;d.NOT_FOUND_ERR=8;d.NOT_SUPPORTED_ERR=9;d.INUSE_ATTRIBUTE_ERR=10;d.INVALID_STATE_ERR=11;d.SYNTAX_ERR=12;d.INVALID_MODIFICATION_ERR= -13;d.NAMESPACE_ERR=14;d.INVALID_ACCESS_ERR=15;d.VALIDATION_ERR=16;d.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=U;CanvasRenderingContext2D=C;CanvasGradient=w;CanvasPattern=I;DOMException=A}(); -/*eslint-enable*/ -/*jshint ignore:end*/ \ No newline at end of file diff --git a/src/libs/chart_libs/canvasjs.stock.react.js b/src/libs/chart_libs/canvasjs.stock.react.js deleted file mode 100644 index bd22dfcc..00000000 --- a/src/libs/chart_libs/canvasjs.stock.react.js +++ /dev/null @@ -1,101 +0,0 @@ -/* -CanvasJS React StockCharts - https://canvasjs.com/ -Copyright 2022 fenopix - ---------------------- License Information -------------------- -CanvasJS is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details. -https://canvasjs.com/license/ - -*/ - -var React = require('react'); -var CanvasJS = require('./canvasjs.stock.min'); -CanvasJS = CanvasJS.Chart ? CanvasJS : window.CanvasJS; - -class CanvasJSChart extends React.Component { - static _cjsContainerId = 0 - constructor(props) { - super(props); - this.options = props.options ? props.options : {}; - this.containerProps = props.containerProps ? { ...props.containerProps } : { width: "100%", position: "relative" }; - this.containerProps.height = props.containerProps && props.containerProps.height ? props.containerProps.height : this.options.height ? this.options.height + "px" : "400px"; - this.chartContainerId = "canvasjs-react-chart-container-" + CanvasJSChart._cjsContainerId++; - } - componentDidMount() { - //Create Chart and Render - this.chart = new CanvasJS.Chart(this.chartContainerId, this.options); - this.chart.render(); - - if (this.props.onRef) - this.props.onRef(this.chart); - } - shouldComponentUpdate(nextProps, nextState) { - //Check if Chart-options has changed and determine if component has to be updated - return !(nextProps.options === this.options); - } - componentDidUpdate() { - //Update Chart Options & Render - this.chart.options = this.props.options; - this.chart.render(); - } - componentWillUnmount() { - //Destroy chart and remove reference - if (this.chart) - this.chart.destroy(); - - if (this.props.onRef) - this.props.onRef(undefined); - } - render() { - //return React.createElement('div', { id: this.chartContainerId, style: this.containerProps }); - return
- } -} - -class CanvasJSStockChart extends React.Component { - static _cjsContainerId = 0 - constructor(props) { - super(props); - this.options = props.options ? props.options : {}; - this.containerProps = props.containerProps ? { ...props.containerProps } : { width: "100%", position: "relative" }; - this.containerProps.height = props.containerProps && props.containerProps.height ? props.containerProps.height : this.options.height ? this.options.height + "px" : "600px"; - this.chartContainerId = "canvasjs-react-stockchart-container-" + CanvasJSStockChart._cjsContainerId++; - } - componentDidMount() { - //Create Chart and Render - this.stockChart = new CanvasJS.StockChart(this.chartContainerId, this.options); - this.stockChart.render(); - - if (this.props.onRef) - this.props.onRef(this.stockChart); - } - shouldComponentUpdate(nextProps, nextState) { - //Check if Chart-options has changed and determine if component has to be updated - return !(nextProps.options === this.options); - } - componentDidUpdate() { - //Update Chart Options & Render - this.stockChart.options = this.props.options; - this.stockChart.render(); - } - componentWillUnmount() { - //Destroy chart and remove reference - if (this.stockChart) - this.stockChart.destroy(); - - if (this.props.onRef) - this.props.onRef(undefined); - } - render() { - //return React.createElement('div', { id: this.chartContainerId, style: this.containerProps }); - return
- } -} - -var CanvasJSReact = { - CanvasJSChart: CanvasJSChart, - CanvasJSStockChart: CanvasJSStockChart, - CanvasJS: CanvasJS -}; - -export default CanvasJSReact; \ No newline at end of file diff --git a/src/modules/dashboard/lists/ActivePoolList/FarmingPoolTable.tsx b/src/modules/dashboard/lists/ActivePoolList/FarmingPoolTable.tsx new file mode 100644 index 00000000..c6230e1d --- /dev/null +++ b/src/modules/dashboard/lists/ActivePoolList/FarmingPoolTable.tsx @@ -0,0 +1,392 @@ +// @ts-nocheck + +import React from 'react'; +import { useEffect, useState } from 'react'; +import { Box, Button, Typography, useMediaQuery, useTheme } from '@mui/material'; +import { Table, InputNumber, SelectPicker, Pagination } from 'rsuite'; +import { TokenIcon } from 'src/components/primitives/TokenIcon'; +import { TokenPair } from 'src/components/primitives/TokenPair'; +import { FarmingPoolType, BorrowingInterestType } from './FarmingPoolType'; +import SignalCellularAltIcon from '@mui/icons-material/SignalCellularAlt'; +import { useRouter } from 'next/router'; +import ElectricBoltIcon from '@mui/icons-material/ElectricBolt'; +import InfoIcon from '@mui/icons-material/Info'; +import { TVLTooltip } from 'src/components/infoTooltips/TVLTooltip'; +import { ListMobileItem } from 'src/components/lists/ListMobileItem'; + +import data from "data.json" + +const { Column, HeaderCell, Cell } = Table; + +const farmingPoolData = data["data"]["farmingPools"] as FarmingPoolType[]; + +// console.log({farmingPoolData}) +export const FarmingPoolTable = ({ showModal }: { showModal: (type: boolean) => void }) => { + const { breakpoints } = useTheme(); + const downToXSM = useMediaQuery(breakpoints.down('xsm')); + const [limit, setLimit] = React.useState(5); + const [page, setPage] = React.useState(1); + + const handleChangeLimit = (_limit: number) => { + setPage(1); + setLimit(_limit); + }; + + const router = useRouter(); + const [sortColumn, setSortColumn] = useState(); + const [sortType, setSortType] = useState(); + const [loading, setLoading] = useState(false); + const [tblData, setTblData] = useState(farmingPoolData); + + const tblFilterData = tblData.filter((v, i) => { + const start = limit * (page - 1); + const end = start + limit; + return i >= start && i < end; + }); + + const getData = () => { + if (sortColumn && sortType) { + return tblFilterData.sort((a, b) => { + let x = a[sortColumn]; + let y = b[sortColumn]; + if (typeof x === 'string') { + x = x.charCodeAt(); + } + if (typeof y === 'string') { + y = y.charCodeAt(); + } + if (sortType === 'asc') { + return x - y; + } else { + return y - x; + } + }); + } + return tblFilterData; + }; + + const handleSortColumn = (sortColumn, sortType) => { + setLoading(true); + setTimeout(() => { + setLoading(false); + setSortColumn(sortColumn); + setSortType(sortType); + }, 500); + }; + + return ( + <> + + + Pool + + {(rowData: FarmingPoolType) => ( + router.push('/farm_detail/')} + > + {rowData.workingToken.tokenA ? + : + + } + + + {rowData.sourceName.split(' ')[1]} + + + {rowData.sourceName.split(' ')[0]} + + + + + + + )} + + + + + APY + + {(rowData: FarmingPoolType) => `${Number(rowData.totalApy).toFixed(2)} %`} + + + + + Yield (APR) + + {(rowData: FarmingPoolType, idx) => ( + + + Yield Farming : + {Number(rowData.farmRewardApr).toFixed(2)} % + + + Trading Fees : + {Number(rowData.tradingFeeApr).toFixed(2)} % + + + ALPACA Rewards : + {Number(rowData.alpacaRewardApr).toFixed(2)} % + + + Borrowing Interest : + + { + return ( + + + {' '} + + + + {' '} + + {item.symbol} + + + + {' '} + + {Number(item.interestPercent).toFixed(2)} % + + + + ); + }} + renderValue={(value, item: BorrowingInterestType) => { + return ( + + + {' '} + + + + {' '} + + {item.symbol} + + + + {' '} + + {Number(item.interestPercent).toFixed(2)} % + + + + ); + }} + /> + + + + Total APR : + {Number(rowData.totalApr).toFixed(2)} % + + + Daily APR : + {Number(rowData.totalApr/365).toFixed(2)} % + + + )} + + + + + Leverage + + {(rowData: FarmingPoolType) => ( + + + {' '} + + Boosted + + + + + + )} + + + + + Actions + + {(rowData) => ( + + + + + + + )} + + +
+ {!downToXSM && ( +
+ +
+ )} + + ); +}; diff --git a/src/modules/dashboard/lists/ActivePoolList/FarmingPoolType.ts b/src/modules/dashboard/lists/ActivePoolList/FarmingPoolType.ts new file mode 100644 index 00000000..98602a86 --- /dev/null +++ b/src/modules/dashboard/lists/ActivePoolList/FarmingPoolType.ts @@ -0,0 +1,80 @@ +export interface RewardType { + asset: string; + symbol: string; + protocol: string; + tvl: string; + apy: number; + apr: { + yield_farming: number; + trading_fees: number; + alpaca_rewards: number; + borrowing_interest: borrowing_interest_type[]; + total_apr: number; + daily_apr: number; + }; + leverage: number; + isShowMore: boolean; +} + +export interface borrowing_interest_type { + label: string; + value: string; + token_value: number; +} + +export interface BorrowingInterestType { + key: string, + sourceName: string, + symbol: string, + interestPercent: number, + interestPercentAt2XLeverage: number, + maxLeverage: number, + label: string, + value: string, +} + +export interface TokenType { + address: string, + symbol: string +} + +export interface WorkingTokenType { + address: string, + symbol: string, + tokenA: TokenType, + tokenB: TokenType +} + +export interface WorkerType { + key: string, + sourceName: string, + workerAddress: string, + baseToken: TokenType, + baseTokenAmount: number, + farmToken: TokenType, + farmTokenAmount: number, + tvl: number +} + +export interface FarmingPoolType { + key: string, + sourceName: string, + tvl: number, + tvlInMasterChef: number, + farmRewardApr: number, + alpacaRewardApr: number, + tradingFeeApr: number, + farmRewardValuePerYear: number, + borrowingInterestPercent: number, + borrowingInterestSourceName: string, + borrowingInterests: BorrowingInterestType[], + featureRewardApr: number, + featureRewardAprAt2x: number, + leverage: number, + totalApr: number, + totalApy: number, + dailyTotalApr: number, + openPositionUrl: string, + workingToken: WorkingTokenType, + workers: WorkerType[] +} diff --git a/src/modules/dashboard/lists/ApyEffectList/ApyEffectList.tsx b/src/modules/dashboard/lists/ApyEffectList/ApyEffectList.tsx deleted file mode 100644 index 706083a4..00000000 --- a/src/modules/dashboard/lists/ApyEffectList/ApyEffectList.tsx +++ /dev/null @@ -1,136 +0,0 @@ -import { useState } from 'react'; -import { Chip, Typography, useMediaQuery, useTheme } from '@mui/material'; -import { Table, Pagination } from 'rsuite'; -import { ApyEffectListDataValidator } from './type'; -import { textCenterEllipsis } from 'src/helpers/text-center-ellipsis'; -import 'rsuite/dist/rsuite.min.css'; - -const { Column, HeaderCell, Cell } = Table; -const data: ApyEffectListDataValidator[] = [ - { - address: '0xc6CB9A26DD5DFd155864C93C0eF6Af73D0e600b1', - current_mnt_apy: '0.24% to 0.61%', - future_mnt_apy: '0.24% to 0.61%', - }, - { - address: '0xc6CB9A26DD5DFd155864C93C0eF6Af73D0e600b1', - current_mnt_apy: '0.24% to 0.61%', - future_mnt_apy: '0.24% to 0.61%', - }, - { - address: '0xc6CB9A26DD5DFd155864C93C0eF6Af73D0e600b1', - current_mnt_apy: '0.24% to 0.61%', - future_mnt_apy: '0.24% to 0.61%', - }, - { - address: '0xc6CB9A26DD5DFd155864C93C0eF6Af73D0e600b1', - current_mnt_apy: '0.24% to 0.61%', - future_mnt_apy: '0.24% to 0.61%', - }, - { - address: '0xc6CB9A26DD5DFd155864C93C0eF6Af73D0e600b1', - current_mnt_apy: '0.24% to 0.61%', - future_mnt_apy: '0.24% to 0.61%', - }, -]; - -const ApyEffectList = () => { - const { breakpoints } = useTheme(); - const xsm = useMediaQuery(breakpoints.up('xsm')); - const downToXSM = useMediaQuery(breakpoints.down('xsm')); - - const [sortColumn, setSortColumn] = useState(); - const [sortType, setSortType] = useState(); - const [loading, setLoading] = useState(false); - const [limit, setLimit] = useState(6); - const [page, setPage] = useState(1); - - const getData = () => { - if (sortColumn && sortType) { - return datas.sort((a, b) => { - let x = a[sortColumn]; - let y = b[sortColumn]; - if (typeof x === 'string') { - x = x.charCodeAt(); - } - if (typeof y === 'string') { - y = y.charCodeAt(); - } - if (sortType === 'asc') { - return x - y; - } else { - return y - x; - } - }); - } - return datas; - }; - - const handleChangeLimit = (dataKey) => { - setPage(1); - setLimit(dataKey); - }; - - const datas = data.filter((v, i) => { - const start = limit * (page - 1); - const end = start + limit; - return i >= start && i < end; - }); - - const handleSortColumn = (sortColumn, sortType) => { - setLoading(true); - setTimeout(() => { - setLoading(false); - setSortColumn(sortColumn); - setSortType(sortType); - }, 500); - }; - - return ( -
- - Proposed future MNT APYs taking effect on 29/12/2022 UTC - - - - Pool - - {(rowData) => `cDAI(${textCenterEllipsis(rowData.address, 5, 6)})`} - - - - - Current MNT APY - - - - - Future MNT APY - - -
-
- ); -}; -export default ApyEffectList; diff --git a/src/modules/dashboard/lists/ApyEffectList/type.ts b/src/modules/dashboard/lists/ApyEffectList/type.ts deleted file mode 100644 index 40de06fa..00000000 --- a/src/modules/dashboard/lists/ApyEffectList/type.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface ApyEffectListDataValidator { - address: string; - current_mnt_apy: string; - future_mnt_apy: string; - } - \ No newline at end of file diff --git a/src/modules/dashboard/lists/SupplyAssetsList/SupplyAssetsList.tsx b/src/modules/dashboard/lists/SupplyAssetsList/SupplyAssetsList.tsx index 19dc390c..a6232746 100644 --- a/src/modules/dashboard/lists/SupplyAssetsList/SupplyAssetsList.tsx +++ b/src/modules/dashboard/lists/SupplyAssetsList/SupplyAssetsList.tsx @@ -258,7 +258,7 @@ export const SupplyAssetsList = () => { > <> {!downToXSM && } - {supplyReserves + {sortedSupplyReserves .filter((r) => r.symbol.toLowerCase().includes(search)) .map((item) => downToXSM ? ( diff --git a/src/modules/dashboard/lists/TransactionList/TransactionList.tsx b/src/modules/dashboard/lists/TransactionList/TransactionList.tsx deleted file mode 100644 index b35b26f6..00000000 --- a/src/modules/dashboard/lists/TransactionList/TransactionList.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { Box, useMediaQuery, useTheme } from '@mui/material'; -import TransactionListHeader from './TransactionListHeader'; -import TransactionListItem from './TransactionListItem'; -import { TransactionListMobileItem } from './TransactionListMobileItem'; - -import { ListHeader } from '../ListHeader'; - -function TransactionList() { - const theme = useTheme(); - const downToXSM = useMediaQuery(theme.breakpoints.down('xsm')); - - return ( - - - {!downToXSM ? : } - - ); -} - -export default TransactionList; diff --git a/src/modules/dashboard/lists/TransactionList/TransactionListItem.tsx b/src/modules/dashboard/lists/TransactionList/TransactionListItem.tsx deleted file mode 100644 index 33f51c85..00000000 --- a/src/modules/dashboard/lists/TransactionList/TransactionListItem.tsx +++ /dev/null @@ -1,143 +0,0 @@ -import { useState } from 'react'; -import { Box } from '@mui/material'; -import { Table } from 'rsuite'; -import { TokenIcon } from 'src/components/primitives/TokenIcon'; -import { TransactionListValidator } from './type'; - -const { Column, HeaderCell, Cell } = Table; -const data: TransactionListValidator[] = [ - { - asset: 'ETH', - symbol: 'eth', - network: 'Ethereum', - type: 'ETH borrow', - amount: 2374.5, - block: 'YES', - hash_id: '2342342342342', - date: '16/12/2022', - }, - { - asset: 'BTC', - symbol: 'btc', - network: 'BTC', - type: 'ETH borrow', - amount: 237.5, - block: 'YES', - hash_id: '2342342342342', - date: '16/12/2022', - }, -]; - -const TransactionListItem = () => { - const [sortColumn, setSortColumn] = useState(); - const [sortType, setSortType] = useState(); - const [loading, setLoading] = useState(false); - - const getData = () => { - if (sortColumn && sortType) { - return data.sort((a, b) => { - let x = a[sortColumn]; - let y = b[sortColumn]; - if (typeof x === 'string') { - x = x.charCodeAt(); - } - if (typeof y === 'string') { - y = y.charCodeAt(); - } - if (sortType === 'asc') { - return x - y; - } else { - return y - x; - } - }); - } - return data; - }; - - const handleSortColumn = (sortColumn, sortType) => { - setLoading(true); - setTimeout(() => { - setLoading(false); - setSortColumn(sortColumn); - setSortType(sortType); - }, 500); - }; - - return ( - - - Asset - - {(rowData) => ( - - - - - {rowData.asset} - - - {rowData.network} - - - - )} - - - - - Type - - - - - Amount - - - - - Block - - - - - Hash Id - - - - Date - - -
- ); -}; -export default TransactionListItem; diff --git a/src/modules/dashboard/lists/TransactionList/TransactionListMobileItem.tsx b/src/modules/dashboard/lists/TransactionList/TransactionListMobileItem.tsx deleted file mode 100644 index bb047d73..00000000 --- a/src/modules/dashboard/lists/TransactionList/TransactionListMobileItem.tsx +++ /dev/null @@ -1,103 +0,0 @@ -import { Trans } from '@lingui/macro'; -import { Box, Typography } from '@mui/material'; -import { Row } from '../../../../components/primitives/Row'; -import { TokenIcon } from 'src/components/primitives/TokenIcon'; -import { TransactionListValidator } from './type'; - -const data: TransactionListValidator[] = [ - { - asset: 'ETH', - symbol: 'eth', - network: 'Ethereum', - type: 'ETH borrow', - amount: 2374.5, - block: 'YES', - hash_id: '2342342342342', - date: '16/12/2022', - }, - { - asset: 'BTC', - symbol: 'btc', - network: 'BTC', - type: 'ETH borrow', - amount: 237.5, - block: 'YES', - hash_id: '2342342342342', - date: '16/12/2022', - }, -]; - -export const TransactionListMobileItem = () => { - return data.map((asset) => ( - - - - - - - - {' '} - - {asset.symbol} - - - - {' '} - - {asset.network} - - - - - - - - Type} align="flex-start" captionVariant="description" mb={2}> -
{asset.type}
-
- - Amount} align="flex-start" captionVariant="description" mb={2}> - {asset.amount} - - Block} align="flex-start" captionVariant="description" mb={2}> - {asset.block} - - Hash Id} - align="flex-start" - captionVariant="description" - mb={2} - > - {asset.hash_id} - - Date} align="flex-start" captionVariant="description" mb={2}> - {asset.date} - -
-
- )); - - // -}; diff --git a/src/modules/dashboard/lists/TransactionList/type.ts b/src/modules/dashboard/lists/TransactionList/type.ts deleted file mode 100644 index eb769dae..00000000 --- a/src/modules/dashboard/lists/TransactionList/type.ts +++ /dev/null @@ -1,10 +0,0 @@ -export interface TransactionListValidator { - asset: string; - symbol: string; - network: string; - type: string; - amount: number; - block: string; - hash_id: string; - date: string; -} diff --git a/src/modules/gauge-weight-vote/ApyEffectList/ApyEffectList.tsx b/src/modules/gauge-weight-vote/ApyEffectList/ApyEffectList.tsx new file mode 100644 index 00000000..8169e3e8 --- /dev/null +++ b/src/modules/gauge-weight-vote/ApyEffectList/ApyEffectList.tsx @@ -0,0 +1,97 @@ +import { useState, useEffect } from 'react'; +import { Chip, Typography, useMediaQuery, useTheme } from '@mui/material'; +import { Table, Pagination } from 'rsuite'; +import { ApyEffectListItem } from './type'; +import { textCenterEllipsis } from 'src/helpers/text-center-ellipsis'; +import { SortType } from 'src/helpers/rsuite-types'; +import { useProtocolDataContext } from 'src/hooks/useProtocolDataContext'; +import 'rsuite/dist/rsuite.min.css'; +import dayjs from 'dayjs'; +import utc from 'dayjs/plugin/utc'; +dayjs.extend(utc) + +const { Column, HeaderCell, Cell } = Table; + +const ApyEffectList = () => { + const { breakpoints } = useTheme(); + const xsm = useMediaQuery(breakpoints.up('xsm')); + const downToXSM = useMediaQuery(breakpoints.down('xsm')); + + const [sortColumn, setSortColumn] = useState(""); + const [sortType, setSortType] = useState("desc" as SortType); + const [loading, setLoading] = useState(false); + const [data, setData] = useState([]); + const { currentMarketData } = useProtocolDataContext(); + + const nextTime = dayjs.utc().add(7, 'day').format('YYYY/MM/DD'); + + const handleSortColumn = (sortColumn: string, sortType?: SortType) => { + setLoading(true); + setTimeout(() => { + setLoading(false); + setSortColumn(sortColumn); + setSortType(sortType!); + }, 500); + }; + + useEffect(()=>{ + let _data: ApyEffectListItem[] = []; + for (const key in currentMarketData.addresses.GAUGES) { + let currentAPY = 0.001; + _data.push({ + pool: `${key} ( Gauge ${currentMarketData.addresses.GAUGES[key]} )`, + currentMNT_APY: `${currentAPY}% to ${currentAPY * 2.5}%`, + futureMNT_APY: `${currentAPY}% to ${currentAPY * 2.5}%`, + }); + } + setData(_data); + }, []); + + return ( +
+ + Proposed future MNT APYs taking effect on {nextTime} UTC + + + + Pool + + + + + Current MNT APY + + + + + Future MNT APY + + +
+
+ ); +}; +export default ApyEffectList; diff --git a/src/modules/dashboard/lists/ApyEffectList/VoteListMobile.tsx b/src/modules/gauge-weight-vote/ApyEffectList/VoteListMobile.tsx similarity index 97% rename from src/modules/dashboard/lists/ApyEffectList/VoteListMobile.tsx rename to src/modules/gauge-weight-vote/ApyEffectList/VoteListMobile.tsx index 01067e15..c1a23dca 100644 --- a/src/modules/dashboard/lists/ApyEffectList/VoteListMobile.tsx +++ b/src/modules/gauge-weight-vote/ApyEffectList/VoteListMobile.tsx @@ -1,6 +1,6 @@ import { Trans } from '@lingui/macro'; import { Box, Typography } from '@mui/material'; -import { Row } from '../../../../components/primitives/Row'; +import { Row } from '../../../components/primitives/Row'; import { textCenterEllipsis } from 'src/helpers/text-center-ellipsis'; import { VoteListDataValidator } from './type'; diff --git a/src/modules/gauge-weight-vote/ApyEffectList/type.ts b/src/modules/gauge-weight-vote/ApyEffectList/type.ts new file mode 100644 index 00000000..817f912d --- /dev/null +++ b/src/modules/gauge-weight-vote/ApyEffectList/type.ts @@ -0,0 +1,5 @@ +export interface ApyEffectListItem { + pool: string; + currentMNT_APY: string; + futureMNT_APY: string; +} diff --git a/src/modules/gauge-weight-vote/WeightVotingHistory/WeightVotingHistory.tsx b/src/modules/gauge-weight-vote/WeightVotingHistory/WeightVotingHistory.tsx new file mode 100644 index 00000000..0d3d22b9 --- /dev/null +++ b/src/modules/gauge-weight-vote/WeightVotingHistory/WeightVotingHistory.tsx @@ -0,0 +1,133 @@ +import { useState, useEffect } from 'react'; +import { Chip, Typography, useMediaQuery, useTheme } from '@mui/material'; +import { Table, Pagination } from 'rsuite'; +import { textCenterEllipsis } from 'src/helpers/text-center-ellipsis'; +import { SortType } from 'src/helpers/rsuite-types'; +import { useProtocolDataContext } from 'src/hooks/useProtocolDataContext'; +import 'rsuite/dist/rsuite.min.css'; +import dayjs from 'dayjs'; +import utc from 'dayjs/plugin/utc'; +import { AnkrProvider, Blockchain } from '@ankr.com/ankr.js'; +import { ANKR_SUPPORTED_CHAINS } from 'src/helpers/ankr'; +import { BigNumber, utils } from 'ethers'; +import { VoteHistoryItem } from './types'; + +dayjs.extend(utc) + +const { Column, HeaderCell, Cell } = Table; + +const WeightVotingHistory = () => { + const { breakpoints } = useTheme(); + const xsm = useMediaQuery(breakpoints.up('xsm')); + const downToXSM = useMediaQuery(breakpoints.down('xsm')); + + const [sortColumn, setSortColumn] = useState(""); + const [sortType, setSortType] = useState("desc" as SortType); + const [loading, setLoading] = useState(false); + const [data, setData] = useState([]); + const [logs, setLogs] = useState([]); + const { currentMarketData, currentChainId } = useProtocolDataContext(); + + const nextTime = dayjs.utc().add(7, 'day').format('YYYY/MM/DD'); + + const handleSortColumn = (sortColumn: string, sortType?: SortType) => { + setLoading(true); + setTimeout(() => { + setLoading(false); + setSortColumn(sortColumn); + setSortType(sortType!); + }, 500); + }; + + useEffect(()=>{ + if(!ANKR_SUPPORTED_CHAINS[currentChainId]) return; + + let abi = [ + "event VoteForGauge (uint256 time, address user, address gauge_addr, uint256 weight)" + ]; + let iface = new utils.Interface(abi) + + const ankrProvider = new AnkrProvider("https://rpc.ankr.com/multichain/569ca1f392f7d3d0bb1073a1173ecb649af1d9249231fe59fa95db19d5ae41fe"); + ankrProvider.getLogs({ + blockchain: ANKR_SUPPORTED_CHAINS[currentChainId] as Blockchain, + descOrder: true, + topics: [ + iface.getEventTopic("VoteForGauge"), // utils.keccak256(utils.toUtf8Bytes('VoteForGauge(uint256,address,address,uint256)')) + ], + address: [currentMarketData.addresses.GAUGE_CONTROLLER || ""], + decodeLogs: false, + }) + .then(res => { + console.log(iface.parseLog(res.logs[0])); + let _logs = res.logs.map((log)=>{ + let parsedLog = iface.parseLog(log); + return { + time: BigNumber.from(parsedLog.args.time).toNumber(), + voter: parsedLog.args.user as string, + gauge: parsedLog.args.gauge_addr as string, + weight: BigNumber.from(parsedLog.args.weight).toNumber() + } + }); + console.log({_logs}) + setLogs(_logs); + }) + .catch(console.error); + }, []); + + return ( +
+ + Weight Voting History + + + + Time + + {row=>dayjs.utc(row.time*1000).format('YYYY/MM/DD')} + + + + + Voter + + + + + Gauge + + + + Weight + + {row=>`${row.weight/100}%`} + + +
+
+ ); +}; +export default WeightVotingHistory; diff --git a/src/modules/gauge-weight-vote/WeightVotingHistory/types.ts b/src/modules/gauge-weight-vote/WeightVotingHistory/types.ts new file mode 100644 index 00000000..17f6c76f --- /dev/null +++ b/src/modules/gauge-weight-vote/WeightVotingHistory/types.ts @@ -0,0 +1,7 @@ +export interface VoteHistoryItem { + time: number; + voter: string; + gauge: string; + weight: number; +} + \ No newline at end of file diff --git a/src/modules/position/Dashboard.tsx b/src/modules/position/Dashboard.tsx index 113d4443..674b9d01 100644 --- a/src/modules/position/Dashboard.tsx +++ b/src/modules/position/Dashboard.tsx @@ -9,7 +9,7 @@ export const Dashboard = () => { const downToXSM = useMediaQuery(theme.breakpoints.down('xsm')); return (
- + {/* */} {!downToXSM ? : }
); diff --git a/src/modules/position/PositionTabs.tsx b/src/modules/position/PositionTabs.tsx index 962afc79..02142c4b 100644 --- a/src/modules/position/PositionTabs.tsx +++ b/src/modules/position/PositionTabs.tsx @@ -13,7 +13,7 @@ import { import { styled } from '@mui/system'; import { BorrowedPositionsList } from '../dashboard/lists/BorrowedPositionsList/BorrowedPositionsList'; import { SuppliedPositionsList } from '../dashboard/lists/SuppliedPositionsList/SuppliedPositionsList'; -import TransactionList from '../dashboard/lists/TransactionList/TransactionList'; +import TransactionList from './TransactionList/TransactionList'; import { Dashboard } from './Dashboard'; import { FarmPosition } from './FarmPosition'; @@ -198,7 +198,7 @@ export const PositionTabs = () => { }} /> */} { - const [sortColumn, setSortColumn] = useState(); - const [sortType, setSortType] = useState(); + const [sortColumn, setSortColumn] = useState(""); + const [sortType, setSortType] = useState("desc" as SortType); const [loading, setLoading] = useState(false); + const [claimableUsd, setClaimableUsd] = useState('0'); + const { user, reserves } = useAppDataContext(); + const [selectedRewardSymbol, setSelectedRewardSymbol] = useState('all'); + const [allReward, setAllReward] = useState(); + const [rewards, setRewards] = useState([]); - const getData = () => { - if (sortColumn && sortType) { - return data.sort((a, b) => { - let x = a[sortColumn]; - let y = b[sortColumn]; - if (typeof x === 'string') { - x = x.charCodeAt(); - } - if (typeof y === 'string') { - y = y.charCodeAt(); - } - if (sortType === 'asc') { - return x - y; - } else { - return y - x; - } - }); - } - return data; - }; + // get all rewards + useEffect(() => { + const userIncentives: Reward[] = []; + let totalClaimableUsd = Number(claimableUsd); + const allAssets: string[] = []; + Object.keys(user.calculatedUserIncentives).forEach((rewardTokenAddress) => { + const incentive: UserIncentiveData = user.calculatedUserIncentives[rewardTokenAddress]; + const rewardBalance = normalize(incentive.claimableRewards, incentive.rewardTokenDecimals); + + let tokenPrice = Number(incentive.rewardPriceFeed); + + const rewardBalanceUsd = Number(rewardBalance) * tokenPrice; + + if (rewardBalanceUsd > 0) { + incentive.assets.forEach((asset) => { + if (allAssets.indexOf(asset) === -1) { + allAssets.push(asset); + } + }); + + userIncentives.push({ + assets: incentive.assets, + incentiveControllerAddress: incentive.incentiveControllerAddress, + symbol: incentive.rewardTokenSymbol, + balance: rewardBalance, + balanceUsd: rewardBalanceUsd.toString(), + rewardTokenAddress, + }); + + totalClaimableUsd = totalClaimableUsd + Number(rewardBalanceUsd); + } + }); + + // if (userIncentives.length === 1) { + // setSelectedRewardSymbol(userIncentives[0].symbol); + // } else if (userIncentives.length > 1 && !selectedReward) { + // const allRewards = { + // assets: allAssets, + // incentiveControllerAddress: userIncentives[0].incentiveControllerAddress, + // symbol: 'all', + // balance: '0', + // balanceUsd: totalClaimableUsd.toString(), + // rewardTokenAddress: '', + // }; + // setSelectedRewardSymbol('all'); + // setAllReward(allRewards); + // } + + setRewards(userIncentives); + setClaimableUsd(totalClaimableUsd.toString()); + }, []); - const handleSortColumn = (sortColumn, sortType) => { + const handleSortColumn = (sortColumn: string, sortType?: SortType) => { setLoading(true); setTimeout(() => { setLoading(false); setSortColumn(sortColumn); - setSortType(sortType); + setSortType(sortType!); }, 500); }; return ( { Pool - {(rowData) => ( + {(rowData: Reward) => ( { }} > - {rowData.asset} + {rowData.symbol} - {rowData.network} - + */} )} - - Base vAPY - {(rowData) => `${rowData.vAPY}%`} - - - - Rewards tAPR(CRV+ Incentives) - {(rowData) => `${rowData.tAPR}$`} - - Balance - {(rowData) => `${rowData.balance}$`} + {(rowData: Reward) => `${rowData.balance}`} USD Profits - {(rowData) => `${rowData.profit_usd}$`} + {(rowData: Reward) => `$${rowData.balanceUsd}`} Claimable Tokens diff --git a/src/modules/position/TransactionList/TransactionList.tsx b/src/modules/position/TransactionList/TransactionList.tsx new file mode 100644 index 00000000..dfbf78ef --- /dev/null +++ b/src/modules/position/TransactionList/TransactionList.tsx @@ -0,0 +1,84 @@ +import { useState, useEffect } from 'react'; +import { Box, useMediaQuery, useTheme } from '@mui/material'; +import TransactionListHeader from './TransactionListHeader'; +import TransactionListItem from './TransactionListItem'; +import { TransactionListMobileItem } from './TransactionListMobileItem'; +import { useProtocolDataContext } from 'src/hooks/useProtocolDataContext'; +import { useWeb3Context } from 'src/libs/hooks/useWeb3Context'; +import { Transaction } from './type'; +import { AnkrProvider, Blockchain } from '@ankr.com/ankr.js'; +import { ANKR_SUPPORTED_CHAINS } from 'src/helpers/ankr'; + +function TransactionList() { + const [txs, setTxs] = useState([] as Transaction[]); + const [assets, setAssets] = useState([] as string[]); + const [selectedAsset, setSelectedAsset] = useState("All"); + const [startDate, setStartDate] = useState(); + const [endDate, setEndDate] = useState(); + + const theme = useTheme(); + const downToXSM = useMediaQuery(theme.breakpoints.down('xsm')); + const {currentAccount} = useWeb3Context(); + const {currentChainId} = useProtocolDataContext(); + + useEffect(()=>{ + if(!ANKR_SUPPORTED_CHAINS[currentChainId]) return; + + const ankrProvider = new AnkrProvider("https://rpc.ankr.com/multichain/569ca1f392f7d3d0bb1073a1173ecb649af1d9249231fe59fa95db19d5ae41fe"); + ankrProvider.getTokenTransfers({ + blockchain: ANKR_SUPPORTED_CHAINS[currentChainId] as Blockchain, + address: [currentAccount], + descOrder: true, + }) + .then(res => { + console.log(res); + let _assets: Record = {}; + setTxs(res.transfers.map((tx) => { + const date = new Date(tx.timestamp! * 1000); + const dateString = date.toLocaleString(); + const value = tx.value; + const hash = tx.transactionHash; + _assets[tx.tokenSymbol] = true; + return { + date, + asset: tx.tokenSymbol, + symbol: tx.tokenSymbol, + network: tx.blockchain, + type: "Transfer", + amount: +value, + block: tx.blockHeight, + hash + } as Transaction + })); + setAssets(Object.keys(_assets)); + }) + .catch(console.error); + }, []) + + const filteredTxs = () => { + let _filteredTxs = selectedAsset == "All" ? [...txs] : txs.filter(tx=>tx.asset == selectedAsset); + _filteredTxs = startDate ? _filteredTxs.filter(tx=>tx.date>=startDate) : _filteredTxs; + _filteredTxs = endDate ? _filteredTxs.filter(tx=>tx.date<=endDate) : _filteredTxs; + return _filteredTxs; + } + + return ( + + { + setStartDate(startDate); + setEndDate(endDate); + }} + onChangeAsset={asset=>setSelectedAsset(asset)} + /> + + {!downToXSM ? + : + } + + + ); +} + +export default TransactionList; diff --git a/src/modules/dashboard/lists/TransactionList/TransactionListHeader.tsx b/src/modules/position/TransactionList/TransactionListHeader.tsx similarity index 74% rename from src/modules/dashboard/lists/TransactionList/TransactionListHeader.tsx rename to src/modules/position/TransactionList/TransactionListHeader.tsx index 2584d9b9..fb0a844c 100644 --- a/src/modules/dashboard/lists/TransactionList/TransactionListHeader.tsx +++ b/src/modules/position/TransactionList/TransactionListHeader.tsx @@ -7,15 +7,25 @@ const actionData = ['All', 'Bryan', 'Linda', 'Nancy', 'Lloyd', 'Alice', 'Julia', (item) => ({ label: item, value: item }) ); -const assetData = ['All', 'Bryan', 'Linda', 'Nancy', 'Lloyd', 'Alice', 'Julia', 'Albert'].map( - (item) => ({ label: item, value: item }) -); +interface Props { + assets: string[]; + onChangeDateRange: (startDate: Date, endDate: Date) => void; + onChangeAsset: (asset: string) => void; +} -function TransactionListHeader() { +function TransactionListHeader({ assets, onChangeDateRange, onChangeAsset }: Props) { const theme = useTheme(); const downToXSM = useMediaQuery(theme.breakpoints.down('xsm')); const [curAction, setCurAction] = useState('All'); const [curAssets, setCurAssets] = useState('All'); + + console.log({assets}); + + const _assets = ["All", ...assets]; + const assetData = _assets.map( + (item) => ({ label: item, value: item }) + ); + return ( { + if(dateRange){ + onChangeDateRange(dateRange[0], dateRange[1]); + } + }} /> - + {/* + */} diff --git a/src/modules/position/TransactionList/TransactionListItem.tsx b/src/modules/position/TransactionList/TransactionListItem.tsx new file mode 100644 index 00000000..0ae27dc3 --- /dev/null +++ b/src/modules/position/TransactionList/TransactionListItem.tsx @@ -0,0 +1,167 @@ +import { useState } from 'react'; +import { Box } from '@mui/material'; +import { Table, Pagination } from 'rsuite'; +import { TokenIcon } from 'src/components/primitives/TokenIcon'; +import { Transaction } from './type'; +import { SortType } from 'src/helpers/rsuite-types'; +import { useProtocolDataContext } from 'src/hooks/useProtocolDataContext'; + +const { Column, HeaderCell, Cell } = Table; + +interface Props { + txs: Transaction[]; +} + +const TransactionListItem = ({txs}: Props) => { + const [sortColumn, setSortColumn] = useState(""); + const [sortType, setSortType] = useState("desc" as SortType); + const [loading, setLoading] = useState(false); + const [limit, setLimit] = useState(10); + const [page, setPage] = useState(1); + const {currentNetworkConfig} = useProtocolDataContext(); + + const handleChangeLimit = (dataKey: number) => { + setPage(1); + setLimit(dataKey); + }; + + const filteredTxs = txs.filter((v, i) => { + const start = limit * (page - 1); + const end = start + limit; + return i >= start && i < end; + }); + // const getData = () => { + // if (sortColumn && sortType) { + // return data.sort((a, b) => { + // let x = a[sortColumn]; + // let y = b[sortColumn]; + // if (typeof x === 'string') { + // x = x.charCodeAt(); + // } + // if (typeof y === 'string') { + // y = y.charCodeAt(); + // } + // if (sortType === 'asc') { + // return x - y; + // } else { + // return y - x; + // } + // }); + // } + // return data; + // }; + + const handleSortColumn = (sortColumn: string, sortType?: SortType) => { + setLoading(true); + setTimeout(() => { + setLoading(false); + setSortColumn(sortColumn); + setSortType(sortType!); + }, 500); + }; + + return ( + +
+ + Asset + + {(rowData) => ( + + + + + {rowData.asset} + + + {rowData.network} + + + + )} + + + + + Type + + + + + Amount + + + + + Block + + + + + Hash + + {row=>( + {row.hash.slice(0, 16)+"..."} + )} + + + + Date + + {row=>row.date.toLocaleString()} + + +
+
+ +
+ + ); +}; +export default TransactionListItem; diff --git a/src/modules/position/TransactionList/TransactionListMobileItem.tsx b/src/modules/position/TransactionList/TransactionListMobileItem.tsx new file mode 100644 index 00000000..15730436 --- /dev/null +++ b/src/modules/position/TransactionList/TransactionListMobileItem.tsx @@ -0,0 +1,86 @@ +import { Trans } from '@lingui/macro'; +import { Box, Typography } from '@mui/material'; +import { Row } from '../../../components/primitives/Row'; +import { TokenIcon } from 'src/components/primitives/TokenIcon'; +import { Transaction } from './type'; + +interface Props { + txs: Transaction[]; +} + +export const TransactionListMobileItem = ({txs}: Props) => { + return ( + <> + {txs.map((asset) => ( + + + + + + + + {' '} + + {asset.symbol} + + + + {' '} + + {asset.network} + + + + + + + + Type} align="flex-start" captionVariant="description" mb={2}> +
{asset.type}
+
+ + Amount} align="flex-start" captionVariant="description" mb={2}> + {asset.amount} + + Block} align="flex-start" captionVariant="description" mb={2}> + {asset.block} + + Hash} + align="flex-start" + captionVariant="description" + mb={2} + > + {asset.hash} + + Date} align="flex-start" captionVariant="description" mb={2}> + {asset.date.toLocaleString()} + +
+
+ ))} + + ) +}; diff --git a/src/modules/position/TransactionList/type.ts b/src/modules/position/TransactionList/type.ts new file mode 100644 index 00000000..df27b783 --- /dev/null +++ b/src/modules/position/TransactionList/type.ts @@ -0,0 +1,10 @@ +export interface Transaction { + asset: string; + symbol: string; + network: string; + type: string; + amount: number; + block: number; + hash: string; + date: Date; +} diff --git a/src/modules/reserve-overview/TokenLinkDropdown.tsx b/src/modules/reserve-overview/TokenLinkDropdown.tsx index 064d4a92..84c858a8 100644 --- a/src/modules/reserve-overview/TokenLinkDropdown.tsx +++ b/src/modules/reserve-overview/TokenLinkDropdown.tsx @@ -89,7 +89,7 @@ export const TokenLinkDropdown = ({ poolReserve, downToSM }: TokenLinkDropdownPr > - {'a' + poolReserve.symbol} + {'m' + poolReserve.symbol} diff --git a/src/providers/TxBuilderProvider.tsx b/src/providers/TxBuilderProvider.tsx index 8ac54e97..1875b083 100644 --- a/src/providers/TxBuilderProvider.tsx +++ b/src/providers/TxBuilderProvider.tsx @@ -9,8 +9,9 @@ import { PoolInterface, VotingEscrow, GaugeController, + LiquidityGauge, } from '@monetaria/contract-helpers'; -import React, { ReactElement } from 'react'; +import React, { ReactElement, useMemo } from 'react'; import { useProtocolDataContext } from 'src/hooks/useProtocolDataContext'; import { TxBuilderContext } from 'src/hooks/useTxBuilder'; @@ -21,6 +22,7 @@ export interface TxBuilderContextInterface { incentivesTxBuilderV2: IncentivesControllerV2Interface; votingEscrow: VotingEscrow; gaugeController: GaugeController; + gauges: Record } export const TxBuilderProvider: React.FC<{ children: ReactElement }> = ({ children }) => { @@ -63,6 +65,17 @@ export const TxBuilderProvider: React.FC<{ children: ReactElement }> = ({ childr MNT: currentMarketData.addresses.MNT, }); + let gauges: Record = useMemo(()=>{ + let _gauges: Record = {}; + for (const key in currentMarketData.addresses.GAUGES) { + let gaugeAddr = currentMarketData.addresses.GAUGES[key]; + _gauges[gaugeAddr] = new LiquidityGauge(jsonRpcProvider, { + LIQUIDITY_GAUGE: gaugeAddr + }) + } + return _gauges; + }, [currentMarketData.addresses.GAUGES]); + return ( = ({ childr incentivesTxBuilderV2, votingEscrow, gaugeController, + gauges, }} > {children} diff --git a/src/ui-config/marketsConfig.tsx b/src/ui-config/marketsConfig.tsx index 96dbf68a..2db11eae 100644 --- a/src/ui-config/marketsConfig.tsx +++ b/src/ui-config/marketsConfig.tsx @@ -225,13 +225,20 @@ export const marketsData: { // UI_POOL_DATA_PROVIDER: '0xC576539371a2f425545B7BF4eb2a14Eee1944a1C', // UI_INCENTIVE_DATA_PROVIDER: '0xACFd610B51ac6B70F030B277EA8A2A8D2143dC7A', - LENDING_POOL_ADDRESS_PROVIDER: '0xabf63fe04c46e4f539F9a63E8ab4355636e802AA'.toLowerCase(), - LENDING_POOL: '0xb7d086dcbc9ceca5479d64e8168eeaf3aa74782a', - WETH_GATEWAY: '0x301fd6DC1fEb455a38575C1610D033836C90A720', - WALLET_BALANCE_PROVIDER: '0xDE620449A1896fBDF532A9a05618C8047C0CC020', - UI_POOL_DATA_PROVIDER: '0x41e3057c29D12bdf0f4cceE00883504767ed6db9', - UI_INCENTIVE_DATA_PROVIDER: '0x25c5Fa5e212bd834eC3839ac2c451Ed3927c8363', + LENDING_POOL_ADDRESS_PROVIDER: '0x254eCbA99Ebef34aEFAF367725f0a940d6e2fbeB'.toLowerCase(), + LENDING_POOL: '0x2D65155f1874E7A74B1eBb4bB4d8941E16238807', + WETH_GATEWAY: '0xb84fbaD4E7168e7065092A5769DCCBe16916B8c0', + WALLET_BALANCE_PROVIDER: '0xA6d59476F09808c7d51A384B547acb2729A6934c', + UI_POOL_DATA_PROVIDER: '0x565894DB0d2A118fae6337Ec7dE854155cA85E73', + UI_INCENTIVE_DATA_PROVIDER: '0x6F356a711eCD83EA5e8F22cF491A2feB9c0911F2', FAUCET: '0x681860075529352da2C94082Eb66c59dF958e89C', + VOTING_ESCROW: '0x24C3d01A33F0979a287c4F81A307AcCA001DE72e', + MNT: '0x778190A52Ec57684e2a4AAa25aE1f3b68Ce2e2a7', + GAUGE_CONTROLLER: '0x7335dC5eB92Ca16E12e0A8F61F075c46c065190E', + GAUGES: { + "WBTC": "0xCC677fda38C17B75c8ba16db90d250F3B11Bc6ce", + "USDC": "0xF83D3b2E93f92f7778Fc17C4ED5AbC9a445B9fED" + } }, bgColor: 'linear-gradient(90deg, rgba(73,91,252,1) 0%, rgba(63,133,238,1) 100%)', }, @@ -573,7 +580,7 @@ export const marketsData: { MNT: '0x64E2C58F063EFED4477C313a4d4e51184CfFE198', GAUGE_CONTROLLER: '0x39c76fD1808e1a3A1db4D3B82b360D65c48C50F3', GAUGES: { - "WBTC": "0x3200c69BaAC0DE4F9b474F941C9eeec36891520a" + "WBTC": "0x2D55905f98B40194191e2714728F493b8a7db8B9" } }, bgColor: 'linear-gradient(90deg, rgba(73,91,252,1) 0%, rgba(63,133,238,1) 100%)', diff --git a/src/ui-config/networksConfig.ts b/src/ui-config/networksConfig.ts index 01199d2a..8e9a11d8 100644 --- a/src/ui-config/networksConfig.ts +++ b/src/ui-config/networksConfig.ts @@ -329,7 +329,7 @@ export const networkConfigs: Record = { baseAssetSymbol: 'BNB', wrappedBaseAssetSymbol: 'WBNB', baseAssetDecimals: 18, - explorerLink: 'https://testnet.bscscan.io', + explorerLink: 'https://testnet.bscscan.com', // rpcOnly: true, // usdMarket: true, isTestnet: true, diff --git a/yarn.lock b/yarn.lock index 192a82b2..3c0c97d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -30,6 +30,14 @@ dependencies: "@jridgewell/trace-mapping" "^0.3.0" +"@ankr.com/ankr.js@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@ankr.com/ankr.js/-/ankr.js-0.4.0.tgz#24241b18c1a47097ef0e66eccdd485578270f2f7" + integrity sha512-7yA/NM/XSzx7vXartN6PDGN6toS/dueFt7Yp/+LiRDa6dB7FfGa380YHNWipf81CqSkwQEeHVWvS+fts+TWXeg== + dependencies: + axios "^0.26.1" + typescript "^4.6.2" + "@apollo/client@^3.5.10": version "3.5.10" resolved "https://registry.npmjs.org/@apollo/client/-/client-3.5.10.tgz" @@ -2587,10 +2595,10 @@ resolved "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== -"@monetaria/contract-helpers@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@monetaria/contract-helpers/-/contract-helpers-1.0.5.tgz#627270451b4414d95345c6d4754c874138b8cda7" - integrity sha512-zB19SD6unz43dgK1qi8IiB/wJa0Cn4SXz04wkdWGT+zIUL2wEpEmU6aVgUz3oYLHT02qOfP+5JSyIl2t2H0oCA== +"@monetaria/contract-helpers@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@monetaria/contract-helpers/-/contract-helpers-1.0.8.tgz#c88f573ba22990302520b1a9dc5e024bfce27727" + integrity sha512-TN1AVtwwFZ64+T6Jt5my7HPcRdv0wh7r1wyV1pOM+8VBsaSIxc10JaLQEBDp/UzOxsL/a4N3r9CzJiMsEADVCA== dependencies: isomorphic-unfetch "^3.1.0" @@ -4319,6 +4327,13 @@ axios@^0.26.0: dependencies: follow-redirects "^1.14.8" +axios@^0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" + integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== + dependencies: + follow-redirects "^1.14.8" + axobject-query@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz" @@ -7377,6 +7392,16 @@ header-case@^2.0.4: capital-case "^1.0.4" tslib "^2.0.3" +highcharts-react-official@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/highcharts-react-official/-/highcharts-react-official-3.2.0.tgz#42f8f237d73eec6791318efb41237067000cf815" + integrity sha512-71IJZsLmEboYFjONpwC3NRsg6JKvtKYtS5Si3e6s6MLRSOFNOY8KILTkzvO36kjpeR/A0X3/kvvewE+GMPpkjw== + +highcharts@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-11.1.0.tgz#715eb55fd081351b526e28cd89ac0e4e30b35c15" + integrity sha512-vhmqq6/frteWMx0GKYWwEFL25g4OYc7+m+9KQJb/notXbNtIb8KVy+ijOF7XAFqF165cq0pdLIePAmyFY5ph3g== + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz"