@dodoex/widgets 3.10.8 → 3.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,155 +1,162 @@
1
- {
2
- "name": "@dodoex/widgets",
3
- "version": "3.10.8",
4
- "description": "DODO Widgets",
5
- "source": "src/index.tsx",
6
- "types": "dist/types/index.d.ts",
7
- "main": "dist/index.cjs",
8
- "module": "dist/index.js",
9
- "license": "GPL-3.0-or-later",
10
- "homepage": "https://github.com/DODOEX/widgets#readme",
11
- "repository": "https://github.com/DODOEX/widgets",
12
- "files": [
13
- "dist"
14
- ],
15
- "scripts": {
16
- "prepare": "yarn compile:i18n",
17
- "extract:i18n": "lingui extract --clean",
18
- "compile:i18n": "yarn extract:i18n && lingui compile",
19
- "sync:i18n": "export $(cat .env | xargs) && env lingui extract --overwrite && lingui compile",
20
- "watch": "yarn run rollup -c --watch",
21
- "build": "yarn compile:i18n && rollup --config",
22
- "prerelease": "yarn run build",
23
- "release": "semantic-release",
24
- "release:local": "np --any-branch --no-cleanup --no-tests",
25
- "release.npm-publish": "npm publish --access public",
26
- "release.npm-publish-beta": "npm publish --tag beta",
27
- "test": "jest src",
28
- "test:e2e": "jest e2e"
29
- },
30
- "author": "",
31
- "publishConfig": {
32
- "access": "public",
33
- "registry": "https://registry.npmjs.org"
34
- },
35
- "exports": {
36
- ".": {
37
- "types": "./dist/types/index.d.ts",
38
- "import": "./dist/index.js",
39
- "require": "./dist/index.cjs"
40
- }
41
- },
42
- "keywords": [
43
- "dodo",
44
- "widgets",
45
- "interfaces"
46
- ],
47
- "browserslist": {
48
- "production": [
49
- ">0.2%",
50
- "not dead",
51
- "not op_mini all"
52
- ],
53
- "development": [
54
- "last 1 chrome version",
55
- "last 1 firefox version",
56
- "last 1 safari version"
57
- ]
58
- },
59
- "dependencies": {
60
- "@babel/runtime": "^7.17.0",
61
- "@dodoex/api": "3.5.0",
62
- "@dodoex/components": "^3.1.0",
63
- "@dodoex/contract-request": "^1.3.0",
64
- "@dodoex/dodo-contract-request": "^1.32.0",
65
- "@dodoex/icons": "^2.0.3",
66
- "@emotion/react": "^11.10.0",
67
- "@emotion/styled": "^11.10.0",
68
- "@ethersproject/bignumber": "^5.6.2",
69
- "@ethersproject/contracts": "^5.7.0",
70
- "@lingui/core": "^4.3.0",
71
- "@lingui/macro": "^4.3.0",
72
- "@lingui/react": "^4.3.0",
73
- "@reduxjs/toolkit": "^1.6.1",
74
- "@semantic-release/changelog": "^6.0.1",
75
- "@semantic-release/git": "^10.0.1",
76
- "@tanstack/react-query": "^5.18.1",
77
- "@uniswap/sdk-core": "^5.9.0",
78
- "@uniswap/v2-sdk": "^4.6.2",
79
- "@web3-react/core": "8.2.0",
80
- "@web3-react/eip1193": "8.2.0",
81
- "@web3-react/metamask": "8.2.1",
82
- "@web3-react/types": "8.2.0",
83
- "@web3-react/walletconnect-v2": "8.3.6",
84
- "axios": "^0.27.2",
85
- "bignumber.js": "^9.0.2",
86
- "d3": "7.6.1",
87
- "dayjs": "^1.11.11",
88
- "identicon.js": "^2.3.3",
89
- "jsbi": "^3.1.4",
90
- "konva": "^9.3.6",
91
- "lodash": "^4.17.21",
92
- "make-plural": "^7.0.0",
93
- "moment": "^2.29.4",
94
- "react-datetime": "^3.1.1",
95
- "react-icons": "^5.0.1",
96
- "react-infinite-scroller": "^1.2.6",
97
- "react-konva": "^18.2.10",
98
- "react-transition-group": "^4.4.5",
99
- "react-window": "^1.8.8",
100
- "recharts": "^2.12.7",
101
- "rmc-date-picker": "^6.0.10",
102
- "tiny-invariant": "^1.1.0",
103
- "zustand": "^4.5.5"
104
- },
105
- "peerDependencies": {
106
- "@babel/runtime": ">=7.17.0",
107
- "react": ">=17.0.1",
108
- "react-dom": ">=17.0.1"
109
- },
110
- "devDependencies": {
111
- "@babel/preset-env": "^7.16.11",
112
- "@babel/preset-react": "^7.18.6",
113
- "@babel/preset-typescript": "^7.16.7",
114
- "@lingui/babel-preset-react": "^2.9.2",
115
- "@lingui/cli": "^4.3.0",
116
- "@nomicfoundation/hardhat-network-helpers": "^1.0.6",
117
- "@nomiclabs/hardhat-ethers": "^2.1.1",
118
- "@rollup/plugin-babel": "^6.0.4",
119
- "@rollup/plugin-commonjs": "^26.0.1",
120
- "@rollup/plugin-json": "^6.1.0",
121
- "@rollup/plugin-multi-entry": "^6.0.1",
122
- "@rollup/plugin-replace": "^5.0.7",
123
- "@rollup/plugin-terser": "^0.4.4",
124
- "@rollup/plugin-typescript": "^12.1.1",
125
- "@rollup/plugin-url": "^8.0.2",
126
- "@svgr/rollup": "^6.2.1",
127
- "@testing-library/jest-dom": "^5.16.5",
128
- "@testing-library/react": "^13.4.0",
129
- "@testing-library/react-hooks": "^8.0.1",
130
- "@types/d3": "7.4.3",
131
- "@types/identicon.js": "^2.3.1",
132
- "@types/jest": "^29.0.3",
133
- "@types/lodash": "^4.14.184",
134
- "@types/react-infinite-scroller": "^1.2.5",
135
- "@types/react-transition-group": "^4.4.11",
136
- "@types/react-window": "^1.8.5",
137
- "babel-plugin-macros": "^3.1.0",
138
- "babel-runtime": "^6.26.0",
139
- "dotenv": "^16.0.2",
140
- "ethers": "^5.7.1",
141
- "gettext-parser": "^8.0.0",
142
- "hardhat": "^2.22.13",
143
- "identity-obj-proxy": "^3.0.0",
144
- "jest": "^29.0.3",
145
- "jest-environment-hardhat": "^1.1.9",
146
- "jest-environment-jsdom": "^29.0.3",
147
- "np": "^7.6.1",
148
- "rollup": "^4.18.0",
149
- "rollup-plugin-clear": "^2.0.7",
150
- "rollup-plugin-import-css": "^3.5.5",
151
- "svg-jest": "^1.0.1",
152
- "ts-jest": "^29.0.1",
153
- "typescript": "^5.6.3"
154
- }
155
- }
1
+ {
2
+ "name": "@dodoex/widgets",
3
+ "version": "3.12.0",
4
+ "description": "DODO Widgets",
5
+ "source": "src/index.tsx",
6
+ "types": "dist/types/index.d.ts",
7
+ "main": "dist/index.cjs",
8
+ "module": "dist/index.js",
9
+ "license": "GPL-3.0-or-later",
10
+ "homepage": "https://github.com/DODOEX/widgets#readme",
11
+ "repository": "https://github.com/DODOEX/widgets",
12
+ "files": [
13
+ "dist"
14
+ ],
15
+ "scripts": {
16
+ "prepare": "yarn compile:i18n",
17
+ "extract:i18n": "lingui extract --clean",
18
+ "compile:i18n": "yarn extract:i18n && lingui compile",
19
+ "sync:i18n": "export $(cat .env | xargs) && env lingui extract --overwrite && lingui compile",
20
+ "watch": "yarn run rollup -c --watch",
21
+ "build": "yarn compile:i18n && rollup --config",
22
+ "prerelease": "yarn run build",
23
+ "release": "semantic-release",
24
+ "release:local": "np --any-branch --no-cleanup --no-tests",
25
+ "release.npm-publish": "npm publish --access public",
26
+ "release.npm-publish-beta": "npm publish --tag beta",
27
+ "test": "jest src",
28
+ "test:e2e": "jest e2e"
29
+ },
30
+ "author": "",
31
+ "publishConfig": {
32
+ "access": "public",
33
+ "registry": "https://registry.npmjs.org"
34
+ },
35
+ "exports": {
36
+ ".": {
37
+ "types": "./dist/types/index.d.ts",
38
+ "import": "./dist/index.js",
39
+ "require": "./dist/index.cjs"
40
+ }
41
+ },
42
+ "keywords": [
43
+ "dodo",
44
+ "widgets",
45
+ "interfaces"
46
+ ],
47
+ "browserslist": {
48
+ "production": [
49
+ ">0.2%",
50
+ "not dead",
51
+ "not op_mini all"
52
+ ],
53
+ "development": [
54
+ "last 1 chrome version",
55
+ "last 1 firefox version",
56
+ "last 1 safari version"
57
+ ]
58
+ },
59
+ "dependencies": {
60
+ "@babel/runtime": "^7.17.0",
61
+ "@dodoex/api": "3.5.0",
62
+ "@dodoex/components": "^3.2.0",
63
+ "@dodoex/contract-request": "^1.3.0",
64
+ "@dodoex/dodo-contract-request": "^1.32.0",
65
+ "@dodoex/icons": "^2.1.0",
66
+ "@emotion/react": "^11.10.0",
67
+ "@emotion/styled": "^11.10.0",
68
+ "@ethersproject/bignumber": "^5.6.2",
69
+ "@ethersproject/contracts": "^5.7.0",
70
+ "@lingui/core": "^5.7.0",
71
+ "@lingui/macro": "^5.7.0",
72
+ "@lingui/react": "^5.7.0",
73
+ "@reduxjs/toolkit": "^1.6.1",
74
+ "@semantic-release/changelog": "^6.0.1",
75
+ "@semantic-release/git": "^10.0.1",
76
+ "@tanstack/react-query": "^5.18.1",
77
+ "@uniswap/sdk-core": "^5.9.0",
78
+ "@uniswap/v2-sdk": "^4.6.2",
79
+ "@web3-react/core": "8.2.0",
80
+ "@web3-react/eip1193": "8.2.0",
81
+ "@web3-react/metamask": "8.2.1",
82
+ "@web3-react/types": "8.2.0",
83
+ "@web3-react/walletconnect-v2": "8.3.6",
84
+ "axios": "^0.27.2",
85
+ "bignumber.js": "^9.0.2",
86
+ "d3": "7.6.1",
87
+ "dayjs": "^1.11.11",
88
+ "identicon.js": "^2.3.3",
89
+ "jsbi": "^3.1.4",
90
+ "konva": "^9.3.15",
91
+ "lodash": "^4.17.21",
92
+ "make-plural": "^7.0.0",
93
+ "moment": "^2.29.4",
94
+ "react-datetime": "^3.3.0",
95
+ "react-icons": "^5.0.1",
96
+ "react-infinite-scroller": "^1.2.6",
97
+ "react-konva": "^19.0.0",
98
+ "react-transition-group": "^4.4.5",
99
+ "react-window": "^1.8.11",
100
+ "recharts": "^2.15.0",
101
+ "rmc-date-picker": "^6.0.10",
102
+ "tiny-invariant": "^1.1.0",
103
+ "zustand": "^4.5.5"
104
+ },
105
+ "peerDependencies": {
106
+ "@babel/runtime": ">=7.17.0",
107
+ "react": "^18.0.0 || ^19.0.0",
108
+ "react-dom": "^18.0.0 || ^19.0.0"
109
+ },
110
+ "peerDependenciesMeta": {
111
+ "react-infinite-scroller": {
112
+ "optional": true
113
+ }
114
+ },
115
+ "devDependencies": {
116
+ "@babel/preset-env": "^7.16.11",
117
+ "@babel/preset-react": "^7.18.6",
118
+ "@babel/preset-typescript": "^7.16.7",
119
+ "@lingui/cli": "^5.7.0",
120
+ "@nomicfoundation/hardhat-network-helpers": "^1.0.6",
121
+ "@nomiclabs/hardhat-ethers": "^2.1.1",
122
+ "@rollup/plugin-babel": "^6.0.4",
123
+ "@rollup/plugin-commonjs": "^26.0.1",
124
+ "@rollup/plugin-json": "^6.1.0",
125
+ "@rollup/plugin-multi-entry": "^6.0.1",
126
+ "@rollup/plugin-replace": "^5.0.7",
127
+ "@rollup/plugin-terser": "^0.4.4",
128
+ "@rollup/plugin-typescript": "^12.1.1",
129
+ "@rollup/plugin-url": "^8.0.2",
130
+ "@svgr/rollup": "^6.2.1",
131
+ "@testing-library/jest-dom": "^6.5.0",
132
+ "@testing-library/react": "^16.0.1",
133
+ "@testing-library/react-hooks": "^8.0.1",
134
+ "@types/d3": "7.4.3",
135
+ "@types/identicon.js": "^2.3.1",
136
+ "@types/jest": "^29.0.3",
137
+ "@types/lodash": "^4.14.184",
138
+ "@types/react-infinite-scroller": "^1.2.5",
139
+ "@types/react-transition-group": "^4.4.11",
140
+ "@types/react-window": "^1.8.5",
141
+ "babel-plugin-macros": "^3.1.0",
142
+ "babel-runtime": "^6.26.0",
143
+ "dotenv": "^16.0.2",
144
+ "ethers": "^5.7.1",
145
+ "gettext-parser": "^8.0.0",
146
+ "hardhat": "^2.22.13",
147
+ "identity-obj-proxy": "^3.0.0",
148
+ "jest": "^29.0.3",
149
+ "jest-environment-hardhat": "^1.1.9",
150
+ "jest-environment-jsdom": "^29.0.3",
151
+ "np": "^7.6.1",
152
+ "rollup": "^4.18.0",
153
+ "rollup-plugin-clear": "^2.0.7",
154
+ "rollup-plugin-import-css": "^3.5.5",
155
+ "svg-jest": "^1.0.1",
156
+ "ts-jest": "^29.0.1",
157
+ "typescript": "^5.6.3"
158
+ },
159
+ "optionalDependencies": {
160
+ "pino-pretty": "^13.1.3"
161
+ }
162
+ }
@@ -1 +0,0 @@
1
- import{i18n as e}from"@lingui/core";import t from"bignumber.js";import{f as i}from"./index-DGmyjOlm.js";function o(t,i){switch(t){case"depth-chart.tips.buy":return e._({id:"q+Q952",message:"Users pay {0} {1} and receive {2} {3}\\nPrice {4} ({5}%)",values:{0:i.amountText,1:i.baseTokenSymbol,2:i.oppositeAmountText,3:i.quoteTokenSymbol,4:i.priceText,5:i.slippageText}});case"depth-chart.tips.mid-price":return e._({id:"cnbRVW",message:"Initial Price {0} {1} = {2} {3}",values:{0:i.amountText,1:i.baseTokenSymbol,2:i.oppositeAmountText,3:i.quoteTokenSymbol}});case"depth-chart.tips.sell":return e._({id:"q+Q952",message:"Users pay {0} {1} and receive {2} {3}\\nPrice {4} ({5}%)",values:{0:i.oppositeAmountText,1:i.quoteTokenSymbol,2:i.amountText,3:i.baseTokenSymbol,4:i.priceText,5:i.slippageText}});case"pool.chart.buy-amount":return e._({id:"TaScUS",message:"Users sell {0} amount:",values:{0:i.symbol}});case"pool.chart.price-impact":return e._({id:"I0LXan",message:"Price Impact: {0}",values:{0:i.amount}});case"pool.chart.sell-amount":return e._({id:"F2vX4t",message:"Users buy {0} amount:",values:{0:i.symbol}});case"pool.create.disabled-token-amount":return e._({id:"5QDjef",message:"The token amount is calculated by initial price."});case"pool.create.set-pool.emulator.title":return e._({id:"FQfStS",message:"Emulator"});case"pool.create.set-pool.emulator.title.question":return e._({id:"9D2g7k",message:"The liquidity of DODO is continuous, which is different from the discrete liquidity of UniV3. The ticks shown in the illustration are for demonstration purposes only."});case"pool.chart.liquidity-chart-tip":return e._({id:"YvXHDU",message:"The area of the chart indicates the buy/sell volume of {0} that can be carried by the market when the current price changes to the hover price.",values:{0:i.baseTokenSymbol}});case"pool.chart.liquidity-chart-buy":return e._({id:"TvH4Ym",message:"Bought {0} {1}, price in the pool decreased to {2}",values:{0:i.amount,1:i.symbol,2:i.price}});case"pool.chart.liquidity-chart-sell":return e._({id:"0O1wzf",message:"Traders sold ‪{0}‬ {1}, price in the pool increased to {2}",values:{0:i.amount,1:i.symbol,2:i.price}});default:throw new Error(`Unknown key ${t}`)}}const l=12,n=18;function s(e){let t=e.toLowerCase();if(t&&/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(t)){if(4===t.length){let e="#";for(let i=1;i<4;i+=1)e+=t.slice(i,i+1).concat(t.slice(i,i+1));t=e}const e=[];for(let i=1;i<7;i+=2)e.push(parseInt(`0x${t.slice(i,i+2)}`));return e.join(",")}return t}function r({val:e,model:i}){let o=e;if(e.isNaN())return{side:"no-one",vert:new t(0),base:new t(0),quote:new t(0)};i.Q0.eq(0)&&e.lt(i.i)&&(o=i.i),i.B0.eq(0)&&e.gt(i.i)&&(o=i.i);const l=i.getPriceDepth(o),n=l.baseAmount,s=l.quoteAmount,{isBuy:r}=l;return{side:r?"ask":"bid",vert:r?n:s,base:n,quote:s}}function a({midPrice:e,q:i,q0:o,pmmModel:l}){let n=t.maximum(i,o,l.B.multipliedBy(e));return n.isNaN()&&(n=new t(10)),n.eq(0)&&(n=new t(1)),{buyBaseVert:n.multipliedBy(1.2),sellBaseVert:n.div(e).multipliedBy(1.2)}}function u(e,i=1){return new t(i).div(e/2)}function m({tooltip:e,x:o,chartWidth:l,chartHeight:n,buyBaseVert:a,sellBaseVert:m,pmmModel:p,midPrice:d,baseTokenSymbol:c,quoteTokenSymbol:h,t:b,baseMinAndZoomMultiples:f,isHover:y,color:g,leftColor:T,rightColor:x}){const{zoomMultiples:v,baseMin:w}=f,k=u(l,v),M=a.div(n),B=m.div(n),q=2*v,S=w.multipliedBy(10**k.multipliedBy(o).toNumber());let N=new t(Math.log(d.div(w).toNumber())/Math.log(10));N=t.minimum(q,N),N=t.maximum(0,N);const P=N.div(k),X=r({val:S,model:p,midPrice:d});if(X.vert.isNaN())return;const A=S.lt(d);let _=n-X.vert.div(M).toNumber();A||(_=n-X.vert.div(B).toNumber());const z=i(S),O=i(X.vert),$=S.minus(d).abs().div(d).multipliedBy(100).toFixed(2),D=P.toNumber(),H=e.findOne("#toolTipVertLine"),L=e.findOne("#toolTipHoriLine"),U=e.findOne("#joinCircle"),V=e.findOne("#toolTip"),j=e.findOne("#priceTextLabel"),W=e.findOne("#slippageTextLabel");if(!V)return;V.x(o),V.y(_-5-6);const Y=V.getText(),F=V.getTag();let I="ask"===X.side?i(X.quote):i(X.base);const Q=p.k.lte(0);Q&&(I=O);const C=i(d),Z={amountText:O,baseTokenSymbol:c,oppositeAmountText:I,quoteTokenSymbol:h,priceText:Q?C:z,slippageText:`${A?"-":"+"}${$}`};if(P.minus(4).lte(o)&&P.plus(2).gte(o)&&y)Y.text(b("depth-chart.tips.mid-price",{amountText:1,baseTokenSymbol:c,oppositeAmountText:C,quoteTokenSymbol:h})),V.x(D),V.y(n/2),null==H||H.hide(),null==L||L.hide(),null==U||U.hide(),null==j||j.hide(),null==W||W.hide();else{Y.text(A?b("depth-chart.tips.buy",{amountText:I,baseTokenSymbol:c,oppositeAmountText:O,quoteTokenSymbol:h,priceText:Q?C:z,slippageText:`${A?"-":"+"}${$}`}):b("depth-chart.tips.sell",Z));const e=g||(A?"#55f6db":"#ff4f73"),t=A?T||"#55f6db":x||"#ff4f73";Y.fill(e),V.width()/2>o?(F.pointerDirection("left"),F.pointerHeight(15),F.pointerWidth(8),V.offsetX(-11),V.offsetY(-11)):V.width()/2+o>l?(F.pointerDirection("right"),F.pointerHeight(15),F.pointerWidth(8),V.offsetX(11),V.offsetY(-11)):(F.pointerDirection("down"),F.pointerHeight(8),F.pointerWidth(15),V.offsetX(0),V.offsetY(0)),null==H||H.points([o,n,o,_]),null==H||H.stroke(t),null==L||L.points(A?[o,_,D,_]:[D,_,o,_]),null==L||L.stroke(t),null==U||U.x(o),null==U||U.y(_),null==U||U.fill(A?T||"rgb(86, 246, 218)":x||"#FF5072"),null==U||U.stroke(A?T?`rgba(${s(T)}, 0.4)`:"rgba(86, 246, 218, 0.3)":x?`rgba(${s(x)}, 0.4)`:"rgba(255, 80, 114, 0.3)"),j&&(j.x(o),j.y(n),j.offsetX(j.width()/2),j.x()-j.width()/2<0?j.x(j.width()/2):j.x()+j.width()/2>l?j.x(l-j.width()/2):j.x(o));const i=null==j?void 0:j.findOne("#priceTextLabel-text");i&&(i.fill(e),i.text(z)),W&&(W.x(A?o+(D-o)/2:o-(o-D)/2),W.y(_),W.offsetY(W.height()/2),W.offsetX(W.width()/2));const r=null==W?void 0:W.findOne("#slippageTextLabel-text");r&&(r.fill(e),r.text(`${A?"-":"+"}${$}%`)),null==H||H.show(),null==L||L.show(),null==U||U.show(),null==j||j.show(),null==W||W.show()}e.show()}function p({dragDistance:e,prevBaseMin:i,chartWidth:o,zoomMultiples:l}){const n=u(o,l);return e>0?i.multipliedBy(1-n.multipliedBy(e).toNumber()):i.multipliedBy(10**n.multipliedBy(new t(e).abs()).plus(0).toNumber())}const d=1;function c({prevZoomMultiples:e,zoomIn:t}){return!t&&e<=.1?e:t?e+.1:e-.1}function h({type:e,targetPrice:i,midPrice:o,width:l}){if("sell"===e){return{zoomMultiples:new t(Math.log10(i.div(o).toNumber())).minus(0).div(3/4).abs(),targetX:l/2*(3/4)+l/2}}const n=new t(Math.log10(i.div(o).toNumber()));return{zoomMultiples:new t(0).minus(n).div(3/4).abs(),targetX:l/2*(1/4)}}function b({currentBaseMinAndZoomMultiples:e,targetPrice:i,midPrice:o,width:l}){const{baseMin:n,zoomMultiples:s}=e,r=new t(Math.log10(n.div(o).toNumber())),a=r.plus(2*s),u=new t(o.multipliedBy(10**a.toNumber()));if(i.gte(n)&&i.lte(u)){return{isSkip:!0,targetX:new t(Math.log10(i.div(o).toNumber())).minus(r).div(2*s).multipliedBy(l).toNumber(),baseMin:new t(0),zoomMultiples:1}}const m=new t(o.multipliedBy(.1)),p=new t(o.multipliedBy(10));if(i.gte(m)&&i.lte(p)){return{isSkip:!1,targetX:new t(Math.log10(i.div(o).toNumber())).minus(-1).div(2).multipliedBy(l).toNumber(),baseMin:m,zoomMultiples:1}}return{isSkip:!1,targetX:-1,baseMin:new t(0),zoomMultiples:1}}function f({midPrice:e,zoomMultiples:t}){return e.multipliedBy(10**-t)}export{a,p as b,u as c,c as d,r as e,f,o as g,n as h,d as i,b as j,h as k,l,s as m,m as u};
@@ -1 +0,0 @@
1
- "use strict";var e=require("@lingui/core"),t=require("bignumber.js"),i=require("./index-CpWx5DlC.cjs");function o(e){let t=e.toLowerCase();if(t&&/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(t)){if(4===t.length){let e="#";for(let i=1;i<4;i+=1)e+=t.slice(i,i+1).concat(t.slice(i,i+1));t=e}const e=[];for(let i=1;i<7;i+=2)e.push(parseInt(`0x${t.slice(i,i+2)}`));return e.join(",")}return t}function r({val:e,model:i}){let o=e;if(e.isNaN())return{side:"no-one",vert:new t(0),base:new t(0),quote:new t(0)};i.Q0.eq(0)&&e.lt(i.i)&&(o=i.i),i.B0.eq(0)&&e.gt(i.i)&&(o=i.i);const r=i.getPriceDepth(o),n=r.baseAmount,l=r.quoteAmount,{isBuy:s}=r;return{side:s?"ask":"bid",vert:s?n:l,base:n,quote:l}}function n(e,i=1){return new t(i).div(e/2)}exports.baseZoomMultiples=1,exports.beforePriceImpactEffect=function({currentBaseMinAndZoomMultiples:e,targetPrice:i,midPrice:o,width:r}){const{baseMin:n,zoomMultiples:l}=e,s=new t(Math.log10(n.div(o).toNumber())),u=s.plus(2*l),a=new t(o.multipliedBy(10**u.toNumber()));if(i.gte(n)&&i.lte(a)){return{isSkip:!0,targetX:new t(Math.log10(i.div(o).toNumber())).minus(s).div(2*l).multipliedBy(r).toNumber(),baseMin:new t(0),zoomMultiples:1}}const m=new t(o.multipliedBy(.1)),p=new t(o.multipliedBy(10));if(i.gte(m)&&i.lte(p)){return{isSkip:!1,targetX:new t(Math.log10(i.div(o).toNumber())).minus(-1).div(2).multipliedBy(r).toNumber(),baseMin:m,zoomMultiples:1}}return{isSkip:!1,targetX:-1,baseMin:new t(0),zoomMultiples:1}},exports.chartOffsetYBCToolTip=18,exports.chartT=function(t,i){switch(t){case"depth-chart.tips.buy":return e.i18n._({id:"q+Q952",message:"Users pay {0} {1} and receive {2} {3}\\nPrice {4} ({5}%)",values:{0:i.amountText,1:i.baseTokenSymbol,2:i.oppositeAmountText,3:i.quoteTokenSymbol,4:i.priceText,5:i.slippageText}});case"depth-chart.tips.mid-price":return e.i18n._({id:"cnbRVW",message:"Initial Price {0} {1} = {2} {3}",values:{0:i.amountText,1:i.baseTokenSymbol,2:i.oppositeAmountText,3:i.quoteTokenSymbol}});case"depth-chart.tips.sell":return e.i18n._({id:"q+Q952",message:"Users pay {0} {1} and receive {2} {3}\\nPrice {4} ({5}%)",values:{0:i.oppositeAmountText,1:i.quoteTokenSymbol,2:i.amountText,3:i.baseTokenSymbol,4:i.priceText,5:i.slippageText}});case"pool.chart.buy-amount":return e.i18n._({id:"TaScUS",message:"Users sell {0} amount:",values:{0:i.symbol}});case"pool.chart.price-impact":return e.i18n._({id:"I0LXan",message:"Price Impact: {0}",values:{0:i.amount}});case"pool.chart.sell-amount":return e.i18n._({id:"F2vX4t",message:"Users buy {0} amount:",values:{0:i.symbol}});case"pool.create.disabled-token-amount":return e.i18n._({id:"5QDjef",message:"The token amount is calculated by initial price."});case"pool.create.set-pool.emulator.title":return e.i18n._({id:"FQfStS",message:"Emulator"});case"pool.create.set-pool.emulator.title.question":return e.i18n._({id:"9D2g7k",message:"The liquidity of DODO is continuous, which is different from the discrete liquidity of UniV3. The ticks shown in the illustration are for demonstration purposes only."});case"pool.chart.liquidity-chart-tip":return e.i18n._({id:"YvXHDU",message:"The area of the chart indicates the buy/sell volume of {0} that can be carried by the market when the current price changes to the hover price.",values:{0:i.baseTokenSymbol}});case"pool.chart.liquidity-chart-buy":return e.i18n._({id:"TvH4Ym",message:"Bought {0} {1}, price in the pool decreased to {2}",values:{0:i.amount,1:i.symbol,2:i.price}});case"pool.chart.liquidity-chart-sell":return e.i18n._({id:"0O1wzf",message:"Traders sold ‪{0}‬ {1}, price in the pool increased to {2}",values:{0:i.amount,1:i.symbol,2:i.price}});default:throw new Error(`Unknown key ${t}`)}},exports.colorRgb=o,exports.computeBaseAfterZoom=function({midPrice:e,zoomMultiples:t}){return e.multipliedBy(10**-t)},exports.computeBaseMinByDistance=function({dragDistance:e,prevBaseMin:i,chartWidth:o,zoomMultiples:r}){const l=n(o,r);return e>0?i.multipliedBy(1-l.multipliedBy(e).toNumber()):i.multipliedBy(10**l.multipliedBy(new t(e).abs()).plus(0).toNumber())},exports.computeBaseVert=function({midPrice:e,q:i,q0:o,pmmModel:r}){let n=t.maximum(i,o,r.B.multipliedBy(e));return n.isNaN()&&(n=new t(10)),n.eq(0)&&(n=new t(1)),{buyBaseVert:n.multipliedBy(1.2),sellBaseVert:n.div(e).multipliedBy(1.2)}},exports.computeTargetXByTargetPrice=function({type:e,targetPrice:i,midPrice:o,width:r}){if("sell"===e){return{zoomMultiples:new t(Math.log10(i.div(o).toNumber())).minus(0).div(3/4).abs(),targetX:r/2*(3/4)+r/2}}const n=new t(Math.log10(i.div(o).toNumber()));return{zoomMultiples:new t(0).minus(n).div(3/4).abs(),targetX:r/2*(1/4)}},exports.computeXPortion=n,exports.computeZoomMultiplesWhenZoom=function({prevZoomMultiples:e,zoomIn:t}){return!t&&e<=.1?e:t?e+.1:e-.1},exports.evalPoint=r,exports.labelPadding=12,exports.updateTooltip=function({tooltip:e,x:l,chartWidth:s,chartHeight:u,buyBaseVert:a,sellBaseVert:m,pmmModel:p,midPrice:c,baseTokenSymbol:d,quoteTokenSymbol:h,t:b,baseMinAndZoomMultiples:f,isHover:g,color:y,leftColor:x,rightColor:T}){const{zoomMultiples:v,baseMin:w}=f,B=n(s,v),M=a.div(u),k=m.div(u),q=2*v,S=w.multipliedBy(10**B.multipliedBy(l).toNumber());let N=new t(Math.log(c.div(w).toNumber())/Math.log(10));N=t.minimum(q,N),N=t.maximum(0,N);const P=N.div(B),X=r({val:S,model:p,midPrice:c});if(X.vert.isNaN())return;const A=S.lt(c);let O=u-X.vert.div(M).toNumber();A||(O=u-X.vert.div(k).toNumber());const _=i.formatShortNumber(S),z=i.formatShortNumber(X.vert),D=S.minus(c).abs().div(c).multipliedBy(100).toFixed(2),$=P.toNumber(),H=e.findOne("#toolTipVertLine"),L=e.findOne("#toolTipHoriLine"),U=e.findOne("#joinCircle"),V=e.findOne("#toolTip"),W=e.findOne("#priceTextLabel"),Y=e.findOne("#slippageTextLabel");if(!V)return;V.x(l),V.y(O-5-6);const Z=V.getText(),I=V.getTag();let j="ask"===X.side?i.formatShortNumber(X.quote):i.formatShortNumber(X.base);const C=p.k.lte(0);C&&(j=z);const F=i.formatShortNumber(c),Q={amountText:z,baseTokenSymbol:d,oppositeAmountText:j,quoteTokenSymbol:h,priceText:C?F:_,slippageText:`${A?"-":"+"}${D}`};if(P.minus(4).lte(l)&&P.plus(2).gte(l)&&g)Z.text(b("depth-chart.tips.mid-price",{amountText:1,baseTokenSymbol:d,oppositeAmountText:F,quoteTokenSymbol:h})),V.x($),V.y(u/2),null==H||H.hide(),null==L||L.hide(),null==U||U.hide(),null==W||W.hide(),null==Y||Y.hide();else{Z.text(A?b("depth-chart.tips.buy",{amountText:j,baseTokenSymbol:d,oppositeAmountText:z,quoteTokenSymbol:h,priceText:C?F:_,slippageText:`${A?"-":"+"}${D}`}):b("depth-chart.tips.sell",Q));const e=y||(A?"#55f6db":"#ff4f73"),t=A?x||"#55f6db":T||"#ff4f73";Z.fill(e),V.width()/2>l?(I.pointerDirection("left"),I.pointerHeight(15),I.pointerWidth(8),V.offsetX(-11),V.offsetY(-11)):V.width()/2+l>s?(I.pointerDirection("right"),I.pointerHeight(15),I.pointerWidth(8),V.offsetX(11),V.offsetY(-11)):(I.pointerDirection("down"),I.pointerHeight(8),I.pointerWidth(15),V.offsetX(0),V.offsetY(0)),null==H||H.points([l,u,l,O]),null==H||H.stroke(t),null==L||L.points(A?[l,O,$,O]:[$,O,l,O]),null==L||L.stroke(t),null==U||U.x(l),null==U||U.y(O),null==U||U.fill(A?x||"rgb(86, 246, 218)":T||"#FF5072"),null==U||U.stroke(A?x?`rgba(${o(x)}, 0.4)`:"rgba(86, 246, 218, 0.3)":T?`rgba(${o(T)}, 0.4)`:"rgba(255, 80, 114, 0.3)"),W&&(W.x(l),W.y(u),W.offsetX(W.width()/2),W.x()-W.width()/2<0?W.x(W.width()/2):W.x()+W.width()/2>s?W.x(s-W.width()/2):W.x(l));const i=null==W?void 0:W.findOne("#priceTextLabel-text");i&&(i.fill(e),i.text(_)),Y&&(Y.x(A?l+($-l)/2:l-(l-$)/2),Y.y(O),Y.offsetY(Y.height()/2),Y.offsetX(Y.width()/2));const r=null==Y?void 0:Y.findOne("#slippageTextLabel-text");r&&(r.fill(e),r.text(`${A?"-":"+"}${D}%`)),null==H||H.show(),null==L||L.show(),null==U||U.show(),null==W||W.show(),null==Y||Y.show()}e.show()};