diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 800b887..7d6d596 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: 5.3 +lockfileVersion: 5.4 importers: @@ -20,7 +20,7 @@ importers: classnames: ~2.3.1 codesandboxer: ~1.0.3 leva: ~0.9.27 - lightweight-charts: ^3.8.0 + lightweight-charts: 4.0.1 lightweight-charts-react-wrapper: workspace:* lodash-es: ~4.17.21 react: ^18.1.0 @@ -32,7 +32,7 @@ importers: dependencies: '@babel/runtime': 7.17.9 '@testing-library/jest-dom': 5.16.4 - '@testing-library/react': 13.2.0_react-dom@18.1.0+react@18.1.0 + '@testing-library/react': 13.2.0_ef5jwxihqo6n7gxfmzogljlgcm '@testing-library/user-event': 13.5.0 '@types/jest': 27.5.1 '@types/lodash-es': 4.17.6 @@ -42,14 +42,14 @@ importers: '@types/webpack-env': 1.17.0 classnames: 2.3.1 codesandboxer: 1.0.3 - leva: 0.9.27_react-dom@18.1.0+react@18.1.0 - lightweight-charts: 3.8.0 + leva: 0.9.27_ef5jwxihqo6n7gxfmzogljlgcm + lightweight-charts: 4.0.1 lightweight-charts-react-wrapper: link:../lib lodash-es: 4.17.21 react: 18.1.0 react-dom: 18.1.0_react@18.1.0 - react-router-dom: 6.3.0_react-dom@18.1.0+react@18.1.0 - react-scripts: 5.0.1_react@18.1.0+typescript@4.6.4 + react-router-dom: 6.3.0_ef5jwxihqo6n7gxfmzogljlgcm + react-scripts: 5.0.1_oxzyc36t6ywqirvp35nas5bcte typescript: 4.6.4 web-vitals: 2.1.4 @@ -57,7 +57,7 @@ importers: specifiers: '@types/react': ^18.0.9 '@types/react-dom': ^18.0.4 - lightweight-charts: ^3.8.0 + lightweight-charts: 4.0.1 react: ^18.1.0 react-dom: ^18.1.0 rimraf: ^2.6.2 @@ -66,7 +66,7 @@ importers: devDependencies: '@types/react': 18.0.9 '@types/react-dom': 18.0.5 - lightweight-charts: 3.8.0 + lightweight-charts: 4.0.1 react: 18.1.0 react-dom: 18.1.0_react@18.1.0 rimraf: 2.7.1 @@ -130,7 +130,7 @@ packages: - supports-color dev: false - /@babel/eslint-parser/7.18.2_@babel+core@7.18.2+eslint@8.16.0: + /@babel/eslint-parser/7.18.2_j4uj5cgi2mksbox6kqvi7jrs6u: resolution: {integrity: sha512-oFQYkE8SuH14+uR51JVAmdqwKYXGRjEXx7s+WiagVjqQ+HPE+nnwyF2qlVG8evUsUHmPcA+6YXMEDbIhEyQc5A==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -388,6 +388,8 @@ packages: resolution: {integrity: sha512-rL50YcEuHbbauAFAysNsJA4/f89fGTOBRNs9P81sniKnKAr4xULe5AecolcsKbi88xu0ByWYDj/S1AJ3FSFuSQ==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.18.2 dev: false /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.17.12_@babel+core@7.18.2: @@ -1460,7 +1462,7 @@ packages: peerDependencies: postcss: ^8.3 dependencies: - '@csstools/selector-specificity': 1.0.0_e73911252e8c76a7ba13ab9c39479e7d + '@csstools/selector-specificity': 1.0.0_444rcjjorr3kpoqtvoodsr46pu postcss: 8.4.14 postcss-selector-parser: 6.0.10 dev: false @@ -1513,7 +1515,7 @@ packages: peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 1.0.0_e73911252e8c76a7ba13ab9c39479e7d + '@csstools/selector-specificity': 1.0.0_444rcjjorr3kpoqtvoodsr46pu postcss: 8.4.14 postcss-selector-parser: 6.0.10 dev: false @@ -1568,7 +1570,7 @@ packages: postcss: 8.4.14 dev: false - /@csstools/selector-specificity/1.0.0_e73911252e8c76a7ba13ab9c39479e7d: + /@csstools/selector-specificity/1.0.0_444rcjjorr3kpoqtvoodsr46pu: resolution: {integrity: sha512-RkYG5KiGNX0fJ5YoI0f4Wfq2Yo74D25Hru4fxTOioYdQvHBxcrrtTTyT5Ozzh2ejcNrhFy7IEts2WyEY7yi5yw==} engines: {node: ^12 || ^14 || >=16} peerDependencies: @@ -1922,7 +1924,7 @@ packages: fastq: 1.13.0 dev: false - /@pmmmwh/react-refresh-webpack-plugin/0.5.7_10e9430ea3cdfe32a913fa23525aceac: + /@pmmmwh/react-refresh-webpack-plugin/0.5.7_cduugdvdzx7dfkit7irvewwovq: resolution: {integrity: sha512-bcKCAzF0DV2IIROp9ZHkRJa6O4jy7NlnHdWL3GmcUxYWNjLXkK5kfELELwEfSP5hXPfVL/qOGMAROuMQb9GG8Q==} engines: {node: '>= 10.13'} peerDependencies: @@ -2030,7 +2032,7 @@ packages: react: 18.1.0 dev: false - /@radix-ui/react-portal/0.1.3_react-dom@18.1.0+react@18.1.0: + /@radix-ui/react-portal/0.1.3_ef5jwxihqo6n7gxfmzogljlgcm: resolution: {integrity: sha512-DrV+sPYLs0HhmX5/b7yRT6nLM9Nl6FtQe2KUG+46kiCOKQ+0XzNMO5hmeQtyq0mRf/qlC02rFu6OMsWpIqVsJg==} peerDependencies: react: ^16.8 || ^17.0 @@ -2043,7 +2045,7 @@ packages: react-dom: 18.1.0_react@18.1.0 dev: false - /@radix-ui/react-portal/0.1.4_react-dom@18.1.0+react@18.1.0: + /@radix-ui/react-portal/0.1.4_ef5jwxihqo6n7gxfmzogljlgcm: resolution: {integrity: sha512-MO0wRy2eYRTZ/CyOri9NANCAtAtq89DEtg90gicaTlkCfdqCLEBsLb+/q66BZQTr3xX/Vq01nnVfc/TkCqoqvw==} peerDependencies: react: ^16.8 || ^17.0 @@ -2097,7 +2099,7 @@ packages: react: 18.1.0 dev: false - /@radix-ui/react-tooltip/0.1.6_react-dom@18.1.0+react@18.1.0: + /@radix-ui/react-tooltip/0.1.6_ef5jwxihqo6n7gxfmzogljlgcm: resolution: {integrity: sha512-0uaRpRmTCQo5yMUkDpv4LEDnaQDoeLXcNNhZonCZdbZBQ7ntvjURIWIigq1/pXZp0UX7oPpFzsXD9jUp8JT0WA==} peerDependencies: react: ^16.8 || ^17.0 @@ -2109,7 +2111,7 @@ packages: '@radix-ui/react-context': 0.1.1_react@18.1.0 '@radix-ui/react-id': 0.1.4_react@18.1.0 '@radix-ui/react-popper': 0.1.3_react@18.1.0 - '@radix-ui/react-portal': 0.1.3_react-dom@18.1.0+react@18.1.0 + '@radix-ui/react-portal': 0.1.3_ef5jwxihqo6n7gxfmzogljlgcm '@radix-ui/react-presence': 0.1.1_react@18.1.0 '@radix-ui/react-primitive': 0.1.3_react@18.1.0 '@radix-ui/react-slot': 0.1.2_react@18.1.0 @@ -2204,7 +2206,7 @@ packages: '@babel/runtime': 7.17.9 dev: false - /@rollup/plugin-babel/5.3.1_@babel+core@7.18.2+rollup@2.74.1: + /@rollup/plugin-babel/5.3.1_o5sqowbm3tib3dowmwlyo7rr74: resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -2433,7 +2435,7 @@ packages: redent: 3.0.0 dev: false - /@testing-library/react/13.2.0_react-dom@18.1.0+react@18.1.0: + /@testing-library/react/13.2.0_ef5jwxihqo6n7gxfmzogljlgcm: resolution: {integrity: sha512-Bprbz/SZVONCJy5f7hcihNCv313IJXdYiv0nSJklIs1SQCIHHNlnGNkosSXnGZTmesyGIcBGNppYhXcc11pb7g==} engines: {node: '>=12'} peerDependencies: @@ -2743,7 +2745,7 @@ packages: '@types/yargs-parser': 21.0.0 dev: false - /@typescript-eslint/eslint-plugin/5.26.0_3538258888b78689808cec7bffc2237a: + /@typescript-eslint/eslint-plugin/5.26.0_gu4clceiw6ditaem5r577qrdpi: resolution: {integrity: sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2754,10 +2756,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.26.0_eslint@8.16.0+typescript@4.6.4 + '@typescript-eslint/parser': 5.26.0_utdtartgf6fqqgkivzeynh76la '@typescript-eslint/scope-manager': 5.26.0 - '@typescript-eslint/type-utils': 5.26.0_eslint@8.16.0+typescript@4.6.4 - '@typescript-eslint/utils': 5.26.0_eslint@8.16.0+typescript@4.6.4 + '@typescript-eslint/type-utils': 5.26.0_utdtartgf6fqqgkivzeynh76la + '@typescript-eslint/utils': 5.26.0_utdtartgf6fqqgkivzeynh76la debug: 4.3.4 eslint: 8.16.0 functional-red-black-tree: 1.0.1 @@ -2770,20 +2772,20 @@ packages: - supports-color dev: false - /@typescript-eslint/experimental-utils/5.26.0_eslint@8.16.0+typescript@4.6.4: + /@typescript-eslint/experimental-utils/5.26.0_utdtartgf6fqqgkivzeynh76la: resolution: {integrity: sha512-OgUGXC/teXD8PYOkn33RSwBJPVwL0I2ipm5OHr9g9cfAhVrPC2DxQiWqaq88MNO5mbr/ZWnav3EVBpuwDreS5Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.26.0_eslint@8.16.0+typescript@4.6.4 + '@typescript-eslint/utils': 5.26.0_utdtartgf6fqqgkivzeynh76la eslint: 8.16.0 transitivePeerDependencies: - supports-color - typescript dev: false - /@typescript-eslint/parser/5.26.0_eslint@8.16.0+typescript@4.6.4: + /@typescript-eslint/parser/5.26.0_utdtartgf6fqqgkivzeynh76la: resolution: {integrity: sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2811,7 +2813,7 @@ packages: '@typescript-eslint/visitor-keys': 5.26.0 dev: false - /@typescript-eslint/type-utils/5.26.0_eslint@8.16.0+typescript@4.6.4: + /@typescript-eslint/type-utils/5.26.0_utdtartgf6fqqgkivzeynh76la: resolution: {integrity: sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2821,7 +2823,7 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.26.0_eslint@8.16.0+typescript@4.6.4 + '@typescript-eslint/utils': 5.26.0_utdtartgf6fqqgkivzeynh76la debug: 4.3.4 eslint: 8.16.0 tsutils: 3.21.0_typescript@4.6.4 @@ -2856,7 +2858,7 @@ packages: - supports-color dev: false - /@typescript-eslint/utils/5.26.0_eslint@8.16.0+typescript@4.6.4: + /@typescript-eslint/utils/5.26.0_utdtartgf6fqqgkivzeynh76la: resolution: {integrity: sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3357,7 +3359,7 @@ packages: - supports-color dev: false - /babel-loader/8.2.5_b691d163cf7cf2d6fe2c056467b6e090: + /babel-loader/8.2.5_w2i5cy6pptznn7rmavsgpnxasa: resolution: {integrity: sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==} engines: {node: '>= 8.9'} peerDependencies: @@ -3499,6 +3501,7 @@ packages: '@babel/plugin-proposal-numeric-separator': 7.16.7_@babel+core@7.18.2 '@babel/plugin-proposal-optional-chaining': 7.17.12_@babel+core@7.18.2 '@babel/plugin-proposal-private-methods': 7.17.12_@babel+core@7.18.2 + '@babel/plugin-proposal-private-property-in-object': 7.17.12_@babel+core@7.18.2 '@babel/plugin-transform-flow-strip-types': 7.17.12_@babel+core@7.18.2 '@babel/plugin-transform-react-display-name': 7.16.7_@babel+core@7.18.2 '@babel/plugin-transform-runtime': 7.18.2_@babel+core@7.18.2 @@ -3565,6 +3568,8 @@ packages: raw-body: 2.5.1 type-is: 1.6.18 unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color dev: false /bonjour-service/1.0.12: @@ -3894,6 +3899,8 @@ packages: on-headers: 1.0.2 safe-buffer: 5.1.2 vary: 1.1.2 + transitivePeerDependencies: + - supports-color dev: false /concat-map/0.0.1: @@ -4254,12 +4261,22 @@ packages: /debug/2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.0.0 dev: false /debug/3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.3 dev: false @@ -4363,6 +4380,8 @@ packages: dependencies: address: 1.2.0 debug: 2.6.9 + transitivePeerDependencies: + - supports-color dev: false /detective/5.2.0: @@ -4659,33 +4678,39 @@ packages: source-map: 0.6.1 dev: false - /eslint-config-react-app/7.0.1_d91a484b24073d013c4ad262398a987d: + /eslint-config-react-app/7.0.1_3eneqszea46qcpck2jrdtcuypu: resolution: {integrity: sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==} engines: {node: '>=14.0.0'} peerDependencies: eslint: ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@babel/core': 7.18.2 - '@babel/eslint-parser': 7.18.2_@babel+core@7.18.2+eslint@8.16.0 + '@babel/eslint-parser': 7.18.2_j4uj5cgi2mksbox6kqvi7jrs6u '@rushstack/eslint-patch': 1.1.3 - '@typescript-eslint/eslint-plugin': 5.26.0_3538258888b78689808cec7bffc2237a - '@typescript-eslint/parser': 5.26.0_eslint@8.16.0+typescript@4.6.4 + '@typescript-eslint/eslint-plugin': 5.26.0_gu4clceiw6ditaem5r577qrdpi + '@typescript-eslint/parser': 5.26.0_utdtartgf6fqqgkivzeynh76la babel-preset-react-app: 10.0.1 confusing-browser-globals: 1.0.11 eslint: 8.16.0 eslint-plugin-flowtype: 8.0.3_eslint@8.16.0 - eslint-plugin-import: 2.26.0_eslint@8.16.0 - eslint-plugin-jest: 25.7.0_5257c99fa782e3871f5679738ed8c9c7 + eslint-plugin-import: 2.26.0_grfei5yostfimvqdpf73rlhy3e + eslint-plugin-jest: 25.7.0_kjl4th5hqlryoh2wpfzy5wgjy4 eslint-plugin-jsx-a11y: 6.5.1_eslint@8.16.0 eslint-plugin-react: 7.30.0_eslint@8.16.0 eslint-plugin-react-hooks: 4.5.0_eslint@8.16.0 - eslint-plugin-testing-library: 5.5.1_eslint@8.16.0+typescript@4.6.4 + eslint-plugin-testing-library: 5.5.1_utdtartgf6fqqgkivzeynh76la + typescript: 4.6.4 transitivePeerDependencies: - '@babel/plugin-syntax-flow' - '@babel/plugin-transform-react-jsx' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack - jest - supports-color - - typescript dev: false /eslint-import-resolver-node/0.3.6: @@ -4693,14 +4718,34 @@ packages: dependencies: debug: 3.2.7 resolve: 1.22.0 + transitivePeerDependencies: + - supports-color dev: false - /eslint-module-utils/2.7.3: + /eslint-module-utils/2.7.3_zhgf6mw2wzy6dnrak3ta47vb3m: resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: + '@typescript-eslint/parser': 5.26.0_utdtartgf6fqqgkivzeynh76la debug: 3.2.7 + eslint-import-resolver-node: 0.3.6 find-up: 2.1.0 + transitivePeerDependencies: + - supports-color dev: false /eslint-plugin-flowtype/8.0.3_eslint@8.16.0: @@ -4716,19 +4761,24 @@ packages: string-natural-compare: 3.0.1 dev: false - /eslint-plugin-import/2.26.0_eslint@8.16.0: + /eslint-plugin-import/2.26.0_grfei5yostfimvqdpf73rlhy3e: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: + '@typescript-eslint/parser': '*' eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true dependencies: + '@typescript-eslint/parser': 5.26.0_utdtartgf6fqqgkivzeynh76la array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 eslint: 8.16.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3 + eslint-module-utils: 2.7.3_zhgf6mw2wzy6dnrak3ta47vb3m has: 1.0.3 is-core-module: 2.9.0 is-glob: 4.0.3 @@ -4736,9 +4786,13 @@ packages: object.values: 1.1.5 resolve: 1.22.0 tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color dev: false - /eslint-plugin-jest/25.7.0_5257c99fa782e3871f5679738ed8c9c7: + /eslint-plugin-jest/25.7.0_kjl4th5hqlryoh2wpfzy5wgjy4: resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} peerDependencies: @@ -4751,8 +4805,8 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.26.0_3538258888b78689808cec7bffc2237a - '@typescript-eslint/experimental-utils': 5.26.0_eslint@8.16.0+typescript@4.6.4 + '@typescript-eslint/eslint-plugin': 5.26.0_gu4clceiw6ditaem5r577qrdpi + '@typescript-eslint/experimental-utils': 5.26.0_utdtartgf6fqqgkivzeynh76la eslint: 8.16.0 jest: 27.5.1 transitivePeerDependencies: @@ -4813,13 +4867,13 @@ packages: string.prototype.matchall: 4.0.7 dev: false - /eslint-plugin-testing-library/5.5.1_eslint@8.16.0+typescript@4.6.4: + /eslint-plugin-testing-library/5.5.1_utdtartgf6fqqgkivzeynh76la: resolution: {integrity: sha512-plLEkkbAKBjPxsLj7x4jNapcHAg2ernkQlKKrN2I8NrQwPISZHyCUNvg5Hv3EDqOQReToQb5bnqXYbkijJPE/g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.26.0_eslint@8.16.0+typescript@4.6.4 + '@typescript-eslint/utils': 5.26.0_utdtartgf6fqqgkivzeynh76la eslint: 8.16.0 transitivePeerDependencies: - supports-color @@ -4862,7 +4916,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: false - /eslint-webpack-plugin/3.1.1_eslint@8.16.0+webpack@5.72.1: + /eslint-webpack-plugin/3.1.1_vzdnq34ogkorkjhrihd2nzxd6u: resolution: {integrity: sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -5049,6 +5103,8 @@ packages: type-is: 1.6.18 utils-merge: 1.0.1 vary: 1.1.2 + transitivePeerDependencies: + - supports-color dev: false /extend-shallow/2.0.1: @@ -5066,8 +5122,8 @@ packages: is-extendable: 1.0.1 dev: false - /fancy-canvas/0.2.2: - resolution: {integrity: sha512-50qi8xA0QkHbjmb8h7XQ6k2fvD7y/yMfiUw9YTarJ7rWrq6o5/3CCXPouYk+XSLASvvxtjyiQLRBFt3qkE3oyA==} + /fancy-canvas/2.1.0: + resolution: {integrity: sha512-nifxXJ95JNLFR2NgRV4/MxVP45G9909wJTEKz5fg/TZS20JJZA6hfgRVh/bC9bwl2zBtBNcYPjiBE4njQHVBwQ==} /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -5165,6 +5221,8 @@ packages: parseurl: 1.3.3 statuses: 2.0.1 unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color dev: false /find-cache-dir/3.3.2: @@ -5233,7 +5291,7 @@ packages: engines: {node: '>=0.10.0'} dev: false - /fork-ts-checker-webpack-plugin/6.5.2_488fe9da72d60bd4d60dac1eaf407c7a: + /fork-ts-checker-webpack-plugin/6.5.2_jch6twts2yf5jvqnvqpk6qd4pi: resolution: {integrity: sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==} engines: {node: '>=10', yarn: '>=1.0.0'} peerDependencies: @@ -5327,6 +5385,7 @@ packages: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + requiresBuild: true dev: false optional: true @@ -6742,14 +6801,14 @@ packages: language-subtag-registry: 0.3.21 dev: false - /leva/0.9.27_react-dom@18.1.0+react@18.1.0: + /leva/0.9.27_ef5jwxihqo6n7gxfmzogljlgcm: resolution: {integrity: sha512-om1IG38ZqNwcl0CFj0KoObqNcGClsJ72OJpMsC3O5bKtXZWch0+j2zNcffchVrg9Anr2Q444vVVocNleo0kzSA==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - '@radix-ui/react-portal': 0.1.4_react-dom@18.1.0+react@18.1.0 - '@radix-ui/react-tooltip': 0.1.6_react-dom@18.1.0+react@18.1.0 + '@radix-ui/react-portal': 0.1.4_ef5jwxihqo6n7gxfmzogljlgcm + '@radix-ui/react-tooltip': 0.1.6_ef5jwxihqo6n7gxfmzogljlgcm '@stitches/react': 1.2.8_react@18.1.0 '@use-gesture/react': 10.2.15_react@18.1.0 '@welldone-software/why-did-you-render': 6.2.3_react@18.1.0 @@ -6757,7 +6816,7 @@ packages: dequal: 2.0.2 merge-value: 1.0.0 react: 18.1.0 - react-colorful: 5.5.1_react-dom@18.1.0+react@18.1.0 + react-colorful: 5.5.1_ef5jwxihqo6n7gxfmzogljlgcm react-dom: 18.1.0_react@18.1.0 react-dropzone: 12.1.0_react@18.1.0 v8n: 1.4.0 @@ -6785,10 +6844,10 @@ packages: type-check: 0.4.0 dev: false - /lightweight-charts/3.8.0: - resolution: {integrity: sha512-7yFGnYuE1RjRJG9RwUTBz5wvF1QtjBOSW4FFlikr8Dh+/TDNt4ci+HsWSYmStgQUpawpvkCJ3j5/W25GppGj9Q==} + /lightweight-charts/4.0.1: + resolution: {integrity: sha512-p+j6w41PVzf9Vn7IrmpmCJacunpN0kKsl0IZoxMOySSkDcSagZ7Is9pb6pclIfN/usHdta0aYm9FktkYpAQe0g==} dependencies: - fancy-canvas: 0.2.2 + fancy-canvas: 2.1.0 /lilconfig/2.0.5: resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} @@ -7485,7 +7544,7 @@ packages: postcss-selector-parser: 6.0.10 dev: false - /postcss-browser-comments/4.0.0_e75cc2f88047350d88863901d59c799b: + /postcss-browser-comments/4.0.0_45omf6eai42q3ceghea5lhdztm: resolution: {integrity: sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==} engines: {node: '>=8'} peerDependencies: @@ -7767,7 +7826,7 @@ packages: yaml: 1.10.2 dev: false - /postcss-loader/6.2.1_postcss@8.4.14+webpack@5.72.1: + /postcss-loader/6.2.1_xvg4ntyrrwt57qzvggqcbeozu4: resolution: {integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -7924,7 +7983,7 @@ packages: peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 1.0.0_e73911252e8c76a7ba13ab9c39479e7d + '@csstools/selector-specificity': 1.0.0_444rcjjorr3kpoqtvoodsr46pu postcss: 8.4.14 postcss-selector-parser: 6.0.10 dev: false @@ -8020,7 +8079,7 @@ packages: postcss-value-parser: 4.2.0 dev: false - /postcss-normalize/10.0.1_e75cc2f88047350d88863901d59c799b: + /postcss-normalize/10.0.1_45omf6eai42q3ceghea5lhdztm: resolution: {integrity: sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==} engines: {node: '>= 12'} peerDependencies: @@ -8030,7 +8089,7 @@ packages: '@csstools/normalize.css': 12.0.0 browserslist: 4.20.3 postcss: 8.4.14 - postcss-browser-comments: 4.0.0_e75cc2f88047350d88863901d59c799b + postcss-browser-comments: 4.0.0_45omf6eai42q3ceghea5lhdztm sanitize.css: 13.0.0 dev: false @@ -8374,7 +8433,7 @@ packages: whatwg-fetch: 3.6.2 dev: false - /react-colorful/5.5.1_react-dom@18.1.0+react@18.1.0: + /react-colorful/5.5.1_ef5jwxihqo6n7gxfmzogljlgcm: resolution: {integrity: sha512-M1TJH2X3RXEt12sWkpa6hLc/bbYS0H6F4rIqjQZ+RxNBstpY67d9TrFXtqdZwhpmBXcCwEi7stKqFue3ZRkiOg==} peerDependencies: react: '>=16.8.0' @@ -8384,9 +8443,15 @@ packages: react-dom: 18.1.0_react@18.1.0 dev: false - /react-dev-utils/12.0.1_488fe9da72d60bd4d60dac1eaf407c7a: + /react-dev-utils/12.0.1_jch6twts2yf5jvqnvqpk6qd4pi: resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} engines: {node: '>=14'} + peerDependencies: + typescript: '>=2.7' + webpack: '>=4' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@babel/code-frame': 7.16.7 address: 1.2.0 @@ -8397,7 +8462,7 @@ packages: escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.2_488fe9da72d60bd4d60dac1eaf407c7a + fork-ts-checker-webpack-plugin: 6.5.2_jch6twts2yf5jvqnvqpk6qd4pi global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -8412,11 +8477,12 @@ packages: shell-quote: 1.7.3 strip-ansi: 6.0.1 text-table: 0.2.0 + typescript: 4.6.4 + webpack: 5.72.1 transitivePeerDependencies: - eslint - - typescript + - supports-color - vue-template-compiler - - webpack dev: false /react-dom/18.1.0_react@18.1.0: @@ -8461,7 +8527,7 @@ packages: engines: {node: '>=0.10.0'} dev: false - /react-router-dom/6.3.0_react-dom@18.1.0+react@18.1.0: + /react-router-dom/6.3.0_ef5jwxihqo6n7gxfmzogljlgcm: resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==} peerDependencies: react: '>=16.8' @@ -8482,7 +8548,7 @@ packages: react: 18.1.0 dev: false - /react-scripts/5.0.1_react@18.1.0+typescript@4.6.4: + /react-scripts/5.0.1_oxzyc36t6ywqirvp35nas5bcte: resolution: {integrity: sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -8494,10 +8560,10 @@ packages: optional: true dependencies: '@babel/core': 7.18.2 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.7_10e9430ea3cdfe32a913fa23525aceac + '@pmmmwh/react-refresh-webpack-plugin': 0.5.7_cduugdvdzx7dfkit7irvewwovq '@svgr/webpack': 5.5.0 babel-jest: 27.5.1_@babel+core@7.18.2 - babel-loader: 8.2.5_b691d163cf7cf2d6fe2c056467b6e090 + babel-loader: 8.2.5_w2i5cy6pptznn7rmavsgpnxasa babel-plugin-named-asset-import: 0.3.8_@babel+core@7.18.2 babel-preset-react-app: 10.0.1 bfj: 7.0.2 @@ -8509,8 +8575,8 @@ packages: dotenv: 10.0.0 dotenv-expand: 5.1.0 eslint: 8.16.0 - eslint-config-react-app: 7.0.1_d91a484b24073d013c4ad262398a987d - eslint-webpack-plugin: 3.1.1_eslint@8.16.0+webpack@5.72.1 + eslint-config-react-app: 7.0.1_3eneqszea46qcpck2jrdtcuypu + eslint-webpack-plugin: 3.1.1_vzdnq34ogkorkjhrihd2nzxd6u file-loader: 6.2.0_webpack@5.72.1 fs-extra: 10.1.0 html-webpack-plugin: 5.5.0_webpack@5.72.1 @@ -8521,13 +8587,13 @@ packages: mini-css-extract-plugin: 2.6.0_webpack@5.72.1 postcss: 8.4.14 postcss-flexbugs-fixes: 5.0.2_postcss@8.4.14 - postcss-loader: 6.2.1_postcss@8.4.14+webpack@5.72.1 - postcss-normalize: 10.0.1_e75cc2f88047350d88863901d59c799b + postcss-loader: 6.2.1_xvg4ntyrrwt57qzvggqcbeozu4 + postcss-normalize: 10.0.1_45omf6eai42q3ceghea5lhdztm postcss-preset-env: 7.6.0_postcss@8.4.14 prompts: 2.4.2 react: 18.1.0 react-app-polyfill: 3.0.0 - react-dev-utils: 12.0.1_488fe9da72d60bd4d60dac1eaf407c7a + react-dev-utils: 12.0.1_jch6twts2yf5jvqnvqpk6qd4pi react-refresh: 0.11.0 resolve: 1.22.0 resolve-url-loader: 4.0.0 @@ -8557,6 +8623,8 @@ packages: - csso - debug - esbuild + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack - fibers - node-notifier - node-sass @@ -8966,6 +9034,8 @@ packages: on-finished: 2.4.1 range-parser: 1.2.1 statuses: 2.0.1 + transitivePeerDependencies: + - supports-color dev: false /serialize-javascript/4.0.0: @@ -8991,6 +9061,8 @@ packages: http-errors: 1.6.3 mime-types: 2.1.35 parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color dev: false /serve-static/1.15.0: @@ -9001,6 +9073,8 @@ packages: escape-html: 1.0.3 parseurl: 1.3.3 send: 0.18.0 + transitivePeerDependencies: + - supports-color dev: false /set-value/2.0.1: @@ -10073,7 +10147,7 @@ packages: '@babel/core': 7.18.2 '@babel/preset-env': 7.18.2_@babel+core@7.18.2 '@babel/runtime': 7.17.9 - '@rollup/plugin-babel': 5.3.1_@babel+core@7.18.2+rollup@2.74.1 + '@rollup/plugin-babel': 5.3.1_o5sqowbm3tib3dowmwlyo7rr74 '@rollup/plugin-node-resolve': 11.2.1_rollup@2.74.1 '@rollup/plugin-replace': 2.4.2_rollup@2.74.1 '@surma/rollup-plugin-off-main-thread': 2.2.3 diff --git a/packages/demo/package.json b/packages/demo/package.json index 40a566d..18d5c4c 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -16,7 +16,7 @@ "react-scripts": "5.0.1", "typescript": "~4.6.4", "web-vitals": "^2.1.0", - "lightweight-charts": "^3.8.0", + "lightweight-charts": "4.0.1", "classnames": "~2.3.1", "react-router-dom": "~6.3.0", "@types/webpack-env": "~1.17.0", diff --git a/packages/demo/src/samples/legend.tsx b/packages/demo/src/samples/legend.tsx index 0167b7e..44f4e9c 100644 --- a/packages/demo/src/samples/legend.tsx +++ b/packages/demo/src/samples/legend.tsx @@ -1,5 +1,5 @@ import React, {useCallback, useRef, useState} from 'react'; -import {BarPrice, ISeriesApi, LineWidth, MouseEventParams} from 'lightweight-charts'; +import {ISeriesApi, LineWidth, MouseEventParams, LineData} from 'lightweight-charts'; import {Chart, AreaSeries} from 'lightweight-charts-react-wrapper'; import styles from './legend.module.css'; @@ -13,8 +13,8 @@ export default function Legend() { return; } if (param.time) { - const price = param.seriesPrices.get(series.current) as BarPrice; - setLegend('ETC USD 7D VWAP' + ' ' + price.toFixed(2)); + const {value} = param.seriesData.get(series.current) as LineData; + setLegend('ETC USD 7D VWAP' + ' ' + value.toFixed(2)); } else { setLegend('ETC USD 7D VWAP'); } diff --git a/packages/demo/src/samples/moving-average.tsx b/packages/demo/src/samples/moving-average.tsx index 04819cc..7a37525 100644 --- a/packages/demo/src/samples/moving-average.tsx +++ b/packages/demo/src/samples/moving-average.tsx @@ -1,5 +1,5 @@ import React, {useCallback, useRef, useState} from 'react'; -import {BarPrice, BusinessDay, CandlestickData, CrosshairMode, ISeriesApi, MouseEventParams} from 'lightweight-charts'; +import {AreaData, BusinessDay, CandlestickData, CrosshairMode, ISeriesApi, MouseEventParams} from 'lightweight-charts'; import {Chart, LineSeries, CandlestickSeries} from 'lightweight-charts-react-wrapper'; import styles from './moving-average.module.css'; @@ -12,9 +12,9 @@ export default function MovingAverage() { if (ref.current === null) { return; } - const price = e.seriesPrices.get(ref.current) as BarPrice | undefined; - if (price !== undefined) { - setValue((Math.round(price * 100) / 100).toFixed(2)); + const data = e.seriesData.get(ref.current) as AreaData | undefined; + if (data !== undefined) { + setValue((Math.round(data.value * 100) / 100).toFixed(2)); } else { setValue('n/a'); } diff --git a/packages/demo/src/samples/series-markers.tsx b/packages/demo/src/samples/series-markers.tsx new file mode 100644 index 0000000..c0d035b --- /dev/null +++ b/packages/demo/src/samples/series-markers.tsx @@ -0,0 +1,744 @@ +import React from 'react'; +import {SeriesMarker, Time} from 'lightweight-charts'; +import {Chart, CandlestickSeries} from 'lightweight-charts-react-wrapper'; + +export default function CandlestickChart() { + return ( + <> +

Series markers

+ + + + + ) +} + +const data = [ + { + time: {year: 2018, month: 9, day: 22}, + open: 29.630237296336794, + high: 35.36950035097501, + low: 26.21522501353531, + close: 30.734997177569916 + }, + { + time: {year: 2018, month: 9, day: 23}, + open: 32.267626500691215, + high: 34.452661663723774, + low: 26.096868360824704, + close: 29.573918833457004 + }, + { + time: {year: 2018, month: 9, day: 24}, + open: 27.33996760497746, + high: 35.8060364835531, + low: 27.33996760497746, + close: 33.06283432964511 + }, + { + time: {year: 2018, month: 9, day: 25}, + open: 31.1654368745013, + high: 31.97284477478497, + low: 26.766743287285593, + close: 27.364979322283386 + }, + { + time: {year: 2018, month: 9, day: 26}, + open: 29.5901452337888, + high: 32.147919593347474, + low: 27.53289219709677, + close: 29.202912415085272 + }, + { + time: {year: 2018, month: 9, day: 27}, + open: 27.561741523265923, + high: 35.11649043301526, + low: 25.20035866163233, + close: 31.14520649627546 + }, + { + time: {year: 2018, month: 9, day: 28}, + open: 31.925975006823798, + high: 31.925975006823798, + low: 28.998500720406675, + close: 29.87723790403876 + }, + { + time: {year: 2018, month: 9, day: 29}, + open: 30.826956088992475, + high: 34.79463130873015, + low: 25.291546123273097, + close: 28.994812708315987 + }, + { + time: {year: 2018, month: 9, day: 30}, + open: 31.202920145287838, + high: 33.19178819590413, + low: 23.94419012923956, + close: 31.47253745770869 + }, + { + time: {year: 2018, month: 10, day: 1}, + open: 26.927794164758666, + high: 34.6744456778885, + low: 26.927794164758666, + close: 31.091122539737423 + }, + { + time: {year: 2018, month: 10, day: 2}, + open: 26.452041173938298, + high: 34.527917622572154, + low: 26.452041173938298, + close: 27.65703395829094 + }, + { + time: {year: 2018, month: 10, day: 3}, + open: 27.74629982387605, + high: 29.300441707649835, + low: 23.761300216231263, + close: 29.182874625005628 + }, + { + time: {year: 2018, month: 10, day: 4}, + open: 30.41599722290526, + high: 31.942643078777103, + low: 27.09925359459428, + close: 30.918477883682872 + }, + { + time: {year: 2018, month: 10, day: 5}, + open: 25.76549797105683, + high: 33.4650523853759, + low: 25.76549797105683, + close: 28.15984801386293 + }, + { + time: {year: 2018, month: 10, day: 6}, + open: 27.543404135965382, + high: 30.7227783000902, + low: 25.749951838020884, + close: 29.150903848724184 + }, + { + time: {year: 2018, month: 10, day: 7}, + open: 29.34759861812077, + high: 31.08503530472835, + low: 23.395022079647823, + close: 25.00923131079722 + }, + { + time: {year: 2018, month: 10, day: 8}, + open: 27.00266154335036, + high: 29.51599687178633, + low: 23.46749249241176, + close: 28.702932483799707 + }, + { + time: {year: 2018, month: 10, day: 9}, + open: 25.569958099853594, + high: 27.669071502065417, + low: 25.569958099853594, + close: 25.626920473922613 + }, + { + time: {year: 2018, month: 10, day: 10}, + open: 24.886919828178304, + high: 27.167620185117006, + low: 23.71595991386752, + close: 23.71595991386752 + }, + { + time: {year: 2018, month: 10, day: 11}, + open: 26.14124249813686, + high: 29.5638477987916, + low: 20.82341105699825, + close: 25.563138238511257 + }, + { + time: {year: 2018, month: 10, day: 12}, + open: 22.26412127509447, + high: 27.637685003390743, + low: 20.838507431464958, + close: 22.450517792778047 + }, + { + time: {year: 2018, month: 10, day: 13}, + open: 25.75099239090953, + high: 28.12000626118839, + low: 21.929748303510852, + close: 22.63015682488669 + }, + { + time: {year: 2018, month: 10, day: 14}, + open: 25.428132591291497, + high: 25.999229490809693, + low: 22.266121337091555, + close: 23.51047528528147 + }, + { + time: {year: 2018, month: 10, day: 15}, + open: 25.07416967939059, + high: 25.50535192500713, + low: 21.96666570325133, + close: 21.96666570325133 + }, + { + time: {year: 2018, month: 10, day: 16}, + open: 24.957206161449307, + high: 26.679727314857256, + low: 20.196753994637245, + close: 21.523347810451863 + }, + { + time: {year: 2018, month: 10, day: 17}, + open: 23.705184745772733, + high: 26.754094837621004, + low: 18.724184302695104, + close: 20.160857555541725 + }, + { + time: {year: 2018, month: 10, day: 18}, + open: 21.95610851644136, + high: 22.914889536420105, + low: 19.567733140100472, + close: 22.914889536420105 + }, + { + time: {year: 2018, month: 10, day: 19}, + open: 23.216357873687972, + high: 25.44815512734246, + low: 19.54787451276509, + close: 20.76851802225937 + }, + { + time: {year: 2018, month: 10, day: 20}, + open: 19.6289025950405, + high: 24.290702755740412, + low: 19.041541929894358, + close: 22.48608548162324 + }, + { + time: {year: 2018, month: 10, day: 21}, + open: 23.599000037544915, + high: 26.839019853462844, + low: 20.884129956680898, + close: 22.01878871761756 + }, + { + time: {year: 2018, month: 10, day: 22}, + open: 24.618502768742008, + high: 28.00099352255492, + low: 23.061935629399088, + close: 23.061935629399088 + }, + { + time: {year: 2018, month: 10, day: 23}, + open: 23.840701995876866, + high: 28.494382608429564, + low: 23.840701995876866, + close: 25.321841131665526 + }, + { + time: {year: 2018, month: 10, day: 24}, + open: 27.764925733189372, + high: 31.05550601484776, + low: 22.810929726970702, + close: 30.02406259204889 + }, + { + time: {year: 2018, month: 10, day: 25}, + open: 29.703149280184604, + high: 34.0185175501095, + low: 26.82967654698301, + close: 32.06834171351323 + }, + { + time: {year: 2018, month: 10, day: 26}, + open: 29.0251492427822, + high: 36.89478162439007, + low: 28.3502671011196, + close: 32.822663125409356 + }, + { + time: {year: 2018, month: 10, day: 27}, + open: 35.040777462643284, + high: 35.12524316379231, + low: 26.805156020579663, + close: 34.23626219571325 + }, + { + time: {year: 2018, month: 10, day: 28}, + open: 31.21349419519032, + high: 35.73068910379853, + low: 31.064101813812698, + close: 34.75020857236565 + }, + { + time: {year: 2018, month: 10, day: 29}, + open: 32.34914826794689, + high: 42.381605482695505, + low: 30.176750284055878, + close: 39.24138147444552 + }, + { + time: {year: 2018, month: 10, day: 30}, + open: 38.84583808993371, + high: 41.75165839362154, + low: 33.37106955991806, + close: 35.93904098275507 + }, + { + time: {year: 2018, month: 10, day: 31}, + open: 37.070183005323564, + high: 44.84460203857022, + low: 35.23671284121251, + close: 36.329972003600034 + }, + { + time: {year: 2018, month: 11, day: 1}, + open: 43.31997309164893, + high: 48.43216497187469, + low: 38.30881963355285, + close: 41.554948540677586 + }, + { + time: {year: 2018, month: 11, day: 2}, + open: 41.33946811092929, + high: 46.65347243834853, + low: 37.472215586661335, + close: 39.26832265482503 + }, + { + time: {year: 2018, month: 11, day: 3}, + open: 44.76468593661226, + high: 44.76468593661226, + low: 40.039672147314235, + close: 43.42106786288436 + }, + { + time: {year: 2018, month: 11, day: 4}, + open: 49.13160326887013, + high: 49.13160326887013, + low: 40.93648693038296, + close: 42.17817698294767 + }, + { + time: {year: 2018, month: 11, day: 5}, + open: 50.46706012970579, + high: 54.38104598422352, + low: 38.159930155343616, + close: 47.5899156640143 + }, + { + time: {year: 2018, month: 11, day: 6}, + open: 48.25899506613569, + high: 48.25899506613569, + low: 45.63208604138365, + close: 45.63208604138365 + }, + { + time: {year: 2018, month: 11, day: 7}, + open: 52.45484210527629, + high: 57.55979771849961, + low: 45.23447676016779, + close: 46.01127464234881 + }, + { + time: {year: 2018, month: 11, day: 8}, + open: 53.228216675179624, + high: 54.07804814570622, + low: 40.61161433961706, + close: 47.689867390699014 + }, + { + time: {year: 2018, month: 11, day: 9}, + open: 46.193099316212816, + high: 56.190537353078824, + low: 45.01246323828753, + close: 49.14012661656766 + }, + { + time: {year: 2018, month: 11, day: 10}, + open: 50.409245396927986, + high: 52.3082002787041, + low: 41.764144138886394, + close: 52.3082002787041 + }, + { + time: {year: 2018, month: 11, day: 11}, + open: 48.58146178816203, + high: 52.653922195022126, + low: 47.34031788474959, + close: 47.34031788474959 + }, + { + time: {year: 2018, month: 11, day: 12}, + open: 46.80040325283692, + high: 56.709349494076804, + low: 45.81605691554122, + close: 45.81605691554122 + }, + { + time: {year: 2018, month: 11, day: 13}, + open: 46.042722425788355, + high: 58.476056411825695, + low: 46.042722425788355, + close: 51.2300776481609 + }, + { + time: {year: 2018, month: 11, day: 14}, + open: 53.909068487588385, + high: 60.240990154306715, + low: 45.230741063278664, + close: 51.34529637385427 + }, + { + time: {year: 2018, month: 11, day: 15}, + open: 53.739609857086606, + high: 53.739609857086606, + low: 44.38017019990068, + close: 47.595960698697894 + }, + { + time: {year: 2018, month: 11, day: 16}, + open: 52.52688238296145, + high: 60.9220040817774, + low: 44.27700764117003, + close: 55.27309771985698 + }, + { + time: {year: 2018, month: 11, day: 17}, + open: 54.46100795908005, + high: 57.57937841117058, + low: 49.50543170388487, + close: 49.50543170388487 + }, + { + time: {year: 2018, month: 11, day: 18}, + open: 51.12284024600029, + high: 57.646718858433026, + low: 48.73280269653226, + close: 51.35457902694444 + }, + { + time: {year: 2018, month: 11, day: 19}, + open: 53.536130807863266, + high: 53.536130807863266, + low: 51.29649965636722, + close: 52.99088526565045 + }, + { + time: {year: 2018, month: 11, day: 20}, + open: 50.92761950009885, + high: 57.70671943558014, + low: 46.45030483558741, + close: 52.229112575743066 + }, + { + time: {year: 2018, month: 11, day: 21}, + open: 49.30035068900293, + high: 58.67691694734525, + low: 44.63563165197862, + close: 58.67691694734525 + }, + { + time: {year: 2018, month: 11, day: 22}, + open: 54.230476484061036, + high: 59.03831193868438, + low: 50.77849134047791, + close: 59.03831193868438 + }, + { + time: {year: 2018, month: 11, day: 23}, + open: 57.282420985156854, + high: 60.4869735007396, + low: 44.14116488798797, + close: 57.93461310007337 + }, + { + time: {year: 2018, month: 11, day: 24}, + open: 54.86833150125539, + high: 64.25102812467448, + low: 52.36616043331222, + close: 52.36616043331222 + }, + { + time: {year: 2018, month: 11, day: 25}, + open: 51.689239380620386, + high: 64.29747922654688, + low: 50.71498529572432, + close: 60.518206306602394 + }, + { + time: {year: 2018, month: 11, day: 26}, + open: 55.74863310659164, + high: 60.816819055612584, + low: 46.11238607935206, + close: 59.23044859881929 + }, + { + time: {year: 2018, month: 11, day: 27}, + open: 52.57406222528308, + high: 64.2058753841427, + low: 48.163404012323305, + close: 60.593847809696896 + }, + { + time: {year: 2018, month: 11, day: 28}, + open: 57.50710740029724, + high: 60.12123058977347, + low: 49.61839271711267, + close: 53.29152711098895 + }, + { + time: {year: 2018, month: 11, day: 29}, + open: 57.33581828303538, + high: 58.92432332528284, + low: 53.27790061455899, + close: 57.02787118731709 + }, + { + time: {year: 2018, month: 11, day: 30}, + open: 57.527445314328595, + high: 67.63249690962569, + low: 49.603261485289146, + close: 54.589123556483656 + }, + { + time: {year: 2018, month: 12, day: 1}, + open: 59.98835793934424, + high: 65.51917884840141, + low: 52.32535994476165, + close: 62.127135611086565 + }, + { + time: {year: 2018, month: 12, day: 2}, + open: 52.509550731662536, + high: 58.49971806419494, + low: 52.509550731662536, + close: 54.759948868082255 + }, + { + time: {year: 2018, month: 12, day: 3}, + open: 58.08470541982317, + high: 62.74987556918568, + low: 47.85627992158991, + close: 58.690428071336406 + }, + { + time: {year: 2018, month: 12, day: 4}, + open: 58.28482939034761, + high: 69.16675825892361, + low: 57.41588944088662, + close: 57.74515245619454 + }, + { + time: {year: 2018, month: 12, day: 5}, + open: 60.004299871302464, + high: 65.82447121605708, + low: 53.13330527599658, + close: 57.64488004774012 + }, + { + time: {year: 2018, month: 12, day: 6}, + open: 61.92746155137417, + high: 64.36944842979646, + low: 49.470442234694225, + close: 59.94404434023895 + }, + { + time: {year: 2018, month: 12, day: 7}, + open: 63.72235832229121, + high: 66.33649390307095, + low: 49.91822946887207, + close: 63.56396375320479 + }, + { + time: {year: 2018, month: 12, day: 8}, + open: 56.64594047326664, + high: 65.3730920902599, + low: 52.604389283975664, + close: 60.71684658387917 + }, + { + time: {year: 2018, month: 12, day: 9}, + open: 58.89798885700999, + high: 68.04578543284373, + low: 58.89798885700999, + close: 63.36111469854223 + }, + { + time: {year: 2018, month: 12, day: 10}, + open: 58.869685789579826, + high: 70.99828637845869, + low: 52.36901833289119, + close: 63.15473262144694 + }, + { + time: {year: 2018, month: 12, day: 11}, + open: 57.61362492091653, + high: 66.41975632948531, + low: 50.827182111530895, + close: 61.770769489947064 + }, + { + time: {year: 2018, month: 12, day: 12}, + open: 57.869332957269656, + high: 66.28374056429257, + low: 57.05028878520954, + close: 63.87762958979595 + }, + { + time: {year: 2018, month: 12, day: 13}, + open: 68.14347595614306, + high: 73.46304446829079, + low: 50.83319311788897, + close: 66.9144140431443 + }, + { + time: {year: 2018, month: 12, day: 14}, + open: 56.95907344942102, + high: 68.81432823196859, + low: 56.95907344942102, + close: 60.69722290026252 + }, + { + time: {year: 2018, month: 12, day: 15}, + open: 69.14662166493828, + high: 69.14662166493828, + low: 58.59143795311565, + close: 66.25235616866007 + }, + { + time: {year: 2018, month: 12, day: 16}, + open: 64.0373004661208, + high: 72.91321850066319, + low: 52.079104978168345, + close: 65.92678310822487 + }, + { + time: {year: 2018, month: 12, day: 17}, + open: 68.81814300123497, + high: 69.51927964796873, + low: 62.70935477415118, + close: 65.64565364397754 + }, + { + time: {year: 2018, month: 12, day: 18}, + open: 63.47554821643351, + high: 73.6284398311906, + low: 58.996882824636856, + close: 58.996882824636856 + }, + { + time: {year: 2018, month: 12, day: 19}, + open: 69.97765183896102, + high: 69.97765183896102, + low: 58.73355952507237, + close: 58.73355952507237 + }, + { + time: {year: 2018, month: 12, day: 20}, + open: 63.22638756186111, + high: 65.67137242291682, + low: 59.9542779777421, + close: 61.20003065016431 + }, + { + time: {year: 2018, month: 12, day: 21}, + open: 59.690029086102506, + high: 78.08665559197297, + low: 54.862707942292275, + close: 70.58935191024504 + }, + { + time: {year: 2018, month: 12, day: 22}, + open: 66.29092355620301, + high: 71.82667261213395, + low: 65.28001993201676, + close: 71.82667261213395 + }, + { + time: {year: 2018, month: 12, day: 23}, + open: 60.92645998120027, + high: 74.21283998861118, + low: 57.331119016099116, + close: 60.36728842356329 + }, + { + time: {year: 2018, month: 12, day: 24}, + open: 60.211957192084036, + high: 72.37883919241614, + low: 60.211957192084036, + close: 72.37883919241614 + }, + { + time: {year: 2018, month: 12, day: 25}, + open: 64.80282266865653, + high: 71.00204457933133, + low: 54.58446926152339, + close: 69.9468262738086 + }, + { + time: {year: 2018, month: 12, day: 26}, + open: 66.28091239894763, + high: 81.00843300529249, + low: 54.56212171317677, + close: 69.58528111643206 + }, + { + time: {year: 2018, month: 12, day: 27}, + open: 66.38479296949795, + high: 79.97207476893692, + low: 59.738742243860464, + close: 73.77893045661807 + }, + { + time: {year: 2018, month: 12, day: 28}, + open: 73.80105714462456, + high: 73.80105714462456, + low: 59.95172576316864, + close: 73.49823170047799 + }, + { + time: {year: 2018, month: 12, day: 29}, + open: 75.65816205696441, + high: 75.65816205696441, + low: 63.710206287837266, + close: 63.710206287837266 + }, + { + time: {year: 2018, month: 12, day: 30}, + open: 70.43199072631421, + high: 80.48229715762909, + low: 62.65542750589909, + close: 63.42588929424237 + }, + { + time: {year: 2018, month: 12, day: 31}, + open: 74.18101512382138, + high: 79.0918171034821, + low: 57.80109358134577, + close: 72.91361896511863 + } +]; + +const datesForMarkers = [data[data.length - 39], data[data.length - 19]]; +let indexOfMinPrice = 0; +for (let i = 1; i < datesForMarkers.length; i++) { + if (datesForMarkers[i].high < datesForMarkers[indexOfMinPrice].high) { + indexOfMinPrice = i; + } +} + +const markers: SeriesMarker