├── .dockerignore ├── .gitignore ├── Dockerfile ├── README-DOCKER-BUILD.md ├── README.md ├── database.json ├── deploy └── doc │ ├── ide.service │ └── install.txt ├── docker-compose ├── .env ├── compose.yml ├── config │ └── nginx │ │ └── default.conf ├── dev │ └── compose.yml └── scripts │ └── apply_env.sh ├── entrypoint.sh ├── migrations ├── 20201116150717-add-deleted.js ├── 20201118095556-add-queries-updated-at.js ├── 20201130081924-add-endpoint-url.js ├── 20201223120556-add-widgets-table.js ├── 20210217114838-add-api-keys-table.js ├── 20210217124238-fill-by-api-keys.js ├── 20210217160049-add-user-active-index.js ├── 20210218135819-add-guest-users.js ├── 20210311065921-add-users-role.js ├── 20210412115836-set-default-email.js ├── 20210412130758-add-name-company.js ├── 20220517112409-block-temporary-email.js ├── 20220617063052-create-tags-table.js ├── 20220621082859-gererate-tags.js ├── 20220625085436-change-arguments.js └── 20220822145515-create-fill-disp-emails-table.js ├── package-lock.json ├── package.json ├── public ├── apple-touch-icon-precomposed.png ├── apple-touch-icon.png ├── bitquery_logo_w.png ├── charting_library │ ├── bundles │ │ ├── 1013.8bf558e5776449ee9b26.css │ │ ├── 1013.8bf558e5776449ee9b26.rtl.css │ │ ├── 1033.5197f9f8b8500206d06c.css │ │ ├── 1033.5197f9f8b8500206d06c.rtl.css │ │ ├── 1054.53487a2be7f0ef3c0ac6.css │ │ ├── 1054.53487a2be7f0ef3c0ac6.rtl.css │ │ ├── 1109.ec16a629917db2baf412.css │ │ ├── 1109.ec16a629917db2baf412.rtl.css │ │ ├── 1365.0116666d16b5bc64c47a.css │ │ ├── 1365.0116666d16b5bc64c47a.rtl.css │ │ ├── 1553.c076714f5e24887f0b94.js │ │ ├── 1762.7ff6b353c441db2276da.css │ │ ├── 1762.7ff6b353c441db2276da.rtl.css │ │ ├── 1849.aa435f081ad57a6d0121.css │ │ ├── 1849.aa435f081ad57a6d0121.rtl.css │ │ ├── 1958.c039f5e1f22405ba79e1.js │ │ ├── 2109.39627406fe95483ff7db.css │ │ ├── 2109.39627406fe95483ff7db.rtl.css │ │ ├── 2158.4b603780e909661194b1.js │ │ ├── 2191.4be2f56dab5aeadfe0eb.css │ │ ├── 2191.4be2f56dab5aeadfe0eb.rtl.css │ │ ├── 2215.e87235d359e4c375c7b9.js │ │ ├── 2260.b98824e4829a1aa9b444.css │ │ ├── 2260.b98824e4829a1aa9b444.rtl.css │ │ ├── 2587.1403c0d79d2217a73053.css │ │ ├── 2587.1403c0d79d2217a73053.rtl.css │ │ ├── 2639.86605a3197db99aca0f7.css │ │ ├── 2639.86605a3197db99aca0f7.rtl.css │ │ ├── 2666.fbb750fd312778403036.css │ │ ├── 2666.fbb750fd312778403036.rtl.css │ │ ├── 2676.2d3cabbd39a3b0d6e9ea.css │ │ ├── 2676.2d3cabbd39a3b0d6e9ea.rtl.css │ │ ├── 2698.808054d9f713fc1919d7.css │ │ ├── 2698.808054d9f713fc1919d7.rtl.css │ │ ├── 2731.e35a685bdfdffcff2797.css │ │ ├── 2731.e35a685bdfdffcff2797.rtl.css │ │ ├── 2842.61ec1448858319f48d5a.js │ │ ├── 2984.4082296827cdc2ce3974.css │ │ ├── 2984.4082296827cdc2ce3974.rtl.css │ │ ├── 3016.1dc744fe35e3e3b00f00.js │ │ ├── 3066.dc07d1c6b25360d267dd.css │ │ ├── 3066.dc07d1c6b25360d267dd.rtl.css │ │ ├── 3179.f9de135d1febd7be2652.js │ │ ├── 3291.99dfe1742621fe5892b1.js │ │ ├── 3502.c49903f7222870ff8aca.css │ │ ├── 3502.c49903f7222870ff8aca.rtl.css │ │ ├── 3610.609aa04cdd061440d0ef.css │ │ ├── 3610.609aa04cdd061440d0ef.rtl.css │ │ ├── 3717.cccda056797616f8ac78.css │ │ ├── 3717.cccda056797616f8ac78.rtl.css │ │ ├── 3842.6a8a7842ee841f6d2cff.css │ │ ├── 3842.6a8a7842ee841f6d2cff.rtl.css │ │ ├── 3889.a2646d6c3b33d166eee2.css │ │ ├── 3889.a2646d6c3b33d166eee2.rtl.css │ │ ├── 3980.f4c75de9958b6594bac6.css │ │ ├── 3980.f4c75de9958b6594bac6.rtl.css │ │ ├── 3986.7c74089dc005a87cd0fc.js │ │ ├── 4062.9229fac3ef3db26fd5bc.js │ │ ├── 4215.d24836a292b1969ab4bb.css │ │ ├── 4215.d24836a292b1969ab4bb.rtl.css │ │ ├── 4378.36f45309c7af8e3cbf38.js │ │ ├── 4387.04308bdc36942462914c.css │ │ ├── 4387.04308bdc36942462914c.rtl.css │ │ ├── 4403.fc4cac3ecee3925b9ec2.js │ │ ├── 4713.e40c2c44bf79ceb73d67.js │ │ ├── 4717.48fa365046162fcf8939.js │ │ ├── 4894.670543ec1a8c4786a3a0.css │ │ ├── 4894.670543ec1a8c4786a3a0.rtl.css │ │ ├── 4928.4a1b6faf9161be473ce9.css │ │ ├── 4928.4a1b6faf9161be473ce9.rtl.css │ │ ├── 4987.9eeb86c4d3cfacadc52c.css │ │ ├── 4987.9eeb86c4d3cfacadc52c.rtl.css │ │ ├── 5007.fba5211a5d34374a0759.js │ │ ├── 5050.9977fa324e6f16f06bc8.js │ │ ├── 5145.a2b224fd27ab2941c565.css │ │ ├── 5145.a2b224fd27ab2941c565.rtl.css │ │ ├── 5163.b9129281858e3f6afb05.css │ │ ├── 5163.b9129281858e3f6afb05.rtl.css │ │ ├── 5403.28a935ee45ece03c1da9.css │ │ ├── 5403.28a935ee45ece03c1da9.rtl.css │ │ ├── 5518.5ea25a84bbc49fe198ae.js │ │ ├── 5649.b60ed09c5ea8c55827d4.css │ │ ├── 5649.b60ed09c5ea8c55827d4.rtl.css │ │ ├── 5711.85a69ca8e546ea6966e9.js │ │ ├── 5766.becb57bd4a5725ec4dcd.js │ │ ├── 5866.c89b7fc29afe92efc1f3.css │ │ ├── 5866.c89b7fc29afe92efc1f3.rtl.css │ │ ├── 5899.49534f304fa5f1815584.js │ │ ├── 5901.2c4016712a46748b42bf.js │ │ ├── 5993.31e4b81e8ea99883150e.css │ │ ├── 5993.31e4b81e8ea99883150e.rtl.css │ │ ├── 6.362fa6a7ab1f3e3b06c4.css │ │ ├── 6.362fa6a7ab1f3e3b06c4.rtl.css │ │ ├── 6025.263b457b1a7f9ca139b2.css │ │ ├── 6025.263b457b1a7f9ca139b2.rtl.css │ │ ├── 6036.069ebb4bad0f5dd27147.css │ │ ├── 6036.069ebb4bad0f5dd27147.rtl.css │ │ ├── 6106.cf6f129517250c80b39f.css │ │ ├── 6106.cf6f129517250c80b39f.rtl.css │ │ ├── 6151.129f302a262c92b6bcf4.js │ │ ├── 6214.65b7dbf8be6cca5ac143.css │ │ ├── 6214.65b7dbf8be6cca5ac143.rtl.css │ │ ├── 6221.5c115302948a4482dfc1.css │ │ ├── 6221.5c115302948a4482dfc1.rtl.css │ │ ├── 6494.f36c8c07be959ab522bb.css │ │ ├── 6494.f36c8c07be959ab522bb.rtl.css │ │ ├── 6625.eb019e3a6facc625daff.css │ │ ├── 6625.eb019e3a6facc625daff.rtl.css │ │ ├── 6639.2c6ed608ae2da878c517.css │ │ ├── 6639.2c6ed608ae2da878c517.rtl.css │ │ ├── 6738.96acde45b9effe0973eb.css │ │ ├── 6738.96acde45b9effe0973eb.rtl.css │ │ ├── 6752.207eb3cc75b3ed2c6754.css │ │ ├── 6752.207eb3cc75b3ed2c6754.rtl.css │ │ ├── 6783.6a1bfc6cd105f6a266ca.css │ │ ├── 6783.6a1bfc6cd105f6a266ca.rtl.css │ │ ├── 6831.ac1745947bd2665f6c9a.css │ │ ├── 6831.ac1745947bd2665f6c9a.rtl.css │ │ ├── 6884.bb7d30a7bbbe5af36556.css │ │ ├── 6884.bb7d30a7bbbe5af36556.rtl.css │ │ ├── 6949.6b6148a8f15c8898c9e9.css │ │ ├── 6949.6b6148a8f15c8898c9e9.rtl.css │ │ ├── 6959.b688f948e1f896f359ed.css │ │ ├── 6959.b688f948e1f896f359ed.rtl.css │ │ ├── 7149.5233dd4b27b2f1bea43f.css │ │ ├── 7149.5233dd4b27b2f1bea43f.rtl.css │ │ ├── 7194.e04f69c8933166966874.css │ │ ├── 7194.e04f69c8933166966874.rtl.css │ │ ├── 7350.a9502dc8f01e37d9fa02.css │ │ ├── 7350.a9502dc8f01e37d9fa02.rtl.css │ │ ├── 7391.9c809fa91ed0c8f75bc0.css │ │ ├── 7391.9c809fa91ed0c8f75bc0.rtl.css │ │ ├── 7413.f830ad1ad6ee6f9b1cb3.css │ │ ├── 7413.f830ad1ad6ee6f9b1cb3.rtl.css │ │ ├── 7555.c7630ad44b7d7a2f8a0c.css │ │ ├── 7555.c7630ad44b7d7a2f8a0c.rtl.css │ │ ├── 7871.cb99fc4ec9bbe0895a26.css │ │ ├── 7871.cb99fc4ec9bbe0895a26.rtl.css │ │ ├── 8049.5e06299815b664b331e2.css │ │ ├── 8049.5e06299815b664b331e2.rtl.css │ │ ├── 8056.82b5717ea9f014c8ca2d.css │ │ ├── 8056.82b5717ea9f014c8ca2d.rtl.css │ │ ├── 8149.21f2b01074a4d082e268.css │ │ ├── 8149.21f2b01074a4d082e268.rtl.css │ │ ├── 8180.640f9faeb3f5f9fa190f.js │ │ ├── 84.d345a68da9c285edb24f.css │ │ ├── 84.d345a68da9c285edb24f.rtl.css │ │ ├── 855.eac699ce13c5f226e490.css │ │ ├── 855.eac699ce13c5f226e490.rtl.css │ │ ├── 8904.a302177fe7e3ccd50cb0.css │ │ ├── 8904.a302177fe7e3ccd50cb0.rtl.css │ │ ├── 898.3efb27a9750af83ed9c6.css │ │ ├── 898.3efb27a9750af83ed9c6.rtl.css │ │ ├── 9138.c6bf63d3695b7e98a4e1.css │ │ ├── 9138.c6bf63d3695b7e98a4e1.rtl.css │ │ ├── 9322.a314183cdcb21e48c994.css │ │ ├── 9322.a314183cdcb21e48c994.rtl.css │ │ ├── 9327.cb8f92015e0b667cbd6e.css │ │ ├── 9327.cb8f92015e0b667cbd6e.rtl.css │ │ ├── 962.e2eb6a85de39a3d76e5d.js │ │ ├── 9727.673d467ba91bf371fccd.js │ │ ├── 9789.cb5ad20bc727d3820b6c.css │ │ ├── 9789.cb5ad20bc727d3820b6c.rtl.css │ │ ├── 9842.dde7652ee3c148414acf.css │ │ ├── 9842.dde7652ee3c148414acf.rtl.css │ │ ├── 9916.d034c6ed4305c99b15ce.css │ │ ├── 9916.d034c6ed4305c99b15ce.rtl.css │ │ ├── EuclidCircular.be8f862db48c2976009f.woff2 │ │ ├── add-compare-dialog.8be3343b197a4d862dba.js │ │ ├── ar.137.72f123ce0fa2a1d14aff.js │ │ ├── ar.2014.75229e80e4f7b7217ef0.js │ │ ├── ar.2427.596db67d26c83197588d.js │ │ ├── ar.2684.25cb9ba0254ab5298f14.js │ │ ├── ar.435.ada80623f71848fbb57d.js │ │ ├── ar.5652.209eb64b624dfe3c853a.js │ │ ├── ar.6196.3e28185b53cd2346f10d.js │ │ ├── ar.7201.028a386569caa7df9e56.js │ │ ├── ar.77.a1830a06fe990f9f1170.js │ │ ├── ar.8235.e7a3cd51ccec31b781fa.js │ │ ├── ar.8884.515644758428ad7e8263.js │ │ ├── ca_ES.137.72f123ce0fa2a1d14aff.js │ │ ├── ca_ES.2014.75229e80e4f7b7217ef0.js │ │ ├── ca_ES.2427.596db67d26c83197588d.js │ │ ├── ca_ES.2684.25cb9ba0254ab5298f14.js │ │ ├── ca_ES.435.ada80623f71848fbb57d.js │ │ ├── ca_ES.5652.209eb64b624dfe3c853a.js │ │ ├── ca_ES.6196.3e28185b53cd2346f10d.js │ │ ├── ca_ES.7201.028a386569caa7df9e56.js │ │ ├── ca_ES.77.a1830a06fe990f9f1170.js │ │ ├── ca_ES.8235.e7a3cd51ccec31b781fa.js │ │ ├── ca_ES.8884.515644758428ad7e8263.js │ │ ├── change-interval-dialog.297f80c00bf8731bd9fb.js │ │ ├── chart-bottom-toolbar.744ccf6a4674f31cb2ea.js │ │ ├── chart-event-hint.b2c7a312767fa4f97aa5.js │ │ ├── chart-screenshot-hint.ebff97a1a4b1c5914bdd.js │ │ ├── chart-widget-gui.6a7c7ff3e283697270f6.js │ │ ├── compare-model.e202d1fb2f84f3659e36.js │ │ ├── context-menu-renderer.d6dfc888e4d8fe785fa7.js │ │ ├── cs.137.72f123ce0fa2a1d14aff.js │ │ ├── cs.2014.75229e80e4f7b7217ef0.js │ │ ├── cs.2427.596db67d26c83197588d.js │ │ ├── cs.2684.25cb9ba0254ab5298f14.js │ │ ├── cs.435.ada80623f71848fbb57d.js │ │ ├── cs.5652.209eb64b624dfe3c853a.js │ │ ├── cs.6196.3e28185b53cd2346f10d.js │ │ ├── cs.7201.028a386569caa7df9e56.js │ │ ├── cs.77.a1830a06fe990f9f1170.js │ │ ├── cs.8235.e7a3cd51ccec31b781fa.js │ │ ├── cs.8884.515644758428ad7e8263.js │ │ ├── currency-label-menu.7bec84c28750f9ad9211.js │ │ ├── custom-intervals-add-dialog.1d320236ba24da2e3a2f.js │ │ ├── de.137.72f123ce0fa2a1d14aff.js │ │ ├── de.2014.75229e80e4f7b7217ef0.js │ │ ├── de.2427.596db67d26c83197588d.js │ │ ├── de.2684.25cb9ba0254ab5298f14.js │ │ ├── de.435.ada80623f71848fbb57d.js │ │ ├── de.5652.209eb64b624dfe3c853a.js │ │ ├── de.6196.3e28185b53cd2346f10d.js │ │ ├── de.7201.028a386569caa7df9e56.js │ │ ├── de.77.a1830a06fe990f9f1170.js │ │ ├── de.8235.e7a3cd51ccec31b781fa.js │ │ ├── de.8884.515644758428ad7e8263.js │ │ ├── dot.3d617b6b01edba83a7f4.cur │ │ ├── drawing-toolbar.110884dcd2a2c71e1aba.js │ │ ├── el.137.72f123ce0fa2a1d14aff.js │ │ ├── el.2014.75229e80e4f7b7217ef0.js │ │ ├── el.2427.596db67d26c83197588d.js │ │ ├── el.2684.25cb9ba0254ab5298f14.js │ │ ├── el.435.ada80623f71848fbb57d.js │ │ ├── el.5652.209eb64b624dfe3c853a.js │ │ ├── el.6196.3e28185b53cd2346f10d.js │ │ ├── el.7201.028a386569caa7df9e56.js │ │ ├── el.77.a1830a06fe990f9f1170.js │ │ ├── el.8235.e7a3cd51ccec31b781fa.js │ │ ├── el.8884.515644758428ad7e8263.js │ │ ├── en.137.72f123ce0fa2a1d14aff.js │ │ ├── en.2014.75229e80e4f7b7217ef0.js │ │ ├── en.2427.596db67d26c83197588d.js │ │ ├── en.2684.25cb9ba0254ab5298f14.js │ │ ├── en.435.ada80623f71848fbb57d.js │ │ ├── en.5652.209eb64b624dfe3c853a.js │ │ ├── en.6196.3e28185b53cd2346f10d.js │ │ ├── en.7201.028a386569caa7df9e56.js │ │ ├── en.77.a1830a06fe990f9f1170.js │ │ ├── en.8235.e7a3cd51ccec31b781fa.js │ │ ├── en.8884.515644758428ad7e8263.js │ │ ├── eraser.c80610a04a92d2465b03.cur │ │ ├── es.137.72f123ce0fa2a1d14aff.js │ │ ├── es.2014.75229e80e4f7b7217ef0.js │ │ ├── es.2427.596db67d26c83197588d.js │ │ ├── es.2684.25cb9ba0254ab5298f14.js │ │ ├── es.435.ada80623f71848fbb57d.js │ │ ├── es.5652.209eb64b624dfe3c853a.js │ │ ├── es.6196.3e28185b53cd2346f10d.js │ │ ├── es.7201.028a386569caa7df9e56.js │ │ ├── es.77.a1830a06fe990f9f1170.js │ │ ├── es.8235.e7a3cd51ccec31b781fa.js │ │ ├── es.8884.515644758428ad7e8263.js │ │ ├── export-data.02a7668fbb079d66566d.js │ │ ├── fa.137.72f123ce0fa2a1d14aff.js │ │ ├── fa.2014.75229e80e4f7b7217ef0.js │ │ ├── fa.2427.596db67d26c83197588d.js │ │ ├── fa.2684.25cb9ba0254ab5298f14.js │ │ ├── fa.435.ada80623f71848fbb57d.js │ │ ├── fa.5652.209eb64b624dfe3c853a.js │ │ ├── fa.6196.3e28185b53cd2346f10d.js │ │ ├── fa.7201.028a386569caa7df9e56.js │ │ ├── fa.77.a1830a06fe990f9f1170.js │ │ ├── fa.8235.e7a3cd51ccec31b781fa.js │ │ ├── fa.8884.515644758428ad7e8263.js │ │ ├── favorite-drawings-api.685c412f518848b85b89.js │ │ ├── floating-toolbars.7e994754e6bfb1b219c3.js │ │ ├── fr.137.72f123ce0fa2a1d14aff.js │ │ ├── fr.2014.75229e80e4f7b7217ef0.js │ │ ├── fr.2427.596db67d26c83197588d.js │ │ ├── fr.2684.25cb9ba0254ab5298f14.js │ │ ├── fr.435.ada80623f71848fbb57d.js │ │ ├── fr.5652.209eb64b624dfe3c853a.js │ │ ├── fr.6196.3e28185b53cd2346f10d.js │ │ ├── fr.7201.028a386569caa7df9e56.js │ │ ├── fr.77.a1830a06fe990f9f1170.js │ │ ├── fr.8235.e7a3cd51ccec31b781fa.js │ │ ├── fr.8884.515644758428ad7e8263.js │ │ ├── full-tooltips-popup.bb8a6fb1afc2d9b39e17.js │ │ ├── general-chart-properties-dialog.82cac28ab24654c72a42.js │ │ ├── general-property-page.f8236e112fb77c9f7f75.js │ │ ├── get-error-card.6635b794027eb9971ec9.js │ │ ├── go-to-date-dialog-impl.4aa6daee1b7dcb2f2f62.js │ │ ├── hammerjs.6e30e0c48af40bf2f6c0.js │ │ ├── he_IL.137.72f123ce0fa2a1d14aff.js │ │ ├── he_IL.2014.75229e80e4f7b7217ef0.js │ │ ├── he_IL.2427.596db67d26c83197588d.js │ │ ├── he_IL.2684.25cb9ba0254ab5298f14.js │ │ ├── he_IL.435.ada80623f71848fbb57d.js │ │ ├── he_IL.5652.209eb64b624dfe3c853a.js │ │ ├── he_IL.6196.3e28185b53cd2346f10d.js │ │ ├── he_IL.7201.028a386569caa7df9e56.js │ │ ├── he_IL.77.a1830a06fe990f9f1170.js │ │ ├── he_IL.8235.e7a3cd51ccec31b781fa.js │ │ ├── he_IL.8884.515644758428ad7e8263.js │ │ ├── header-toolbar.d2fc9d0c0651e40374fb.js │ │ ├── hu_HU.137.72f123ce0fa2a1d14aff.js │ │ ├── hu_HU.2014.75229e80e4f7b7217ef0.js │ │ ├── hu_HU.2427.596db67d26c83197588d.js │ │ ├── hu_HU.2684.25cb9ba0254ab5298f14.js │ │ ├── hu_HU.435.ada80623f71848fbb57d.js │ │ ├── hu_HU.5652.209eb64b624dfe3c853a.js │ │ ├── hu_HU.6196.3e28185b53cd2346f10d.js │ │ ├── hu_HU.7201.028a386569caa7df9e56.js │ │ ├── hu_HU.77.a1830a06fe990f9f1170.js │ │ ├── hu_HU.8235.e7a3cd51ccec31b781fa.js │ │ ├── hu_HU.8884.515644758428ad7e8263.js │ │ ├── icons.4d39018d0766cf7006bc.png │ │ ├── id_ID.137.72f123ce0fa2a1d14aff.js │ │ ├── id_ID.2014.75229e80e4f7b7217ef0.js │ │ ├── id_ID.2427.596db67d26c83197588d.js │ │ ├── id_ID.2684.25cb9ba0254ab5298f14.js │ │ ├── id_ID.435.ada80623f71848fbb57d.js │ │ ├── id_ID.5652.209eb64b624dfe3c853a.js │ │ ├── id_ID.6196.3e28185b53cd2346f10d.js │ │ ├── id_ID.7201.028a386569caa7df9e56.js │ │ ├── id_ID.77.a1830a06fe990f9f1170.js │ │ ├── id_ID.8235.e7a3cd51ccec31b781fa.js │ │ ├── id_ID.8884.515644758428ad7e8263.js │ │ ├── it.137.72f123ce0fa2a1d14aff.js │ │ ├── it.2014.75229e80e4f7b7217ef0.js │ │ ├── it.2427.596db67d26c83197588d.js │ │ ├── it.2684.25cb9ba0254ab5298f14.js │ │ ├── it.435.ada80623f71848fbb57d.js │ │ ├── it.5652.209eb64b624dfe3c853a.js │ │ ├── it.6196.3e28185b53cd2346f10d.js │ │ ├── it.7201.028a386569caa7df9e56.js │ │ ├── it.77.a1830a06fe990f9f1170.js │ │ ├── it.8235.e7a3cd51ccec31b781fa.js │ │ ├── it.8884.515644758428ad7e8263.js │ │ ├── ja.137.72f123ce0fa2a1d14aff.js │ │ ├── ja.2014.75229e80e4f7b7217ef0.js │ │ ├── ja.2427.596db67d26c83197588d.js │ │ ├── ja.2684.25cb9ba0254ab5298f14.js │ │ ├── ja.435.ada80623f71848fbb57d.js │ │ ├── ja.5652.209eb64b624dfe3c853a.js │ │ ├── ja.6196.3e28185b53cd2346f10d.js │ │ ├── ja.7201.028a386569caa7df9e56.js │ │ ├── ja.77.a1830a06fe990f9f1170.js │ │ ├── ja.8235.e7a3cd51ccec31b781fa.js │ │ ├── ja.8884.515644758428ad7e8263.js │ │ ├── ko.137.72f123ce0fa2a1d14aff.js │ │ ├── ko.2014.75229e80e4f7b7217ef0.js │ │ ├── ko.2427.596db67d26c83197588d.js │ │ ├── ko.2684.25cb9ba0254ab5298f14.js │ │ ├── ko.435.ada80623f71848fbb57d.js │ │ ├── ko.5652.209eb64b624dfe3c853a.js │ │ ├── ko.6196.3e28185b53cd2346f10d.js │ │ ├── ko.7201.028a386569caa7df9e56.js │ │ ├── ko.77.a1830a06fe990f9f1170.js │ │ ├── ko.8235.e7a3cd51ccec31b781fa.js │ │ ├── ko.8884.515644758428ad7e8263.js │ │ ├── large-slider-handle.18e9ee5923db4eac2c43.svg │ │ ├── library.6297b1e4665eaf652aeb.js │ │ ├── line-tools-icons.d3d6f7f9f2b35209ccf1.js │ │ ├── linewidth-slider.8e3d0520d28ce8259ccf.png │ │ ├── load-chart-dialog.2bc8d3998e1a2392ad03.js │ │ ├── lollipop-tooltip-renderer.cbacd2a74fa2249c23ad.js │ │ ├── lt-icons-atlas.aceb77470f3039ad2f63.js │ │ ├── lt-pane-views.fe06b5162a88616539a9.js │ │ ├── lt-property-pages-with-definitions.48f0faa92ffe2f42ec0e.js │ │ ├── lt-stickers-atlas.52ad6e6d7d7b134ab0ba.js │ │ ├── manage-drawings-dialog.3f5b604134bebba28c6c.js │ │ ├── ms_MY.137.72f123ce0fa2a1d14aff.js │ │ ├── ms_MY.2014.75229e80e4f7b7217ef0.js │ │ ├── ms_MY.2427.596db67d26c83197588d.js │ │ ├── ms_MY.2684.25cb9ba0254ab5298f14.js │ │ ├── ms_MY.435.ada80623f71848fbb57d.js │ │ ├── ms_MY.5652.209eb64b624dfe3c853a.js │ │ ├── ms_MY.6196.3e28185b53cd2346f10d.js │ │ ├── ms_MY.7201.028a386569caa7df9e56.js │ │ ├── ms_MY.77.a1830a06fe990f9f1170.js │ │ ├── ms_MY.8235.e7a3cd51ccec31b781fa.js │ │ ├── ms_MY.8884.515644758428ad7e8263.js │ │ ├── new-confirm-inputs-dialog.700f756efb60fe024812.js │ │ ├── new-edit-object-dialog.895005521f9296440679.js │ │ ├── nl_NL.137.72f123ce0fa2a1d14aff.js │ │ ├── nl_NL.2014.75229e80e4f7b7217ef0.js │ │ ├── nl_NL.2427.596db67d26c83197588d.js │ │ ├── nl_NL.2684.25cb9ba0254ab5298f14.js │ │ ├── nl_NL.435.ada80623f71848fbb57d.js │ │ ├── nl_NL.5652.209eb64b624dfe3c853a.js │ │ ├── nl_NL.6196.3e28185b53cd2346f10d.js │ │ ├── nl_NL.7201.028a386569caa7df9e56.js │ │ ├── nl_NL.77.a1830a06fe990f9f1170.js │ │ ├── nl_NL.8235.e7a3cd51ccec31b781fa.js │ │ ├── nl_NL.8884.515644758428ad7e8263.js │ │ ├── object-tree-dialog.4ff568f64fed9df9f328.js │ │ ├── opacity-pattern.4d8fbb552dde3db26f4a.svg │ │ ├── opacity-slider.4f3ca6b00b45fd71da5f.png │ │ ├── pl.137.72f123ce0fa2a1d14aff.js │ │ ├── pl.2014.75229e80e4f7b7217ef0.js │ │ ├── pl.2427.596db67d26c83197588d.js │ │ ├── pl.2684.25cb9ba0254ab5298f14.js │ │ ├── pl.435.ada80623f71848fbb57d.js │ │ ├── pl.5652.209eb64b624dfe3c853a.js │ │ ├── pl.6196.3e28185b53cd2346f10d.js │ │ ├── pl.7201.028a386569caa7df9e56.js │ │ ├── pl.77.a1830a06fe990f9f1170.js │ │ ├── pl.8235.e7a3cd51ccec31b781fa.js │ │ ├── pl.8884.515644758428ad7e8263.js │ │ ├── prediction-clock-white.c4675d37769f1df4c9ec.png │ │ ├── prediction-failure-white.a838a6689f951970e715.png │ │ ├── prediction-success-white.2fb9966b4c0f3529a2ea.png │ │ ├── pt.137.72f123ce0fa2a1d14aff.js │ │ ├── pt.2014.75229e80e4f7b7217ef0.js │ │ ├── pt.2427.596db67d26c83197588d.js │ │ ├── pt.2684.25cb9ba0254ab5298f14.js │ │ ├── pt.435.ada80623f71848fbb57d.js │ │ ├── pt.5652.209eb64b624dfe3c853a.js │ │ ├── pt.6196.3e28185b53cd2346f10d.js │ │ ├── pt.7201.028a386569caa7df9e56.js │ │ ├── pt.77.a1830a06fe990f9f1170.js │ │ ├── pt.8235.e7a3cd51ccec31b781fa.js │ │ ├── pt.8884.515644758428ad7e8263.js │ │ ├── restricted-toolset.859b53a884449a8a0f9a.js │ │ ├── ro.137.72f123ce0fa2a1d14aff.js │ │ ├── ro.2014.75229e80e4f7b7217ef0.js │ │ ├── ro.2427.596db67d26c83197588d.js │ │ ├── ro.2684.25cb9ba0254ab5298f14.js │ │ ├── ro.435.ada80623f71848fbb57d.js │ │ ├── ro.5652.209eb64b624dfe3c853a.js │ │ ├── ro.6196.3e28185b53cd2346f10d.js │ │ ├── ro.7201.028a386569caa7df9e56.js │ │ ├── ro.77.a1830a06fe990f9f1170.js │ │ ├── ro.8235.e7a3cd51ccec31b781fa.js │ │ ├── ro.8884.515644758428ad7e8263.js │ │ ├── ru.137.72f123ce0fa2a1d14aff.js │ │ ├── ru.2014.75229e80e4f7b7217ef0.js │ │ ├── ru.2427.596db67d26c83197588d.js │ │ ├── ru.2684.25cb9ba0254ab5298f14.js │ │ ├── ru.435.ada80623f71848fbb57d.js │ │ ├── ru.5652.209eb64b624dfe3c853a.js │ │ ├── ru.6196.3e28185b53cd2346f10d.js │ │ ├── ru.7201.028a386569caa7df9e56.js │ │ ├── ru.77.a1830a06fe990f9f1170.js │ │ ├── ru.8235.e7a3cd51ccec31b781fa.js │ │ ├── ru.8884.515644758428ad7e8263.js │ │ ├── runtime.04214899cac17f000613.js │ │ ├── series-icons-map.6b7b2f52a18274053c99.js │ │ ├── series-pane-views.97a8e6dbe1a94532eb49.js │ │ ├── share-chart-to-social-utils.d7331dbca4a2aa0909e7.js │ │ ├── show-theme-save-dialog.d599965fb89ec8e183eb.js │ │ ├── simple-dialog.2bb0f228f3ba2ab7961a.js │ │ ├── source-properties-editor.3c1d96776af15c5b5a1d.js │ │ ├── study-inputs-pane-views.a80a3e282aa441e156d1.js │ │ ├── study-market.78a4d2ffdb738c30bc84.js │ │ ├── study-pane-views.cc5bd003161b0ea73f75.js │ │ ├── study-property-pages-with-definitions.9394d81cc8dbb2962879.js │ │ ├── study-template-dialog.faf557ce6d32f93e5a9a.js │ │ ├── sv.137.72f123ce0fa2a1d14aff.js │ │ ├── sv.2014.75229e80e4f7b7217ef0.js │ │ ├── sv.2427.596db67d26c83197588d.js │ │ ├── sv.2684.25cb9ba0254ab5298f14.js │ │ ├── sv.435.ada80623f71848fbb57d.js │ │ ├── sv.5652.209eb64b624dfe3c853a.js │ │ ├── sv.6196.3e28185b53cd2346f10d.js │ │ ├── sv.7201.028a386569caa7df9e56.js │ │ ├── sv.77.a1830a06fe990f9f1170.js │ │ ├── sv.8235.e7a3cd51ccec31b781fa.js │ │ ├── sv.8884.515644758428ad7e8263.js │ │ ├── svg-renderer.f065beaf6b5b37da27d9.js │ │ ├── symbol-info-dialog-impl.391e1e1a29220b089537.js │ │ ├── symbol-search-dialog.b049a36e03e38984a69c.js │ │ ├── take-chart-image-impl.c0ec40f417c36a1c6179.js │ │ ├── th.137.72f123ce0fa2a1d14aff.js │ │ ├── th.2014.75229e80e4f7b7217ef0.js │ │ ├── th.2427.596db67d26c83197588d.js │ │ ├── th.2684.25cb9ba0254ab5298f14.js │ │ ├── th.435.ada80623f71848fbb57d.js │ │ ├── th.5652.209eb64b624dfe3c853a.js │ │ ├── th.6196.3e28185b53cd2346f10d.js │ │ ├── th.7201.028a386569caa7df9e56.js │ │ ├── th.77.a1830a06fe990f9f1170.js │ │ ├── th.8235.e7a3cd51ccec31b781fa.js │ │ ├── th.8884.515644758428ad7e8263.js │ │ ├── tr.137.72f123ce0fa2a1d14aff.js │ │ ├── tr.2014.75229e80e4f7b7217ef0.js │ │ ├── tr.2427.596db67d26c83197588d.js │ │ ├── tr.2684.25cb9ba0254ab5298f14.js │ │ ├── tr.435.ada80623f71848fbb57d.js │ │ ├── tr.5652.209eb64b624dfe3c853a.js │ │ ├── tr.6196.3e28185b53cd2346f10d.js │ │ ├── tr.7201.028a386569caa7df9e56.js │ │ ├── tr.77.a1830a06fe990f9f1170.js │ │ ├── tr.8235.e7a3cd51ccec31b781fa.js │ │ ├── tr.8884.515644758428ad7e8263.js │ │ ├── user-defined-bars-marks-tooltip.520f315000510aab3003.js │ │ ├── vi.137.72f123ce0fa2a1d14aff.js │ │ ├── vi.2014.75229e80e4f7b7217ef0.js │ │ ├── vi.2427.596db67d26c83197588d.js │ │ ├── vi.2684.25cb9ba0254ab5298f14.js │ │ ├── vi.435.ada80623f71848fbb57d.js │ │ ├── vi.5652.209eb64b624dfe3c853a.js │ │ ├── vi.6196.3e28185b53cd2346f10d.js │ │ ├── vi.7201.028a386569caa7df9e56.js │ │ ├── vi.77.a1830a06fe990f9f1170.js │ │ ├── vi.8235.e7a3cd51ccec31b781fa.js │ │ ├── vi.8884.515644758428ad7e8263.js │ │ ├── zh.137.72f123ce0fa2a1d14aff.js │ │ ├── zh.2014.75229e80e4f7b7217ef0.js │ │ ├── zh.2427.596db67d26c83197588d.js │ │ ├── zh.2684.25cb9ba0254ab5298f14.js │ │ ├── zh.435.ada80623f71848fbb57d.js │ │ ├── zh.5652.209eb64b624dfe3c853a.js │ │ ├── zh.6196.3e28185b53cd2346f10d.js │ │ ├── zh.7201.028a386569caa7df9e56.js │ │ ├── zh.77.a1830a06fe990f9f1170.js │ │ ├── zh.8235.e7a3cd51ccec31b781fa.js │ │ ├── zh.8884.515644758428ad7e8263.js │ │ ├── zh_TW.137.72f123ce0fa2a1d14aff.js │ │ ├── zh_TW.2014.75229e80e4f7b7217ef0.js │ │ ├── zh_TW.2427.596db67d26c83197588d.js │ │ ├── zh_TW.2684.25cb9ba0254ab5298f14.js │ │ ├── zh_TW.435.ada80623f71848fbb57d.js │ │ ├── zh_TW.5652.209eb64b624dfe3c853a.js │ │ ├── zh_TW.6196.3e28185b53cd2346f10d.js │ │ ├── zh_TW.7201.028a386569caa7df9e56.js │ │ ├── zh_TW.77.a1830a06fe990f9f1170.js │ │ ├── zh_TW.8235.e7a3cd51ccec31b781fa.js │ │ └── zh_TW.8884.515644758428ad7e8263.js │ ├── charting_library.cjs.js │ ├── charting_library.d.ts │ ├── charting_library.esm.js │ ├── charting_library.js │ ├── charting_library.standalone.js │ ├── datafeed-api.d.ts │ └── package.json ├── datafeeds │ ├── README.md │ └── udf │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── README.md │ │ ├── lib │ │ ├── data-pulse-provider.js │ │ ├── helpers.js │ │ ├── history-provider.js │ │ ├── iquotes-provider.js │ │ ├── quotes-provider.js │ │ ├── quotes-pulse-provider.js │ │ ├── requester.js │ │ ├── symbols-storage.js │ │ ├── udf-compatible-datafeed-base.js │ │ └── udf-compatible-datafeed.js │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src │ │ ├── data-pulse-provider.ts │ │ ├── helpers.ts │ │ ├── history-provider.ts │ │ ├── iquotes-provider.ts │ │ ├── quotes-provider.ts │ │ ├── quotes-pulse-provider.ts │ │ ├── requester.ts │ │ ├── symbols-storage.ts │ │ ├── udf-compatible-datafeed-base.ts │ │ └── udf-compatible-datafeed.ts │ │ ├── tsconfig.json │ │ └── types.d.ts ├── dexRabbitLogo.png ├── favicon.png ├── favicon_new.png ├── index.html ├── manifest.json ├── robotoMono.ttf └── robots.txt ├── roboto.ttf └── src ├── App.js ├── App.scss ├── App.test.js ├── api └── api.js ├── assets ├── fonts │ ├── Nunito-Bold.ttf │ ├── Nunito-Regular.ttf │ └── Roboto-Regular.ttf └── images │ ├── bitquery_logo.png │ ├── bitquery_logo.svg │ ├── bitquery_logo_w.png │ ├── edit.svg │ ├── error.svg │ ├── graphql-icon.svg │ ├── json.svg │ ├── left-arrow.svg │ ├── letter-x.svg │ ├── link.svg │ ├── pencil-alt-solid.svg │ ├── play.svg │ ├── plus.svg │ ├── search_ico.svg │ └── user.svg ├── charting_library ├── bundles │ ├── 1013.8bf558e5776449ee9b26.css │ ├── 1013.8bf558e5776449ee9b26.rtl.css │ ├── 1033.5197f9f8b8500206d06c.css │ ├── 1033.5197f9f8b8500206d06c.rtl.css │ ├── 1054.53487a2be7f0ef3c0ac6.css │ ├── 1054.53487a2be7f0ef3c0ac6.rtl.css │ ├── 1109.ec16a629917db2baf412.css │ ├── 1109.ec16a629917db2baf412.rtl.css │ ├── 1365.0116666d16b5bc64c47a.css │ ├── 1365.0116666d16b5bc64c47a.rtl.css │ ├── 1553.c076714f5e24887f0b94.js │ ├── 1762.7ff6b353c441db2276da.css │ ├── 1762.7ff6b353c441db2276da.rtl.css │ ├── 1849.aa435f081ad57a6d0121.css │ ├── 1849.aa435f081ad57a6d0121.rtl.css │ ├── 1958.c039f5e1f22405ba79e1.js │ ├── 2109.39627406fe95483ff7db.css │ ├── 2109.39627406fe95483ff7db.rtl.css │ ├── 2158.4b603780e909661194b1.js │ ├── 2191.4be2f56dab5aeadfe0eb.css │ ├── 2191.4be2f56dab5aeadfe0eb.rtl.css │ ├── 2215.e87235d359e4c375c7b9.js │ ├── 2260.b98824e4829a1aa9b444.css │ ├── 2260.b98824e4829a1aa9b444.rtl.css │ ├── 2587.1403c0d79d2217a73053.css │ ├── 2587.1403c0d79d2217a73053.rtl.css │ ├── 2639.86605a3197db99aca0f7.css │ ├── 2639.86605a3197db99aca0f7.rtl.css │ ├── 2666.fbb750fd312778403036.css │ ├── 2666.fbb750fd312778403036.rtl.css │ ├── 2676.2d3cabbd39a3b0d6e9ea.css │ ├── 2676.2d3cabbd39a3b0d6e9ea.rtl.css │ ├── 2698.808054d9f713fc1919d7.css │ ├── 2698.808054d9f713fc1919d7.rtl.css │ ├── 2731.e35a685bdfdffcff2797.css │ ├── 2731.e35a685bdfdffcff2797.rtl.css │ ├── 2842.61ec1448858319f48d5a.js │ ├── 2984.4082296827cdc2ce3974.css │ ├── 2984.4082296827cdc2ce3974.rtl.css │ ├── 3016.1dc744fe35e3e3b00f00.js │ ├── 3066.dc07d1c6b25360d267dd.css │ ├── 3066.dc07d1c6b25360d267dd.rtl.css │ ├── 3179.f9de135d1febd7be2652.js │ ├── 3291.99dfe1742621fe5892b1.js │ ├── 3502.c49903f7222870ff8aca.css │ ├── 3502.c49903f7222870ff8aca.rtl.css │ ├── 3610.609aa04cdd061440d0ef.css │ ├── 3610.609aa04cdd061440d0ef.rtl.css │ ├── 3717.cccda056797616f8ac78.css │ ├── 3717.cccda056797616f8ac78.rtl.css │ ├── 3842.6a8a7842ee841f6d2cff.css │ ├── 3842.6a8a7842ee841f6d2cff.rtl.css │ ├── 3889.a2646d6c3b33d166eee2.css │ ├── 3889.a2646d6c3b33d166eee2.rtl.css │ ├── 3980.f4c75de9958b6594bac6.css │ ├── 3980.f4c75de9958b6594bac6.rtl.css │ ├── 3986.7c74089dc005a87cd0fc.js │ ├── 4062.9229fac3ef3db26fd5bc.js │ ├── 4215.d24836a292b1969ab4bb.css │ ├── 4215.d24836a292b1969ab4bb.rtl.css │ ├── 4378.36f45309c7af8e3cbf38.js │ ├── 4387.04308bdc36942462914c.css │ ├── 4387.04308bdc36942462914c.rtl.css │ ├── 4403.fc4cac3ecee3925b9ec2.js │ ├── 4713.e40c2c44bf79ceb73d67.js │ ├── 4717.48fa365046162fcf8939.js │ ├── 4894.670543ec1a8c4786a3a0.css │ ├── 4894.670543ec1a8c4786a3a0.rtl.css │ ├── 4928.4a1b6faf9161be473ce9.css │ ├── 4928.4a1b6faf9161be473ce9.rtl.css │ ├── 4987.9eeb86c4d3cfacadc52c.css │ ├── 4987.9eeb86c4d3cfacadc52c.rtl.css │ ├── 5007.fba5211a5d34374a0759.js │ ├── 5050.9977fa324e6f16f06bc8.js │ ├── 5145.a2b224fd27ab2941c565.css │ ├── 5145.a2b224fd27ab2941c565.rtl.css │ ├── 5163.b9129281858e3f6afb05.css │ ├── 5163.b9129281858e3f6afb05.rtl.css │ ├── 5403.28a935ee45ece03c1da9.css │ ├── 5403.28a935ee45ece03c1da9.rtl.css │ ├── 5518.5ea25a84bbc49fe198ae.js │ ├── 5649.b60ed09c5ea8c55827d4.css │ ├── 5649.b60ed09c5ea8c55827d4.rtl.css │ ├── 5711.85a69ca8e546ea6966e9.js │ ├── 5766.becb57bd4a5725ec4dcd.js │ ├── 5866.c89b7fc29afe92efc1f3.css │ ├── 5866.c89b7fc29afe92efc1f3.rtl.css │ ├── 5899.49534f304fa5f1815584.js │ ├── 5901.2c4016712a46748b42bf.js │ ├── 5993.31e4b81e8ea99883150e.css │ ├── 5993.31e4b81e8ea99883150e.rtl.css │ ├── 6.362fa6a7ab1f3e3b06c4.css │ ├── 6.362fa6a7ab1f3e3b06c4.rtl.css │ ├── 6025.263b457b1a7f9ca139b2.css │ ├── 6025.263b457b1a7f9ca139b2.rtl.css │ ├── 6036.069ebb4bad0f5dd27147.css │ ├── 6036.069ebb4bad0f5dd27147.rtl.css │ ├── 6106.cf6f129517250c80b39f.css │ ├── 6106.cf6f129517250c80b39f.rtl.css │ ├── 6151.129f302a262c92b6bcf4.js │ ├── 6214.65b7dbf8be6cca5ac143.css │ ├── 6214.65b7dbf8be6cca5ac143.rtl.css │ ├── 6221.5c115302948a4482dfc1.css │ ├── 6221.5c115302948a4482dfc1.rtl.css │ ├── 6494.f36c8c07be959ab522bb.css │ ├── 6494.f36c8c07be959ab522bb.rtl.css │ ├── 6625.eb019e3a6facc625daff.css │ ├── 6625.eb019e3a6facc625daff.rtl.css │ ├── 6639.2c6ed608ae2da878c517.css │ ├── 6639.2c6ed608ae2da878c517.rtl.css │ ├── 6738.96acde45b9effe0973eb.css │ ├── 6738.96acde45b9effe0973eb.rtl.css │ ├── 6752.207eb3cc75b3ed2c6754.css │ ├── 6752.207eb3cc75b3ed2c6754.rtl.css │ ├── 6783.6a1bfc6cd105f6a266ca.css │ ├── 6783.6a1bfc6cd105f6a266ca.rtl.css │ ├── 6831.ac1745947bd2665f6c9a.css │ ├── 6831.ac1745947bd2665f6c9a.rtl.css │ ├── 6884.bb7d30a7bbbe5af36556.css │ ├── 6884.bb7d30a7bbbe5af36556.rtl.css │ ├── 6949.6b6148a8f15c8898c9e9.css │ ├── 6949.6b6148a8f15c8898c9e9.rtl.css │ ├── 6959.b688f948e1f896f359ed.css │ ├── 6959.b688f948e1f896f359ed.rtl.css │ ├── 7149.5233dd4b27b2f1bea43f.css │ ├── 7149.5233dd4b27b2f1bea43f.rtl.css │ ├── 7194.e04f69c8933166966874.css │ ├── 7194.e04f69c8933166966874.rtl.css │ ├── 7350.a9502dc8f01e37d9fa02.css │ ├── 7350.a9502dc8f01e37d9fa02.rtl.css │ ├── 7391.9c809fa91ed0c8f75bc0.css │ ├── 7391.9c809fa91ed0c8f75bc0.rtl.css │ ├── 7413.f830ad1ad6ee6f9b1cb3.css │ ├── 7413.f830ad1ad6ee6f9b1cb3.rtl.css │ ├── 7555.c7630ad44b7d7a2f8a0c.css │ ├── 7555.c7630ad44b7d7a2f8a0c.rtl.css │ ├── 7871.cb99fc4ec9bbe0895a26.css │ ├── 7871.cb99fc4ec9bbe0895a26.rtl.css │ ├── 8049.5e06299815b664b331e2.css │ ├── 8049.5e06299815b664b331e2.rtl.css │ ├── 8056.82b5717ea9f014c8ca2d.css │ ├── 8056.82b5717ea9f014c8ca2d.rtl.css │ ├── 8149.21f2b01074a4d082e268.css │ ├── 8149.21f2b01074a4d082e268.rtl.css │ ├── 8180.640f9faeb3f5f9fa190f.js │ ├── 84.d345a68da9c285edb24f.css │ ├── 84.d345a68da9c285edb24f.rtl.css │ ├── 855.eac699ce13c5f226e490.css │ ├── 855.eac699ce13c5f226e490.rtl.css │ ├── 8904.a302177fe7e3ccd50cb0.css │ ├── 8904.a302177fe7e3ccd50cb0.rtl.css │ ├── 898.3efb27a9750af83ed9c6.css │ ├── 898.3efb27a9750af83ed9c6.rtl.css │ ├── 9138.c6bf63d3695b7e98a4e1.css │ ├── 9138.c6bf63d3695b7e98a4e1.rtl.css │ ├── 9322.a314183cdcb21e48c994.css │ ├── 9322.a314183cdcb21e48c994.rtl.css │ ├── 9327.cb8f92015e0b667cbd6e.css │ ├── 9327.cb8f92015e0b667cbd6e.rtl.css │ ├── 962.e2eb6a85de39a3d76e5d.js │ ├── 9727.673d467ba91bf371fccd.js │ ├── 9789.cb5ad20bc727d3820b6c.css │ ├── 9789.cb5ad20bc727d3820b6c.rtl.css │ ├── 9842.dde7652ee3c148414acf.css │ ├── 9842.dde7652ee3c148414acf.rtl.css │ ├── 9916.d034c6ed4305c99b15ce.css │ ├── 9916.d034c6ed4305c99b15ce.rtl.css │ ├── EuclidCircular.be8f862db48c2976009f.woff2 │ ├── add-compare-dialog.8be3343b197a4d862dba.js │ ├── ar.137.72f123ce0fa2a1d14aff.js │ ├── ar.2014.75229e80e4f7b7217ef0.js │ ├── ar.2427.596db67d26c83197588d.js │ ├── ar.2684.25cb9ba0254ab5298f14.js │ ├── ar.435.ada80623f71848fbb57d.js │ ├── ar.5652.209eb64b624dfe3c853a.js │ ├── ar.6196.3e28185b53cd2346f10d.js │ ├── ar.7201.028a386569caa7df9e56.js │ ├── ar.77.a1830a06fe990f9f1170.js │ ├── ar.8235.e7a3cd51ccec31b781fa.js │ ├── ar.8884.515644758428ad7e8263.js │ ├── ca_ES.137.72f123ce0fa2a1d14aff.js │ ├── ca_ES.2014.75229e80e4f7b7217ef0.js │ ├── ca_ES.2427.596db67d26c83197588d.js │ ├── ca_ES.2684.25cb9ba0254ab5298f14.js │ ├── ca_ES.435.ada80623f71848fbb57d.js │ ├── ca_ES.5652.209eb64b624dfe3c853a.js │ ├── ca_ES.6196.3e28185b53cd2346f10d.js │ ├── ca_ES.7201.028a386569caa7df9e56.js │ ├── ca_ES.77.a1830a06fe990f9f1170.js │ ├── ca_ES.8235.e7a3cd51ccec31b781fa.js │ ├── ca_ES.8884.515644758428ad7e8263.js │ ├── change-interval-dialog.297f80c00bf8731bd9fb.js │ ├── chart-bottom-toolbar.744ccf6a4674f31cb2ea.js │ ├── chart-event-hint.b2c7a312767fa4f97aa5.js │ ├── chart-screenshot-hint.ebff97a1a4b1c5914bdd.js │ ├── chart-widget-gui.6a7c7ff3e283697270f6.js │ ├── compare-model.e202d1fb2f84f3659e36.js │ ├── context-menu-renderer.d6dfc888e4d8fe785fa7.js │ ├── cs.137.72f123ce0fa2a1d14aff.js │ ├── cs.2014.75229e80e4f7b7217ef0.js │ ├── cs.2427.596db67d26c83197588d.js │ ├── cs.2684.25cb9ba0254ab5298f14.js │ ├── cs.435.ada80623f71848fbb57d.js │ ├── cs.5652.209eb64b624dfe3c853a.js │ ├── cs.6196.3e28185b53cd2346f10d.js │ ├── cs.7201.028a386569caa7df9e56.js │ ├── cs.77.a1830a06fe990f9f1170.js │ ├── cs.8235.e7a3cd51ccec31b781fa.js │ ├── cs.8884.515644758428ad7e8263.js │ ├── currency-label-menu.7bec84c28750f9ad9211.js │ ├── custom-intervals-add-dialog.1d320236ba24da2e3a2f.js │ ├── de.137.72f123ce0fa2a1d14aff.js │ ├── de.2014.75229e80e4f7b7217ef0.js │ ├── de.2427.596db67d26c83197588d.js │ ├── de.2684.25cb9ba0254ab5298f14.js │ ├── de.435.ada80623f71848fbb57d.js │ ├── de.5652.209eb64b624dfe3c853a.js │ ├── de.6196.3e28185b53cd2346f10d.js │ ├── de.7201.028a386569caa7df9e56.js │ ├── de.77.a1830a06fe990f9f1170.js │ ├── de.8235.e7a3cd51ccec31b781fa.js │ ├── de.8884.515644758428ad7e8263.js │ ├── dot.3d617b6b01edba83a7f4.cur │ ├── drawing-toolbar.110884dcd2a2c71e1aba.js │ ├── el.137.72f123ce0fa2a1d14aff.js │ ├── el.2014.75229e80e4f7b7217ef0.js │ ├── el.2427.596db67d26c83197588d.js │ ├── el.2684.25cb9ba0254ab5298f14.js │ ├── el.435.ada80623f71848fbb57d.js │ ├── el.5652.209eb64b624dfe3c853a.js │ ├── el.6196.3e28185b53cd2346f10d.js │ ├── el.7201.028a386569caa7df9e56.js │ ├── el.77.a1830a06fe990f9f1170.js │ ├── el.8235.e7a3cd51ccec31b781fa.js │ ├── el.8884.515644758428ad7e8263.js │ ├── en.137.72f123ce0fa2a1d14aff.js │ ├── en.2014.75229e80e4f7b7217ef0.js │ ├── en.2427.596db67d26c83197588d.js │ ├── en.2684.25cb9ba0254ab5298f14.js │ ├── en.435.ada80623f71848fbb57d.js │ ├── en.5652.209eb64b624dfe3c853a.js │ ├── en.6196.3e28185b53cd2346f10d.js │ ├── en.7201.028a386569caa7df9e56.js │ ├── en.77.a1830a06fe990f9f1170.js │ ├── en.8235.e7a3cd51ccec31b781fa.js │ ├── en.8884.515644758428ad7e8263.js │ ├── eraser.c80610a04a92d2465b03.cur │ ├── es.137.72f123ce0fa2a1d14aff.js │ ├── es.2014.75229e80e4f7b7217ef0.js │ ├── es.2427.596db67d26c83197588d.js │ ├── es.2684.25cb9ba0254ab5298f14.js │ ├── es.435.ada80623f71848fbb57d.js │ ├── es.5652.209eb64b624dfe3c853a.js │ ├── es.6196.3e28185b53cd2346f10d.js │ ├── es.7201.028a386569caa7df9e56.js │ ├── es.77.a1830a06fe990f9f1170.js │ ├── es.8235.e7a3cd51ccec31b781fa.js │ ├── es.8884.515644758428ad7e8263.js │ ├── export-data.02a7668fbb079d66566d.js │ ├── fa.137.72f123ce0fa2a1d14aff.js │ ├── fa.2014.75229e80e4f7b7217ef0.js │ ├── fa.2427.596db67d26c83197588d.js │ ├── fa.2684.25cb9ba0254ab5298f14.js │ ├── fa.435.ada80623f71848fbb57d.js │ ├── fa.5652.209eb64b624dfe3c853a.js │ ├── fa.6196.3e28185b53cd2346f10d.js │ ├── fa.7201.028a386569caa7df9e56.js │ ├── fa.77.a1830a06fe990f9f1170.js │ ├── fa.8235.e7a3cd51ccec31b781fa.js │ ├── fa.8884.515644758428ad7e8263.js │ ├── favorite-drawings-api.685c412f518848b85b89.js │ ├── floating-toolbars.7e994754e6bfb1b219c3.js │ ├── fr.137.72f123ce0fa2a1d14aff.js │ ├── fr.2014.75229e80e4f7b7217ef0.js │ ├── fr.2427.596db67d26c83197588d.js │ ├── fr.2684.25cb9ba0254ab5298f14.js │ ├── fr.435.ada80623f71848fbb57d.js │ ├── fr.5652.209eb64b624dfe3c853a.js │ ├── fr.6196.3e28185b53cd2346f10d.js │ ├── fr.7201.028a386569caa7df9e56.js │ ├── fr.77.a1830a06fe990f9f1170.js │ ├── fr.8235.e7a3cd51ccec31b781fa.js │ ├── fr.8884.515644758428ad7e8263.js │ ├── full-tooltips-popup.bb8a6fb1afc2d9b39e17.js │ ├── general-chart-properties-dialog.82cac28ab24654c72a42.js │ ├── general-property-page.f8236e112fb77c9f7f75.js │ ├── get-error-card.6635b794027eb9971ec9.js │ ├── go-to-date-dialog-impl.4aa6daee1b7dcb2f2f62.js │ ├── hammerjs.6e30e0c48af40bf2f6c0.js │ ├── he_IL.137.72f123ce0fa2a1d14aff.js │ ├── he_IL.2014.75229e80e4f7b7217ef0.js │ ├── he_IL.2427.596db67d26c83197588d.js │ ├── he_IL.2684.25cb9ba0254ab5298f14.js │ ├── he_IL.435.ada80623f71848fbb57d.js │ ├── he_IL.5652.209eb64b624dfe3c853a.js │ ├── he_IL.6196.3e28185b53cd2346f10d.js │ ├── he_IL.7201.028a386569caa7df9e56.js │ ├── he_IL.77.a1830a06fe990f9f1170.js │ ├── he_IL.8235.e7a3cd51ccec31b781fa.js │ ├── he_IL.8884.515644758428ad7e8263.js │ ├── header-toolbar.d2fc9d0c0651e40374fb.js │ ├── hu_HU.137.72f123ce0fa2a1d14aff.js │ ├── hu_HU.2014.75229e80e4f7b7217ef0.js │ ├── hu_HU.2427.596db67d26c83197588d.js │ ├── hu_HU.2684.25cb9ba0254ab5298f14.js │ ├── hu_HU.435.ada80623f71848fbb57d.js │ ├── hu_HU.5652.209eb64b624dfe3c853a.js │ ├── hu_HU.6196.3e28185b53cd2346f10d.js │ ├── hu_HU.7201.028a386569caa7df9e56.js │ ├── hu_HU.77.a1830a06fe990f9f1170.js │ ├── hu_HU.8235.e7a3cd51ccec31b781fa.js │ ├── hu_HU.8884.515644758428ad7e8263.js │ ├── icons.4d39018d0766cf7006bc.png │ ├── id_ID.137.72f123ce0fa2a1d14aff.js │ ├── id_ID.2014.75229e80e4f7b7217ef0.js │ ├── id_ID.2427.596db67d26c83197588d.js │ ├── id_ID.2684.25cb9ba0254ab5298f14.js │ ├── id_ID.435.ada80623f71848fbb57d.js │ ├── id_ID.5652.209eb64b624dfe3c853a.js │ ├── id_ID.6196.3e28185b53cd2346f10d.js │ ├── id_ID.7201.028a386569caa7df9e56.js │ ├── id_ID.77.a1830a06fe990f9f1170.js │ ├── id_ID.8235.e7a3cd51ccec31b781fa.js │ ├── id_ID.8884.515644758428ad7e8263.js │ ├── it.137.72f123ce0fa2a1d14aff.js │ ├── it.2014.75229e80e4f7b7217ef0.js │ ├── it.2427.596db67d26c83197588d.js │ ├── it.2684.25cb9ba0254ab5298f14.js │ ├── it.435.ada80623f71848fbb57d.js │ ├── it.5652.209eb64b624dfe3c853a.js │ ├── it.6196.3e28185b53cd2346f10d.js │ ├── it.7201.028a386569caa7df9e56.js │ ├── it.77.a1830a06fe990f9f1170.js │ ├── it.8235.e7a3cd51ccec31b781fa.js │ ├── it.8884.515644758428ad7e8263.js │ ├── ja.137.72f123ce0fa2a1d14aff.js │ ├── ja.2014.75229e80e4f7b7217ef0.js │ ├── ja.2427.596db67d26c83197588d.js │ ├── ja.2684.25cb9ba0254ab5298f14.js │ ├── ja.435.ada80623f71848fbb57d.js │ ├── ja.5652.209eb64b624dfe3c853a.js │ ├── ja.6196.3e28185b53cd2346f10d.js │ ├── ja.7201.028a386569caa7df9e56.js │ ├── ja.77.a1830a06fe990f9f1170.js │ ├── ja.8235.e7a3cd51ccec31b781fa.js │ ├── ja.8884.515644758428ad7e8263.js │ ├── ko.137.72f123ce0fa2a1d14aff.js │ ├── ko.2014.75229e80e4f7b7217ef0.js │ ├── ko.2427.596db67d26c83197588d.js │ ├── ko.2684.25cb9ba0254ab5298f14.js │ ├── ko.435.ada80623f71848fbb57d.js │ ├── ko.5652.209eb64b624dfe3c853a.js │ ├── ko.6196.3e28185b53cd2346f10d.js │ ├── ko.7201.028a386569caa7df9e56.js │ ├── ko.77.a1830a06fe990f9f1170.js │ ├── ko.8235.e7a3cd51ccec31b781fa.js │ ├── ko.8884.515644758428ad7e8263.js │ ├── large-slider-handle.18e9ee5923db4eac2c43.svg │ ├── library.6297b1e4665eaf652aeb.js │ ├── line-tools-icons.d3d6f7f9f2b35209ccf1.js │ ├── linewidth-slider.8e3d0520d28ce8259ccf.png │ ├── load-chart-dialog.2bc8d3998e1a2392ad03.js │ ├── lollipop-tooltip-renderer.cbacd2a74fa2249c23ad.js │ ├── lt-icons-atlas.aceb77470f3039ad2f63.js │ ├── lt-pane-views.fe06b5162a88616539a9.js │ ├── lt-property-pages-with-definitions.48f0faa92ffe2f42ec0e.js │ ├── lt-stickers-atlas.52ad6e6d7d7b134ab0ba.js │ ├── manage-drawings-dialog.3f5b604134bebba28c6c.js │ ├── ms_MY.137.72f123ce0fa2a1d14aff.js │ ├── ms_MY.2014.75229e80e4f7b7217ef0.js │ ├── ms_MY.2427.596db67d26c83197588d.js │ ├── ms_MY.2684.25cb9ba0254ab5298f14.js │ ├── ms_MY.435.ada80623f71848fbb57d.js │ ├── ms_MY.5652.209eb64b624dfe3c853a.js │ ├── ms_MY.6196.3e28185b53cd2346f10d.js │ ├── ms_MY.7201.028a386569caa7df9e56.js │ ├── ms_MY.77.a1830a06fe990f9f1170.js │ ├── ms_MY.8235.e7a3cd51ccec31b781fa.js │ ├── ms_MY.8884.515644758428ad7e8263.js │ ├── new-confirm-inputs-dialog.700f756efb60fe024812.js │ ├── new-edit-object-dialog.895005521f9296440679.js │ ├── nl_NL.137.72f123ce0fa2a1d14aff.js │ ├── nl_NL.2014.75229e80e4f7b7217ef0.js │ ├── nl_NL.2427.596db67d26c83197588d.js │ ├── nl_NL.2684.25cb9ba0254ab5298f14.js │ ├── nl_NL.435.ada80623f71848fbb57d.js │ ├── nl_NL.5652.209eb64b624dfe3c853a.js │ ├── nl_NL.6196.3e28185b53cd2346f10d.js │ ├── nl_NL.7201.028a386569caa7df9e56.js │ ├── nl_NL.77.a1830a06fe990f9f1170.js │ ├── nl_NL.8235.e7a3cd51ccec31b781fa.js │ ├── nl_NL.8884.515644758428ad7e8263.js │ ├── object-tree-dialog.4ff568f64fed9df9f328.js │ ├── opacity-pattern.4d8fbb552dde3db26f4a.svg │ ├── opacity-slider.4f3ca6b00b45fd71da5f.png │ ├── pl.137.72f123ce0fa2a1d14aff.js │ ├── pl.2014.75229e80e4f7b7217ef0.js │ ├── pl.2427.596db67d26c83197588d.js │ ├── pl.2684.25cb9ba0254ab5298f14.js │ ├── pl.435.ada80623f71848fbb57d.js │ ├── pl.5652.209eb64b624dfe3c853a.js │ ├── pl.6196.3e28185b53cd2346f10d.js │ ├── pl.7201.028a386569caa7df9e56.js │ ├── pl.77.a1830a06fe990f9f1170.js │ ├── pl.8235.e7a3cd51ccec31b781fa.js │ ├── pl.8884.515644758428ad7e8263.js │ ├── prediction-clock-white.c4675d37769f1df4c9ec.png │ ├── prediction-failure-white.a838a6689f951970e715.png │ ├── prediction-success-white.2fb9966b4c0f3529a2ea.png │ ├── pt.137.72f123ce0fa2a1d14aff.js │ ├── pt.2014.75229e80e4f7b7217ef0.js │ ├── pt.2427.596db67d26c83197588d.js │ ├── pt.2684.25cb9ba0254ab5298f14.js │ ├── pt.435.ada80623f71848fbb57d.js │ ├── pt.5652.209eb64b624dfe3c853a.js │ ├── pt.6196.3e28185b53cd2346f10d.js │ ├── pt.7201.028a386569caa7df9e56.js │ ├── pt.77.a1830a06fe990f9f1170.js │ ├── pt.8235.e7a3cd51ccec31b781fa.js │ ├── pt.8884.515644758428ad7e8263.js │ ├── restricted-toolset.859b53a884449a8a0f9a.js │ ├── ro.137.72f123ce0fa2a1d14aff.js │ ├── ro.2014.75229e80e4f7b7217ef0.js │ ├── ro.2427.596db67d26c83197588d.js │ ├── ro.2684.25cb9ba0254ab5298f14.js │ ├── ro.435.ada80623f71848fbb57d.js │ ├── ro.5652.209eb64b624dfe3c853a.js │ ├── ro.6196.3e28185b53cd2346f10d.js │ ├── ro.7201.028a386569caa7df9e56.js │ ├── ro.77.a1830a06fe990f9f1170.js │ ├── ro.8235.e7a3cd51ccec31b781fa.js │ ├── ro.8884.515644758428ad7e8263.js │ ├── ru.137.72f123ce0fa2a1d14aff.js │ ├── ru.2014.75229e80e4f7b7217ef0.js │ ├── ru.2427.596db67d26c83197588d.js │ ├── ru.2684.25cb9ba0254ab5298f14.js │ ├── ru.435.ada80623f71848fbb57d.js │ ├── ru.5652.209eb64b624dfe3c853a.js │ ├── ru.6196.3e28185b53cd2346f10d.js │ ├── ru.7201.028a386569caa7df9e56.js │ ├── ru.77.a1830a06fe990f9f1170.js │ ├── ru.8235.e7a3cd51ccec31b781fa.js │ ├── ru.8884.515644758428ad7e8263.js │ ├── runtime.04214899cac17f000613.js │ ├── series-icons-map.6b7b2f52a18274053c99.js │ ├── series-pane-views.97a8e6dbe1a94532eb49.js │ ├── share-chart-to-social-utils.d7331dbca4a2aa0909e7.js │ ├── show-theme-save-dialog.d599965fb89ec8e183eb.js │ ├── simple-dialog.2bb0f228f3ba2ab7961a.js │ ├── source-properties-editor.3c1d96776af15c5b5a1d.js │ ├── study-inputs-pane-views.a80a3e282aa441e156d1.js │ ├── study-market.78a4d2ffdb738c30bc84.js │ ├── study-pane-views.cc5bd003161b0ea73f75.js │ ├── study-property-pages-with-definitions.9394d81cc8dbb2962879.js │ ├── study-template-dialog.faf557ce6d32f93e5a9a.js │ ├── sv.137.72f123ce0fa2a1d14aff.js │ ├── sv.2014.75229e80e4f7b7217ef0.js │ ├── sv.2427.596db67d26c83197588d.js │ ├── sv.2684.25cb9ba0254ab5298f14.js │ ├── sv.435.ada80623f71848fbb57d.js │ ├── sv.5652.209eb64b624dfe3c853a.js │ ├── sv.6196.3e28185b53cd2346f10d.js │ ├── sv.7201.028a386569caa7df9e56.js │ ├── sv.77.a1830a06fe990f9f1170.js │ ├── sv.8235.e7a3cd51ccec31b781fa.js │ ├── sv.8884.515644758428ad7e8263.js │ ├── svg-renderer.f065beaf6b5b37da27d9.js │ ├── symbol-info-dialog-impl.391e1e1a29220b089537.js │ ├── symbol-search-dialog.b049a36e03e38984a69c.js │ ├── take-chart-image-impl.c0ec40f417c36a1c6179.js │ ├── th.137.72f123ce0fa2a1d14aff.js │ ├── th.2014.75229e80e4f7b7217ef0.js │ ├── th.2427.596db67d26c83197588d.js │ ├── th.2684.25cb9ba0254ab5298f14.js │ ├── th.435.ada80623f71848fbb57d.js │ ├── th.5652.209eb64b624dfe3c853a.js │ ├── th.6196.3e28185b53cd2346f10d.js │ ├── th.7201.028a386569caa7df9e56.js │ ├── th.77.a1830a06fe990f9f1170.js │ ├── th.8235.e7a3cd51ccec31b781fa.js │ ├── th.8884.515644758428ad7e8263.js │ ├── tr.137.72f123ce0fa2a1d14aff.js │ ├── tr.2014.75229e80e4f7b7217ef0.js │ ├── tr.2427.596db67d26c83197588d.js │ ├── tr.2684.25cb9ba0254ab5298f14.js │ ├── tr.435.ada80623f71848fbb57d.js │ ├── tr.5652.209eb64b624dfe3c853a.js │ ├── tr.6196.3e28185b53cd2346f10d.js │ ├── tr.7201.028a386569caa7df9e56.js │ ├── tr.77.a1830a06fe990f9f1170.js │ ├── tr.8235.e7a3cd51ccec31b781fa.js │ ├── tr.8884.515644758428ad7e8263.js │ ├── user-defined-bars-marks-tooltip.520f315000510aab3003.js │ ├── vi.137.72f123ce0fa2a1d14aff.js │ ├── vi.2014.75229e80e4f7b7217ef0.js │ ├── vi.2427.596db67d26c83197588d.js │ ├── vi.2684.25cb9ba0254ab5298f14.js │ ├── vi.435.ada80623f71848fbb57d.js │ ├── vi.5652.209eb64b624dfe3c853a.js │ ├── vi.6196.3e28185b53cd2346f10d.js │ ├── vi.7201.028a386569caa7df9e56.js │ ├── vi.77.a1830a06fe990f9f1170.js │ ├── vi.8235.e7a3cd51ccec31b781fa.js │ ├── vi.8884.515644758428ad7e8263.js │ ├── zh.137.72f123ce0fa2a1d14aff.js │ ├── zh.2014.75229e80e4f7b7217ef0.js │ ├── zh.2427.596db67d26c83197588d.js │ ├── zh.2684.25cb9ba0254ab5298f14.js │ ├── zh.435.ada80623f71848fbb57d.js │ ├── zh.5652.209eb64b624dfe3c853a.js │ ├── zh.6196.3e28185b53cd2346f10d.js │ ├── zh.7201.028a386569caa7df9e56.js │ ├── zh.77.a1830a06fe990f9f1170.js │ ├── zh.8235.e7a3cd51ccec31b781fa.js │ ├── zh.8884.515644758428ad7e8263.js │ ├── zh_TW.137.72f123ce0fa2a1d14aff.js │ ├── zh_TW.2014.75229e80e4f7b7217ef0.js │ ├── zh_TW.2427.596db67d26c83197588d.js │ ├── zh_TW.2684.25cb9ba0254ab5298f14.js │ ├── zh_TW.435.ada80623f71848fbb57d.js │ ├── zh_TW.5652.209eb64b624dfe3c853a.js │ ├── zh_TW.6196.3e28185b53cd2346f10d.js │ ├── zh_TW.7201.028a386569caa7df9e56.js │ ├── zh_TW.77.a1830a06fe990f9f1170.js │ ├── zh_TW.8235.e7a3cd51ccec31b781fa.js │ └── zh_TW.8884.515644758428ad7e8263.js ├── charting_library.cjs.js ├── charting_library.d.ts ├── charting_library.esm.js ├── charting_library.js ├── charting_library.standalone.js ├── datafeed-api.d.ts └── package.json ├── components ├── ChatBubble.js ├── ChatBubbleComponent.js ├── CodeSnippetComponent.js ├── ContentBlock.js ├── ControlPanel.js ├── DocExplorer.js ├── DocExplorer │ ├── Argument.js │ ├── DefaultValue.js │ ├── Directive.js │ ├── FieldDoc.js │ ├── MarkdownContent.js │ ├── SchemaDoc.js │ ├── SearchBox.js │ ├── SearchResults.js │ ├── TypeDoc.js │ └── TypeLink.js ├── EditorInstance.js ├── ExploreComponent.js ├── Gallery │ ├── LinkComponent.js │ ├── NewGallery.js │ ├── QueriesComponent.js │ ├── QueriesControls.js │ ├── QueriesList.js │ ├── QueryBuilder │ │ ├── CustomArgs.js │ │ ├── Explorer.js │ │ └── index.js │ ├── newGallery.scss │ └── queriesList.scss ├── GalleryComponent.js ├── GraphqlExplorer.js ├── InteractionButton.js ├── ProfileComponent.js ├── QueryErrorIndicator.js ├── ResetPasswordForm.js ├── SqlQueryComponent.js ├── StartersQueriesComponents.js ├── TabsComponent.js ├── TokenAPIBadge.js ├── TokenPagesAPI.js ├── TopBapNotification.js ├── bitqueditor │ ├── App.scss │ └── components │ │ ├── CodeEditor.js │ │ ├── DisplayedData.js │ │ ├── GraphqlEditor.js │ │ ├── HeaderEditor.js │ │ ├── JsonComponent.js │ │ ├── JsonWidget.js │ │ ├── MigrationBanner.css │ │ ├── MigrationBanner.js │ │ ├── PromoBanner.css │ │ ├── PromoBanner.js │ │ ├── QueryEditor.js │ │ ├── RawCodeMirror.js │ │ ├── ResponseDataType.js │ │ ├── StatisticsButton.js │ │ ├── ToolbarButton.js │ │ ├── ToolbarComponent.js │ │ ├── VariableEditor.js │ │ ├── WidgetEditorControls.js │ │ ├── WidgetSelect.js │ │ └── WidgetView.js ├── chatBubble.scss ├── codeSnippet.scss ├── flattenData.js ├── icons │ ├── CopyIcon.js │ ├── CsvIcon.js │ ├── DocsIcon.js │ ├── ErrorIcon.js │ ├── ExitFullscreenIcon.js │ ├── FullscreenIcon.js │ ├── GraphqlIcon.js │ ├── PlayIcon.js │ ├── ShareIcon.js │ ├── SqlIcon.js │ ├── StarIcon.js │ ├── StopIcon.js │ └── UserIcon.js └── modal │ ├── EditDialog.js │ ├── ModalWindow.js │ ├── StartersQueriesComponents.scss │ ├── StartersQueriesModal.js │ ├── StatisticsModal.js │ ├── VideoModal.js │ └── editDialog.scss ├── editor.css ├── index.js ├── pages └── ResetPassword.js ├── scss ├── _components.scss ├── _explorerComponent.scss ├── _header.scss ├── _mixins.scss ├── _reset.scss ├── _toolbarComponent.scss └── _variables.scss ├── server ├── createDatabase.js ├── databaseConfig.js ├── defaultMeta.js ├── endPoints.js ├── favicon_new.png └── server.js ├── serviceWorker.js ├── setupProxy.js ├── setupTests.js ├── store ├── galleryStore.js ├── modalStore.js └── queriesStore.js └── utils ├── common.js ├── debounce.js ├── generateTags.js ├── getQueryFacts.js ├── handleState.js ├── snippetLanguageList.js ├── streaming-mode.js ├── useDebounce.js ├── useEventListener.js ├── useFirstUpdate.js ├── useInterval.js ├── useQuery.js └── useStateAdaptation.js /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | deploy 3 | npm-debug.log 4 | .git 5 | .gitignore 6 | Dockerfile 7 | README-DOCKER-BUILD.md 8 | .env 9 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:16-bookworm-slim AS builder 2 | 3 | LABEL maintainer="Andrey Gridin " 4 | 5 | WORKDIR /app 6 | 7 | COPY package.json package-lock.json* ./ 8 | 9 | RUN mkdir /app/static && \ 10 | chown node:node -R /app 11 | 12 | USER node 13 | 14 | RUN npm install --production 15 | 16 | COPY --chown=node:node . . 17 | 18 | RUN npm run build && chmod +x ./entrypoint.sh 19 | 20 | ENTRYPOINT ["./entrypoint.sh"] 21 | -------------------------------------------------------------------------------- /README-DOCKER-BUILD.md: -------------------------------------------------------------------------------- 1 | # Build 2 | 3 | ``` 4 | docker build \ 5 | --build-arg SCHEME=http \ 6 | --build-arg HOST=172.16.157.1 \ 7 | --build-arg PORT=5000 \ 8 | -t nexus.bitq.dev/repository/bitquery/graphql-ide:`git branch | awk '/\*/ {print $2}'`-`git rev-parse --short HEAD` . 9 | ``` 10 | 11 | # Make an alias latest 12 | ``` 13 | docker image tag \ 14 | nexus.bitq.dev/repository/bitquery/graphql-ide:`git branch | awk '/\*/ {print $2}'`-`git rev-parse --short HEAD` \ 15 | nexus.bitq.dev/repository/bitquery/graphql-ide:latest 16 | ``` 17 | 18 | # Login to registry 19 | 20 | ``` 21 | apt install gnupg2 pass 22 | docker login -u https://nexus.bitq.dev 23 | ``` 24 | 25 | # Push image tags 26 | 27 | ``` 28 | docker image push nexus.bitq.dev/repository/bitquery/graphql-ide:`git branch | awk '/\*/ {print $2}'`-`git rev-parse --short HEAD` 29 | docker image push nexus.bitq.dev/repository/bitquery/graphql-ide:latest 30 | ``` 31 | 32 | # Run container 33 | 34 | ``` 35 | docker run -d \ 36 | --name graphql-ide \ 37 | --dns 10.0.0.254 \ 38 | --dns-search etl-cluster.local \ 39 | --env-file .env \ 40 | -p 127.0.0.1:5000:5000 \ 41 | nexus.bitq.dev/repository/bitquery/graphql-ide:`git branch | awk '/\*/ {print $2}'`-`git rev-parse --short HEAD` 42 | ``` 43 | 44 | -------------------------------------------------------------------------------- /database.json: -------------------------------------------------------------------------------- 1 | { 2 | "dev": { 3 | "host": { "ENV" : "DB_HOST" }, 4 | "user": { "ENV" : "DB_USER" }, 5 | "password" : { "ENV" : "DB_PASSWORD" }, 6 | "database": "bitquery", 7 | "port": { "ENV" : "DB_PORT" }, 8 | "driver": "mysql", 9 | "multipleStatements": true 10 | } 11 | } -------------------------------------------------------------------------------- /deploy/doc/ide.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=GraphQL IDE 3 | Requires=network.target 4 | 5 | [Service] 6 | User=spn 7 | PIDFile=/var/run/ide.pid 8 | WorkingDirectory=/home/spn/xxx/current 9 | ExecStart=/home/spn/.nvm/versions/node/v14.15.4/bin/npm run server 10 | Restart=always 11 | RestartSec=20 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /deploy/doc/install.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | --- SERVICE SETUP -- 4 | 5 | sudo vim /etc/systemd/system/ide.service 6 | sudo systemctl enable ide 7 | 8 | sudo service ide start 9 | sudo service ide status 10 | sudo service ide stop -------------------------------------------------------------------------------- /docker-compose/.env: -------------------------------------------------------------------------------- 1 | LC_COMPOSE_NAMESERVER=8.8.8.8 2 | LC_COMPOSE_IPADDR=127.0.0.1 3 | LC_COMPOSE_WEB_PORT=5004 4 | LC_COMPOSE_IMAGE=nexus.bitq.dev/repository/graphql-ide 5 | LC_COMPOSE_IMAGE_TAG=latest 6 | LC_COMPOSE_NAME=ide 7 | LC_COMPOSE_CLUSTER=www-cluster 8 | LC_COMPOSE_NODE_ENV=production 9 | LC_COMPOSE_MYSQL_HOST=${LC_COMPOSE_IPADDR} 10 | LC_COMPOSE_MYSQL_DATABASE=bitquery 11 | LC_COMPOSE_MYSQL_USER=ide 12 | LC_COMPOSE_MYSQL_PASSWORD=graphql 13 | LC_COMPOSE_MYSQL_PORT=3307 14 | LC_COMPOSE_REDIS_HOST=${LC_COMPOSE_IPADDR} 15 | LC_COMPOSE_REDIS_PORT=6380 16 | LC_COMPOSE_REDIS_DB=1 17 | LC_COMPOSE_GRAPHQL_ADMIN_URL=http://${LC_COMPOSE_IPADDR}:5001 18 | LC_COMPOSE_GRAPHQL_LEGACY_URL=https://graphql.bitquery.io 19 | LC_COMPOSE_GRAPHQL_URL=https://streaming.bitquery.io/graphql -------------------------------------------------------------------------------- /docker-compose/config/nginx/default.conf: -------------------------------------------------------------------------------- 1 | upstream nodejs-ide { 2 | server ${IPADDR}:${WEB_PORT}; 3 | } 4 | 5 | server { 6 | listen 80 default; 7 | 8 | root /var/www/static; 9 | 10 | location = /sitemap.xml { 11 | rewrite ^.* /api/sitemap; 12 | } 13 | 14 | # generated images 15 | location ~ /api/ { 16 | proxy_redirect off; 17 | proxy_pass http://nodejs-ide; 18 | proxy_set_header X-Real-IP ${ESC}remote_addr; 19 | proxy_set_header Host ${ESC}host; 20 | proxy_set_header X-Forwarded-For ${ESC}proxy_add_x_forwarded_for; 21 | } 22 | 23 | # static content 24 | location ~ \.(?:ico|jpg|css|png|js|swf|woff|eot|svg|ttf|gif|map|xml)$ { 25 | access_log off; 26 | log_not_found off; 27 | add_header Pragma "public"; 28 | add_header Cache-Control "public"; 29 | expires 30d; 30 | } 31 | 32 | location / { 33 | proxy_redirect off; 34 | proxy_pass http://nodejs-ide; 35 | proxy_set_header X-Real-IP ${ESC}remote_addr; 36 | proxy_set_header Host ${ESC}host; 37 | proxy_set_header X-Forwarded-For ${ESC}proxy_add_x_forwarded_for; 38 | } 39 | } -------------------------------------------------------------------------------- /docker-compose/dev/compose.yml: -------------------------------------------------------------------------------- 1 | x-common-dns: &common-dns 2 | dns: ${LC_COMPOSE_NAMESERVER} 3 | dns_search: ${LC_COMPOSE_CLUSTER}.local 4 | dns_opt: [ 'ndots:0' ] 5 | 6 | services: 7 | nginx: 8 | image: nginx:1.22-alpine 9 | ports: 10 | - 80:80 11 | redis: 12 | image: redis:latest 13 | ide: 14 | image: ide-docker-dev 15 | command: [ 16 | "node", "./src/server/server.js" 17 | ] 18 | ports: 19 | - 3005:3005 20 | environment: 21 | - REDIS_HOST=redis 22 | - NODE_ENV=production 23 | - DB_HOST=${DB_HOST} 24 | - DB_NAME=${DB_NAME} 25 | - DB_USER=${DB_USER} 26 | - DB_PASSWORD=${DB_PASSWORD} 27 | - DB_PORT=${DB_PORT} 28 | - REDIS_PORT=${REDIS_PORT:-6379} 29 | - REDIS_DB=10 30 | - GRAPHQL_ADMIN_URL=${GRAPHQL_ADMIN_URL} 31 | - GRAPHQL_LEGACY_URL=${GRAPHQL_LEGACY_URL} 32 | - GRAPHQL_URL=${GRAPHQL_URL} 33 | - PORT=3005 34 | volumes: 35 | - /dev:/graphql-ide 36 | <<: *common-dns -------------------------------------------------------------------------------- /docker-compose/scripts/apply_env.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | apk add --no-progress -q gettext 4 | 5 | for file in $(find /config-source); 6 | do 7 | if [[ -d $file ]] 8 | then 9 | mkdir -p /config-destination${file#/config-source} 10 | fi 11 | if [[ -f $file ]] 12 | then 13 | dest=/config-destination${file#/config-source} 14 | if [[ ${file##*.} == sh ]] 15 | then 16 | echo "Copying executable $file -> $dest" 17 | cp -f $file $dest 18 | chmod a+x $dest 19 | else 20 | echo "Processing $file -> $dest" 21 | envsubst < $file > $dest 22 | fi 23 | 24 | fi 25 | done; 26 | -------------------------------------------------------------------------------- /entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | cp -r /app/build/* /app/static 6 | 7 | # Then exec the container's main process (what's set as CMD in the Dockerfile). 8 | exec "$@" 9 | -------------------------------------------------------------------------------- /migrations/20201116150717-add-deleted.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | /** 8 | * We receive the dbmigrate dependency from dbmigrate initially. 9 | * This enables us to not have to rely on NODE_PATH. 10 | */ 11 | exports.setup = function(options, seedLink) { 12 | dbm = options.dbmigrate; 13 | type = dbm.dataType; 14 | seed = seedLink; 15 | }; 16 | 17 | exports.up = function(db) { 18 | return db.addColumn('queries', 'deleted', { 19 | type: 'boolean', 20 | notNull: true, 21 | defaultValue: false 22 | }) 23 | }; 24 | 25 | exports.down = function(db) { 26 | return db.removeColumn('queries', 'deleted'); 27 | }; 28 | 29 | exports._meta = { 30 | "version": 1 31 | }; 32 | -------------------------------------------------------------------------------- /migrations/20201118095556-add-queries-updated-at.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | /** 8 | * We receive the dbmigrate dependency from dbmigrate initially. 9 | * This enables us to not have to rely on NODE_PATH. 10 | */ 11 | exports.setup = function(options, seedLink) { 12 | dbm = options.dbmigrate; 13 | type = dbm.dataType; 14 | seed = seedLink; 15 | }; 16 | 17 | exports.up = function(db) { 18 | return db.addColumn('queries', 'updated_at', { 19 | type: 'timestamp', 20 | notNull: true, 21 | defaultValue: new String('CURRENT_TIMESTAMP') 22 | }) 23 | }; 24 | 25 | exports.down = function(db) { 26 | return db.removeColumn('queries', 'updated_at') 27 | }; 28 | 29 | exports._meta = { 30 | "version": 1 31 | }; 32 | -------------------------------------------------------------------------------- /migrations/20201130081924-add-endpoint-url.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | /** 8 | * We receive the dbmigrate dependency from dbmigrate initially. 9 | * This enables us to not have to rely on NODE_PATH. 10 | */ 11 | exports.setup = function(options, seedLink) { 12 | dbm = options.dbmigrate; 13 | type = dbm.dataType; 14 | seed = seedLink; 15 | }; 16 | 17 | exports.up = function(db) { 18 | return db.addColumn('queries', 'endpoint_url', { 19 | type: 'string', 20 | length: 200, 21 | notNull: true, 22 | defaultValue: 'https://graphql.bitquery.io' 23 | }) 24 | }; 25 | 26 | exports.down = function(db) { 27 | return db.removeColumn('queries', 'endpoint_url') 28 | }; 29 | 30 | exports._meta = { 31 | "version": 1 32 | }; 33 | -------------------------------------------------------------------------------- /migrations/20201223120556-add-widgets-table.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | /** 8 | * We receive the dbmigrate dependency from dbmigrate initially. 9 | * This enables us to not have to rely on NODE_PATH. 10 | */ 11 | exports.setup = function(options, seedLink) { 12 | dbm = options.dbmigrate; 13 | type = dbm.dataType; 14 | seed = seedLink; 15 | }; 16 | 17 | exports.up = function(db) { 18 | return db.createTable('widgets', { 19 | columns: { 20 | id: { type: 'int', primaryKey: true, autoIncrement: true }, 21 | displayed_data: { type: 'string', length: 200 }, 22 | query_id: {type: 'int', notNull: true, foreignKey: { 23 | name: 'query_id', 24 | table: 'queries', 25 | rules: { 26 | onDelete: 'RESTRICT', 27 | onUpdate: 'CASCADE' 28 | }, 29 | mapping: 'id' 30 | }}, 31 | widget_id: {type: 'string', length: 200}, 32 | config: {type: 'text'} 33 | } 34 | }) 35 | }; 36 | 37 | exports.down = function(db) { 38 | return db.dropTable('widgets') 39 | }; 40 | 41 | exports._meta = { 42 | "version": 1 43 | }; 44 | -------------------------------------------------------------------------------- /migrations/20210217114838-add-api-keys-table.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | /** 8 | * We receive the dbmigrate dependency from dbmigrate initially. 9 | * This enables us to not have to rely on NODE_PATH. 10 | */ 11 | exports.setup = function(options, seedLink) { 12 | dbm = options.dbmigrate; 13 | type = dbm.dataType; 14 | seed = seedLink; 15 | }; 16 | 17 | exports.up = function(db) { 18 | return db.createTable('api_keys', { 19 | columns: { 20 | id: { type: 'int', primaryKey: true, autoIncrement: true }, 21 | user_id: { type: 'int', length: 10, notNull: true, foreignKey: { 22 | name: 'id', 23 | table: 'accounts', 24 | rules: { 25 | onDelete: 'RESTRICT', 26 | onUpdate: 'CASCADE' 27 | }, 28 | mapping: 'id' 29 | } }, 30 | key: { 31 | type: 'string', 32 | notNull: true, 33 | length: 32, 34 | unique: true 35 | }, 36 | active: { type: 'boolean', notNull: true }, 37 | created_at: { 38 | type: 'timestamp', 39 | notNull: true, 40 | defaultValue: new String('CURRENT_TIMESTAMP') 41 | }, 42 | updated_at: { 43 | type: 'timestamp', 44 | notNull: true, 45 | defaultValue: new String('CURRENT_TIMESTAMP') 46 | } 47 | } 48 | }) 49 | }; 50 | 51 | exports.down = function(db) { 52 | return db.dropTable('api_keys') 53 | }; 54 | 55 | exports._meta = { 56 | "version": 1 57 | }; 58 | -------------------------------------------------------------------------------- /migrations/20210217124238-fill-by-api-keys.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | function makekey() { 8 | let result = ''; 9 | let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; 10 | let charactersLength = characters.length; 11 | for ( let i = 0; i < 29; i++ ) { 12 | result += characters.charAt(Math.floor(Math.random() * charactersLength)); 13 | } 14 | return `BQY${result}` 15 | } 16 | 17 | /** 18 | * We receive the dbmigrate dependency from dbmigrate initially. 19 | * This enables us to not have to rely on NODE_PATH. 20 | */ 21 | exports.setup = function(options, seedLink) { 22 | dbm = options.dbmigrate; 23 | type = dbm.dataType; 24 | seed = seedLink; 25 | }; 26 | 27 | exports.up = function(db) { 28 | return db.runSql( 29 | `SELECT id from accounts` 30 | ).then(ids => { 31 | let sql = 'INSERT INTO api_keys (user_id, `key`, active) VALUES' 32 | for (let i = 0; i < ids.length; i++) { 33 | sql += ` (${ids[i].id}, '${makekey()}', true)` 34 | if (i !== ids.length - 1) sql +=',' 35 | } 36 | return db.runSql(sql, err => console.log(err)) 37 | }) 38 | }; 39 | 40 | exports.down = function(db) { 41 | return db.runSql('DELETE FROM api_keys'); 42 | }; 43 | 44 | exports._meta = { 45 | "version": 1 46 | }; 47 | -------------------------------------------------------------------------------- /migrations/20210217160049-add-user-active-index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | /** 8 | * We receive the dbmigrate dependency from dbmigrate initially. 9 | * This enables us to not have to rely on NODE_PATH. 10 | */ 11 | exports.setup = function(options, seedLink) { 12 | dbm = options.dbmigrate; 13 | type = dbm.dataType; 14 | seed = seedLink; 15 | }; 16 | 17 | exports.up = function(db) { 18 | return db.addIndex('api_keys', 'user_id_active', ['user_id', 'active']) 19 | }; 20 | 21 | exports.down = function(db) { 22 | return db.removeIndex('api_keys' ,'user_id_active') 23 | }; 24 | 25 | exports._meta = { 26 | "version": 1 27 | }; 28 | -------------------------------------------------------------------------------- /migrations/20210218135819-add-guest-users.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | function makekey() { 8 | let result = ''; 9 | let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; 10 | let charactersLength = characters.length; 11 | for ( let i = 0; i < 29; i++ ) { 12 | result += characters.charAt(Math.floor(Math.random() * charactersLength)); 13 | } 14 | return `BQY${result}` 15 | } 16 | 17 | /** 18 | * We receive the dbmigrate dependency from dbmigrate initially. 19 | * This enables us to not have to rely on NODE_PATH. 20 | */ 21 | exports.setup = function(options, seedLink) { 22 | dbm = options.dbmigrate; 23 | type = dbm.dataType; 24 | seed = seedLink; 25 | }; 26 | 27 | exports.up = function(db) { 28 | return db.runSql(`insert into accounts (email, active) values ('ide', true), ('explorer', true)`) 29 | .then(result => { 30 | return db.runSql(`insert into api_keys (user_id, \`key\`, active) values 31 | (${result.insertId}, '${makekey()}', true), 32 | (${result.insertId+1}, '${makekey()}', true)`) 33 | }) 34 | }; 35 | 36 | exports.down = function(db) { 37 | return null; 38 | }; 39 | 40 | exports._meta = { 41 | "version": 1 42 | }; 43 | -------------------------------------------------------------------------------- /migrations/20210311065921-add-users-role.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | /** 8 | * We receive the dbmigrate dependency from dbmigrate initially. 9 | * This enables us to not have to rely on NODE_PATH. 10 | */ 11 | exports.setup = function(options, seedLink) { 12 | dbm = options.dbmigrate; 13 | type = dbm.dataType; 14 | seed = seedLink; 15 | }; 16 | 17 | exports.up = function(db) { 18 | return db.addColumn('accounts', 'role', { 19 | type: 'string', 20 | length: 200, 21 | notNull: true, 22 | defaultValue: 'user' 23 | }) 24 | }; 25 | 26 | exports.down = function(db) { 27 | return db.removeColumn('accounts', 'role') 28 | }; 29 | 30 | exports._meta = { 31 | "version": 1 32 | }; 33 | -------------------------------------------------------------------------------- /migrations/20210412115836-set-default-email.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | /** 8 | * We receive the dbmigrate dependency from dbmigrate initially. 9 | * This enables us to not have to rely on NODE_PATH. 10 | */ 11 | exports.setup = function(options, seedLink) { 12 | dbm = options.dbmigrate; 13 | type = dbm.dataType; 14 | seed = seedLink; 15 | }; 16 | 17 | exports.up = function(db) { 18 | return db.runSql(`ALTER TABLE accounts ALTER email SET DEFAULT '';`); 19 | }; 20 | 21 | exports.down = function(db) { 22 | return db.runSql(`ALTER TABLE accounts ALTER email DROP DEFAULT;`); 23 | }; 24 | 25 | exports._meta = { 26 | "version": 1 27 | }; 28 | -------------------------------------------------------------------------------- /migrations/20210412130758-add-name-company.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | /** 8 | * We receive the dbmigrate dependency from dbmigrate initially. 9 | * This enables us to not have to rely on NODE_PATH. 10 | */ 11 | exports.setup = function(options, seedLink) { 12 | dbm = options.dbmigrate; 13 | type = dbm.dataType; 14 | seed = seedLink; 15 | }; 16 | 17 | exports.up = function(db) { 18 | return db.addColumn('accounts', 'name', { 19 | type: 'string', 20 | length: 200, 21 | notNull: true, 22 | defaultValue: '' 23 | }).then(_ => { 24 | return db.runSql(`SELECT id, email, SUBSTRING_INDEX(email, '@', 1) as name from accounts`) 25 | }).then(result => { 26 | for (let i = 0; i < result.length; i++) { 27 | let sql = `UPDATE accounts SET name='${result[i].name}' WHERE id=${result[i].id}` 28 | db.runSql(sql, err => console.log(err)) 29 | } 30 | }).then(_ => { 31 | return db.addColumn('accounts', 'company_name', { 32 | type: 'string', 33 | length: 200, 34 | notNull: true, 35 | defaultValue: '' 36 | }) 37 | }) 38 | }; 39 | 40 | exports.down = function(db) { 41 | return db.removeColumn('accounts', 'name').then(_ => { 42 | return db.removeColumn('accounts', 'company_name') 43 | }) 44 | }; 45 | 46 | exports._meta = { 47 | "version": 1 48 | }; 49 | -------------------------------------------------------------------------------- /migrations/20220517112409-block-temporary-email.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | /** 8 | * We receive the dbmigrate dependency from dbmigrate initially. 9 | * This enables us to not have to rely on NODE_PATH. 10 | */ 11 | const fs = require('fs') 12 | const path = require('path') 13 | const filePath = path.join(__dirname, '..', 'disposable-email-provider-domains') 14 | 15 | exports.setup = function(options, seedLink) { 16 | dbm = options.dbmigrate; 17 | type = dbm.dataType; 18 | seed = seedLink; 19 | }; 20 | 21 | exports.up = function(db) { 22 | 23 | return db.runSql(` 24 | SELECT bp.user_id, SUBSTRING_INDEX(a.email, '@', -1) AS domain 25 | FROM billing_periods bp 26 | LEFT JOIN accounts a ON bp.user_id=a.id 27 | GROUP BY a.id 28 | `).then(result => { 29 | fs.readFile(filePath, 'utf8', (err, domains) => { 30 | if (err) console.log(err) 31 | for (let i = 0; i < result.length; i++) { 32 | const domain = result[i].domain.replace('.', '[.]') 33 | const re = new RegExp(`^${domain}$`, 'gm') 34 | if (domains.match(re)) { 35 | console.log(result[i].user_id, domain) 36 | db.runSql(` 37 | UPDATE billing_periods SET is_blocked=1 38 | WHERE user_id = ${result[i].user_id} 39 | `) 40 | } 41 | } 42 | }) 43 | }) 44 | }; 45 | 46 | exports.down = function(db) { 47 | return null; 48 | }; 49 | 50 | exports._meta = { 51 | "version": 1 52 | }; 53 | -------------------------------------------------------------------------------- /migrations/20220625085436-change-arguments.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | /** 8 | * We receive the dbmigrate dependency from dbmigrate initially. 9 | * This enables us to not have to rely on NODE_PATH. 10 | */ 11 | exports.setup = function(options, seedLink) { 12 | dbm = options.dbmigrate; 13 | type = dbm.dataType; 14 | seed = seedLink; 15 | }; 16 | 17 | exports.up = function(db) { 18 | return db.renameColumn('queries', 'arguments', 'variables') 19 | }; 20 | 21 | exports.down = function(db) { 22 | return db.renameColumn('queries', 'variables', 'arguments') 23 | }; 24 | 25 | exports._meta = { 26 | "version": 1 27 | }; 28 | -------------------------------------------------------------------------------- /migrations/20220822145515-create-fill-disp-emails-table.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var dbm; 4 | var type; 5 | var seed; 6 | 7 | /** 8 | * We receive the dbmigrate dependency from dbmigrate initially. 9 | * This enables us to not have to rely on NODE_PATH. 10 | */ 11 | 12 | const fs = require('fs') 13 | const path = require('path') 14 | const filePath = path.join(__dirname, '..', 'disposable-email-provider-domains') 15 | 16 | exports.setup = function (options, seedLink) { 17 | dbm = options.dbmigrate; 18 | type = dbm.dataType; 19 | seed = seedLink; 20 | }; 21 | 22 | exports.up = function (db) { 23 | return db.createTable('disposable_domains', { 24 | columns: { 25 | id: { type: 'int', primaryKey: true, autoIncrement: true }, 26 | domain: { 27 | type: 'string', 28 | notNull: true, 29 | length: 128, 30 | unique: true 31 | } 32 | } 33 | }).then(_ => { 34 | fs.readFile(filePath, 'utf8', (err, domainsString) => { 35 | if (err) console.log(err) 36 | let sql = 'insert into disposable_domains (domain) values' 37 | const domains = domainsString.split('\n') 38 | domains.forEach((item, index, arr) => sql += ` ('${item}')${index !== arr.length - 1 ? ',' : ''}`) 39 | return db.runSql(sql, err => console.log(err)) 40 | }) 41 | }) 42 | }; 43 | 44 | exports.down = function (db) { 45 | return db.dropTable('disposable_domains') 46 | }; 47 | 48 | exports._meta = { 49 | "version": 1 50 | }; 51 | -------------------------------------------------------------------------------- /public/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/apple-touch-icon.png -------------------------------------------------------------------------------- /public/bitquery_logo_w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/bitquery_logo_w.png -------------------------------------------------------------------------------- /public/charting_library/bundles/1033.5197f9f8b8500206d06c.css: -------------------------------------------------------------------------------- 1 | .title-u3QJgF_p{cursor:default;font-size:11px;letter-spacing:.4px;line-height:16px;margin:6px 0;padding:0 12px;text-transform:uppercase}.title-u3QJgF_p,html.theme-dark .title-u3QJgF_p{color:var(--tv-color-popup-element-secondary-text,#787b86)} -------------------------------------------------------------------------------- /public/charting_library/bundles/1033.5197f9f8b8500206d06c.rtl.css: -------------------------------------------------------------------------------- 1 | .title-u3QJgF_p{cursor:default;font-size:11px;letter-spacing:.4px;line-height:16px;margin:6px 0;padding:0 12px;text-transform:uppercase}.title-u3QJgF_p,html.theme-dark .title-u3QJgF_p{color:var(--tv-color-popup-element-secondary-text,#787b86)} -------------------------------------------------------------------------------- /public/charting_library/bundles/1762.7ff6b353c441db2276da.css: -------------------------------------------------------------------------------- 1 | .separator-EI7Qsb2Q{border-top:1px solid #e0e3eb}html.theme-dark .separator-EI7Qsb2Q{border-top:1px solid #434651}.scrollable-EI7Qsb2Q{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-EI7Qsb2Q{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-EI7Qsb2Q{min-height:auto}}.scrollable-EI7Qsb2Q::-webkit-scrollbar{height:5px;width:5px}.scrollable-EI7Qsb2Q::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-EI7Qsb2Q::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-EI7Qsb2Q::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-EI7Qsb2Q::-webkit-scrollbar-corner{display:none} -------------------------------------------------------------------------------- /public/charting_library/bundles/1762.7ff6b353c441db2276da.rtl.css: -------------------------------------------------------------------------------- 1 | .separator-EI7Qsb2Q{border-top:1px solid #e0e3eb}html.theme-dark .separator-EI7Qsb2Q{border-top:1px solid #434651}.scrollable-EI7Qsb2Q{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-EI7Qsb2Q{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-EI7Qsb2Q{min-height:auto}}.scrollable-EI7Qsb2Q::-webkit-scrollbar{height:5px;width:5px}.scrollable-EI7Qsb2Q::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-EI7Qsb2Q::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-EI7Qsb2Q::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-EI7Qsb2Q::-webkit-scrollbar-corner{display:none} -------------------------------------------------------------------------------- /public/charting_library/bundles/1849.aa435f081ad57a6d0121.css: -------------------------------------------------------------------------------- 1 | .item-zwyEh4hn{align-items:flex-start;font-size:16px;padding-right:20px;white-space:normal}.label-zwyEh4hn{line-height:24px;overflow:visible}.labelRow-zwyEh4hn{margin-bottom:2px;margin-top:2px}.toolbox-zwyEh4hn{margin-top:3px} -------------------------------------------------------------------------------- /public/charting_library/bundles/1849.aa435f081ad57a6d0121.rtl.css: -------------------------------------------------------------------------------- 1 | .item-zwyEh4hn{align-items:flex-start;font-size:16px;padding-left:20px;white-space:normal}.label-zwyEh4hn{line-height:24px;overflow:visible}.labelRow-zwyEh4hn{margin-bottom:2px;margin-top:2px}.toolbox-zwyEh4hn{margin-top:3px} -------------------------------------------------------------------------------- /public/charting_library/bundles/2260.b98824e4829a1aa9b444.css: -------------------------------------------------------------------------------- 1 | .row-Sj9z7O1v{grid-gap:12px;display:grid;grid-template-columns:150px 100px;margin-bottom:16px;padding-left:20px;padding-right:20px}.mobileRow-Sj9z7O1v{justify-content:flex-start;padding-left:20px}.calendar-PM3TZruR{margin-left:8px;margin-right:8px;padding-bottom:15px;padding-top:1px}.dialogWrapper-P_IVoUsZ{min-width:302px}.dialogWrapperSmall-P_IVoUsZ{max-width:419px;width:100%}.tabs-P_IVoUsZ{--ui-lib-underline-tabs-hor-padding:20px;padding:0 var(--ui-lib-underline-tabs-hor-padding)}.content-P_IVoUsZ{overflow:auto;padding-top:17px;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .content-P_IVoUsZ{scrollbar-color:#363a45 #0000}.content-P_IVoUsZ::-webkit-scrollbar{height:5px;width:5px}.content-P_IVoUsZ::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .content-P_IVoUsZ::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.content-P_IVoUsZ::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.content-P_IVoUsZ::-webkit-scrollbar-corner{display:none}.contentMobile-P_IVoUsZ{display:flex;flex-direction:column;flex-grow:1}.bodyWrapper-P_IVoUsZ{flex:0 1 201px} -------------------------------------------------------------------------------- /public/charting_library/bundles/2260.b98824e4829a1aa9b444.rtl.css: -------------------------------------------------------------------------------- 1 | .row-Sj9z7O1v{grid-gap:12px;display:grid;grid-template-columns:150px 100px;margin-bottom:16px;padding-left:20px;padding-right:20px}.mobileRow-Sj9z7O1v{justify-content:flex-start;padding-right:20px}.calendar-PM3TZruR{margin-left:8px;margin-right:8px;padding-bottom:15px;padding-top:1px}.dialogWrapper-P_IVoUsZ{min-width:302px}.dialogWrapperSmall-P_IVoUsZ{max-width:419px;width:100%}.tabs-P_IVoUsZ{--ui-lib-underline-tabs-hor-padding:20px;padding:0 var(--ui-lib-underline-tabs-hor-padding)}.content-P_IVoUsZ{overflow:auto;padding-top:17px;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .content-P_IVoUsZ{scrollbar-color:#363a45 #0000}.content-P_IVoUsZ::-webkit-scrollbar{height:5px;width:5px}.content-P_IVoUsZ::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .content-P_IVoUsZ::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.content-P_IVoUsZ::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.content-P_IVoUsZ::-webkit-scrollbar-corner{display:none}.contentMobile-P_IVoUsZ{display:flex;flex-direction:column;flex-grow:1}.bodyWrapper-P_IVoUsZ{flex:0 1 201px} -------------------------------------------------------------------------------- /public/charting_library/bundles/2587.1403c0d79d2217a73053.css: -------------------------------------------------------------------------------- 1 | .container-qm7Rg5MB{align-items:center;border-bottom:1px solid #e0e3eb;border-color:#e0e3eb currentcolor;border-top:1px solid #e0e3eb;cursor:default;display:flex;flex-shrink:0;position:relative}html.theme-dark .container-qm7Rg5MB{border-color:#434651}.inputContainer-qm7Rg5MB{height:24px;padding:8px 16px 8px 47px;width:100%}.inputContainer-qm7Rg5MB.withCancel-qm7Rg5MB{padding-right:70px}.input-qm7Rg5MB{background-color:initial;border:none;color:#131722;font-size:16px;height:100%;margin:0;padding:0;width:100%}html.theme-dark .input-qm7Rg5MB{color:#a3a6af}.input-qm7Rg5MB::placeholder{color:#a3a6af;font-weight:400}html.theme-dark .input-qm7Rg5MB::placeholder{color:#434651}.icon-qm7Rg5MB{color:#a3a6af;height:18px;left:20px;pointer-events:none;position:absolute;top:calc(50% - 9px)}.cancel-qm7Rg5MB{color:#787b86;position:absolute;right:20px}.highlighted-cwp8YRo6,html.theme-dark .highlighted-cwp8YRo6{color:#2962ff} -------------------------------------------------------------------------------- /public/charting_library/bundles/2587.1403c0d79d2217a73053.rtl.css: -------------------------------------------------------------------------------- 1 | .container-qm7Rg5MB{align-items:center;border-bottom:1px solid #e0e3eb;border-color:#e0e3eb currentcolor;border-top:1px solid #e0e3eb;cursor:default;display:flex;flex-shrink:0;position:relative}html.theme-dark .container-qm7Rg5MB{border-color:#434651}.inputContainer-qm7Rg5MB{height:24px;padding:8px 47px 8px 16px;width:100%}.inputContainer-qm7Rg5MB.withCancel-qm7Rg5MB{padding-left:70px}.input-qm7Rg5MB{background-color:initial;border:none;color:#131722;font-size:16px;height:100%;margin:0;padding:0;width:100%}html.theme-dark .input-qm7Rg5MB{color:#a3a6af}.input-qm7Rg5MB::placeholder{color:#a3a6af;font-weight:400}html.theme-dark .input-qm7Rg5MB::placeholder{color:#434651}.icon-qm7Rg5MB{color:#a3a6af;height:18px;pointer-events:none;position:absolute;right:20px;top:calc(50% - 9px)}.cancel-qm7Rg5MB{color:#787b86;left:20px;position:absolute}.highlighted-cwp8YRo6,html.theme-dark .highlighted-cwp8YRo6{color:#2962ff} -------------------------------------------------------------------------------- /public/charting_library/bundles/2666.fbb750fd312778403036.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/charting_library/bundles/2666.fbb750fd312778403036.css -------------------------------------------------------------------------------- /public/charting_library/bundles/2666.fbb750fd312778403036.rtl.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/charting_library/bundles/2666.fbb750fd312778403036.rtl.css -------------------------------------------------------------------------------- /public/charting_library/bundles/2676.2d3cabbd39a3b0d6e9ea.css: -------------------------------------------------------------------------------- 1 | .scrollable-uT4IUFMG{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-uT4IUFMG{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-uT4IUFMG{min-height:auto}}.scrollable-uT4IUFMG::-webkit-scrollbar{height:5px;width:5px}.scrollable-uT4IUFMG::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-uT4IUFMG::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-uT4IUFMG::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-uT4IUFMG::-webkit-scrollbar-corner{display:none}.content-uT4IUFMG{border-color:currentcolor #e0e3eb #e0e3eb;border-top:1px solid #e0e3eb;box-sizing:border-box;flex:1 1 auto;padding:24px 20px}html.theme-dark .content-uT4IUFMG{border-color:#434651}.content-uT4IUFMG .row-uT4IUFMG{align-items:center;color:#131722;display:flex;margin-top:16px}html.theme-dark .content-uT4IUFMG .row-uT4IUFMG{color:#d1d4dc}.content-uT4IUFMG .row-uT4IUFMG:first-child{margin-top:0}.content-uT4IUFMG .row-uT4IUFMG .title-uT4IUFMG{display:flex;flex:none;line-height:21px;margin-right:20px;width:80px;word-break:break-word}.content-uT4IUFMG .row-uT4IUFMG .control-uT4IUFMG{line-height:21px;width:100px} -------------------------------------------------------------------------------- /public/charting_library/bundles/2676.2d3cabbd39a3b0d6e9ea.rtl.css: -------------------------------------------------------------------------------- 1 | .scrollable-uT4IUFMG{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-uT4IUFMG{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-uT4IUFMG{min-height:auto}}.scrollable-uT4IUFMG::-webkit-scrollbar{height:5px;width:5px}.scrollable-uT4IUFMG::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-uT4IUFMG::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-uT4IUFMG::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-uT4IUFMG::-webkit-scrollbar-corner{display:none}.content-uT4IUFMG{border-color:currentcolor #e0e3eb #e0e3eb;border-top:1px solid #e0e3eb;box-sizing:border-box;flex:1 1 auto;padding:24px 20px}html.theme-dark .content-uT4IUFMG{border-color:#434651}.content-uT4IUFMG .row-uT4IUFMG{align-items:center;color:#131722;display:flex;margin-top:16px}html.theme-dark .content-uT4IUFMG .row-uT4IUFMG{color:#d1d4dc}.content-uT4IUFMG .row-uT4IUFMG:first-child{margin-top:0}.content-uT4IUFMG .row-uT4IUFMG .title-uT4IUFMG{display:flex;flex:none;line-height:21px;margin-left:20px;width:80px;word-break:break-word}.content-uT4IUFMG .row-uT4IUFMG .control-uT4IUFMG{line-height:21px;width:100px} -------------------------------------------------------------------------------- /public/charting_library/bundles/3842.6a8a7842ee841f6d2cff.css: -------------------------------------------------------------------------------- 1 | .menuWrap-Kq3ruQo8{background-color:var(--tv-color-popup-background,#fff);border-radius:3px;box-shadow:0 2px 4px #0003;box-sizing:border-box;text-align:left;-webkit-user-select:none;user-select:none;z-index:100}html.theme-dark .menuWrap-Kq3ruQo8{background-color:var(--tv-color-popup-background,#1e222d);box-shadow:0 2px 4px #0006}.menuWrap-Kq3ruQo8.isMeasuring-Kq3ruQo8{opacity:0;pointer-events:none;position:fixed;visibility:hidden}.menuWrap-Kq3ruQo8:focus{outline:none}.scrollWrap-Kq3ruQo8{height:100%;overflow-x:hidden;overflow-y:auto}.scrollWrap-Kq3ruQo8.momentumBased-Kq3ruQo8{-webkit-overflow-scrolling:touch}.scrollWrap-Kq3ruQo8::-webkit-scrollbar{height:5px;width:5px}.scrollWrap-Kq3ruQo8::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollWrap-Kq3ruQo8::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollWrap-Kq3ruQo8::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollWrap-Kq3ruQo8::-webkit-scrollbar-corner{display:none}.menuBox-Kq3ruQo8{padding:6px 0}.isHidden-Kq3ruQo8{display:none} -------------------------------------------------------------------------------- /public/charting_library/bundles/3842.6a8a7842ee841f6d2cff.rtl.css: -------------------------------------------------------------------------------- 1 | .menuWrap-Kq3ruQo8{background-color:var(--tv-color-popup-background,#fff);border-radius:3px;box-shadow:0 2px 4px #0003;box-sizing:border-box;text-align:right;-webkit-user-select:none;user-select:none;z-index:100}html.theme-dark .menuWrap-Kq3ruQo8{background-color:var(--tv-color-popup-background,#1e222d);box-shadow:0 2px 4px #0006}.menuWrap-Kq3ruQo8.isMeasuring-Kq3ruQo8{opacity:0;pointer-events:none;position:fixed;visibility:hidden}.menuWrap-Kq3ruQo8:focus{outline:none}.scrollWrap-Kq3ruQo8{height:100%;overflow-x:hidden;overflow-y:auto}.scrollWrap-Kq3ruQo8.momentumBased-Kq3ruQo8{-webkit-overflow-scrolling:touch}.scrollWrap-Kq3ruQo8::-webkit-scrollbar{height:5px;width:5px}.scrollWrap-Kq3ruQo8::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollWrap-Kq3ruQo8::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollWrap-Kq3ruQo8::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollWrap-Kq3ruQo8::-webkit-scrollbar-corner{display:none}.menuBox-Kq3ruQo8{padding:6px 0}.isHidden-Kq3ruQo8{display:none} -------------------------------------------------------------------------------- /public/charting_library/bundles/4215.d24836a292b1969ab4bb.css: -------------------------------------------------------------------------------- 1 | .footer-PhMf7PhQ{border-top:1px solid #e0e3eb;display:flex;flex:0 0 auto;padding:16px 20px}html.theme-dark .footer-PhMf7PhQ{border-top:1px solid #434651}@media screen and (max-height:360px){.footer-PhMf7PhQ{padding:10px 20px}}.footer-PhMf7PhQ .submitButton-PhMf7PhQ{padding-left:12px}.footer-PhMf7PhQ .buttons-PhMf7PhQ{margin-left:auto} -------------------------------------------------------------------------------- /public/charting_library/bundles/4215.d24836a292b1969ab4bb.rtl.css: -------------------------------------------------------------------------------- 1 | .footer-PhMf7PhQ{border-top:1px solid #e0e3eb;display:flex;flex:0 0 auto;padding:16px 20px}html.theme-dark .footer-PhMf7PhQ{border-top:1px solid #434651}@media screen and (max-height:360px){.footer-PhMf7PhQ{padding:10px 20px}}.footer-PhMf7PhQ .submitButton-PhMf7PhQ{padding-right:12px}.footer-PhMf7PhQ .buttons-PhMf7PhQ{margin-right:auto} -------------------------------------------------------------------------------- /public/charting_library/bundles/5145.a2b224fd27ab2941c565.css: -------------------------------------------------------------------------------- 1 | .separator-Pf4rIzEt{background-color:#e0e3eb;height:1px;margin:8px 0}html.theme-dark .separator-Pf4rIzEt{background-color:#434651} -------------------------------------------------------------------------------- /public/charting_library/bundles/5145.a2b224fd27ab2941c565.rtl.css: -------------------------------------------------------------------------------- 1 | .separator-Pf4rIzEt{background-color:#e0e3eb;height:1px;margin:8px 0}html.theme-dark .separator-Pf4rIzEt{background-color:#434651} -------------------------------------------------------------------------------- /public/charting_library/bundles/5649.b60ed09c5ea8c55827d4.css: -------------------------------------------------------------------------------- 1 | .wrap-_HnK0UIN{bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:0}.wrap-_HnK0UIN.positionBottom-_HnK0UIN{align-items:flex-end}.backdrop-_HnK0UIN{background-color:#9598a1;bottom:0;left:0;opacity:.7;position:absolute;right:0;top:0;transform:translateZ(0)}html.theme-dark .backdrop-_HnK0UIN{background-color:#0c0e15}.drawer-_HnK0UIN{-webkit-overflow-scrolling:touch;background-color:var(--tv-color-popup-background,#fff);box-shadow:0 2px 4px #0003;box-sizing:border-box;padding:6px 0;z-index:1}html.theme-dark .drawer-_HnK0UIN{background-color:var(--tv-color-popup-background,#1e222d);box-shadow:0 2px 4px #0006}.drawer-_HnK0UIN.positionLeft-_HnK0UIN{margin-right:40px;max-width:calc(100% - 40px);min-width:260px}.drawer-_HnK0UIN.positionBottom-_HnK0UIN{border-top-left-radius:6px;border-top-right-radius:6px;flex-basis:100%;margin-top:var(--drawer-margin-top-distance,100px);max-height:calc(100% - var(--drawer-min-top-distance, 100px));overflow:auto}.drawer-_HnK0UIN:focus{outline:none} -------------------------------------------------------------------------------- /public/charting_library/bundles/5649.b60ed09c5ea8c55827d4.rtl.css: -------------------------------------------------------------------------------- 1 | .wrap-_HnK0UIN{bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:0}.wrap-_HnK0UIN.positionBottom-_HnK0UIN{align-items:flex-end}.backdrop-_HnK0UIN{background-color:#9598a1;bottom:0;left:0;opacity:.7;position:absolute;right:0;top:0;transform:translateZ(0)}html.theme-dark .backdrop-_HnK0UIN{background-color:#0c0e15}.drawer-_HnK0UIN{-webkit-overflow-scrolling:touch;background-color:var(--tv-color-popup-background,#fff);box-shadow:0 2px 4px #0003;box-sizing:border-box;padding:6px 0;z-index:1}html.theme-dark .drawer-_HnK0UIN{background-color:var(--tv-color-popup-background,#1e222d);box-shadow:0 2px 4px #0006}.drawer-_HnK0UIN.positionLeft-_HnK0UIN{margin-left:40px;max-width:calc(100% - 40px);min-width:260px}.drawer-_HnK0UIN.positionBottom-_HnK0UIN{border-top-left-radius:6px;border-top-right-radius:6px;flex-basis:100%;margin-top:var(--drawer-margin-top-distance,100px);max-height:calc(100% - var(--drawer-min-top-distance, 100px));overflow:auto}.drawer-_HnK0UIN:focus{outline:none} -------------------------------------------------------------------------------- /public/charting_library/bundles/5866.c89b7fc29afe92efc1f3.css: -------------------------------------------------------------------------------- 1 | .errorCard-S9sXvhAu{align-items:center;background:var(--backgroundColor,#fff);color:var(--textColor,#434651);display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}html.theme-dark .errorCard-S9sXvhAu{background:var(--backgroundColor,#131722);color:var(--textColor,#9598a1)}.errorCard__icon-S9sXvhAu{margin-bottom:12px}.errorCard_size_big-S9sXvhAu .errorCard__icon-S9sXvhAu{margin-bottom:21px}.errorCard__message-S9sXvhAu{font-size:14px;line-height:22px;text-align:center}.errorCard_size_big-S9sXvhAu .errorCard__message-S9sXvhAu{font-size:18px;line-height:28px}.errorCard_limitWidth-S9sXvhAu .errorCard__message-S9sXvhAu{max-width:350px}.errorCard__link-S9sXvhAu{fill:#2962ff;color:#2962ff;cursor:pointer;line-height:28px}.errorCard__link-S9sXvhAu:visited,html.theme-dark .errorCard__link-S9sXvhAu{fill:#2962ff;color:#2962ff}html.theme-dark .errorCard__link-S9sXvhAu:visited{fill:#2962ff;color:#2962ff}@media (any-hover:hover){.errorCard__link-S9sXvhAu:hover{fill:#1e53e5;color:#1e53e5}html.theme-dark .errorCard__link-S9sXvhAu:hover{fill:#1e53e5;color:#1e53e5}}.errorCard__link-S9sXvhAu:active{fill:#1848cc;color:#1848cc}html.theme-dark .errorCard__link-S9sXvhAu:active{fill:#1848cc;color:#1848cc}.errorCard__link-S9sXvhAu:focus{outline:auto}.errorCard__link-S9sXvhAu:focus-visible{outline:auto}.errorCard__link-S9sXvhAu:focus:not(:focus-visible){outline:none}.errorCardRendererContainer-S9sXvhAu{--backgroundColor:initial;--textColor:initial;cursor:default;height:100%;position:absolute;width:100%}.errorCardRendererContainer-S9sXvhAu:empty{visibility:hidden} -------------------------------------------------------------------------------- /public/charting_library/bundles/5866.c89b7fc29afe92efc1f3.rtl.css: -------------------------------------------------------------------------------- 1 | .errorCard-S9sXvhAu{align-items:center;background:var(--backgroundColor,#fff);color:var(--textColor,#434651);display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}html.theme-dark .errorCard-S9sXvhAu{background:var(--backgroundColor,#131722);color:var(--textColor,#9598a1)}.errorCard__icon-S9sXvhAu{margin-bottom:12px}.errorCard_size_big-S9sXvhAu .errorCard__icon-S9sXvhAu{margin-bottom:21px}.errorCard__message-S9sXvhAu{font-size:14px;line-height:22px;text-align:center}.errorCard_size_big-S9sXvhAu .errorCard__message-S9sXvhAu{font-size:18px;line-height:28px}.errorCard_limitWidth-S9sXvhAu .errorCard__message-S9sXvhAu{max-width:350px}.errorCard__link-S9sXvhAu{fill:#2962ff;color:#2962ff;cursor:pointer;line-height:28px}.errorCard__link-S9sXvhAu:visited,html.theme-dark .errorCard__link-S9sXvhAu{fill:#2962ff;color:#2962ff}html.theme-dark .errorCard__link-S9sXvhAu:visited{fill:#2962ff;color:#2962ff}@media (any-hover:hover){.errorCard__link-S9sXvhAu:hover{fill:#1e53e5;color:#1e53e5}html.theme-dark .errorCard__link-S9sXvhAu:hover{fill:#1e53e5;color:#1e53e5}}.errorCard__link-S9sXvhAu:active{fill:#1848cc;color:#1848cc}html.theme-dark .errorCard__link-S9sXvhAu:active{fill:#1848cc;color:#1848cc}.errorCard__link-S9sXvhAu:focus{outline:auto}.errorCard__link-S9sXvhAu:focus-visible{outline:auto}.errorCard__link-S9sXvhAu:focus:not(:focus-visible){outline:none}.errorCardRendererContainer-S9sXvhAu{--backgroundColor:initial;--textColor:initial;cursor:default;height:100%;position:absolute;width:100%}.errorCardRendererContainer-S9sXvhAu:empty{visibility:hidden} -------------------------------------------------------------------------------- /public/charting_library/bundles/6.362fa6a7ab1f3e3b06c4.css: -------------------------------------------------------------------------------- 1 | .icon-WB2y0EnP{align-items:center;display:flex;flex-direction:row;transition:transform .35s cubic-bezier(.175,.885,.32,1.275)}.icon-WB2y0EnP svg{fill:currentColor;display:block;height:4px;width:8px}.icon-WB2y0EnP.dropped-WB2y0EnP{transform:rotate(180deg)} -------------------------------------------------------------------------------- /public/charting_library/bundles/6.362fa6a7ab1f3e3b06c4.rtl.css: -------------------------------------------------------------------------------- 1 | .icon-WB2y0EnP{align-items:center;display:flex;flex-direction:row;transition:transform .35s cubic-bezier(.175,.885,.32,1.275)}.icon-WB2y0EnP svg{fill:currentColor;display:block;height:4px;width:8px}.icon-WB2y0EnP.dropped-WB2y0EnP{transform:rotate(-180deg)} -------------------------------------------------------------------------------- /public/charting_library/bundles/6025.263b457b1a7f9ca139b2.css: -------------------------------------------------------------------------------- 1 | .summary-ynHBVe1n{align-items:center;box-sizing:border-box;cursor:default;display:flex;flex:none;font-size:11px;letter-spacing:.4px;line-height:16px;min-width:0;padding:0 8px 0 12px;text-transform:uppercase;width:100%}.summary-ynHBVe1n,html.theme-dark .summary-ynHBVe1n{color:var(--tv-color-popup-element-secondary-text,#787b86)}.summary-ynHBVe1n.hovered-ynHBVe1n,.summary-ynHBVe1n:active{background-color:var(--tv-color-popup-element-background-hover,#f0f3fa)}@media (any-hover:hover){.summary-ynHBVe1n:hover{background-color:var(--tv-color-popup-element-background-hover,#f0f3fa)}}html.theme-dark .summary-ynHBVe1n.hovered-ynHBVe1n,html.theme-dark .summary-ynHBVe1n:active{background-color:var(--tv-color-popup-element-background-hover,#2a2e39)}@media (any-hover:hover){html.theme-dark .summary-ynHBVe1n:hover{background-color:var(--tv-color-popup-element-background-hover,#2a2e39)}}.caret-ynHBVe1n{height:18px;justify-content:center;margin:2px 0 2px auto;width:18px} -------------------------------------------------------------------------------- /public/charting_library/bundles/6025.263b457b1a7f9ca139b2.rtl.css: -------------------------------------------------------------------------------- 1 | .summary-ynHBVe1n{align-items:center;box-sizing:border-box;cursor:default;display:flex;flex:none;font-size:11px;letter-spacing:.4px;line-height:16px;min-width:0;padding:0 12px 0 8px;text-transform:uppercase;width:100%}.summary-ynHBVe1n,html.theme-dark .summary-ynHBVe1n{color:var(--tv-color-popup-element-secondary-text,#787b86)}.summary-ynHBVe1n.hovered-ynHBVe1n,.summary-ynHBVe1n:active{background-color:var(--tv-color-popup-element-background-hover,#f0f3fa)}@media (any-hover:hover){.summary-ynHBVe1n:hover{background-color:var(--tv-color-popup-element-background-hover,#f0f3fa)}}html.theme-dark .summary-ynHBVe1n.hovered-ynHBVe1n,html.theme-dark .summary-ynHBVe1n:active{background-color:var(--tv-color-popup-element-background-hover,#2a2e39)}@media (any-hover:hover){html.theme-dark .summary-ynHBVe1n:hover{background-color:var(--tv-color-popup-element-background-hover,#2a2e39)}}.caret-ynHBVe1n{height:18px;justify-content:center;margin:2px auto 2px 0;width:18px} -------------------------------------------------------------------------------- /public/charting_library/bundles/6036.069ebb4bad0f5dd27147.css: -------------------------------------------------------------------------------- 1 | .separator-QjUlCDId{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);flex-shrink:0;height:1px;margin:6px 0}html.theme-dark .separator-QjUlCDId{background-color:var(--tv-color-popup-element-divider-background,#434651)}.small-QjUlCDId{margin-bottom:4px;margin-top:4px}.normal-QjUlCDId{margin-bottom:6px;margin-top:6px}.large-QjUlCDId{margin-bottom:8px;margin-top:8px} -------------------------------------------------------------------------------- /public/charting_library/bundles/6036.069ebb4bad0f5dd27147.rtl.css: -------------------------------------------------------------------------------- 1 | .separator-QjUlCDId{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);flex-shrink:0;height:1px;margin:6px 0}html.theme-dark .separator-QjUlCDId{background-color:var(--tv-color-popup-element-divider-background,#434651)}.small-QjUlCDId{margin-bottom:4px;margin-top:4px}.normal-QjUlCDId{margin-bottom:6px;margin-top:6px}.large-QjUlCDId{margin-bottom:8px;margin-top:8px} -------------------------------------------------------------------------------- /public/charting_library/bundles/6831.ac1745947bd2665f6c9a.css: -------------------------------------------------------------------------------- 1 | .row-DFIg7eOh{vertical-align:top}.line-DFIg7eOh{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);height:1px;margin:6px 0}html.theme-dark .line-DFIg7eOh{background-color:var(--tv-color-popup-element-divider-background,#434651)}.hint-DFIg7eOh{color:#8797a5;font-size:12px;margin-left:6px;margin-top:12px;text-align:left}html.theme-dark .hint-DFIg7eOh{color:#4f5966}.separator-Ymxd0dt_{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);height:1px;margin:6px 0}html.theme-dark .separator-Ymxd0dt_{background-color:var(--tv-color-popup-element-divider-background,#434651)}.menu-Tx5xMZww{border-collapse:collapse;cursor:default;overflow:visible;-webkit-user-select:none;user-select:none;z-index:500}.loaderWrap-jGEARQlM{height:32px;margin-left:-2px;position:relative}.loaderWrap-jGEARQlM.big-jGEARQlM{min-width:100px}.loaderWrap-jGEARQlM.big-jGEARQlM .loader-jGEARQlM{position:absolute}.loader-jGEARQlM{position:static} -------------------------------------------------------------------------------- /public/charting_library/bundles/6831.ac1745947bd2665f6c9a.rtl.css: -------------------------------------------------------------------------------- 1 | .row-DFIg7eOh{vertical-align:top}.line-DFIg7eOh{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);height:1px;margin:6px 0}html.theme-dark .line-DFIg7eOh{background-color:var(--tv-color-popup-element-divider-background,#434651)}.hint-DFIg7eOh{color:#8797a5;font-size:12px;margin-right:6px;margin-top:12px;text-align:right}html.theme-dark .hint-DFIg7eOh{color:#4f5966}.separator-Ymxd0dt_{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);height:1px;margin:6px 0}html.theme-dark .separator-Ymxd0dt_{background-color:var(--tv-color-popup-element-divider-background,#434651)}.menu-Tx5xMZww{border-collapse:collapse;cursor:default;overflow:visible;-webkit-user-select:none;user-select:none;z-index:500}.loaderWrap-jGEARQlM{height:32px;margin-right:-2px;position:relative}.loaderWrap-jGEARQlM.big-jGEARQlM{min-width:100px}.loaderWrap-jGEARQlM.big-jGEARQlM .loader-jGEARQlM{position:absolute}.loader-jGEARQlM{position:static} -------------------------------------------------------------------------------- /public/charting_library/bundles/6884.bb7d30a7bbbe5af36556.css: -------------------------------------------------------------------------------- 1 | .checkbox-vyj6oJxw{-webkit-tap-highlight-color:transparent;align-items:center;cursor:default;display:inline-flex;font-size:14px;font-stretch:normal;font-style:normal;font-weight:400;letter-spacing:normal;line-height:normal;position:relative;-webkit-user-select:none;user-select:none}.checkbox-vyj6oJxw.reverse-vyj6oJxw{flex-direction:row-reverse}.checkbox-vyj6oJxw.reverse-vyj6oJxw .label-vyj6oJxw{margin-left:0;margin-right:8px}.checkbox-vyj6oJxw.baseline-vyj6oJxw{align-items:baseline}.checkbox-vyj6oJxw .label-vyj6oJxw{color:#131722;margin-left:8px;min-width:0}html.theme-dark .checkbox-vyj6oJxw .label-vyj6oJxw{color:#d1d4dc} -------------------------------------------------------------------------------- /public/charting_library/bundles/6884.bb7d30a7bbbe5af36556.rtl.css: -------------------------------------------------------------------------------- 1 | .checkbox-vyj6oJxw{-webkit-tap-highlight-color:transparent;align-items:center;cursor:default;display:inline-flex;font-size:14px;font-stretch:normal;font-style:normal;font-weight:400;letter-spacing:normal;line-height:normal;position:relative;-webkit-user-select:none;user-select:none}.checkbox-vyj6oJxw.reverse-vyj6oJxw{flex-direction:row-reverse}.checkbox-vyj6oJxw.reverse-vyj6oJxw .label-vyj6oJxw{margin-left:8px;margin-right:0}.checkbox-vyj6oJxw.baseline-vyj6oJxw{align-items:baseline}.checkbox-vyj6oJxw .label-vyj6oJxw{color:#131722;margin-right:8px;min-width:0}html.theme-dark .checkbox-vyj6oJxw .label-vyj6oJxw{color:#d1d4dc} -------------------------------------------------------------------------------- /public/charting_library/bundles/6949.6b6148a8f15c8898c9e9.css: -------------------------------------------------------------------------------- 1 | .footer-dwINHZFL{align-items:center;background-color:#f8f9fd;border-radius:0 0 6px 6px;box-sizing:border-box;color:#787b86;cursor:default;display:flex;flex:0 0 auto;font-size:13px;justify-content:center;line-height:17px;max-height:65px;min-height:40px;padding:9px 20px;text-align:center}html.theme-dark .footer-dwINHZFL{background-color:#2a2e39} -------------------------------------------------------------------------------- /public/charting_library/bundles/6949.6b6148a8f15c8898c9e9.rtl.css: -------------------------------------------------------------------------------- 1 | .footer-dwINHZFL{align-items:center;background-color:#f8f9fd;border-radius:0 0 6px 6px;box-sizing:border-box;color:#787b86;cursor:default;display:flex;flex:0 0 auto;font-size:13px;justify-content:center;line-height:17px;max-height:65px;min-height:40px;padding:9px 20px;text-align:center}html.theme-dark .footer-dwINHZFL{background-color:#2a2e39} -------------------------------------------------------------------------------- /public/charting_library/bundles/7194.e04f69c8933166966874.css: -------------------------------------------------------------------------------- 1 | .button-PYEOTd6i{align-items:center;background-color:initial;border:none;border-radius:4px;box-sizing:border-box;cursor:default;display:flex;flex:none;height:100%;justify-content:center;margin:0;outline:none!important;padding:0;width:20px}.button-PYEOTd6i:hover:not(.disabled-PYEOTd6i){background-color:#f0f3fa}html.theme-dark .button-PYEOTd6i:hover:not(.disabled-PYEOTd6i){background-color:#363a45}.button-PYEOTd6i.hidden-PYEOTd6i{display:none}.icon-PYEOTd6i{align-items:center;display:flex;flex:none;justify-content:center;transition:transform .35s ease}.icon-PYEOTd6i.dropped-PYEOTd6i{transform:rotate(180deg)}.button-tFul0OhX{cursor:default;-webkit-user-select:none;user-select:none}.button-children-tFul0OhX{display:block;overflow:hidden;padding:0 2px 0 6px;text-overflow:ellipsis;white-space:nowrap;width:100%}.button-children-tFul0OhX.hiddenArrow-tFul0OhX{padding-right:6px}.invisibleFocusHandler-tFul0OhX{height:0;opacity:0;pointer-events:none;width:0}.placeholder-V6ceS6BN{-webkit-text-fill-color:currentColor;color:#a3a6af;opacity:1}html.theme-dark .placeholder-V6ceS6BN{color:#434651} -------------------------------------------------------------------------------- /public/charting_library/bundles/7194.e04f69c8933166966874.rtl.css: -------------------------------------------------------------------------------- 1 | .button-PYEOTd6i{align-items:center;background-color:initial;border:none;border-radius:4px;box-sizing:border-box;cursor:default;display:flex;flex:none;height:100%;justify-content:center;margin:0;outline:none!important;padding:0;width:20px}.button-PYEOTd6i:hover:not(.disabled-PYEOTd6i){background-color:#f0f3fa}html.theme-dark .button-PYEOTd6i:hover:not(.disabled-PYEOTd6i){background-color:#363a45}.button-PYEOTd6i.hidden-PYEOTd6i{display:none}.icon-PYEOTd6i{align-items:center;display:flex;flex:none;justify-content:center;transition:transform .35s ease}.icon-PYEOTd6i.dropped-PYEOTd6i{transform:rotate(-180deg)}.button-tFul0OhX{cursor:default;-webkit-user-select:none;user-select:none}.button-children-tFul0OhX{display:block;overflow:hidden;padding:0 6px 0 2px;text-overflow:ellipsis;white-space:nowrap;width:100%}.button-children-tFul0OhX.hiddenArrow-tFul0OhX{padding-left:6px}.invisibleFocusHandler-tFul0OhX{height:0;opacity:0;pointer-events:none;width:0}.placeholder-V6ceS6BN{-webkit-text-fill-color:currentColor;color:#a3a6af;opacity:1}html.theme-dark .placeholder-V6ceS6BN{color:#434651} -------------------------------------------------------------------------------- /public/charting_library/bundles/7391.9c809fa91ed0c8f75bc0.css: -------------------------------------------------------------------------------- 1 | .defaultsButtonText-zcLkuEMM{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-zcLkuEMM{color:#d1d4dc}.defaultsButtonItem-zcLkuEMM{min-width:100px}.defaultsButtonIcon-zcLkuEMM{display:flex}.themesButtonText-AeBgp7zz{color:#131722;font-size:14px;width:100px}html.theme-dark .themesButtonText-AeBgp7zz{color:#d1d4dc}.themesButtonIcon-AeBgp7zz{display:flex}.defaultsButtonText-AeBgp7zz{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-AeBgp7zz{color:#d1d4dc}.defaultsButtonItem-AeBgp7zz{min-width:100px} -------------------------------------------------------------------------------- /public/charting_library/bundles/7391.9c809fa91ed0c8f75bc0.rtl.css: -------------------------------------------------------------------------------- 1 | .defaultsButtonText-zcLkuEMM{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-zcLkuEMM{color:#d1d4dc}.defaultsButtonItem-zcLkuEMM{min-width:100px}.defaultsButtonIcon-zcLkuEMM{display:flex}.themesButtonText-AeBgp7zz{color:#131722;font-size:14px;width:100px}html.theme-dark .themesButtonText-AeBgp7zz{color:#d1d4dc}.themesButtonIcon-AeBgp7zz{display:flex}.defaultsButtonText-AeBgp7zz{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-AeBgp7zz{color:#d1d4dc}.defaultsButtonItem-AeBgp7zz{min-width:100px} -------------------------------------------------------------------------------- /public/charting_library/bundles/7413.f830ad1ad6ee6f9b1cb3.css: -------------------------------------------------------------------------------- 1 | .dialog-lmxpCvnK{display:flex;min-height:300px;min-width:380px}.dialogWrapper-lmxpCvnK{flex-grow:1}.wrap-lmxpCvnK{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto;position:relative;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .wrap-lmxpCvnK{scrollbar-color:#363a45 #0000}.wrap-lmxpCvnK::-webkit-scrollbar{height:5px;width:5px}.wrap-lmxpCvnK::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .wrap-lmxpCvnK::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.wrap-lmxpCvnK::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.wrap-lmxpCvnK::-webkit-scrollbar-corner{display:none} -------------------------------------------------------------------------------- /public/charting_library/bundles/7413.f830ad1ad6ee6f9b1cb3.rtl.css: -------------------------------------------------------------------------------- 1 | .dialog-lmxpCvnK{display:flex;min-height:300px;min-width:380px}.dialogWrapper-lmxpCvnK{flex-grow:1}.wrap-lmxpCvnK{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto;position:relative;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .wrap-lmxpCvnK{scrollbar-color:#363a45 #0000}.wrap-lmxpCvnK::-webkit-scrollbar{height:5px;width:5px}.wrap-lmxpCvnK::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .wrap-lmxpCvnK::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.wrap-lmxpCvnK::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.wrap-lmxpCvnK::-webkit-scrollbar-corner{display:none} -------------------------------------------------------------------------------- /public/charting_library/bundles/8904.a302177fe7e3ccd50cb0.css: -------------------------------------------------------------------------------- 1 | .titleWrap-e3jFxbHm{align-items:center;display:flex}.ellipsis-e3jFxbHm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hideInput-e3jFxbHm,.hideText-e3jFxbHm{height:0;visibility:hidden}.empty-e3jFxbHm{height:34px;margin-right:-3px;width:34px}.hideEmpty-e3jFxbHm{margin:0;width:0}.editIcon-e3jFxbHm{align-items:center;border-radius:2px;color:#131722;cursor:default;display:flex;flex-shrink:0;height:34px;justify-content:center;margin-left:5px;width:34px}html.theme-dark .editIcon-e3jFxbHm{color:#d1d4dc}@media (any-hover:hover){.editIcon-e3jFxbHm:hover{background-color:#f0f3fa}html.theme-dark .editIcon-e3jFxbHm:hover{background-color:#2a2e39}}.scrollable-Ycj0dUGE{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-Ycj0dUGE{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-Ycj0dUGE{min-height:auto}}.scrollable-Ycj0dUGE::-webkit-scrollbar{height:5px;width:5px}.scrollable-Ycj0dUGE::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-Ycj0dUGE::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-Ycj0dUGE::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-Ycj0dUGE::-webkit-scrollbar-corner{display:none}.tabs-Ycj0dUGE,.tabs-xNPrJ8dY{--ui-lib-underline-tabs-hor-padding:20px;padding:0 var(--ui-lib-underline-tabs-hor-padding)} -------------------------------------------------------------------------------- /public/charting_library/bundles/8904.a302177fe7e3ccd50cb0.rtl.css: -------------------------------------------------------------------------------- 1 | .titleWrap-e3jFxbHm{align-items:center;display:flex}.ellipsis-e3jFxbHm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hideInput-e3jFxbHm,.hideText-e3jFxbHm{height:0;visibility:hidden}.empty-e3jFxbHm{height:34px;margin-left:-3px;width:34px}.hideEmpty-e3jFxbHm{margin:0;width:0}.editIcon-e3jFxbHm{align-items:center;border-radius:2px;color:#131722;cursor:default;display:flex;flex-shrink:0;height:34px;justify-content:center;margin-right:5px;width:34px}html.theme-dark .editIcon-e3jFxbHm{color:#d1d4dc}@media (any-hover:hover){.editIcon-e3jFxbHm:hover{background-color:#f0f3fa}html.theme-dark .editIcon-e3jFxbHm:hover{background-color:#2a2e39}}.scrollable-Ycj0dUGE{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-Ycj0dUGE{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-Ycj0dUGE{min-height:auto}}.scrollable-Ycj0dUGE::-webkit-scrollbar{height:5px;width:5px}.scrollable-Ycj0dUGE::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-Ycj0dUGE::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-Ycj0dUGE::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-Ycj0dUGE::-webkit-scrollbar-corner{display:none}.tabs-Ycj0dUGE,.tabs-xNPrJ8dY{--ui-lib-underline-tabs-hor-padding:20px;padding:0 var(--ui-lib-underline-tabs-hor-padding)} -------------------------------------------------------------------------------- /public/charting_library/bundles/9138.c6bf63d3695b7e98a4e1.css: -------------------------------------------------------------------------------- 1 | .dialog-UGdC69sw{min-width:254px;padding:40px;width:auto}.dialogInner-UGdC69sw{align-items:center;display:flex;flex-direction:column}.titleWrapper-UGdC69sw{align-items:center;display:flex;justify-content:center;margin-bottom:16px;max-width:100%}.title-UGdC69sw{color:#131722;cursor:default;font-size:20px;font-weight:700;line-height:28px;overflow:hidden;white-space:nowrap}html.theme-dark .title-UGdC69sw{color:#d1d4dc}.infoHint-UGdC69sw{color:#787b86;height:18px;margin-left:8px;width:18px}.form-UGdC69sw{display:flex;max-width:200px;width:100%}.inputWrapper-UGdC69sw{flex-grow:1}.input-UGdC69sw{font-size:24px;text-align:center}.hint-UGdC69sw{color:#787b86;cursor:default;font-size:12px;line-height:18px;margin-top:3px;max-width:100%;overflow:hidden;white-space:nowrap}.error-UGdC69sw{color:#f23645} -------------------------------------------------------------------------------- /public/charting_library/bundles/9138.c6bf63d3695b7e98a4e1.rtl.css: -------------------------------------------------------------------------------- 1 | .dialog-UGdC69sw{min-width:254px;padding:40px;width:auto}.dialogInner-UGdC69sw{align-items:center;display:flex;flex-direction:column}.titleWrapper-UGdC69sw{align-items:center;display:flex;justify-content:center;margin-bottom:16px;max-width:100%}.title-UGdC69sw{color:#131722;cursor:default;font-size:20px;font-weight:700;line-height:28px;overflow:hidden;white-space:nowrap}html.theme-dark .title-UGdC69sw{color:#d1d4dc}.infoHint-UGdC69sw{color:#787b86;height:18px;margin-right:8px;width:18px}.form-UGdC69sw{display:flex;max-width:200px;width:100%}.inputWrapper-UGdC69sw{flex-grow:1}.input-UGdC69sw{font-size:24px;text-align:center}.hint-UGdC69sw{color:#787b86;cursor:default;font-size:12px;line-height:18px;margin-top:3px;max-width:100%;overflow:hidden;white-space:nowrap}.error-UGdC69sw{color:#f23645} -------------------------------------------------------------------------------- /public/charting_library/bundles/9789.cb5ad20bc727d3820b6c.css: -------------------------------------------------------------------------------- 1 | .tooltip-eSLcXvvL{background:#fff;border-radius:8px;cursor:default;filter:drop-shadow(0 1px 4px rgba(0,0,0,.2));position:absolute;visibility:hidden;z-index:7}html.theme-dark .tooltip-eSLcXvvL{background:#1e222d}.tooltip-eSLcXvvL.show-eSLcXvvL{visibility:unset}html.theme-dark .tooltip-eSLcXvvL{filter:drop-shadow(0 1px 4px rgba(0,0,0,.4))}.tooltip-eSLcXvvL:after,.tooltip-eSLcXvvL:before{border:10px solid #0000;content:" ";height:0;margin-top:-10px;pointer-events:none;position:absolute;top:50%;width:0}.tooltip-eSLcXvvL:not(.right-eSLcXvvL):after{border-color:#0000 #0000 #0000 #fff;border-left-width:13px;left:100%}html.theme-dark .tooltip-eSLcXvvL:not(.right-eSLcXvvL):after{border-left-color:#1e222d}.tooltip-eSLcXvvL.right-eSLcXvvL:before{border-color:#0000 #fff #0000 #0000;border-right-width:13px;right:100%}html.theme-dark .tooltip-eSLcXvvL.right-eSLcXvvL:before{border-right-color:#1e222d}.text-hF57_4zZ{font-feature-settings:"tnum" on,"lnum" on;color:#131722;font-family:-apple-system,BlinkMacSystemFont,Trebuchet MS,Roboto,Ubuntu,sans-serif;font-size:14px;line-height:18px;max-width:244px;min-width:25px;padding:12px}html.theme-dark .text-hF57_4zZ{color:#d1d4dc} -------------------------------------------------------------------------------- /public/charting_library/bundles/9789.cb5ad20bc727d3820b6c.rtl.css: -------------------------------------------------------------------------------- 1 | .tooltip-eSLcXvvL{background:#fff;border-radius:8px;cursor:default;filter:drop-shadow(0 1px 4px rgba(0,0,0,.2));position:absolute;visibility:hidden;z-index:7}html.theme-dark .tooltip-eSLcXvvL{background:#1e222d}.tooltip-eSLcXvvL.show-eSLcXvvL{visibility:unset}html.theme-dark .tooltip-eSLcXvvL{filter:drop-shadow(0 1px 4px rgba(0,0,0,.4))}.tooltip-eSLcXvvL:after,.tooltip-eSLcXvvL:before{border:10px solid #0000;content:" ";height:0;margin-top:-10px;pointer-events:none;position:absolute;top:50%;width:0}.tooltip-eSLcXvvL:not(.right-eSLcXvvL):after{border-color:#0000 #fff #0000 #0000;border-right-width:13px;right:100%}html.theme-dark .tooltip-eSLcXvvL:not(.right-eSLcXvvL):after{border-right-color:#1e222d}.tooltip-eSLcXvvL.right-eSLcXvvL:before{border-color:#0000 #0000 #0000 #fff;border-left-width:13px;left:100%}html.theme-dark .tooltip-eSLcXvvL.right-eSLcXvvL:before{border-left-color:#1e222d}.text-hF57_4zZ{font-feature-settings:"tnum" on,"lnum" on;color:#131722;font-family:-apple-system,BlinkMacSystemFont,Trebuchet MS,Roboto,Ubuntu,sans-serif;font-size:14px;line-height:18px;max-width:244px;min-width:25px;padding:12px}html.theme-dark .text-hF57_4zZ{color:#d1d4dc} -------------------------------------------------------------------------------- /public/charting_library/bundles/EuclidCircular.be8f862db48c2976009f.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/charting_library/bundles/EuclidCircular.be8f862db48c2976009f.woff2 -------------------------------------------------------------------------------- /public/charting_library/bundles/dot.3d617b6b01edba83a7f4.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/charting_library/bundles/dot.3d617b6b01edba83a7f4.cur -------------------------------------------------------------------------------- /public/charting_library/bundles/eraser.c80610a04a92d2465b03.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/charting_library/bundles/eraser.c80610a04a92d2465b03.cur -------------------------------------------------------------------------------- /public/charting_library/bundles/favorite-drawings-api.685c412f518848b85b89.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[5551],{71355:(i,t,e)=>{e.r(t),e.d(t,{FavoriteDrawingsApi:()=>n});var s=e(50151),o=e(58275),a=e.n(o),l=e(241);class n{constructor(){this._visibility=new(a())(!1),this._canBeShownValue=new(a())(!1),this._toolbarPromise=null,this._toolbar=null,this._init()}visible(){return this._visibility.readonly()}canBeShown(){return this._canBeShownValue.readonly()}show(){(0,s.ensureNotNull)(this._toolbarPromise).then((i=>{i.showAndSaveSettingsValue()}))}hide(){null!==this._toolbarPromise&&this._toolbarPromise.then((i=>{i.hideAndSaveSettingsValue()}))}_init(){(0,l.createFavoriteDrawingToolbar)();const i=(0,s.ensureNotNull)((0,l.getFavoriteDrawingToolbarPromise)());this._toolbarPromise=i.then((i=>(this._toolbar=i,this._visibility.setValue(this._toolbar.visibility().value()),this._canBeShownValue.setValue(this._toolbar.canBeShown().value()),this._toolbar.visibility().subscribe((i=>{this._visibility.setValue(i)})),this._toolbar.canBeShown().subscribe((i=>{this._canBeShownValue.setValue(i)})),this._toolbar)))}}}}]); -------------------------------------------------------------------------------- /public/charting_library/bundles/hammerjs.6e30e0c48af40bf2f6c0.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[2377],{13367:(e,a,r)=>{r.r(a),r.d(a,{HammerJS:()=>n.a});var i=r(11553),n=r.n(i)}}]); -------------------------------------------------------------------------------- /public/charting_library/bundles/icons.4d39018d0766cf7006bc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/charting_library/bundles/icons.4d39018d0766cf7006bc.png -------------------------------------------------------------------------------- /public/charting_library/bundles/large-slider-handle.18e9ee5923db4eac2c43.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/charting_library/bundles/linewidth-slider.8e3d0520d28ce8259ccf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/charting_library/bundles/linewidth-slider.8e3d0520d28ce8259ccf.png -------------------------------------------------------------------------------- /public/charting_library/bundles/manage-drawings-dialog.3f5b604134bebba28c6c.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[1702],{95002:e=>{e.exports={dialog:"dialog-lmxpCvnK",dialogWrapper:"dialogWrapper-lmxpCvnK",wrap:"wrap-lmxpCvnK"}},41662:(e,t,i)=>{"use strict";i.r(t),i.d(t,{ManageDrawingsDialogRenderer:()=>c});var s=i(50959),a=i(962),n=i(44352),r=i(16216),l=i(98310),o=i(35057),d=i(23263),h=i(95002);class p extends s.PureComponent{constructor(e){super(e),this._dialogRef=s.createRef(),this._renderChildren=e=>s.createElement("div",{className:h.wrap},s.createElement(d.ManageDrawings,{onInitialized:e.centerAndFit,chartWidget:this._activeChartWidget}));const t=(0,r.service)(l.CHART_WIDGET_COLLECTION_SERVICE);this._activeChartWidget=t.activeChartWidget.value(),this.state={layoutName:t.metaInfo.name.value()}}render(){return s.createElement(o.AdaptivePopupDialog,{wrapperClassName:h.dialogWrapper,className:h.dialog,dataName:"manage-drawings-dialog",isOpened:!0,onClickOutside:this.props.onClose,onClose:this.props.onClose,ref:this._dialogRef,render:this._renderChildren,showSeparator:!0,title:n.t(null,void 0,i(72357)),subtitle:this.state.layoutName})}}class c{constructor(e){this._container=document.createElement("div"),this._isVisible=!1,this._handleClose=()=>{this._onClose&&this._onClose(),a.unmountComponentAtNode(this._container),this._isVisible=!1},this._onClose=e}hide(){this._handleClose()}isVisible(){return this._isVisible}show(){a.render(s.createElement(p,{onClose:this._handleClose}),this._container),this._isVisible=!0}}}}]); -------------------------------------------------------------------------------- /public/charting_library/bundles/opacity-pattern.4d8fbb552dde3db26f4a.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/charting_library/bundles/opacity-slider.4f3ca6b00b45fd71da5f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/charting_library/bundles/opacity-slider.4f3ca6b00b45fd71da5f.png -------------------------------------------------------------------------------- /public/charting_library/bundles/prediction-clock-white.c4675d37769f1df4c9ec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/charting_library/bundles/prediction-clock-white.c4675d37769f1df4c9ec.png -------------------------------------------------------------------------------- /public/charting_library/bundles/prediction-failure-white.a838a6689f951970e715.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/charting_library/bundles/prediction-failure-white.a838a6689f951970e715.png -------------------------------------------------------------------------------- /public/charting_library/bundles/prediction-success-white.2fb9966b4c0f3529a2ea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/charting_library/bundles/prediction-success-white.2fb9966b4c0f3529a2ea.png -------------------------------------------------------------------------------- /public/charting_library/bundles/share-chart-to-social-utils.d7331dbca4a2aa0909e7.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[4665],{65692:(t,n,e)=>{var o;e.r(n),e.d(n,{Twitter:()=>o}),function(t){function n(t,n){return"cme"===TradingView.widgetCustomer?n+" from cmegroup.com via @tradingview $"+t:`Check out my #${t} analysis on @TradingView: ${n}`}function e(t="about:blank",n="snapshot_tweet"){const e=Math.round(screen.width/2-275),o=Math.round(screen.height/2-210);return window.open(t,n,`scrollbars=yes,resizable=yes,toolbar=no,location=yes,\n\t\t\t\twidth=550,height=420,\n\t\t\t\tleft=${e},top=${o}`)}t.getStatus=n,t.shareSnapshot=function(t){const o=e();return{onFailure:()=>{o.close()},onSuccess:e=>{o.location.href=function(t,e){return"https://twitter.com/intent/tweet?&text="+encodeURIComponent(n(t,function(t){return window.location.protocol+"//"+window.location.host+"/x/"+t+"/"}(e)))}(t,e)}}},t.shareSnapshotInstantly=function(t,o){e(function(t,e){return"https://twitter.com/intent/tweet?&text="+encodeURIComponent(n(t,e))}(t,o))}}(o||(o={}))}}]); -------------------------------------------------------------------------------- /public/charting_library/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "description": "CL v25.000 (internal id 1394882f @ 2023-05-22T15:05:42.670Z)", 4 | "type": "module", 5 | "main": "charting_library.cjs.js", 6 | "module": "charting_library.esm.js", 7 | "types": "charting_library.d.ts" 8 | } 9 | -------------------------------------------------------------------------------- /public/datafeeds/README.md: -------------------------------------------------------------------------------- 1 | # Charting Library Datafeeds 2 | 3 | This folder contains implementation of Charting Library Datafeeds. 4 | -------------------------------------------------------------------------------- /public/datafeeds/udf/.gitignore: -------------------------------------------------------------------------------- 1 | !types.d.ts 2 | -------------------------------------------------------------------------------- /public/datafeeds/udf/.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=false 2 | audit=false 3 | -------------------------------------------------------------------------------- /public/datafeeds/udf/lib/helpers.js: -------------------------------------------------------------------------------- 1 | /** 2 | * If you want to enable logs from datafeed set it to `true` 3 | */ 4 | const isLoggingEnabled = false; 5 | export function logMessage(message) { 6 | if (isLoggingEnabled) { 7 | const now = new Date(); 8 | // tslint:disable-next-line:no-console 9 | console.log(`${now.toLocaleTimeString()}.${now.getMilliseconds()}> ${message}`); 10 | } 11 | } 12 | export function getErrorMessage(error) { 13 | if (error === undefined) { 14 | return ''; 15 | } 16 | else if (typeof error === 'string') { 17 | return error; 18 | } 19 | return error.message; 20 | } 21 | -------------------------------------------------------------------------------- /public/datafeeds/udf/lib/iquotes-provider.js: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /public/datafeeds/udf/lib/quotes-provider.js: -------------------------------------------------------------------------------- 1 | import { getErrorMessage, logMessage, } from './helpers'; 2 | export class QuotesProvider { 3 | constructor(datafeedUrl, requester) { 4 | this._datafeedUrl = datafeedUrl; 5 | this._requester = requester; 6 | } 7 | getQuotes(symbols) { 8 | return new Promise((resolve, reject) => { 9 | this._requester.sendRequest(this._datafeedUrl, 'quotes', { symbols: symbols }) 10 | .then((response) => { 11 | if (response.s === 'ok') { 12 | resolve(response.d); 13 | } 14 | else { 15 | reject(response.errmsg); 16 | } 17 | }) 18 | .catch((error) => { 19 | const errorMessage = getErrorMessage(error); 20 | logMessage(`QuotesProvider: getQuotes failed, error=${errorMessage}`); 21 | reject(`network error: ${errorMessage}`); 22 | }); 23 | }); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /public/datafeeds/udf/lib/requester.js: -------------------------------------------------------------------------------- 1 | import { logMessage } from './helpers'; 2 | export class Requester { 3 | constructor(headers) { 4 | if (headers) { 5 | this._headers = headers; 6 | } 7 | } 8 | sendRequest(datafeedUrl, urlPath, params) { 9 | if (params !== undefined) { 10 | const paramKeys = Object.keys(params); 11 | if (paramKeys.length !== 0) { 12 | urlPath += '?'; 13 | } 14 | urlPath += paramKeys.map((key) => { 15 | return `${encodeURIComponent(key)}=${encodeURIComponent(params[key].toString())}`; 16 | }).join('&'); 17 | } 18 | logMessage('New request: ' + urlPath); 19 | // Send user cookies if the URL is on the same origin as the calling script. 20 | const options = { credentials: 'same-origin' }; 21 | if (this._headers !== undefined) { 22 | options.headers = this._headers; 23 | } 24 | // eslint-disable-next-line no-restricted-globals 25 | return fetch(`${datafeedUrl}/${urlPath}`, options) 26 | .then((response) => response.text()) 27 | .then((responseTest) => JSON.parse(responseTest)); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /public/datafeeds/udf/lib/udf-compatible-datafeed.js: -------------------------------------------------------------------------------- 1 | import { UDFCompatibleDatafeedBase } from './udf-compatible-datafeed-base'; 2 | import { QuotesProvider } from './quotes-provider'; 3 | import { Requester } from './requester'; 4 | export class UDFCompatibleDatafeed extends UDFCompatibleDatafeedBase { 5 | constructor(datafeedURL, updateFrequency = 10 * 1000, limitedServerResponse) { 6 | const requester = new Requester(); 7 | const quotesProvider = new QuotesProvider(datafeedURL, requester); 8 | super(datafeedURL, quotesProvider, requester, updateFrequency, limitedServerResponse); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /public/datafeeds/udf/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "dependencies": { 4 | "tslib": "2.3.1" 5 | }, 6 | "devDependencies": { 7 | "@rollup/plugin-node-resolve": "~9.0.0", 8 | "rollup": "~2.28.2", 9 | "rollup-plugin-terser": "~7.0.2", 10 | "typescript": "4.9.5" 11 | }, 12 | "scripts": { 13 | "compile": "tsc", 14 | "bundle-js": "rollup -c rollup.config.js", 15 | "build": "npm run compile && npm run bundle-js" 16 | }, 17 | "type": "module", 18 | "main": "./lib/udf-compatible-datafeed.js", 19 | "types": "./types.d.ts" 20 | } -------------------------------------------------------------------------------- /public/datafeeds/udf/rollup.config.js: -------------------------------------------------------------------------------- 1 | /* globals process */ 2 | 3 | import { terser } from 'rollup-plugin-terser'; 4 | import { nodeResolve } from '@rollup/plugin-node-resolve'; 5 | 6 | const environment = process.env.ENV || 'development'; 7 | const isDevelopmentEnv = (environment === 'development'); 8 | 9 | export default [ 10 | { 11 | input: 'lib/udf-compatible-datafeed.js', 12 | output: { 13 | name: 'Datafeeds', 14 | format: 'umd', 15 | file: 'dist/bundle.js', 16 | }, 17 | plugins: [ 18 | nodeResolve(), 19 | !isDevelopmentEnv && terser({ 20 | ecma: 2018, 21 | output: { inline_script: true }, 22 | }), 23 | ], 24 | }, 25 | ]; 26 | -------------------------------------------------------------------------------- /public/datafeeds/udf/src/helpers.ts: -------------------------------------------------------------------------------- 1 | export interface RequestParams { 2 | [paramName: string]: string | string[] | number; 3 | } 4 | 5 | export interface UdfResponse { 6 | s: string; 7 | } 8 | 9 | export interface UdfOkResponse extends UdfResponse { 10 | s: 'ok'; 11 | } 12 | 13 | export interface UdfErrorResponse { 14 | s: 'error'; 15 | errmsg: string; 16 | } 17 | 18 | /** 19 | * If you want to enable logs from datafeed set it to `true` 20 | */ 21 | const isLoggingEnabled = false; 22 | export function logMessage(message: string): void { 23 | if (isLoggingEnabled) { 24 | const now = new Date(); 25 | // tslint:disable-next-line:no-console 26 | console.log(`${now.toLocaleTimeString()}.${now.getMilliseconds()}> ${message}`); 27 | } 28 | } 29 | 30 | export function getErrorMessage(error: string | Error | undefined): string { 31 | if (error === undefined) { 32 | return ''; 33 | } else if (typeof error === 'string') { 34 | return error; 35 | } 36 | 37 | return error.message; 38 | } 39 | -------------------------------------------------------------------------------- /public/datafeeds/udf/src/iquotes-provider.ts: -------------------------------------------------------------------------------- 1 | import { QuoteData } from '../../../charting_library/datafeed-api'; 2 | 3 | import { 4 | UdfOkResponse, 5 | } from './helpers'; 6 | 7 | export interface UdfQuotesResponse extends UdfOkResponse { 8 | d: QuoteData[]; 9 | } 10 | 11 | export interface IQuotesProvider { 12 | // tslint:disable-next-line:variable-name tv-variable-name 13 | getQuotes(symbols: string[]): Promise; 14 | } 15 | -------------------------------------------------------------------------------- /public/datafeeds/udf/src/quotes-provider.ts: -------------------------------------------------------------------------------- 1 | import { UdfQuotesResponse, IQuotesProvider } from './iquotes-provider'; 2 | import { QuoteData } from '../../../charting_library/datafeed-api'; 3 | 4 | import { 5 | getErrorMessage, 6 | logMessage, 7 | UdfErrorResponse, 8 | } from './helpers'; 9 | import { Requester } from './requester'; 10 | 11 | export class QuotesProvider implements IQuotesProvider { 12 | private readonly _datafeedUrl: string; 13 | private readonly _requester: Requester; 14 | 15 | public constructor(datafeedUrl: string, requester: Requester) { 16 | this._datafeedUrl = datafeedUrl; 17 | this._requester = requester; 18 | } 19 | 20 | public getQuotes(symbols: string[]): Promise { 21 | return new Promise((resolve: (data: QuoteData[]) => void, reject: (reason: string) => void) => { 22 | this._requester.sendRequest(this._datafeedUrl, 'quotes', { symbols: symbols }) 23 | .then((response: UdfQuotesResponse | UdfErrorResponse) => { 24 | if (response.s === 'ok') { 25 | resolve(response.d); 26 | } else { 27 | reject(response.errmsg); 28 | } 29 | }) 30 | .catch((error?: string | Error) => { 31 | const errorMessage = getErrorMessage(error); 32 | logMessage(`QuotesProvider: getQuotes failed, error=${errorMessage}`); 33 | reject(`network error: ${errorMessage}`); 34 | }); 35 | }); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /public/datafeeds/udf/src/requester.ts: -------------------------------------------------------------------------------- 1 | import { RequestParams, UdfResponse, UdfErrorResponse, logMessage } from './helpers'; 2 | 3 | export class Requester { 4 | private _headers: HeadersInit | undefined; 5 | 6 | public constructor(headers?: HeadersInit) { 7 | if (headers) { 8 | this._headers = headers; 9 | } 10 | } 11 | 12 | public sendRequest(datafeedUrl: string, urlPath: string, params?: RequestParams): Promise; 13 | public sendRequest(datafeedUrl: string, urlPath: string, params?: RequestParams): Promise; 14 | public sendRequest(datafeedUrl: string, urlPath: string, params?: RequestParams): Promise { 15 | if (params !== undefined) { 16 | const paramKeys = Object.keys(params); 17 | if (paramKeys.length !== 0) { 18 | urlPath += '?'; 19 | } 20 | 21 | urlPath += paramKeys.map((key: string) => { 22 | return `${encodeURIComponent(key)}=${encodeURIComponent(params[key].toString())}`; 23 | }).join('&'); 24 | } 25 | 26 | logMessage('New request: ' + urlPath); 27 | 28 | // Send user cookies if the URL is on the same origin as the calling script. 29 | const options: RequestInit = { credentials: 'same-origin' }; 30 | 31 | if (this._headers !== undefined) { 32 | options.headers = this._headers; 33 | } 34 | 35 | // eslint-disable-next-line no-restricted-globals 36 | return fetch(`${datafeedUrl}/${urlPath}`, options) 37 | .then((response: Response) => response.text()) 38 | .then((responseTest: string) => JSON.parse(responseTest)); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /public/datafeeds/udf/src/udf-compatible-datafeed.ts: -------------------------------------------------------------------------------- 1 | import { UDFCompatibleDatafeedBase } from './udf-compatible-datafeed-base'; 2 | import { QuotesProvider } from './quotes-provider'; 3 | import { Requester } from './requester'; 4 | import { LimitedResponseConfiguration } from './history-provider'; 5 | 6 | export class UDFCompatibleDatafeed extends UDFCompatibleDatafeedBase { 7 | public constructor( 8 | datafeedURL: string, 9 | updateFrequency: number = 10 * 1000, 10 | limitedServerResponse?: LimitedResponseConfiguration 11 | ) { 12 | const requester = new Requester(); 13 | const quotesProvider = new QuotesProvider(datafeedURL, requester); 14 | super(datafeedURL, quotesProvider, requester, updateFrequency, limitedServerResponse); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /public/datafeeds/udf/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": true, 4 | "importHelpers": true, 5 | "lib": [ 6 | "dom", 7 | "es2018" 8 | ], 9 | "module": "es6", 10 | "moduleResolution": "node", 11 | "noEmitOnError": true, 12 | "noFallthroughCasesInSwitch": true, 13 | "noImplicitReturns": true, 14 | "noUnusedLocals": true, 15 | "outDir": "./lib/", 16 | "rootDir": "src", 17 | "sourceMap": false, 18 | "strict": true, 19 | "target": "es2018", 20 | "types": [] 21 | }, 22 | "include": [ 23 | "./src/**/*.ts" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /public/datafeeds/udf/types.d.ts: -------------------------------------------------------------------------------- 1 | export * from './src/udf-compatible-datafeed'; 2 | -------------------------------------------------------------------------------- /public/dexRabbitLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/dexRabbitLogo.png -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/favicon.png -------------------------------------------------------------------------------- /public/favicon_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/favicon_new.png -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "IDE Bitquery", 3 | "name": "IDE Bitquery", 4 | "icons": [ 5 | { 6 | "src": "favicon.png", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "favicon_new.png", 12 | "sizes": "192x192", 13 | "type": "image/png" 14 | }, 15 | { 16 | "src": "favicon_new.png", 17 | "sizes": "512x512", 18 | "type": "image/png" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /public/robotoMono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/public/robotoMono.ttf -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Sitemap: https://ide.bitquery.io/api/sitemap 4 | 5 | Disallow: 6 | -------------------------------------------------------------------------------- /roboto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/roboto.ttf -------------------------------------------------------------------------------- /src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { render } from '@testing-library/react'; 3 | import App from './App'; 4 | 5 | test('renders learn react link', () => { 6 | const { getByText } = render(); 7 | const linkElement = getByText(/learn react/i); 8 | expect(linkElement).toBeInTheDocument(); 9 | }); 10 | -------------------------------------------------------------------------------- /src/assets/fonts/Nunito-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/assets/fonts/Nunito-Bold.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Nunito-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/assets/fonts/Nunito-Regular.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/assets/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /src/assets/images/bitquery_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/assets/images/bitquery_logo.png -------------------------------------------------------------------------------- /src/assets/images/bitquery_logo_w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/assets/images/bitquery_logo_w.png -------------------------------------------------------------------------------- /src/assets/images/edit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/assets/images/error.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/assets/images/graphql-icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/images/left-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/assets/images/letter-x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /src/assets/images/link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /src/assets/images/pencil-alt-solid.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/assets/images/play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/assets/images/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/assets/images/search_ico.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/charting_library/bundles/1013.8bf558e5776449ee9b26.css: -------------------------------------------------------------------------------- 1 | .dialog-CPGBbsmc{background-color:#fff;box-sizing:border-box;display:flex;flex-direction:column;min-width:280px;text-align:left}html.theme-dark .dialog-CPGBbsmc{background-color:#1e222d}.dialog-CPGBbsmc.rounded-CPGBbsmc{border-radius:6px}.dialog-CPGBbsmc.shadowed-CPGBbsmc{box-shadow:0 2px 4px #0003}html.theme-dark .dialog-CPGBbsmc.shadowed-CPGBbsmc{box-shadow:0 2px 4px #0006}.dialog-CPGBbsmc.fullscreen-CPGBbsmc{bottom:0;height:100%;left:0;max-height:100%;max-width:100%;min-height:100%;position:fixed;right:0;top:0;width:100%}.dialog-CPGBbsmc.darker-CPGBbsmc{background-color:#fff}html.theme-dark .dialog-CPGBbsmc.darker-CPGBbsmc{background-color:#131722}.backdrop-CPGBbsmc{background-color:#9598a1;bottom:0;left:0;opacity:.5;position:fixed;right:0;top:0;transform:translateZ(0);z-index:-1}html.theme-dark .backdrop-CPGBbsmc{background-color:#0c0e15}.dialog-qyCw0PaN{max-width:380px;min-width:280px;position:fixed;width:100%}.dialog-qyCw0PaN [data-dragg-area=true]{cursor:grab}.dialog-qyCw0PaN [data-dragg-area=true].dragging-qyCw0PaN{cursor:grabbing}.dialogAnimatedAppearance-qyCw0PaN{animation-duration:.3s;animation-name:dialogAnimation-qyCw0PaN;transform-origin:0 0}@keyframes dialogAnimation-qyCw0PaN{0%{opacity:0;transform:translate(var(--animationTranslateStartX),var(--animationTranslateStartY)) scale(0)}to{opacity:1;transform:translate(var(--animationTranslateEndX),var(--animationTranslateEndY)) scale(1)}}.dialogTooltip-qyCw0PaN{color:#fff;font-size:14px;left:50%;line-height:21px;max-width:540px;position:absolute;top:-20px;transform:translateX(-50%);width:max-content}@media screen and (max-width:768px){.dialogTooltip-qyCw0PaN{max-width:240px}} -------------------------------------------------------------------------------- /src/charting_library/bundles/1033.5197f9f8b8500206d06c.css: -------------------------------------------------------------------------------- 1 | .title-u3QJgF_p{cursor:default;font-size:11px;letter-spacing:.4px;line-height:16px;margin:6px 0;padding:0 12px;text-transform:uppercase}.title-u3QJgF_p,html.theme-dark .title-u3QJgF_p{color:var(--tv-color-popup-element-secondary-text,#787b86)} -------------------------------------------------------------------------------- /src/charting_library/bundles/1033.5197f9f8b8500206d06c.rtl.css: -------------------------------------------------------------------------------- 1 | .title-u3QJgF_p{cursor:default;font-size:11px;letter-spacing:.4px;line-height:16px;margin:6px 0;padding:0 12px;text-transform:uppercase}.title-u3QJgF_p,html.theme-dark .title-u3QJgF_p{color:var(--tv-color-popup-element-secondary-text,#787b86)} -------------------------------------------------------------------------------- /src/charting_library/bundles/1762.7ff6b353c441db2276da.css: -------------------------------------------------------------------------------- 1 | .separator-EI7Qsb2Q{border-top:1px solid #e0e3eb}html.theme-dark .separator-EI7Qsb2Q{border-top:1px solid #434651}.scrollable-EI7Qsb2Q{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-EI7Qsb2Q{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-EI7Qsb2Q{min-height:auto}}.scrollable-EI7Qsb2Q::-webkit-scrollbar{height:5px;width:5px}.scrollable-EI7Qsb2Q::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-EI7Qsb2Q::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-EI7Qsb2Q::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-EI7Qsb2Q::-webkit-scrollbar-corner{display:none} -------------------------------------------------------------------------------- /src/charting_library/bundles/1762.7ff6b353c441db2276da.rtl.css: -------------------------------------------------------------------------------- 1 | .separator-EI7Qsb2Q{border-top:1px solid #e0e3eb}html.theme-dark .separator-EI7Qsb2Q{border-top:1px solid #434651}.scrollable-EI7Qsb2Q{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-EI7Qsb2Q{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-EI7Qsb2Q{min-height:auto}}.scrollable-EI7Qsb2Q::-webkit-scrollbar{height:5px;width:5px}.scrollable-EI7Qsb2Q::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-EI7Qsb2Q::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-EI7Qsb2Q::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-EI7Qsb2Q::-webkit-scrollbar-corner{display:none} -------------------------------------------------------------------------------- /src/charting_library/bundles/1849.aa435f081ad57a6d0121.css: -------------------------------------------------------------------------------- 1 | .item-zwyEh4hn{align-items:flex-start;font-size:16px;padding-right:20px;white-space:normal}.label-zwyEh4hn{line-height:24px;overflow:visible}.labelRow-zwyEh4hn{margin-bottom:2px;margin-top:2px}.toolbox-zwyEh4hn{margin-top:3px} -------------------------------------------------------------------------------- /src/charting_library/bundles/1849.aa435f081ad57a6d0121.rtl.css: -------------------------------------------------------------------------------- 1 | .item-zwyEh4hn{align-items:flex-start;font-size:16px;padding-left:20px;white-space:normal}.label-zwyEh4hn{line-height:24px;overflow:visible}.labelRow-zwyEh4hn{margin-bottom:2px;margin-top:2px}.toolbox-zwyEh4hn{margin-top:3px} -------------------------------------------------------------------------------- /src/charting_library/bundles/2260.b98824e4829a1aa9b444.css: -------------------------------------------------------------------------------- 1 | .row-Sj9z7O1v{grid-gap:12px;display:grid;grid-template-columns:150px 100px;margin-bottom:16px;padding-left:20px;padding-right:20px}.mobileRow-Sj9z7O1v{justify-content:flex-start;padding-left:20px}.calendar-PM3TZruR{margin-left:8px;margin-right:8px;padding-bottom:15px;padding-top:1px}.dialogWrapper-P_IVoUsZ{min-width:302px}.dialogWrapperSmall-P_IVoUsZ{max-width:419px;width:100%}.tabs-P_IVoUsZ{--ui-lib-underline-tabs-hor-padding:20px;padding:0 var(--ui-lib-underline-tabs-hor-padding)}.content-P_IVoUsZ{overflow:auto;padding-top:17px;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .content-P_IVoUsZ{scrollbar-color:#363a45 #0000}.content-P_IVoUsZ::-webkit-scrollbar{height:5px;width:5px}.content-P_IVoUsZ::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .content-P_IVoUsZ::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.content-P_IVoUsZ::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.content-P_IVoUsZ::-webkit-scrollbar-corner{display:none}.contentMobile-P_IVoUsZ{display:flex;flex-direction:column;flex-grow:1}.bodyWrapper-P_IVoUsZ{flex:0 1 201px} -------------------------------------------------------------------------------- /src/charting_library/bundles/2260.b98824e4829a1aa9b444.rtl.css: -------------------------------------------------------------------------------- 1 | .row-Sj9z7O1v{grid-gap:12px;display:grid;grid-template-columns:150px 100px;margin-bottom:16px;padding-left:20px;padding-right:20px}.mobileRow-Sj9z7O1v{justify-content:flex-start;padding-right:20px}.calendar-PM3TZruR{margin-left:8px;margin-right:8px;padding-bottom:15px;padding-top:1px}.dialogWrapper-P_IVoUsZ{min-width:302px}.dialogWrapperSmall-P_IVoUsZ{max-width:419px;width:100%}.tabs-P_IVoUsZ{--ui-lib-underline-tabs-hor-padding:20px;padding:0 var(--ui-lib-underline-tabs-hor-padding)}.content-P_IVoUsZ{overflow:auto;padding-top:17px;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .content-P_IVoUsZ{scrollbar-color:#363a45 #0000}.content-P_IVoUsZ::-webkit-scrollbar{height:5px;width:5px}.content-P_IVoUsZ::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .content-P_IVoUsZ::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.content-P_IVoUsZ::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.content-P_IVoUsZ::-webkit-scrollbar-corner{display:none}.contentMobile-P_IVoUsZ{display:flex;flex-direction:column;flex-grow:1}.bodyWrapper-P_IVoUsZ{flex:0 1 201px} -------------------------------------------------------------------------------- /src/charting_library/bundles/2587.1403c0d79d2217a73053.css: -------------------------------------------------------------------------------- 1 | .container-qm7Rg5MB{align-items:center;border-bottom:1px solid #e0e3eb;border-color:#e0e3eb currentcolor;border-top:1px solid #e0e3eb;cursor:default;display:flex;flex-shrink:0;position:relative}html.theme-dark .container-qm7Rg5MB{border-color:#434651}.inputContainer-qm7Rg5MB{height:24px;padding:8px 16px 8px 47px;width:100%}.inputContainer-qm7Rg5MB.withCancel-qm7Rg5MB{padding-right:70px}.input-qm7Rg5MB{background-color:initial;border:none;color:#131722;font-size:16px;height:100%;margin:0;padding:0;width:100%}html.theme-dark .input-qm7Rg5MB{color:#a3a6af}.input-qm7Rg5MB::placeholder{color:#a3a6af;font-weight:400}html.theme-dark .input-qm7Rg5MB::placeholder{color:#434651}.icon-qm7Rg5MB{color:#a3a6af;height:18px;left:20px;pointer-events:none;position:absolute;top:calc(50% - 9px)}.cancel-qm7Rg5MB{color:#787b86;position:absolute;right:20px}.highlighted-cwp8YRo6,html.theme-dark .highlighted-cwp8YRo6{color:#2962ff} -------------------------------------------------------------------------------- /src/charting_library/bundles/2587.1403c0d79d2217a73053.rtl.css: -------------------------------------------------------------------------------- 1 | .container-qm7Rg5MB{align-items:center;border-bottom:1px solid #e0e3eb;border-color:#e0e3eb currentcolor;border-top:1px solid #e0e3eb;cursor:default;display:flex;flex-shrink:0;position:relative}html.theme-dark .container-qm7Rg5MB{border-color:#434651}.inputContainer-qm7Rg5MB{height:24px;padding:8px 47px 8px 16px;width:100%}.inputContainer-qm7Rg5MB.withCancel-qm7Rg5MB{padding-left:70px}.input-qm7Rg5MB{background-color:initial;border:none;color:#131722;font-size:16px;height:100%;margin:0;padding:0;width:100%}html.theme-dark .input-qm7Rg5MB{color:#a3a6af}.input-qm7Rg5MB::placeholder{color:#a3a6af;font-weight:400}html.theme-dark .input-qm7Rg5MB::placeholder{color:#434651}.icon-qm7Rg5MB{color:#a3a6af;height:18px;pointer-events:none;position:absolute;right:20px;top:calc(50% - 9px)}.cancel-qm7Rg5MB{color:#787b86;left:20px;position:absolute}.highlighted-cwp8YRo6,html.theme-dark .highlighted-cwp8YRo6{color:#2962ff} -------------------------------------------------------------------------------- /src/charting_library/bundles/2666.fbb750fd312778403036.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/charting_library/bundles/2666.fbb750fd312778403036.css -------------------------------------------------------------------------------- /src/charting_library/bundles/2666.fbb750fd312778403036.rtl.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/charting_library/bundles/2666.fbb750fd312778403036.rtl.css -------------------------------------------------------------------------------- /src/charting_library/bundles/2676.2d3cabbd39a3b0d6e9ea.css: -------------------------------------------------------------------------------- 1 | .scrollable-uT4IUFMG{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-uT4IUFMG{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-uT4IUFMG{min-height:auto}}.scrollable-uT4IUFMG::-webkit-scrollbar{height:5px;width:5px}.scrollable-uT4IUFMG::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-uT4IUFMG::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-uT4IUFMG::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-uT4IUFMG::-webkit-scrollbar-corner{display:none}.content-uT4IUFMG{border-color:currentcolor #e0e3eb #e0e3eb;border-top:1px solid #e0e3eb;box-sizing:border-box;flex:1 1 auto;padding:24px 20px}html.theme-dark .content-uT4IUFMG{border-color:#434651}.content-uT4IUFMG .row-uT4IUFMG{align-items:center;color:#131722;display:flex;margin-top:16px}html.theme-dark .content-uT4IUFMG .row-uT4IUFMG{color:#d1d4dc}.content-uT4IUFMG .row-uT4IUFMG:first-child{margin-top:0}.content-uT4IUFMG .row-uT4IUFMG .title-uT4IUFMG{display:flex;flex:none;line-height:21px;margin-right:20px;width:80px;word-break:break-word}.content-uT4IUFMG .row-uT4IUFMG .control-uT4IUFMG{line-height:21px;width:100px} -------------------------------------------------------------------------------- /src/charting_library/bundles/2676.2d3cabbd39a3b0d6e9ea.rtl.css: -------------------------------------------------------------------------------- 1 | .scrollable-uT4IUFMG{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-uT4IUFMG{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-uT4IUFMG{min-height:auto}}.scrollable-uT4IUFMG::-webkit-scrollbar{height:5px;width:5px}.scrollable-uT4IUFMG::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-uT4IUFMG::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-uT4IUFMG::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-uT4IUFMG::-webkit-scrollbar-corner{display:none}.content-uT4IUFMG{border-color:currentcolor #e0e3eb #e0e3eb;border-top:1px solid #e0e3eb;box-sizing:border-box;flex:1 1 auto;padding:24px 20px}html.theme-dark .content-uT4IUFMG{border-color:#434651}.content-uT4IUFMG .row-uT4IUFMG{align-items:center;color:#131722;display:flex;margin-top:16px}html.theme-dark .content-uT4IUFMG .row-uT4IUFMG{color:#d1d4dc}.content-uT4IUFMG .row-uT4IUFMG:first-child{margin-top:0}.content-uT4IUFMG .row-uT4IUFMG .title-uT4IUFMG{display:flex;flex:none;line-height:21px;margin-left:20px;width:80px;word-break:break-word}.content-uT4IUFMG .row-uT4IUFMG .control-uT4IUFMG{line-height:21px;width:100px} -------------------------------------------------------------------------------- /src/charting_library/bundles/3842.6a8a7842ee841f6d2cff.css: -------------------------------------------------------------------------------- 1 | .menuWrap-Kq3ruQo8{background-color:var(--tv-color-popup-background,#fff);border-radius:3px;box-shadow:0 2px 4px #0003;box-sizing:border-box;text-align:left;-webkit-user-select:none;user-select:none;z-index:100}html.theme-dark .menuWrap-Kq3ruQo8{background-color:var(--tv-color-popup-background,#1e222d);box-shadow:0 2px 4px #0006}.menuWrap-Kq3ruQo8.isMeasuring-Kq3ruQo8{opacity:0;pointer-events:none;position:fixed;visibility:hidden}.menuWrap-Kq3ruQo8:focus{outline:none}.scrollWrap-Kq3ruQo8{height:100%;overflow-x:hidden;overflow-y:auto}.scrollWrap-Kq3ruQo8.momentumBased-Kq3ruQo8{-webkit-overflow-scrolling:touch}.scrollWrap-Kq3ruQo8::-webkit-scrollbar{height:5px;width:5px}.scrollWrap-Kq3ruQo8::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollWrap-Kq3ruQo8::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollWrap-Kq3ruQo8::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollWrap-Kq3ruQo8::-webkit-scrollbar-corner{display:none}.menuBox-Kq3ruQo8{padding:6px 0}.isHidden-Kq3ruQo8{display:none} -------------------------------------------------------------------------------- /src/charting_library/bundles/3842.6a8a7842ee841f6d2cff.rtl.css: -------------------------------------------------------------------------------- 1 | .menuWrap-Kq3ruQo8{background-color:var(--tv-color-popup-background,#fff);border-radius:3px;box-shadow:0 2px 4px #0003;box-sizing:border-box;text-align:right;-webkit-user-select:none;user-select:none;z-index:100}html.theme-dark .menuWrap-Kq3ruQo8{background-color:var(--tv-color-popup-background,#1e222d);box-shadow:0 2px 4px #0006}.menuWrap-Kq3ruQo8.isMeasuring-Kq3ruQo8{opacity:0;pointer-events:none;position:fixed;visibility:hidden}.menuWrap-Kq3ruQo8:focus{outline:none}.scrollWrap-Kq3ruQo8{height:100%;overflow-x:hidden;overflow-y:auto}.scrollWrap-Kq3ruQo8.momentumBased-Kq3ruQo8{-webkit-overflow-scrolling:touch}.scrollWrap-Kq3ruQo8::-webkit-scrollbar{height:5px;width:5px}.scrollWrap-Kq3ruQo8::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollWrap-Kq3ruQo8::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollWrap-Kq3ruQo8::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollWrap-Kq3ruQo8::-webkit-scrollbar-corner{display:none}.menuBox-Kq3ruQo8{padding:6px 0}.isHidden-Kq3ruQo8{display:none} -------------------------------------------------------------------------------- /src/charting_library/bundles/4215.d24836a292b1969ab4bb.css: -------------------------------------------------------------------------------- 1 | .footer-PhMf7PhQ{border-top:1px solid #e0e3eb;display:flex;flex:0 0 auto;padding:16px 20px}html.theme-dark .footer-PhMf7PhQ{border-top:1px solid #434651}@media screen and (max-height:360px){.footer-PhMf7PhQ{padding:10px 20px}}.footer-PhMf7PhQ .submitButton-PhMf7PhQ{padding-left:12px}.footer-PhMf7PhQ .buttons-PhMf7PhQ{margin-left:auto} -------------------------------------------------------------------------------- /src/charting_library/bundles/4215.d24836a292b1969ab4bb.rtl.css: -------------------------------------------------------------------------------- 1 | .footer-PhMf7PhQ{border-top:1px solid #e0e3eb;display:flex;flex:0 0 auto;padding:16px 20px}html.theme-dark .footer-PhMf7PhQ{border-top:1px solid #434651}@media screen and (max-height:360px){.footer-PhMf7PhQ{padding:10px 20px}}.footer-PhMf7PhQ .submitButton-PhMf7PhQ{padding-right:12px}.footer-PhMf7PhQ .buttons-PhMf7PhQ{margin-right:auto} -------------------------------------------------------------------------------- /src/charting_library/bundles/5145.a2b224fd27ab2941c565.css: -------------------------------------------------------------------------------- 1 | .separator-Pf4rIzEt{background-color:#e0e3eb;height:1px;margin:8px 0}html.theme-dark .separator-Pf4rIzEt{background-color:#434651} -------------------------------------------------------------------------------- /src/charting_library/bundles/5145.a2b224fd27ab2941c565.rtl.css: -------------------------------------------------------------------------------- 1 | .separator-Pf4rIzEt{background-color:#e0e3eb;height:1px;margin:8px 0}html.theme-dark .separator-Pf4rIzEt{background-color:#434651} -------------------------------------------------------------------------------- /src/charting_library/bundles/5649.b60ed09c5ea8c55827d4.css: -------------------------------------------------------------------------------- 1 | .wrap-_HnK0UIN{bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:0}.wrap-_HnK0UIN.positionBottom-_HnK0UIN{align-items:flex-end}.backdrop-_HnK0UIN{background-color:#9598a1;bottom:0;left:0;opacity:.7;position:absolute;right:0;top:0;transform:translateZ(0)}html.theme-dark .backdrop-_HnK0UIN{background-color:#0c0e15}.drawer-_HnK0UIN{-webkit-overflow-scrolling:touch;background-color:var(--tv-color-popup-background,#fff);box-shadow:0 2px 4px #0003;box-sizing:border-box;padding:6px 0;z-index:1}html.theme-dark .drawer-_HnK0UIN{background-color:var(--tv-color-popup-background,#1e222d);box-shadow:0 2px 4px #0006}.drawer-_HnK0UIN.positionLeft-_HnK0UIN{margin-right:40px;max-width:calc(100% - 40px);min-width:260px}.drawer-_HnK0UIN.positionBottom-_HnK0UIN{border-top-left-radius:6px;border-top-right-radius:6px;flex-basis:100%;margin-top:var(--drawer-margin-top-distance,100px);max-height:calc(100% - var(--drawer-min-top-distance, 100px));overflow:auto}.drawer-_HnK0UIN:focus{outline:none} -------------------------------------------------------------------------------- /src/charting_library/bundles/5649.b60ed09c5ea8c55827d4.rtl.css: -------------------------------------------------------------------------------- 1 | .wrap-_HnK0UIN{bottom:0;display:flex;left:0;position:fixed;right:0;top:0;z-index:0}.wrap-_HnK0UIN.positionBottom-_HnK0UIN{align-items:flex-end}.backdrop-_HnK0UIN{background-color:#9598a1;bottom:0;left:0;opacity:.7;position:absolute;right:0;top:0;transform:translateZ(0)}html.theme-dark .backdrop-_HnK0UIN{background-color:#0c0e15}.drawer-_HnK0UIN{-webkit-overflow-scrolling:touch;background-color:var(--tv-color-popup-background,#fff);box-shadow:0 2px 4px #0003;box-sizing:border-box;padding:6px 0;z-index:1}html.theme-dark .drawer-_HnK0UIN{background-color:var(--tv-color-popup-background,#1e222d);box-shadow:0 2px 4px #0006}.drawer-_HnK0UIN.positionLeft-_HnK0UIN{margin-left:40px;max-width:calc(100% - 40px);min-width:260px}.drawer-_HnK0UIN.positionBottom-_HnK0UIN{border-top-left-radius:6px;border-top-right-radius:6px;flex-basis:100%;margin-top:var(--drawer-margin-top-distance,100px);max-height:calc(100% - var(--drawer-min-top-distance, 100px));overflow:auto}.drawer-_HnK0UIN:focus{outline:none} -------------------------------------------------------------------------------- /src/charting_library/bundles/5866.c89b7fc29afe92efc1f3.css: -------------------------------------------------------------------------------- 1 | .errorCard-S9sXvhAu{align-items:center;background:var(--backgroundColor,#fff);color:var(--textColor,#434651);display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}html.theme-dark .errorCard-S9sXvhAu{background:var(--backgroundColor,#131722);color:var(--textColor,#9598a1)}.errorCard__icon-S9sXvhAu{margin-bottom:12px}.errorCard_size_big-S9sXvhAu .errorCard__icon-S9sXvhAu{margin-bottom:21px}.errorCard__message-S9sXvhAu{font-size:14px;line-height:22px;text-align:center}.errorCard_size_big-S9sXvhAu .errorCard__message-S9sXvhAu{font-size:18px;line-height:28px}.errorCard_limitWidth-S9sXvhAu .errorCard__message-S9sXvhAu{max-width:350px}.errorCard__link-S9sXvhAu{fill:#2962ff;color:#2962ff;cursor:pointer;line-height:28px}.errorCard__link-S9sXvhAu:visited,html.theme-dark .errorCard__link-S9sXvhAu{fill:#2962ff;color:#2962ff}html.theme-dark .errorCard__link-S9sXvhAu:visited{fill:#2962ff;color:#2962ff}@media (any-hover:hover){.errorCard__link-S9sXvhAu:hover{fill:#1e53e5;color:#1e53e5}html.theme-dark .errorCard__link-S9sXvhAu:hover{fill:#1e53e5;color:#1e53e5}}.errorCard__link-S9sXvhAu:active{fill:#1848cc;color:#1848cc}html.theme-dark .errorCard__link-S9sXvhAu:active{fill:#1848cc;color:#1848cc}.errorCard__link-S9sXvhAu:focus{outline:auto}.errorCard__link-S9sXvhAu:focus-visible{outline:auto}.errorCard__link-S9sXvhAu:focus:not(:focus-visible){outline:none}.errorCardRendererContainer-S9sXvhAu{--backgroundColor:initial;--textColor:initial;cursor:default;height:100%;position:absolute;width:100%}.errorCardRendererContainer-S9sXvhAu:empty{visibility:hidden} -------------------------------------------------------------------------------- /src/charting_library/bundles/5866.c89b7fc29afe92efc1f3.rtl.css: -------------------------------------------------------------------------------- 1 | .errorCard-S9sXvhAu{align-items:center;background:var(--backgroundColor,#fff);color:var(--textColor,#434651);display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}html.theme-dark .errorCard-S9sXvhAu{background:var(--backgroundColor,#131722);color:var(--textColor,#9598a1)}.errorCard__icon-S9sXvhAu{margin-bottom:12px}.errorCard_size_big-S9sXvhAu .errorCard__icon-S9sXvhAu{margin-bottom:21px}.errorCard__message-S9sXvhAu{font-size:14px;line-height:22px;text-align:center}.errorCard_size_big-S9sXvhAu .errorCard__message-S9sXvhAu{font-size:18px;line-height:28px}.errorCard_limitWidth-S9sXvhAu .errorCard__message-S9sXvhAu{max-width:350px}.errorCard__link-S9sXvhAu{fill:#2962ff;color:#2962ff;cursor:pointer;line-height:28px}.errorCard__link-S9sXvhAu:visited,html.theme-dark .errorCard__link-S9sXvhAu{fill:#2962ff;color:#2962ff}html.theme-dark .errorCard__link-S9sXvhAu:visited{fill:#2962ff;color:#2962ff}@media (any-hover:hover){.errorCard__link-S9sXvhAu:hover{fill:#1e53e5;color:#1e53e5}html.theme-dark .errorCard__link-S9sXvhAu:hover{fill:#1e53e5;color:#1e53e5}}.errorCard__link-S9sXvhAu:active{fill:#1848cc;color:#1848cc}html.theme-dark .errorCard__link-S9sXvhAu:active{fill:#1848cc;color:#1848cc}.errorCard__link-S9sXvhAu:focus{outline:auto}.errorCard__link-S9sXvhAu:focus-visible{outline:auto}.errorCard__link-S9sXvhAu:focus:not(:focus-visible){outline:none}.errorCardRendererContainer-S9sXvhAu{--backgroundColor:initial;--textColor:initial;cursor:default;height:100%;position:absolute;width:100%}.errorCardRendererContainer-S9sXvhAu:empty{visibility:hidden} -------------------------------------------------------------------------------- /src/charting_library/bundles/6.362fa6a7ab1f3e3b06c4.css: -------------------------------------------------------------------------------- 1 | .icon-WB2y0EnP{align-items:center;display:flex;flex-direction:row;transition:transform .35s cubic-bezier(.175,.885,.32,1.275)}.icon-WB2y0EnP svg{fill:currentColor;display:block;height:4px;width:8px}.icon-WB2y0EnP.dropped-WB2y0EnP{transform:rotate(180deg)} -------------------------------------------------------------------------------- /src/charting_library/bundles/6.362fa6a7ab1f3e3b06c4.rtl.css: -------------------------------------------------------------------------------- 1 | .icon-WB2y0EnP{align-items:center;display:flex;flex-direction:row;transition:transform .35s cubic-bezier(.175,.885,.32,1.275)}.icon-WB2y0EnP svg{fill:currentColor;display:block;height:4px;width:8px}.icon-WB2y0EnP.dropped-WB2y0EnP{transform:rotate(-180deg)} -------------------------------------------------------------------------------- /src/charting_library/bundles/6025.263b457b1a7f9ca139b2.css: -------------------------------------------------------------------------------- 1 | .summary-ynHBVe1n{align-items:center;box-sizing:border-box;cursor:default;display:flex;flex:none;font-size:11px;letter-spacing:.4px;line-height:16px;min-width:0;padding:0 8px 0 12px;text-transform:uppercase;width:100%}.summary-ynHBVe1n,html.theme-dark .summary-ynHBVe1n{color:var(--tv-color-popup-element-secondary-text,#787b86)}.summary-ynHBVe1n.hovered-ynHBVe1n,.summary-ynHBVe1n:active{background-color:var(--tv-color-popup-element-background-hover,#f0f3fa)}@media (any-hover:hover){.summary-ynHBVe1n:hover{background-color:var(--tv-color-popup-element-background-hover,#f0f3fa)}}html.theme-dark .summary-ynHBVe1n.hovered-ynHBVe1n,html.theme-dark .summary-ynHBVe1n:active{background-color:var(--tv-color-popup-element-background-hover,#2a2e39)}@media (any-hover:hover){html.theme-dark .summary-ynHBVe1n:hover{background-color:var(--tv-color-popup-element-background-hover,#2a2e39)}}.caret-ynHBVe1n{height:18px;justify-content:center;margin:2px 0 2px auto;width:18px} -------------------------------------------------------------------------------- /src/charting_library/bundles/6025.263b457b1a7f9ca139b2.rtl.css: -------------------------------------------------------------------------------- 1 | .summary-ynHBVe1n{align-items:center;box-sizing:border-box;cursor:default;display:flex;flex:none;font-size:11px;letter-spacing:.4px;line-height:16px;min-width:0;padding:0 12px 0 8px;text-transform:uppercase;width:100%}.summary-ynHBVe1n,html.theme-dark .summary-ynHBVe1n{color:var(--tv-color-popup-element-secondary-text,#787b86)}.summary-ynHBVe1n.hovered-ynHBVe1n,.summary-ynHBVe1n:active{background-color:var(--tv-color-popup-element-background-hover,#f0f3fa)}@media (any-hover:hover){.summary-ynHBVe1n:hover{background-color:var(--tv-color-popup-element-background-hover,#f0f3fa)}}html.theme-dark .summary-ynHBVe1n.hovered-ynHBVe1n,html.theme-dark .summary-ynHBVe1n:active{background-color:var(--tv-color-popup-element-background-hover,#2a2e39)}@media (any-hover:hover){html.theme-dark .summary-ynHBVe1n:hover{background-color:var(--tv-color-popup-element-background-hover,#2a2e39)}}.caret-ynHBVe1n{height:18px;justify-content:center;margin:2px auto 2px 0;width:18px} -------------------------------------------------------------------------------- /src/charting_library/bundles/6036.069ebb4bad0f5dd27147.css: -------------------------------------------------------------------------------- 1 | .separator-QjUlCDId{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);flex-shrink:0;height:1px;margin:6px 0}html.theme-dark .separator-QjUlCDId{background-color:var(--tv-color-popup-element-divider-background,#434651)}.small-QjUlCDId{margin-bottom:4px;margin-top:4px}.normal-QjUlCDId{margin-bottom:6px;margin-top:6px}.large-QjUlCDId{margin-bottom:8px;margin-top:8px} -------------------------------------------------------------------------------- /src/charting_library/bundles/6036.069ebb4bad0f5dd27147.rtl.css: -------------------------------------------------------------------------------- 1 | .separator-QjUlCDId{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);flex-shrink:0;height:1px;margin:6px 0}html.theme-dark .separator-QjUlCDId{background-color:var(--tv-color-popup-element-divider-background,#434651)}.small-QjUlCDId{margin-bottom:4px;margin-top:4px}.normal-QjUlCDId{margin-bottom:6px;margin-top:6px}.large-QjUlCDId{margin-bottom:8px;margin-top:8px} -------------------------------------------------------------------------------- /src/charting_library/bundles/6831.ac1745947bd2665f6c9a.css: -------------------------------------------------------------------------------- 1 | .row-DFIg7eOh{vertical-align:top}.line-DFIg7eOh{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);height:1px;margin:6px 0}html.theme-dark .line-DFIg7eOh{background-color:var(--tv-color-popup-element-divider-background,#434651)}.hint-DFIg7eOh{color:#8797a5;font-size:12px;margin-left:6px;margin-top:12px;text-align:left}html.theme-dark .hint-DFIg7eOh{color:#4f5966}.separator-Ymxd0dt_{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);height:1px;margin:6px 0}html.theme-dark .separator-Ymxd0dt_{background-color:var(--tv-color-popup-element-divider-background,#434651)}.menu-Tx5xMZww{border-collapse:collapse;cursor:default;overflow:visible;-webkit-user-select:none;user-select:none;z-index:500}.loaderWrap-jGEARQlM{height:32px;margin-left:-2px;position:relative}.loaderWrap-jGEARQlM.big-jGEARQlM{min-width:100px}.loaderWrap-jGEARQlM.big-jGEARQlM .loader-jGEARQlM{position:absolute}.loader-jGEARQlM{position:static} -------------------------------------------------------------------------------- /src/charting_library/bundles/6831.ac1745947bd2665f6c9a.rtl.css: -------------------------------------------------------------------------------- 1 | .row-DFIg7eOh{vertical-align:top}.line-DFIg7eOh{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);height:1px;margin:6px 0}html.theme-dark .line-DFIg7eOh{background-color:var(--tv-color-popup-element-divider-background,#434651)}.hint-DFIg7eOh{color:#8797a5;font-size:12px;margin-right:6px;margin-top:12px;text-align:right}html.theme-dark .hint-DFIg7eOh{color:#4f5966}.separator-Ymxd0dt_{background-color:var(--tv-color-popup-element-divider-background,#e0e3eb);height:1px;margin:6px 0}html.theme-dark .separator-Ymxd0dt_{background-color:var(--tv-color-popup-element-divider-background,#434651)}.menu-Tx5xMZww{border-collapse:collapse;cursor:default;overflow:visible;-webkit-user-select:none;user-select:none;z-index:500}.loaderWrap-jGEARQlM{height:32px;margin-right:-2px;position:relative}.loaderWrap-jGEARQlM.big-jGEARQlM{min-width:100px}.loaderWrap-jGEARQlM.big-jGEARQlM .loader-jGEARQlM{position:absolute}.loader-jGEARQlM{position:static} -------------------------------------------------------------------------------- /src/charting_library/bundles/6884.bb7d30a7bbbe5af36556.css: -------------------------------------------------------------------------------- 1 | .checkbox-vyj6oJxw{-webkit-tap-highlight-color:transparent;align-items:center;cursor:default;display:inline-flex;font-size:14px;font-stretch:normal;font-style:normal;font-weight:400;letter-spacing:normal;line-height:normal;position:relative;-webkit-user-select:none;user-select:none}.checkbox-vyj6oJxw.reverse-vyj6oJxw{flex-direction:row-reverse}.checkbox-vyj6oJxw.reverse-vyj6oJxw .label-vyj6oJxw{margin-left:0;margin-right:8px}.checkbox-vyj6oJxw.baseline-vyj6oJxw{align-items:baseline}.checkbox-vyj6oJxw .label-vyj6oJxw{color:#131722;margin-left:8px;min-width:0}html.theme-dark .checkbox-vyj6oJxw .label-vyj6oJxw{color:#d1d4dc} -------------------------------------------------------------------------------- /src/charting_library/bundles/6884.bb7d30a7bbbe5af36556.rtl.css: -------------------------------------------------------------------------------- 1 | .checkbox-vyj6oJxw{-webkit-tap-highlight-color:transparent;align-items:center;cursor:default;display:inline-flex;font-size:14px;font-stretch:normal;font-style:normal;font-weight:400;letter-spacing:normal;line-height:normal;position:relative;-webkit-user-select:none;user-select:none}.checkbox-vyj6oJxw.reverse-vyj6oJxw{flex-direction:row-reverse}.checkbox-vyj6oJxw.reverse-vyj6oJxw .label-vyj6oJxw{margin-left:8px;margin-right:0}.checkbox-vyj6oJxw.baseline-vyj6oJxw{align-items:baseline}.checkbox-vyj6oJxw .label-vyj6oJxw{color:#131722;margin-right:8px;min-width:0}html.theme-dark .checkbox-vyj6oJxw .label-vyj6oJxw{color:#d1d4dc} -------------------------------------------------------------------------------- /src/charting_library/bundles/6949.6b6148a8f15c8898c9e9.css: -------------------------------------------------------------------------------- 1 | .footer-dwINHZFL{align-items:center;background-color:#f8f9fd;border-radius:0 0 6px 6px;box-sizing:border-box;color:#787b86;cursor:default;display:flex;flex:0 0 auto;font-size:13px;justify-content:center;line-height:17px;max-height:65px;min-height:40px;padding:9px 20px;text-align:center}html.theme-dark .footer-dwINHZFL{background-color:#2a2e39} -------------------------------------------------------------------------------- /src/charting_library/bundles/6949.6b6148a8f15c8898c9e9.rtl.css: -------------------------------------------------------------------------------- 1 | .footer-dwINHZFL{align-items:center;background-color:#f8f9fd;border-radius:0 0 6px 6px;box-sizing:border-box;color:#787b86;cursor:default;display:flex;flex:0 0 auto;font-size:13px;justify-content:center;line-height:17px;max-height:65px;min-height:40px;padding:9px 20px;text-align:center}html.theme-dark .footer-dwINHZFL{background-color:#2a2e39} -------------------------------------------------------------------------------- /src/charting_library/bundles/7194.e04f69c8933166966874.css: -------------------------------------------------------------------------------- 1 | .button-PYEOTd6i{align-items:center;background-color:initial;border:none;border-radius:4px;box-sizing:border-box;cursor:default;display:flex;flex:none;height:100%;justify-content:center;margin:0;outline:none!important;padding:0;width:20px}.button-PYEOTd6i:hover:not(.disabled-PYEOTd6i){background-color:#f0f3fa}html.theme-dark .button-PYEOTd6i:hover:not(.disabled-PYEOTd6i){background-color:#363a45}.button-PYEOTd6i.hidden-PYEOTd6i{display:none}.icon-PYEOTd6i{align-items:center;display:flex;flex:none;justify-content:center;transition:transform .35s ease}.icon-PYEOTd6i.dropped-PYEOTd6i{transform:rotate(180deg)}.button-tFul0OhX{cursor:default;-webkit-user-select:none;user-select:none}.button-children-tFul0OhX{display:block;overflow:hidden;padding:0 2px 0 6px;text-overflow:ellipsis;white-space:nowrap;width:100%}.button-children-tFul0OhX.hiddenArrow-tFul0OhX{padding-right:6px}.invisibleFocusHandler-tFul0OhX{height:0;opacity:0;pointer-events:none;width:0}.placeholder-V6ceS6BN{-webkit-text-fill-color:currentColor;color:#a3a6af;opacity:1}html.theme-dark .placeholder-V6ceS6BN{color:#434651} -------------------------------------------------------------------------------- /src/charting_library/bundles/7194.e04f69c8933166966874.rtl.css: -------------------------------------------------------------------------------- 1 | .button-PYEOTd6i{align-items:center;background-color:initial;border:none;border-radius:4px;box-sizing:border-box;cursor:default;display:flex;flex:none;height:100%;justify-content:center;margin:0;outline:none!important;padding:0;width:20px}.button-PYEOTd6i:hover:not(.disabled-PYEOTd6i){background-color:#f0f3fa}html.theme-dark .button-PYEOTd6i:hover:not(.disabled-PYEOTd6i){background-color:#363a45}.button-PYEOTd6i.hidden-PYEOTd6i{display:none}.icon-PYEOTd6i{align-items:center;display:flex;flex:none;justify-content:center;transition:transform .35s ease}.icon-PYEOTd6i.dropped-PYEOTd6i{transform:rotate(-180deg)}.button-tFul0OhX{cursor:default;-webkit-user-select:none;user-select:none}.button-children-tFul0OhX{display:block;overflow:hidden;padding:0 6px 0 2px;text-overflow:ellipsis;white-space:nowrap;width:100%}.button-children-tFul0OhX.hiddenArrow-tFul0OhX{padding-left:6px}.invisibleFocusHandler-tFul0OhX{height:0;opacity:0;pointer-events:none;width:0}.placeholder-V6ceS6BN{-webkit-text-fill-color:currentColor;color:#a3a6af;opacity:1}html.theme-dark .placeholder-V6ceS6BN{color:#434651} -------------------------------------------------------------------------------- /src/charting_library/bundles/7391.9c809fa91ed0c8f75bc0.css: -------------------------------------------------------------------------------- 1 | .defaultsButtonText-zcLkuEMM{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-zcLkuEMM{color:#d1d4dc}.defaultsButtonItem-zcLkuEMM{min-width:100px}.defaultsButtonIcon-zcLkuEMM{display:flex}.themesButtonText-AeBgp7zz{color:#131722;font-size:14px;width:100px}html.theme-dark .themesButtonText-AeBgp7zz{color:#d1d4dc}.themesButtonIcon-AeBgp7zz{display:flex}.defaultsButtonText-AeBgp7zz{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-AeBgp7zz{color:#d1d4dc}.defaultsButtonItem-AeBgp7zz{min-width:100px} -------------------------------------------------------------------------------- /src/charting_library/bundles/7391.9c809fa91ed0c8f75bc0.rtl.css: -------------------------------------------------------------------------------- 1 | .defaultsButtonText-zcLkuEMM{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-zcLkuEMM{color:#d1d4dc}.defaultsButtonItem-zcLkuEMM{min-width:100px}.defaultsButtonIcon-zcLkuEMM{display:flex}.themesButtonText-AeBgp7zz{color:#131722;font-size:14px;width:100px}html.theme-dark .themesButtonText-AeBgp7zz{color:#d1d4dc}.themesButtonIcon-AeBgp7zz{display:flex}.defaultsButtonText-AeBgp7zz{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-AeBgp7zz{color:#d1d4dc}.defaultsButtonItem-AeBgp7zz{min-width:100px} -------------------------------------------------------------------------------- /src/charting_library/bundles/7413.f830ad1ad6ee6f9b1cb3.css: -------------------------------------------------------------------------------- 1 | .dialog-lmxpCvnK{display:flex;min-height:300px;min-width:380px}.dialogWrapper-lmxpCvnK{flex-grow:1}.wrap-lmxpCvnK{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto;position:relative;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .wrap-lmxpCvnK{scrollbar-color:#363a45 #0000}.wrap-lmxpCvnK::-webkit-scrollbar{height:5px;width:5px}.wrap-lmxpCvnK::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .wrap-lmxpCvnK::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.wrap-lmxpCvnK::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.wrap-lmxpCvnK::-webkit-scrollbar-corner{display:none} -------------------------------------------------------------------------------- /src/charting_library/bundles/7413.f830ad1ad6ee6f9b1cb3.rtl.css: -------------------------------------------------------------------------------- 1 | .dialog-lmxpCvnK{display:flex;min-height:300px;min-width:380px}.dialogWrapper-lmxpCvnK{flex-grow:1}.wrap-lmxpCvnK{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto;position:relative;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .wrap-lmxpCvnK{scrollbar-color:#363a45 #0000}.wrap-lmxpCvnK::-webkit-scrollbar{height:5px;width:5px}.wrap-lmxpCvnK::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .wrap-lmxpCvnK::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.wrap-lmxpCvnK::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.wrap-lmxpCvnK::-webkit-scrollbar-corner{display:none} -------------------------------------------------------------------------------- /src/charting_library/bundles/8904.a302177fe7e3ccd50cb0.css: -------------------------------------------------------------------------------- 1 | .titleWrap-e3jFxbHm{align-items:center;display:flex}.ellipsis-e3jFxbHm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hideInput-e3jFxbHm,.hideText-e3jFxbHm{height:0;visibility:hidden}.empty-e3jFxbHm{height:34px;margin-right:-3px;width:34px}.hideEmpty-e3jFxbHm{margin:0;width:0}.editIcon-e3jFxbHm{align-items:center;border-radius:2px;color:#131722;cursor:default;display:flex;flex-shrink:0;height:34px;justify-content:center;margin-left:5px;width:34px}html.theme-dark .editIcon-e3jFxbHm{color:#d1d4dc}@media (any-hover:hover){.editIcon-e3jFxbHm:hover{background-color:#f0f3fa}html.theme-dark .editIcon-e3jFxbHm:hover{background-color:#2a2e39}}.scrollable-Ycj0dUGE{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-Ycj0dUGE{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-Ycj0dUGE{min-height:auto}}.scrollable-Ycj0dUGE::-webkit-scrollbar{height:5px;width:5px}.scrollable-Ycj0dUGE::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-Ycj0dUGE::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-Ycj0dUGE::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-Ycj0dUGE::-webkit-scrollbar-corner{display:none}.tabs-Ycj0dUGE,.tabs-xNPrJ8dY{--ui-lib-underline-tabs-hor-padding:20px;padding:0 var(--ui-lib-underline-tabs-hor-padding)} -------------------------------------------------------------------------------- /src/charting_library/bundles/8904.a302177fe7e3ccd50cb0.rtl.css: -------------------------------------------------------------------------------- 1 | .titleWrap-e3jFxbHm{align-items:center;display:flex}.ellipsis-e3jFxbHm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hideInput-e3jFxbHm,.hideText-e3jFxbHm{height:0;visibility:hidden}.empty-e3jFxbHm{height:34px;margin-left:-3px;width:34px}.hideEmpty-e3jFxbHm{margin:0;width:0}.editIcon-e3jFxbHm{align-items:center;border-radius:2px;color:#131722;cursor:default;display:flex;flex-shrink:0;height:34px;justify-content:center;margin-right:5px;width:34px}html.theme-dark .editIcon-e3jFxbHm{color:#d1d4dc}@media (any-hover:hover){.editIcon-e3jFxbHm:hover{background-color:#f0f3fa}html.theme-dark .editIcon-e3jFxbHm:hover{background-color:#2a2e39}}.scrollable-Ycj0dUGE{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:145px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .scrollable-Ycj0dUGE{scrollbar-color:#363a45 #0000}@media screen and (max-height:290px){.scrollable-Ycj0dUGE{min-height:auto}}.scrollable-Ycj0dUGE::-webkit-scrollbar{height:5px;width:5px}.scrollable-Ycj0dUGE::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .scrollable-Ycj0dUGE::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.scrollable-Ycj0dUGE::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.scrollable-Ycj0dUGE::-webkit-scrollbar-corner{display:none}.tabs-Ycj0dUGE,.tabs-xNPrJ8dY{--ui-lib-underline-tabs-hor-padding:20px;padding:0 var(--ui-lib-underline-tabs-hor-padding)} -------------------------------------------------------------------------------- /src/charting_library/bundles/9138.c6bf63d3695b7e98a4e1.css: -------------------------------------------------------------------------------- 1 | .dialog-UGdC69sw{min-width:254px;padding:40px;width:auto}.dialogInner-UGdC69sw{align-items:center;display:flex;flex-direction:column}.titleWrapper-UGdC69sw{align-items:center;display:flex;justify-content:center;margin-bottom:16px;max-width:100%}.title-UGdC69sw{color:#131722;cursor:default;font-size:20px;font-weight:700;line-height:28px;overflow:hidden;white-space:nowrap}html.theme-dark .title-UGdC69sw{color:#d1d4dc}.infoHint-UGdC69sw{color:#787b86;height:18px;margin-left:8px;width:18px}.form-UGdC69sw{display:flex;max-width:200px;width:100%}.inputWrapper-UGdC69sw{flex-grow:1}.input-UGdC69sw{font-size:24px;text-align:center}.hint-UGdC69sw{color:#787b86;cursor:default;font-size:12px;line-height:18px;margin-top:3px;max-width:100%;overflow:hidden;white-space:nowrap}.error-UGdC69sw{color:#f23645} -------------------------------------------------------------------------------- /src/charting_library/bundles/9138.c6bf63d3695b7e98a4e1.rtl.css: -------------------------------------------------------------------------------- 1 | .dialog-UGdC69sw{min-width:254px;padding:40px;width:auto}.dialogInner-UGdC69sw{align-items:center;display:flex;flex-direction:column}.titleWrapper-UGdC69sw{align-items:center;display:flex;justify-content:center;margin-bottom:16px;max-width:100%}.title-UGdC69sw{color:#131722;cursor:default;font-size:20px;font-weight:700;line-height:28px;overflow:hidden;white-space:nowrap}html.theme-dark .title-UGdC69sw{color:#d1d4dc}.infoHint-UGdC69sw{color:#787b86;height:18px;margin-right:8px;width:18px}.form-UGdC69sw{display:flex;max-width:200px;width:100%}.inputWrapper-UGdC69sw{flex-grow:1}.input-UGdC69sw{font-size:24px;text-align:center}.hint-UGdC69sw{color:#787b86;cursor:default;font-size:12px;line-height:18px;margin-top:3px;max-width:100%;overflow:hidden;white-space:nowrap}.error-UGdC69sw{color:#f23645} -------------------------------------------------------------------------------- /src/charting_library/bundles/9789.cb5ad20bc727d3820b6c.css: -------------------------------------------------------------------------------- 1 | .tooltip-eSLcXvvL{background:#fff;border-radius:8px;cursor:default;filter:drop-shadow(0 1px 4px rgba(0,0,0,.2));position:absolute;visibility:hidden;z-index:7}html.theme-dark .tooltip-eSLcXvvL{background:#1e222d}.tooltip-eSLcXvvL.show-eSLcXvvL{visibility:unset}html.theme-dark .tooltip-eSLcXvvL{filter:drop-shadow(0 1px 4px rgba(0,0,0,.4))}.tooltip-eSLcXvvL:after,.tooltip-eSLcXvvL:before{border:10px solid #0000;content:" ";height:0;margin-top:-10px;pointer-events:none;position:absolute;top:50%;width:0}.tooltip-eSLcXvvL:not(.right-eSLcXvvL):after{border-color:#0000 #0000 #0000 #fff;border-left-width:13px;left:100%}html.theme-dark .tooltip-eSLcXvvL:not(.right-eSLcXvvL):after{border-left-color:#1e222d}.tooltip-eSLcXvvL.right-eSLcXvvL:before{border-color:#0000 #fff #0000 #0000;border-right-width:13px;right:100%}html.theme-dark .tooltip-eSLcXvvL.right-eSLcXvvL:before{border-right-color:#1e222d}.text-hF57_4zZ{font-feature-settings:"tnum" on,"lnum" on;color:#131722;font-family:-apple-system,BlinkMacSystemFont,Trebuchet MS,Roboto,Ubuntu,sans-serif;font-size:14px;line-height:18px;max-width:244px;min-width:25px;padding:12px}html.theme-dark .text-hF57_4zZ{color:#d1d4dc} -------------------------------------------------------------------------------- /src/charting_library/bundles/9789.cb5ad20bc727d3820b6c.rtl.css: -------------------------------------------------------------------------------- 1 | .tooltip-eSLcXvvL{background:#fff;border-radius:8px;cursor:default;filter:drop-shadow(0 1px 4px rgba(0,0,0,.2));position:absolute;visibility:hidden;z-index:7}html.theme-dark .tooltip-eSLcXvvL{background:#1e222d}.tooltip-eSLcXvvL.show-eSLcXvvL{visibility:unset}html.theme-dark .tooltip-eSLcXvvL{filter:drop-shadow(0 1px 4px rgba(0,0,0,.4))}.tooltip-eSLcXvvL:after,.tooltip-eSLcXvvL:before{border:10px solid #0000;content:" ";height:0;margin-top:-10px;pointer-events:none;position:absolute;top:50%;width:0}.tooltip-eSLcXvvL:not(.right-eSLcXvvL):after{border-color:#0000 #fff #0000 #0000;border-right-width:13px;right:100%}html.theme-dark .tooltip-eSLcXvvL:not(.right-eSLcXvvL):after{border-right-color:#1e222d}.tooltip-eSLcXvvL.right-eSLcXvvL:before{border-color:#0000 #0000 #0000 #fff;border-left-width:13px;left:100%}html.theme-dark .tooltip-eSLcXvvL.right-eSLcXvvL:before{border-left-color:#1e222d}.text-hF57_4zZ{font-feature-settings:"tnum" on,"lnum" on;color:#131722;font-family:-apple-system,BlinkMacSystemFont,Trebuchet MS,Roboto,Ubuntu,sans-serif;font-size:14px;line-height:18px;max-width:244px;min-width:25px;padding:12px}html.theme-dark .text-hF57_4zZ{color:#d1d4dc} -------------------------------------------------------------------------------- /src/charting_library/bundles/EuclidCircular.be8f862db48c2976009f.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/charting_library/bundles/EuclidCircular.be8f862db48c2976009f.woff2 -------------------------------------------------------------------------------- /src/charting_library/bundles/dot.3d617b6b01edba83a7f4.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/charting_library/bundles/dot.3d617b6b01edba83a7f4.cur -------------------------------------------------------------------------------- /src/charting_library/bundles/eraser.c80610a04a92d2465b03.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/charting_library/bundles/eraser.c80610a04a92d2465b03.cur -------------------------------------------------------------------------------- /src/charting_library/bundles/favorite-drawings-api.685c412f518848b85b89.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[5551],{71355:(i,t,e)=>{e.r(t),e.d(t,{FavoriteDrawingsApi:()=>n});var s=e(50151),o=e(58275),a=e.n(o),l=e(241);class n{constructor(){this._visibility=new(a())(!1),this._canBeShownValue=new(a())(!1),this._toolbarPromise=null,this._toolbar=null,this._init()}visible(){return this._visibility.readonly()}canBeShown(){return this._canBeShownValue.readonly()}show(){(0,s.ensureNotNull)(this._toolbarPromise).then((i=>{i.showAndSaveSettingsValue()}))}hide(){null!==this._toolbarPromise&&this._toolbarPromise.then((i=>{i.hideAndSaveSettingsValue()}))}_init(){(0,l.createFavoriteDrawingToolbar)();const i=(0,s.ensureNotNull)((0,l.getFavoriteDrawingToolbarPromise)());this._toolbarPromise=i.then((i=>(this._toolbar=i,this._visibility.setValue(this._toolbar.visibility().value()),this._canBeShownValue.setValue(this._toolbar.canBeShown().value()),this._toolbar.visibility().subscribe((i=>{this._visibility.setValue(i)})),this._toolbar.canBeShown().subscribe((i=>{this._canBeShownValue.setValue(i)})),this._toolbar)))}}}}]); -------------------------------------------------------------------------------- /src/charting_library/bundles/hammerjs.6e30e0c48af40bf2f6c0.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[2377],{13367:(e,a,r)=>{r.r(a),r.d(a,{HammerJS:()=>n.a});var i=r(11553),n=r.n(i)}}]); -------------------------------------------------------------------------------- /src/charting_library/bundles/icons.4d39018d0766cf7006bc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/charting_library/bundles/icons.4d39018d0766cf7006bc.png -------------------------------------------------------------------------------- /src/charting_library/bundles/large-slider-handle.18e9ee5923db4eac2c43.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/charting_library/bundles/linewidth-slider.8e3d0520d28ce8259ccf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/charting_library/bundles/linewidth-slider.8e3d0520d28ce8259ccf.png -------------------------------------------------------------------------------- /src/charting_library/bundles/manage-drawings-dialog.3f5b604134bebba28c6c.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[1702],{95002:e=>{e.exports={dialog:"dialog-lmxpCvnK",dialogWrapper:"dialogWrapper-lmxpCvnK",wrap:"wrap-lmxpCvnK"}},41662:(e,t,i)=>{"use strict";i.r(t),i.d(t,{ManageDrawingsDialogRenderer:()=>c});var s=i(50959),a=i(962),n=i(44352),r=i(16216),l=i(98310),o=i(35057),d=i(23263),h=i(95002);class p extends s.PureComponent{constructor(e){super(e),this._dialogRef=s.createRef(),this._renderChildren=e=>s.createElement("div",{className:h.wrap},s.createElement(d.ManageDrawings,{onInitialized:e.centerAndFit,chartWidget:this._activeChartWidget}));const t=(0,r.service)(l.CHART_WIDGET_COLLECTION_SERVICE);this._activeChartWidget=t.activeChartWidget.value(),this.state={layoutName:t.metaInfo.name.value()}}render(){return s.createElement(o.AdaptivePopupDialog,{wrapperClassName:h.dialogWrapper,className:h.dialog,dataName:"manage-drawings-dialog",isOpened:!0,onClickOutside:this.props.onClose,onClose:this.props.onClose,ref:this._dialogRef,render:this._renderChildren,showSeparator:!0,title:n.t(null,void 0,i(72357)),subtitle:this.state.layoutName})}}class c{constructor(e){this._container=document.createElement("div"),this._isVisible=!1,this._handleClose=()=>{this._onClose&&this._onClose(),a.unmountComponentAtNode(this._container),this._isVisible=!1},this._onClose=e}hide(){this._handleClose()}isVisible(){return this._isVisible}show(){a.render(s.createElement(p,{onClose:this._handleClose}),this._container),this._isVisible=!0}}}}]); -------------------------------------------------------------------------------- /src/charting_library/bundles/opacity-pattern.4d8fbb552dde3db26f4a.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/charting_library/bundles/opacity-slider.4f3ca6b00b45fd71da5f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/charting_library/bundles/opacity-slider.4f3ca6b00b45fd71da5f.png -------------------------------------------------------------------------------- /src/charting_library/bundles/prediction-clock-white.c4675d37769f1df4c9ec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/charting_library/bundles/prediction-clock-white.c4675d37769f1df4c9ec.png -------------------------------------------------------------------------------- /src/charting_library/bundles/prediction-failure-white.a838a6689f951970e715.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/charting_library/bundles/prediction-failure-white.a838a6689f951970e715.png -------------------------------------------------------------------------------- /src/charting_library/bundles/prediction-success-white.2fb9966b4c0f3529a2ea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitquery/graphql-ide/6238ef1a034d84688ed433578bb45d1bec73422c/src/charting_library/bundles/prediction-success-white.2fb9966b4c0f3529a2ea.png -------------------------------------------------------------------------------- /src/charting_library/bundles/share-chart-to-social-utils.d7331dbca4a2aa0909e7.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[4665],{65692:(t,n,e)=>{var o;e.r(n),e.d(n,{Twitter:()=>o}),function(t){function n(t,n){return"cme"===TradingView.widgetCustomer?n+" from cmegroup.com via @tradingview $"+t:`Check out my #${t} analysis on @TradingView: ${n}`}function e(t="about:blank",n="snapshot_tweet"){const e=Math.round(screen.width/2-275),o=Math.round(screen.height/2-210);return window.open(t,n,`scrollbars=yes,resizable=yes,toolbar=no,location=yes,\n\t\t\t\twidth=550,height=420,\n\t\t\t\tleft=${e},top=${o}`)}t.getStatus=n,t.shareSnapshot=function(t){const o=e();return{onFailure:()=>{o.close()},onSuccess:e=>{o.location.href=function(t,e){return"https://twitter.com/intent/tweet?&text="+encodeURIComponent(n(t,function(t){return window.location.protocol+"//"+window.location.host+"/x/"+t+"/"}(e)))}(t,e)}}},t.shareSnapshotInstantly=function(t,o){e(function(t,e){return"https://twitter.com/intent/tweet?&text="+encodeURIComponent(n(t,e))}(t,o))}}(o||(o={}))}}]); -------------------------------------------------------------------------------- /src/charting_library/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "description": "CL v25.000 (internal id 1394882f @ 2023-05-22T15:05:42.670Z)", 4 | "type": "module", 5 | "main": "charting_library.cjs.js", 6 | "module": "charting_library.esm.js", 7 | "types": "charting_library.d.ts" 8 | } 9 | -------------------------------------------------------------------------------- /src/components/ChatBubbleComponent.js: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from 'react'; 2 | import ChatBubble from './ChatBubble'; 3 | 4 | const ChatBubbleComponent = ({ endpoint_url }) => { 5 | const [chatVersion, setChatVersion] = useState(null); 6 | 7 | useEffect(() => { 8 | if (endpoint_url === "https://graphql.bitquery.io") { 9 | setChatVersion("v1"); 10 | } else { 11 | setChatVersion("v2"); 12 | } 13 | }, [endpoint_url]); 14 | 15 | return ( 16 | <> 17 | {chatVersion === "v1" && ( 18 | 23 | )} 24 | {chatVersion === "v2" && ( 25 | 30 | )} 31 | 32 | ); 33 | }; 34 | 35 | export default ChatBubbleComponent; -------------------------------------------------------------------------------- /src/components/DocExplorer/Argument.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import TypeLink from './TypeLink'; 3 | import DefaultValue from './DefaultValue'; 4 | 5 | export default function Argument({ 6 | arg, 7 | onClickType, 8 | showDefaultValue, 9 | }) { 10 | return ( 11 | 12 | {arg.name} 13 | {': '} 14 | 15 | {showDefaultValue !== false && } 16 | 17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /src/components/DocExplorer/DefaultValue.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { astFromValue, print } from 'graphql'; 3 | 4 | const printDefault = (ast) => { 5 | if (!ast) { 6 | return ''; 7 | } 8 | return print(ast); 9 | }; 10 | 11 | export default function DefaultValue({ field }) { 12 | // field.defaultValue could be null or false, so be careful here! 13 | if ('defaultValue' in field && field.defaultValue !== undefined) { 14 | return ( 15 | 16 | {' = '} 17 | 18 | {printDefault(astFromValue(field.defaultValue, field.type))} 19 | 20 | 21 | ); 22 | } 23 | 24 | return null; 25 | } 26 | -------------------------------------------------------------------------------- /src/components/DocExplorer/Directive.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default function Directive({ directive }) { 4 | return ( 5 | 6 | {'@'} 7 | {directive.name.value} 8 | 9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /src/components/DocExplorer/MarkdownContent.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import MD from 'markdown-it'; 3 | 4 | const md = new MD(); 5 | 6 | export default function MarkdownContent({ 7 | markdown, 8 | className, 9 | }) { 10 | if (!markdown) { 11 | return
; 12 | } 13 | 14 | return ( 15 |
19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /src/components/DocExplorer/SearchBox.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import debounce from '../../utils/debounce'; 4 | 5 | export default class SearchBox extends React.Component { 6 | debouncedOnSearch; 7 | 8 | constructor(props) { 9 | super(props); 10 | this.state = { value: props.value !== undefined ? props.value : '' }; 11 | this.debouncedOnSearch = debounce(200, this.props.onSearch); 12 | } 13 | 14 | render() { 15 | return ( 16 | 36 | ); 37 | } 38 | 39 | handleChange = event => { 40 | const value = event.currentTarget.value; 41 | this.setState({ value }); 42 | this.debouncedOnSearch(value); 43 | }; 44 | 45 | handleClear = () => { 46 | this.setState({ value: '' }); 47 | this.props.onSearch(''); 48 | }; 49 | } 50 | -------------------------------------------------------------------------------- /src/components/DocExplorer/TypeLink.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { 3 | GraphQLList, 4 | GraphQLNonNull, 5 | } from 'graphql'; 6 | 7 | export default function TypeLink(props) { 8 | const onClick = props.onClick ? props.onClick : () => null; 9 | return renderType(props.type, onClick); 10 | } 11 | 12 | function renderType(type, onClick) { 13 | if (type instanceof GraphQLNonNull) { 14 | return ( 15 | 16 | {renderType(type.ofType, onClick)} 17 | {'!'} 18 | 19 | ); 20 | } 21 | if (type instanceof GraphQLList) { 22 | return ( 23 | 24 | {'['} 25 | {renderType(type.ofType, onClick)} 26 | {']'} 27 | 28 | ); 29 | } 30 | return ( 31 | { 34 | event.preventDefault(); 35 | onClick(type, event); 36 | }} 37 | href="# "> 38 | {type?.name} 39 | 40 | ); 41 | } 42 | -------------------------------------------------------------------------------- /src/components/Gallery/LinkComponent.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { Link, useHistory } from 'react-router-dom' 3 | import { TabsStore, QueriesStore } from '../../store/queriesStore' 4 | 5 | function LinkComponent({ propquery, as }) { 6 | const { switchTab, tabs } = TabsStore 7 | const { setQuery, query } = QueriesStore 8 | const history = useHistory() 9 | const queryUrl = queryUrl => queryUrl ? `/${queryUrl}` : '/' 10 | const isSaved = baseQuery => { 11 | for (let i =0; i { 19 | if (query.map(query => query.id).indexOf(queryFromGallery.id) === -1) { 20 | setQuery(queryFromGallery, queryFromGallery.id) 21 | } else { 22 | let tabID = query.map(query => query.id).indexOf(queryFromGallery.id) 23 | switchTab(tabs[tabID].id) 24 | } 25 | } 26 | const menu = (props) => { 27 | return ( 28 |
{props.onClick(); history.push(props.to)}}> 29 | Open query 30 |
31 | ) 32 | } 33 | const props = { 34 | to: queryUrl(propquery.url), 35 | onClick: () => handleClick(propquery) 36 | } 37 | if (as === 'menu') props.component = menu 38 | return ( 39 | 40 | {isSaved(propquery) ? propquery.name : `*${propquery.name}`} 41 | 42 | ) 43 | } 44 | 45 | export default LinkComponent 46 | -------------------------------------------------------------------------------- /src/components/Gallery/QueryBuilder/index.js: -------------------------------------------------------------------------------- 1 | import Explorer from './Explorer'; 2 | 3 | export {Explorer}; 4 | export default Explorer; 5 | -------------------------------------------------------------------------------- /src/components/Gallery/newGallery.scss: -------------------------------------------------------------------------------- 1 | @mixin choosen_tag { 2 | background-color: hsl(90, 100%, 50%, 50%); 3 | font-size: 20px; 4 | } 5 | 6 | .newGallery { 7 | &__root { 8 | display: flex; 9 | flex-direction: column; 10 | flex-basis: 15%; 11 | min-width: 300px; 12 | max-width: 300px; 13 | } 14 | &__topbar { 15 | min-height: 44px; 16 | background-color: #fff; 17 | border: none; 18 | display: flex; 19 | align-items: center; 20 | border-bottom: 1px solid #d0d0d0; 21 | i:hover { 22 | //color: #000 !important; 23 | color: $color-primary-hover !important; 24 | } 25 | } 26 | &__close { 27 | margin-right: auto; 28 | cursor: pointer; 29 | margin-left: 15px; 30 | &_helper { 31 | visibility: hidden; 32 | margin-left: auto; 33 | margin-right: 15px; 34 | } 35 | } 36 | &__header { 37 | justify-content: center; 38 | align-items: center; 39 | } 40 | &__listWrapper { 41 | display: flex; 42 | overflow: auto; 43 | flex-direction: column; 44 | padding: 0; 45 | } 46 | &__listItem { 47 | display: flex; 48 | align-items: center; 49 | justify-content: flex-start; 50 | padding: 5px; 51 | min-height: 30px; 52 | word-break: break-all; 53 | cursor: pointer; 54 | font-weight: bold; 55 | &:hover, &_active { 56 | @include choosen_tag; 57 | } 58 | transition: all .15s ease; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src/components/GraphqlExplorer.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import '../App.scss'; 3 | import { TabsStore } from '../store/queriesStore'; 4 | import { observer } from 'mobx-react-lite' 5 | import EditorInstance from './EditorInstance' 6 | import './bitqueditor/App.scss' 7 | 8 | export const GraphqlExplorer = observer(() => { 9 | const { tabs } = TabsStore 10 | return ( 11 | tabs.map((tab, i) => ( 12 | 13 | 14 | ))) 15 | }) 16 | -------------------------------------------------------------------------------- /src/components/InteractionButton.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import Loader from 'react-loader-spinner' 3 | import StopIcon from './icons/StopIcon' 4 | import PlayIcon from './icons/PlayIcon' 5 | import ErrorIcon from './icons/ErrorIcon' 6 | 7 | export const InteractionButton = ({queryStatus, accordance}) => { 8 | if (queryStatus.schemaLoading) { 9 | return 16 | } 17 | if (queryStatus.activeFetch || queryStatus.activeSubscription) { 18 | return
19 | 20 | Stop query 21 |
22 | } 23 | if (queryStatus.readyToExecute) { 24 | 25 | return
26 | 27 | Run query 28 |
29 | } 30 | if (queryStatus.schemaError) { 31 | return 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/components/QueryErrorIndicator.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function QueryErrorIndicator({error, removeError}) { 4 | return error ? 5 | <> 6 |
7 |

8 | {error} 9 |

10 | 11 |
12 |
removeError(null)} 15 | > 16 | 17 |
18 | : null 19 | } 20 | 21 | export default QueryErrorIndicator 22 | -------------------------------------------------------------------------------- /src/components/ResetPasswordForm.js: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react' 2 | import { useParams } from 'react-router-dom' 3 | import { toast } from 'react-toastify' 4 | import { Link } from 'react-router-dom' 5 | import axios from 'axios' 6 | 7 | function ResetPasswordForm() { 8 | const style = { 9 | display: 'flex', 10 | flexDirection: 'column', 11 | alignItems: 'center' 12 | } 13 | const [password, setPassword] = useState('') 14 | let { token } = useParams() 15 | const resetPassword = async e => { 16 | e.preventDefault() 17 | try { 18 | const { data } = await axios.post('/api/reset', { 19 | password, 20 | token 21 | }) 22 | toast(data, {type: 'success'}) 23 | } catch (e) { 24 | console.log(e.response.data) 25 | toast(e.response.data, {type: 'error'}) 26 | } 27 | } 28 | return ( 29 |
30 | Home 31 |

Confirm new password

32 |

New password

33 | setPassword(e.target.value)} 35 | /> 36 | 37 | 38 |
39 | ) 40 | } 41 | 42 | export default ResetPasswordForm 43 | -------------------------------------------------------------------------------- /src/components/TokenAPIBadge.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { observer } from 'mobx-react-lite' 3 | import { Link } from 'react-router-dom' 4 | import StarIcon from './icons/StarIcon' 5 | 6 | export const TokenAPIBadge = observer(function TokenAPIBadge({type, link, preffered}) { 7 | return ( 8 | 14 | {preffered && 15 | 16 | } 17 | {type} 18 | 19 | ) 20 | }) 21 | -------------------------------------------------------------------------------- /src/components/TopBapNotification.js: -------------------------------------------------------------------------------- 1 | import { observer } from 'mobx-react-lite' 2 | import React, { useEffect, useState } from 'react' 3 | import { UserStore } from '../store/queriesStore' 4 | 5 | const TopBapNotification = observer(function TopBapNotification() { 6 | const { user } = UserStore 7 | const [show, setShow] = useState(true) 8 | useEffect(() => { 9 | if (sessionStorage.getItem('notificated') === 'true') { 10 | setShow(false) 11 | } 12 | }, []) 13 | const close = () => { 14 | setShow(false) 15 | sessionStorage.setItem('notificated', 'true') 16 | } 17 | return (show && user) ? ( 18 |
19 |

We have introduced Points,  Click here  to learn how it will impact your 20 | billing.

21 | 22 |
23 | ) : null 24 | }) 25 | 26 | export default TopBapNotification 27 | -------------------------------------------------------------------------------- /src/components/bitqueditor/components/MigrationBanner.css: -------------------------------------------------------------------------------- 1 | .migration-banner { 2 | display: flex; 3 | align-items: center; 4 | justify-content: space-between; 5 | background-color: #ffcc00; 6 | color: #000; 7 | padding: 15px; 8 | border-radius: 4px; 9 | box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); 10 | cursor: pointer; 11 | animation: fadeIn 0.3s ease-in-out; 12 | } 13 | 14 | .migration-banner-hide { 15 | animation: fadeOut 0.3s ease-in-out; 16 | } 17 | 18 | .migration-banner-content { 19 | flex: 1; 20 | display: flex; 21 | align-items: center; 22 | } 23 | 24 | .migration-banner-text { 25 | font-size: 14px; 26 | font-weight: 500; 27 | margin: 0; 28 | } 29 | 30 | .migration-banner-link { 31 | font-weight: bold; 32 | text-decoration: underline; 33 | color: #007bff; 34 | cursor: pointer; 35 | } 36 | 37 | .migration-banner-close { 38 | background: none; 39 | border: none; 40 | font-size: 18px; 41 | font-weight: bold; 42 | color: #000; 43 | cursor: pointer; 44 | } 45 | 46 | @keyframes fadeIn { 47 | from { 48 | opacity: 0; 49 | transform: translateY(-10px); 50 | } 51 | to { 52 | opacity: 1; 53 | transform: translateY(0); 54 | } 55 | } 56 | 57 | @keyframes fadeOut { 58 | from { 59 | opacity: 1; 60 | transform: translateY(0); 61 | } 62 | to { 63 | opacity: 0; 64 | transform: translateY(-10px); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/components/bitqueditor/components/MigrationBanner.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import "./MigrationBanner.css"; 3 | 4 | const MigrationBanner = () => { 5 | const handleClose = () => { 6 | const banner = document.getElementById("migration-banner"); 7 | banner.classList.add("migration-banner-hide"); 8 | setTimeout(() => banner.remove(), 300); 9 | }; 10 | 11 | return ( 12 |
13 |
window.open("https://community.bitquery.io/t/migration-announcement-ethereum-bsc-v1-to-v2/2227", "_blank")} 16 | > 17 |

18 | Migration Announcement: Ethereum & BSC V1 users, please migrate to V2 APIs before February 28, 2025. Read More 19 |

20 |
21 | 28 |
29 | ); 30 | }; 31 | 32 | export default MigrationBanner; 33 | -------------------------------------------------------------------------------- /src/components/bitqueditor/components/PromoBanner.css: -------------------------------------------------------------------------------- 1 | .promo-banner { 2 | position: fixed; 3 | bottom: 1rem; 4 | left: 1rem; 5 | display: flex; 6 | align-items: center; 7 | gap: 0.75rem; 8 | padding: 0.75rem 1rem; 9 | background-color: white; 10 | border: 1px solid #d1d5db; 11 | box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); 12 | border-radius: 0.5rem; 13 | transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out; 14 | z-index: 10; 15 | max-width: 303px; 16 | cursor: pointer; 17 | } 18 | 19 | .promo-banner-logo { 20 | width: 36px; 21 | height: 36px; 22 | } 23 | 24 | .promo-banner-content { 25 | display: flex; 26 | flex-direction: column; 27 | cursor: pointer; 28 | } 29 | 30 | .promo-banner-text { 31 | font-size: 0.875rem; 32 | font-weight: 500; 33 | color: #495057; 34 | margin: 0; 35 | } 36 | 37 | .promo-banner-dex { 38 | color: #495057; 39 | font-weight: 800; 40 | letter-spacing: 0.03em; 41 | } 42 | 43 | .promo-banner-link { 44 | background: linear-gradient(to top left, #DC2B0D, #FA6A22); 45 | -webkit-background-clip: text; 46 | -webkit-text-fill-color: transparent; 47 | background-clip: text; 48 | text-fill-color: transparent; 49 | text-decoration: none; 50 | } 51 | 52 | .promo-banner-close { 53 | background: none; 54 | border: none; 55 | color: #9ca3af; 56 | cursor: pointer; 57 | font-size: 1rem; 58 | transition: color 0.2s; 59 | } 60 | 61 | .promo-banner-close:hover { 62 | color: #6b7280; 63 | } 64 | 65 | .promo-banner-hide { 66 | opacity: 0; 67 | transform: translateY(100%); 68 | } 69 | -------------------------------------------------------------------------------- /src/components/bitqueditor/components/PromoBanner.js: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState } from "react"; 2 | import "./PromoBanner.css"; 3 | 4 | const PromoBanner = () => { 5 | const [visible, setVisible] = useState(true); 6 | const [animate, setAnimate] = useState(false); 7 | 8 | const handleClose = () => { 9 | setAnimate(true); 10 | setTimeout(() => setVisible(false), 300); 11 | }; 12 | 13 | useEffect(() => { 14 | const timer = setTimeout(handleClose, 30000); 15 | return () => clearTimeout(timer); 16 | }, []); 17 | 18 | if (!visible) return null; 19 | 20 | return ( 21 |
22 | DEXrabbit logo 27 |
window.open("https://dexrabbit.com/", "_blank")} 30 | > 31 |

32 | Smarter trading on all blockchains with{" "} 33 | DEX 34 | Rabbit. 35 |

36 |
37 | 40 |
41 | ); 42 | }; 43 | 44 | export default PromoBanner; 45 | -------------------------------------------------------------------------------- /src/components/bitqueditor/components/ResponseDataType.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { observer } from 'mobx-react-lite' 3 | import { TabsStore, QueriesStore } from '../../../store/queriesStore' 4 | import { flattenData } from '../../flattenData' 5 | import { getValueFrom } from '../../../utils/common' 6 | import Dropdown from 'react-bootstrap/Dropdown' 7 | 8 | const ResponseDataType = observer(function ResponseDataType({ setDataSource, dataSource }) { 9 | const { currentQuery, updateQuery } = QueriesStore 10 | const { index } = TabsStore 11 | const DATA_TYPES = ['response', 'flatten'] 12 | 13 | const handleChange = (data_type) => { 14 | updateQuery({ data_type }, index) 15 | if (dataSource.data) { 16 | setDataSource(prev => ({ 17 | ...prev, 18 | displayed_data: data_type === 'flatten' ? 'data' : prev.displayed_data, 19 | data_type, 20 | values: currentQuery.displayed_data === 'data' 21 | ? data_type === 'flatten' 22 | ? flattenData(prev.data) 23 | : prev.data 24 | : getValueFrom(prev.data, currentQuery.displayed_data) 25 | })) 26 | } 27 | } 28 | 29 | return ( 30 | 31 | 32 | {currentQuery.data_type || DATA_TYPES[0]} 33 | 34 | 35 | {DATA_TYPES.map((data_type, i) => ( 36 | handleChange(data_type)}> 37 | {data_type} 38 | 39 | ))} 40 | 41 | 42 | ) 43 | }) 44 | 45 | export default ResponseDataType 46 | -------------------------------------------------------------------------------- /src/components/bitqueditor/components/ToolbarButton.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { observer } from 'mobx-react' 3 | 4 | const ToolbarButton = observer(function ToolbarButton({ visible = true, onClick, disabled = false, title, ...props }) { 5 | return visible && ( 6 | 15 | ) 16 | }) 17 | 18 | export default ToolbarButton -------------------------------------------------------------------------------- /src/components/bitqueditor/components/WidgetSelect.js: -------------------------------------------------------------------------------- 1 | import { observer } from 'mobx-react-lite' 2 | import React from 'react' 3 | import "react-loader-spinner/dist/loader/css/react-spinner-loader.css" 4 | import { QueriesStore, TabsStore } from '../../../store/queriesStore' 5 | import Dropdown from 'react-bootstrap/Dropdown' 6 | 7 | const WidgetSelect = observer(function WidgetSelect({ dataWidgets, dataIndexInModel, plugins, name }) { 8 | const { updateQuery, currentQuery } = QueriesStore 9 | const { index } = TabsStore 10 | 11 | return ( 12 | <> 13 | Using 14 | 37 | 38 | ) 39 | }) 40 | 41 | export default WidgetSelect 42 | -------------------------------------------------------------------------------- /src/components/codeSnippet.scss: -------------------------------------------------------------------------------- 1 | .codesnippet { 2 | &__root { 3 | width: 43%; 4 | height: 100%; 5 | border-left: 1px solid #d0d0d0; 6 | .options { 7 | padding: 10px; 8 | margin-top: 13px; 9 | border-top: 1px solid #d0d0d0; 10 | } 11 | .dropdown-menu { 12 | height: 500px; 13 | overflow: auto; 14 | } 15 | .CodeMirror { 16 | height: 100%; 17 | } 18 | .card { 19 | margin: 10px; 20 | margin-top: 0; 21 | height: 80%; 22 | } 23 | .navbar-collapse { 24 | flex-basis: 0; 25 | flex-grow: 0; 26 | } 27 | .buttons { 28 | display: flex; 29 | justify-content: space-between; 30 | align-items: center; 31 | .bi { 32 | padding: 10px; 33 | cursor: pointer; 34 | &:hover { 35 | background-color: #ececec; 36 | } 37 | } 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /src/components/flattenData.js: -------------------------------------------------------------------------------- 1 | const isObject = value => typeof value === 'object' && value !== null && !Array.isArray(value) 2 | function treeBypass(row, nodeOrPrimitive, propertie, stat) { 3 | if (isObject(nodeOrPrimitive)) { 4 | Object.keys(nodeOrPrimitive).forEach(prop => { 5 | row = {...row, ...treeBypass(row, nodeOrPrimitive[prop], prop, propertie)} 6 | }) 7 | } else { 8 | let property = { [`${stat}${propertie}`] : nodeOrPrimitive } 9 | row = {...row, ...property} 10 | } 11 | return row 12 | } 13 | export function flattenData(data) { 14 | let columns = [] 15 | Object.keys(data).forEach(network => { 16 | let row = { network } 17 | Object.keys(data[network]).forEach(stat => { 18 | let dataNetworkStats = data[network][stat][0] 19 | Object.keys(dataNetworkStats).forEach(prop => { 20 | row = {...row, ...treeBypass(row, dataNetworkStats[prop], prop, stat)} 21 | }) 22 | }) 23 | columns.push(row) 24 | }) 25 | return columns 26 | } 27 | -------------------------------------------------------------------------------- /src/components/icons/DocsIcon.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function DocsIcon(props) { 4 | return ( 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ) 16 | } 17 | 18 | export default DocsIcon 19 | -------------------------------------------------------------------------------- /src/components/icons/ErrorIcon.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function ErrorIcon(props) { 4 | return ( 5 | 6 | 7 | 8 | 9 | 10 | ) 11 | } 12 | 13 | export default ErrorIcon 14 | -------------------------------------------------------------------------------- /src/components/icons/ExitFullscreenIcon.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function ExitFullscreenIcon(props) { 4 | return ( 5 | 8 | 10 | 11 | ) 12 | } 13 | 14 | export default ExitFullscreenIcon 15 | -------------------------------------------------------------------------------- /src/components/icons/FullscreenIcon.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function FullscreenIcon(props) { 4 | return ( 5 | 8 | 10 | 11 | ) 12 | } 13 | 14 | export default FullscreenIcon 15 | -------------------------------------------------------------------------------- /src/components/icons/GraphqlIcon.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function GraphqlIcon(props) { 4 | return ( 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | ) 15 | } 16 | 17 | export default GraphqlIcon -------------------------------------------------------------------------------- /src/components/icons/PlayIcon.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function PlayIcon(props) { 4 | return ( 5 | 6 | 7 | 8 | 9 | ) 10 | } 11 | 12 | export default PlayIcon 13 | -------------------------------------------------------------------------------- /src/components/icons/ShareIcon.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function ShareIcon(props) { 4 | return ( 5 | 6 | 7 | 8 | 9 | 10 | ) 11 | } 12 | 13 | export default ShareIcon 14 | -------------------------------------------------------------------------------- /src/components/icons/SqlIcon.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | function SqlIcon(props) { 4 | return ( 5 | 13 | 17 | 18 | ); 19 | } 20 | 21 | export default SqlIcon; 22 | -------------------------------------------------------------------------------- /src/components/icons/StarIcon.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function StarIcon(props) { 4 | return ( 5 | 6 | 7 | 8 | 9 | ) 10 | } 11 | 12 | export default StarIcon 13 | -------------------------------------------------------------------------------- /src/components/icons/StopIcon.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | function StopIcon(props) { 4 | return ( 5 | 6 | 7 | 8 | ) 9 | } 10 | 11 | export default StopIcon 12 | -------------------------------------------------------------------------------- /src/components/modal/ModalWindow.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import EditDialog from './EditDialog' 3 | import { observer } from 'mobx-react-lite' 4 | import modalStore from '../../store/modalStore' 5 | import StatisticsModal from './StatisticsModal' 6 | import { Modal } from 'react-bootstrap' 7 | import StartersQueriesModal from "./StartersQueriesModal"; 8 | 9 | const ModalWindow = observer(() => { 10 | const { 11 | modalIsOpen, 12 | editDialogIsOpen, 13 | statisticsModalIsOpen, 14 | startersQueriesModalIsOpen, 15 | toggleModal, 16 | toggleStatisticsModal, 17 | toggleStartersQueriesModal, 18 | toggleEditDialog, 19 | } = modalStore 20 | 21 | const onRequestClose = () => { 22 | toggleModal() 23 | if(editDialogIsOpen) toggleEditDialog() 24 | if(statisticsModalIsOpen) toggleStatisticsModal() 25 | } 26 | 27 | return ( 28 | <> 29 | 35 | 36 | 37 | 38 | 39 | 40 | ) 41 | }) 42 | 43 | export default ModalWindow 44 | -------------------------------------------------------------------------------- /src/components/modal/StartersQueriesComponents.scss: -------------------------------------------------------------------------------- 1 | 2 | .query-container { 3 | color: $base-font-color; 4 | max-height: 70vh; 5 | overflow-y: auto; 6 | padding: 1rem; 7 | } 8 | 9 | .tree-root { 10 | list-style: none; 11 | padding: 0; 12 | margin: 0; 13 | column-count: 1; 14 | column-gap: 1rem; 15 | } 16 | 17 | .tree-section { 18 | break-inside: avoid; 19 | margin-bottom: 0.5rem; 20 | } 21 | 22 | .tree-node { 23 | display: flex; 24 | align-items: center; 25 | cursor: pointer; 26 | 27 | color: $base-font-color; 28 | 29 | &.node-open { 30 | color: $text-color-active; 31 | } 32 | } 33 | 34 | 35 | .btn-group{ 36 | color:$base-font-color; 37 | border: 1px solid $border-color; 38 | border-radius: $border-radius; 39 | } 40 | .btn-check:checked + .tree-btn { 41 | color: $text-color-active; 42 | background: $base-gradient; 43 | border-color: $text-color-active; 44 | box-shadow: $button-shadow; 45 | } 46 | .tree-btn:hover { 47 | color: $text-color-active; 48 | background: $color-primary-hover; 49 | border-color: $text-color-active; 50 | } 51 | 52 | 53 | 54 | .tree-toggle { 55 | margin-right: 0.5rem; 56 | color: $text-color-active; 57 | } 58 | 59 | .tree-children { 60 | list-style: none; 61 | padding-left: 1.8rem; 62 | margin: 0; 63 | 64 | 65 | } 66 | 67 | .tree-child { 68 | margin: 0.25rem 0; 69 | cursor:pointer; 70 | &:hover { 71 | color: $text-color-active; 72 | } 73 | } 74 | 75 | .child-link { 76 | position: relative; 77 | text-decoration: none; 78 | 79 | 80 | } 81 | 82 | 83 | 84 | 85 | @media (min-width: 768px) { 86 | .tree-root { 87 | column-count: 2; 88 | } 89 | } -------------------------------------------------------------------------------- /src/components/modal/StartersQueriesModal.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { observer } from 'mobx-react-lite' 3 | import { Modal, Button } from 'react-bootstrap' 4 | import StartersQueriesComponents from "../StartersQueriesComponents"; 5 | import modalStore from "../../store/modalStore"; 6 | 7 | const StartersQueriesModal = observer(() => { 8 | const { startersQueriesModalIsOpen, toggleStartersQueriesModal, toggleModal } = modalStore 9 | 10 | return ( 11 | 17 | 18 | Starter Queries & Websocket (Stream) 19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | ) 33 | }) 34 | 35 | export default StartersQueriesModal 36 | -------------------------------------------------------------------------------- /src/components/modal/VideoModal.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Modal, Button } from 'react-bootstrap'; 3 | const VideoModal = ({ show, onHide, src }) => ( 4 | 5 | 6 | Point System Video 7 | 8 | 9 |
10 |